; ; _wctomb_s_l from 0x180137424 to 0x1801375c0 (412 bytes) ; ; 4 xrefs: ; > unknown_libname_47 @ 0x18012e370 ; > unknown_libname_56 @ 0x18012edc1 ; > wctomb_s @ 0x1801375ca ; > @ 0x1802035d8 ; ; 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-18h+arg_0], rbx ; +0x0, 0x180137424 mov [rsp-18h+arg_18], r9w ; +0x5, 0x180137429 push rbp ; +0xb, 0x18013742f push rsi ; +0xc, 0x180137430 push rdi ; +0xd, 0x180137431 mov rbp, rsp ; +0xe, 0x180137432 sub rsp, 60h ; +0x11, 0x180137435 mov rsi, r8 ; +0x15, 0x180137439 mov rdi, rdx ; +0x18, 0x18013743c mov rbx, rcx ; +0x1b, 0x18013743f test rdx, rdx ; +0x1e, 0x180137442 jnz short loc_18013745A ; +0x21, 0x180137445 test r8, r8 ; +0x23, 0x180137447 jz short loc_18013745A ; +0x26, 0x18013744a test rcx, rcx ; +0x28, 0x18013744c jz short loc_180137453 ; +0x2b, 0x18013744f and [rcx], edx ; +0x2d, 0x180137451 xor eax, eax ; +0x2f, 0x180137453 jmp loc_180137519 ; +0x31, 0x180137455 test rbx, rbx ; +0x36, 0x18013745a jz short loc_180137462 ; +0x39, 0x18013745d or dword ptr [rcx], 0FFFFFFFFh ; +0x3b, 0x18013745f cmp rsi, 7FFFFFFFh ; +0x3e, 0x180137462 jbe short loc_180137481 ; +0x45, 0x180137469 call _errno ; +0x47, 0x18013746b mov ebx, 16h ; +0x4c, 0x180137470 mov [rax], ebx ; +0x51, 0x180137475 call _invalid_parameter_noinfo ; +0x53, 0x180137477 jmp loc_180137517 ; +0x58, 0x18013747c mov rdx, [rbp+Locale]; struct __crt_locale_pointers * ; +0x5d, 0x180137481 lea rcx, [rbp+var_20]; this ; +0x61, 0x180137485 call ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z ; +0x65, 0x180137489 mov rax, [rbp+var_18] ; +0x6a, 0x18013748e mov ecx, [rax+0Ch] ; +0x6e, 0x180137492 cmp ecx, 0FDE9h ; +0x71, 0x180137495 jnz short loc_1801374CB ; +0x77, 0x18013749b movzx edx, [rbp+arg_18]; char * ; +0x79, 0x18013749d lea r8, [rbp+arg_8]; char32_t ; +0x7d, 0x1801374a1 and [rbp+arg_8], 0 ; +0x81, 0x1801374a5 mov rcx, rdi; this ; +0x86, 0x1801374aa call ?__c32rtomb_utf8@__crt_mbstring@@YA_KPEAD_UPEAU_Mbstatet@@@Z ; +0x89, 0x1801374ad test rbx, rbx ; +0x8e, 0x1801374b2 jz short loc_1801374B9 ; +0x91, 0x1801374b5 mov [rbx], eax ; +0x93, 0x1801374b7 cmp eax, 4 ; +0x95, 0x1801374b9 jle loc_180137580 ; +0x98, 0x1801374bc call _errno ; +0x9e, 0x1801374c2 mov ebx, [rax] ; +0xa3, 0x1801374c7 jmp short loc_180137506 ; +0xa5, 0x1801374c9 cmp qword ptr [rax+138h], 0 ; +0xa7, 0x1801374cb jnz short loc_180137542 ; +0xaf, 0x1801374d3 movzx eax, [rbp+arg_18] ; +0xb1, 0x1801374d5 mov ecx, 0FFh ; +0xb5, 0x1801374d9 cmp ax, cx ; +0xba, 0x1801374de jbe short loc_180137529 ; +0xbd, 0x1801374e1 test rdi, rdi ; +0xbf, 0x1801374e3 jz short loc_1801374FA ; +0xc2, 0x1801374e6 test rsi, rsi ; +0xc4, 0x1801374e8 jz short loc_1801374FA ; +0xc7, 0x1801374eb mov r8, rsi; Size ; +0xc9, 0x1801374ed xor edx, edx; Val ; +0xcc, 0x1801374f0 mov rcx, rdi; void * ; +0xce, 0x1801374f2 call memset ; +0xd1, 0x1801374f5 call _errno ; +0xd6, 0x1801374fa mov ebx, 2Ah ; '*' ; +0xdb, 0x1801374ff mov [rax], ebx ; +0xe0, 0x180137504 cmp [rbp+var_8], 0 ; +0xe2, 0x180137506 jz short loc_180137517 ; +0xe6, 0x18013750a mov rcx, [rbp+var_20] ; +0xe8, 0x18013750c and dword ptr [rcx+3A8h], 0FFFFFFFDh ; +0xec, 0x180137510 mov eax, ebx ; +0xf3, 0x180137517 mov rbx, [rsp+60h+arg_0] ; +0xf5, 0x180137519 add rsp, 60h ; +0xfd, 0x180137521 pop rdi ; +0x101, 0x180137525 pop rsi ; +0x102, 0x180137526 pop rbp ; +0x103, 0x180137527 retn ; +0x104, 0x180137528 test rdi, rdi ; +0x105, 0x180137529 jz short loc_180137535 ; +0x108, 0x18013752c test rsi, rsi ; +0x10a, 0x18013752e jz short loc_1801375AA ; +0x10d, 0x180137531 mov [rdi], al ; +0x10f, 0x180137533 test rbx, rbx ; +0x111, 0x180137535 jz short loc_180137580 ; +0x114, 0x180137538 mov dword ptr [rbx], 1 ; +0x116, 0x18013753a jmp short loc_180137580 ; +0x11c, 0x180137540 and dword ptr [rbp+arg_8], 0 ; +0x11e, 0x180137542 lea rax, [rbp+arg_8] ; +0x122, 0x180137546 mov [rsp+60h+var_28], rax ; +0x126, 0x18013754a lea r8, [rbp+arg_18] ; +0x12b, 0x18013754f and [rsp+60h+var_30], 0 ; +0x12f, 0x180137553 mov r9d, 1 ; +0x135, 0x180137559 mov [rsp+60h+var_38], esi ; +0x13b, 0x18013755f xor edx, edx ; +0x13f, 0x180137563 mov [rsp+60h+var_40], rdi ; +0x141, 0x180137565 call __acrt_WideCharToMultiByte ; +0x146, 0x18013756a test eax, eax ; +0x14b, 0x18013756f jz short loc_180137584 ; +0x14d, 0x180137571 cmp dword ptr [rbp+arg_8], 0 ; +0x14f, 0x180137573 jnz short loc_1801374FA ; +0x153, 0x180137577 test rbx, rbx ; +0x155, 0x180137579 jz short loc_180137580 ; +0x158, 0x18013757c mov [rbx], eax ; +0x15a, 0x18013757e xor ebx, ebx ; +0x15c, 0x180137580 jmp short loc_180137506 ; +0x15e, 0x180137582 call cs:GetLastError ; +0x160, 0x180137584 cmp eax, 7Ah ; 'z' ; +0x166, 0x18013758a jnz loc_1801374FA ; +0x169, 0x18013758d test rdi, rdi ; +0x16f, 0x180137593 jz short loc_1801375AA ; +0x172, 0x180137596 test rsi, rsi ; +0x174, 0x180137598 jz short loc_1801375AA ; +0x177, 0x18013759b mov r8, rsi; Size ; +0x179, 0x18013759d xor edx, edx; Val ; +0x17c, 0x1801375a0 mov rcx, rdi; void * ; +0x17e, 0x1801375a2 call memset ; +0x181, 0x1801375a5 call _errno ; +0x186, 0x1801375aa mov ebx, 22h ; '"' ; +0x18b, 0x1801375af mov [rax], ebx ; +0x190, 0x1801375b4 call _invalid_parameter_noinfo ; +0x192, 0x1801375b6 jmp loc_180137506 ; +0x197, 0x1801375bb