; ; _free_osfhnd from 0x1801361b4 to 0x18013626e (186 bytes) ; ; 2 xrefs: ; > _close_nolock @ 0x180138c96 ; > @ 0x1802034dc ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp+arg_0], rbx ; +0x0, 0x1801361b4 mov [rsp+arg_8], rsi ; +0x5, 0x1801361b9 mov [rsp+arg_10], rdi ; +0xa, 0x1801361be push r14 ; +0xf, 0x1801361c3 sub rsp, 20h ; +0x11, 0x1801361c5 movsxd rbx, ecx ; +0x15, 0x1801361c9 test ecx, ecx ; +0x18, 0x1801361cc js short loc_180136242 ; +0x1a, 0x1801361ce cmp ebx, cs:dword_1801F5560 ; +0x1c, 0x1801361d0 jnb short loc_180136242 ; +0x22, 0x1801361d6 mov rax, rbx ; +0x24, 0x1801361d8 lea r14, qword_1801F5160 ; +0x27, 0x1801361db and eax, 3Fh ; +0x2e, 0x1801361e2 mov rsi, rbx ; +0x31, 0x1801361e5 sar rsi, 6 ; +0x34, 0x1801361e8 lea rdi, [rax+rax*8] ; +0x38, 0x1801361ec mov rax, [r14+rsi*8] ; +0x3c, 0x1801361f0 test byte ptr [rax+rdi*8+38h], 1 ; +0x40, 0x1801361f4 jz short loc_180136242 ; +0x45, 0x1801361f9 cmp qword ptr [rax+rdi*8+28h], 0FFFFFFFFFFFFFFFFh ; +0x47, 0x1801361fb jz short loc_180136242 ; +0x4d, 0x180136201 call sub_180138EF0 ; +0x4f, 0x180136203 cmp eax, 1 ; +0x54, 0x180136208 jnz short loc_180136234 ; +0x57, 0x18013620b test ebx, ebx ; +0x59, 0x18013620d jz short loc_180136227 ; +0x5b, 0x18013620f sub ebx, eax ; +0x5d, 0x180136211 jz short loc_180136220 ; +0x5f, 0x180136213 cmp ebx, eax ; +0x61, 0x180136215 jnz short loc_180136234 ; +0x63, 0x180136217 mov ecx, 0FFFFFFF4h ; +0x65, 0x180136219 jmp short loc_18013622C ; +0x6a, 0x18013621e mov ecx, 0FFFFFFF5h ; +0x6c, 0x180136220 jmp short loc_18013622C ; +0x71, 0x180136225 mov ecx, 0FFFFFFF6h; nStdHandle ; +0x73, 0x180136227 xor edx, edx; hHandle ; +0x78, 0x18013622c call cs:SetStdHandle ; +0x7a, 0x18013622e mov rax, [r14+rsi*8] ; +0x80, 0x180136234 or qword ptr [rax+rdi*8+28h], 0FFFFFFFFFFFFFFFFh ; +0x84, 0x180136238 xor eax, eax ; +0x8a, 0x18013623e jmp short loc_180136258 ; +0x8c, 0x180136240 call _errno ; +0x8e, 0x180136242 mov dword ptr [rax], 9 ; +0x93, 0x180136247 call __doserrno ; +0x99, 0x18013624d and dword ptr [rax], 0 ; +0x9e, 0x180136252 or eax, 0FFFFFFFFh ; +0xa1, 0x180136255 mov rbx, [rsp+28h+arg_0] ; +0xa4, 0x180136258 mov rsi, [rsp+28h+arg_8] ; +0xa9, 0x18013625d mov rdi, [rsp+28h+arg_10] ; +0xae, 0x180136262 add rsp, 20h ; +0xb3, 0x180136267 pop r14 ; +0xb7, 0x18013626b retn ; +0xb9, 0x18013626d