; ; _close_nolock from 0x180138c1c to 0x180138cd9 (189 bytes) ; ; 2 xrefs: ; > __crt_seh_guarded_call::operator @ 0x180138b4a ; > @ 0x180203710 ; ; 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, 0x180138c1c push rdi ; +0x5, 0x180138c21 sub rsp, 20h ; +0x6, 0x180138c22 movsxd rdi, ecx ; +0xa, 0x180138c26 mov ecx, edi; FileHandle ; +0xd, 0x180138c29 call _get_osfhandle ; +0xf, 0x180138c2b cmp rax, 0FFFFFFFFFFFFFFFFh ; +0x14, 0x180138c30 jnz short loc_180138C3A ; +0x18, 0x180138c34 xor ebx, ebx ; +0x1a, 0x180138c36 jmp short loc_180138C94 ; +0x1c, 0x180138c38 mov rax, cs:qword_1801F5160 ; +0x1e, 0x180138c3a mov ecx, 2; FileHandle ; +0x25, 0x180138c41 cmp edi, 1 ; +0x2a, 0x180138c46 jnz short loc_180138C54 ; +0x2d, 0x180138c49 test [rax+0C8h], dil ; +0x2f, 0x180138c4b jnz short loc_180138C61 ; +0x36, 0x180138c52 cmp edi, ecx ; +0x38, 0x180138c54 jnz short loc_180138C78 ; +0x3a, 0x180138c56 test byte ptr [rax+80h], 1 ; +0x3c, 0x180138c58 jz short loc_180138C78 ; +0x43, 0x180138c5f call _get_osfhandle ; +0x45, 0x180138c61 mov ecx, 1; FileHandle ; +0x4a, 0x180138c66 mov rbx, rax ; +0x4f, 0x180138c6b call _get_osfhandle ; +0x52, 0x180138c6e cmp rax, rbx ; +0x57, 0x180138c73 jz short loc_180138C36 ; +0x5a, 0x180138c76 mov ecx, edi; FileHandle ; +0x5c, 0x180138c78 call _get_osfhandle ; +0x5e, 0x180138c7a mov rcx, rax; hObject ; +0x63, 0x180138c7f call cs:CloseHandle ; +0x66, 0x180138c82 test eax, eax ; +0x6c, 0x180138c88 jnz short loc_180138C36 ; +0x6e, 0x180138c8a call cs:GetLastError ; +0x70, 0x180138c8c mov ebx, eax ; +0x76, 0x180138c92 mov ecx, edi ; +0x78, 0x180138c94 call _free_osfhnd ; +0x7a, 0x180138c96 mov rdx, rdi ; +0x7f, 0x180138c9b lea r8, qword_1801F5160 ; +0x82, 0x180138c9e and edx, 3Fh ; +0x89, 0x180138ca5 mov rcx, rdi ; +0x8c, 0x180138ca8 sar rcx, 6 ; +0x8f, 0x180138cab lea rdx, [rdx+rdx*8] ; +0x93, 0x180138caf mov rcx, [r8+rcx*8] ; +0x97, 0x180138cb3 mov byte ptr [rcx+rdx*8+38h], 0 ; +0x9b, 0x180138cb7 test ebx, ebx ; +0xa0, 0x180138cbc jz short loc_180138CCC ; +0xa2, 0x180138cbe mov ecx, ebx ; +0xa4, 0x180138cc0 call __acrt_errno_map_os_error ; +0xa6, 0x180138cc2 or eax, 0FFFFFFFFh ; +0xab, 0x180138cc7 jmp short loc_180138CCE ; +0xae, 0x180138cca xor eax, eax ; +0xb0, 0x180138ccc mov rbx, [rsp+28h+arg_0] ; +0xb2, 0x180138cce add rsp, 20h ; +0xb7, 0x180138cd3 pop rdi ; +0xbb, 0x180138cd7 retn ; +0xbc, 0x180138cd8