; ; _fputwc_nolock from 0x18013831c to 0x180138497 (379 bytes) ; ; 7 xrefs: ; > __crt_stdio_output::write_multiple_characters<__crt_stdio_output::stream_output_adapter,char> @ 0x18012c184 ; > __crt_stdio_output::output_processor,__crt_stdio_output::standard_base>>::process @ 0x18012caf7 ; > unknown_libname_57 @ 0x18012eec7 ; > __crt_stdio_output::output_adapter_common>::write_string_impl @ 0x18012f1e6 ; > __crt_stdio_output::output_adapter_common>::write_string_impl @ 0x18012f22a ; > @ 0x180203638 ; > @ 0x180203644 ; ; 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_8], rbx ; +0x0, 0x18013831c mov [rsp+arg_10], rbp ; +0x5, 0x180138321 push rsi ; +0xa, 0x180138326 push rdi ; +0xb, 0x180138327 push r14 ; +0xc, 0x180138328 sub rsp, 40h ; +0xe, 0x18013832a mov rax, cs:__security_cookie ; +0x12, 0x18013832e xor rax, rsp ; +0x19, 0x180138335 mov [rsp+58h+var_28], rax ; +0x1c, 0x180138338 mov eax, [rdx+14h] ; +0x21, 0x18013833d mov rdi, rdx ; +0x24, 0x180138340 movzx esi, cx ; +0x27, 0x180138343 shr eax, 0Ch ; +0x2a, 0x180138346 test al, 1 ; +0x2d, 0x180138349 jz short loc_180138366 ; +0x2f, 0x18013834b add dword ptr [rdx+10h], 0FFFFFFFEh ; +0x31, 0x18013834d js loc_180138461 ; +0x35, 0x180138351 mov rax, [rdx] ; +0x3b, 0x180138357 mov [rax], si ; +0x3e, 0x18013835a add qword ptr [rdx], 2 ; +0x41, 0x18013835d jmp loc_180138474 ; +0x45, 0x180138361 mov rcx, rdi; Stream ; +0x4a, 0x180138366 call _fileno ; +0x4d, 0x180138369 lea rbp, unk_1801B19F0 ; +0x52, 0x18013836e lea r14, qword_1801F5160 ; +0x59, 0x180138375 cmp eax, 0FFFFFFFFh ; +0x60, 0x18013837c jz short loc_1801383B6 ; +0x63, 0x18013837f mov rcx, rdi; Stream ; +0x65, 0x180138381 call _fileno ; +0x68, 0x180138384 cmp eax, 0FFFFFFFEh ; +0x6d, 0x180138389 jz short loc_1801383B6 ; +0x70, 0x18013838c mov rcx, rdi; Stream ; +0x72, 0x18013838e call _fileno ; +0x75, 0x180138391 movsxd rbx, eax ; +0x7a, 0x180138396 mov rcx, rdi; Stream ; +0x7d, 0x180138399 sar rbx, 6 ; +0x80, 0x18013839c call _fileno ; +0x84, 0x1801383a0 and eax, 3Fh ; +0x89, 0x1801383a5 lea rcx, [rax+rax*8] ; +0x8c, 0x1801383a8 mov rax, [r14+rbx*8] ; +0x90, 0x1801383ac lea rdx, [rax+rcx*8] ; +0x94, 0x1801383b0 jmp short loc_1801383B9 ; +0x98, 0x1801383b4 mov rdx, rbp ; +0x9a, 0x1801383b6 mov al, [rdx+39h] ; +0x9d, 0x1801383b9 dec al ; +0xa0, 0x1801383bc cmp al, 1 ; +0xa2, 0x1801383be jbe loc_180138458 ; +0xa4, 0x1801383c0 mov rcx, rdi; Stream ; +0xaa, 0x1801383c6 call _fileno ; +0xad, 0x1801383c9 cmp eax, 0FFFFFFFFh ; +0xb2, 0x1801383ce jz short loc_180138406 ; +0xb5, 0x1801383d1 mov rcx, rdi; Stream ; +0xb7, 0x1801383d3 call _fileno ; +0xba, 0x1801383d6 cmp eax, 0FFFFFFFEh ; +0xbf, 0x1801383db jz short loc_180138406 ; +0xc2, 0x1801383de mov rcx, rdi; Stream ; +0xc4, 0x1801383e0 call _fileno ; +0xc7, 0x1801383e3 movsxd rbx, eax ; +0xcc, 0x1801383e8 mov rcx, rdi; Stream ; +0xcf, 0x1801383eb sar rbx, 6 ; +0xd2, 0x1801383ee call _fileno ; +0xd6, 0x1801383f2 and eax, 3Fh ; +0xdb, 0x1801383f7 lea rcx, [rax+rax*8] ; +0xde, 0x1801383fa mov rax, [r14+rbx*8] ; +0xe2, 0x1801383fe lea rbp, [rax+rcx*8] ; +0xe6, 0x180138402 xor ebx, ebx ; +0xea, 0x180138406 cmp [rbp+38h], bl ; +0xec, 0x180138408 jge short loc_180138458 ; +0xef, 0x18013840b movzx r9d, si; WCh ; +0xf1, 0x18013840d lea r8d, [rbx+5]; SizeInBytes ; +0xf5, 0x180138411 lea rdx, [rsp+58h+MbCh]; MbCh ; +0xf9, 0x180138415 lea rcx, [rsp+58h+SizeConverted]; SizeConverted ; +0xfe, 0x18013841a call wctomb_s ; +0x103, 0x18013841f test eax, eax ; +0x108, 0x180138424 jnz short loc_180138451 ; +0x10a, 0x180138426 cmp [rsp+58h+SizeConverted], ebx ; +0x10c, 0x180138428 jle short loc_180138474 ; +0x110, 0x18013842c lea rbp, [rsp+58h+MbCh] ; +0x112, 0x18013842e movsx ecx, byte ptr [rbp+0] ; +0x117, 0x180138433 mov rdx, rdi ; +0x11b, 0x180138437 call unknown_libname_68; Microsoft VisualC 64bit universal runtime ; +0x11e, 0x18013843a cmp eax, 0FFFFFFFFh ; +0x123, 0x18013843f jz short loc_180138451 ; +0x126, 0x180138442 inc ebx ; +0x128, 0x180138444 inc rbp ; +0x12a, 0x180138446 cmp ebx, [rsp+58h+SizeConverted] ; +0x12d, 0x180138449 jl short loc_180138433 ; +0x131, 0x18013844d jmp short loc_180138474 ; +0x133, 0x18013844f mov eax, 0FFFFh ; +0x135, 0x180138451 jmp short loc_180138477 ; +0x13a, 0x180138456 add dword ptr [rdi+10h], 0FFFFFFFEh ; +0x13c, 0x180138458 jns short loc_18013846A ; +0x140, 0x18013845c mov rdx, rdi ; +0x142, 0x18013845e mov ecx, esi ; +0x145, 0x180138461 call unknown_libname_73; Microsoft VisualC 64bit universal runtime ; +0x147, 0x180138463 jmp short loc_180138477 ; +0x14c, 0x180138468 mov rax, [rdi] ; +0x14e, 0x18013846a mov [rax], si ; +0x151, 0x18013846d add qword ptr [rdi], 2 ; +0x154, 0x180138470 movzx eax, si ; +0x158, 0x180138474 mov rcx, [rsp+58h+var_28] ; +0x15b, 0x180138477 xor rcx, rsp; StackCookie ; +0x160, 0x18013847c call __security_check_cookie ; +0x163, 0x18013847f mov rbx, [rsp+58h+arg_8] ; +0x168, 0x180138484 mov rbp, [rsp+58h+arg_10] ; +0x16d, 0x180138489 add rsp, 40h ; +0x172, 0x18013848e pop r14 ; +0x176, 0x180138492 pop rdi ; +0x178, 0x180138494 pop rsi ; +0x179, 0x180138495 retn ; +0x17a, 0x180138496