; ; _fclose_nolock from 0x18012f9fc to 0x18012fa7f (131 bytes) ; ; 2 xrefs: ; > fclose @ 0x18012facf ; > @ 0x180202dc8 ; ; 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, 0x18012f9fc push rdi ; +0x5, 0x18012fa01 sub rsp, 20h ; +0x6, 0x18012fa02 mov rbx, rcx ; +0xa, 0x18012fa06 test rcx, rcx ; +0xd, 0x18012fa09 jnz short loc_18012FA23 ; +0x10, 0x18012fa0c call _errno ; +0x12, 0x18012fa0e mov dword ptr [rax], 16h ; +0x17, 0x18012fa13 call _invalid_parameter_noinfo ; +0x1d, 0x18012fa19 or eax, 0FFFFFFFFh ; +0x22, 0x18012fa1e jmp short loc_18012FA74 ; +0x25, 0x18012fa21 mov eax, [rcx+14h] ; +0x27, 0x18012fa23 or edi, 0FFFFFFFFh ; +0x2a, 0x18012fa26 shr eax, 0Dh ; +0x2d, 0x18012fa29 test al, 1 ; +0x30, 0x18012fa2c jz short loc_18012FA6A ; +0x32, 0x18012fa2e call __acrt_stdio_flush_nolock ; +0x34, 0x18012fa30 mov rcx, rbx ; +0x39, 0x18012fa35 mov edi, eax ; +0x3c, 0x18012fa38 call __acrt_stdio_free_buffer_nolock ; +0x3e, 0x18012fa3a mov rcx, rbx; Stream ; +0x43, 0x18012fa3f call _fileno ; +0x46, 0x18012fa42 mov ecx, eax ; +0x4b, 0x18012fa47 call sub_180138B78 ; +0x4d, 0x18012fa49 test eax, eax ; +0x52, 0x18012fa4e jns short loc_18012FA57 ; +0x54, 0x18012fa50 or edi, 0FFFFFFFFh ; +0x56, 0x18012fa52 jmp short loc_18012FA6A ; +0x59, 0x18012fa55 mov rcx, [rbx+28h]; Block ; +0x5b, 0x18012fa57 test rcx, rcx ; +0x5f, 0x18012fa5b jz short loc_18012FA6A ; +0x62, 0x18012fa5e call _free_base ; +0x64, 0x18012fa60 and qword ptr [rbx+28h], 0 ; +0x69, 0x18012fa65 mov rcx, rbx ; +0x6e, 0x18012fa6a call ?__acrt_stdio_free_stream@@YAXV__crt_stdio_stream@@@Z ; +0x71, 0x18012fa6d mov eax, edi ; +0x76, 0x18012fa72 mov rbx, [rsp+28h+arg_0] ; +0x78, 0x18012fa74 add rsp, 20h ; +0x7d, 0x18012fa79 pop rdi ; +0x81, 0x18012fa7d retn ; +0x82, 0x18012fa7e