; ; __acrt_getptd from 0x1801352b8 to 0x18013538c (212 bytes) ; ; 13 xrefs: ; > _LocaleUpdate::_LocaleUpdate @ 0x18012948e ; > unknown_libname_61 @ 0x1801309a1 ; > terminate @ 0x180132a88 ; > __pctype_func @ 0x180136af8 ; > raise @ 0x1801397ae ; > raise @ 0x1801397be ; > raise @ 0x180139834 ; > raise @ 0x180139877 ; > __acrt_update_thread_multibyte_data @ 0x18013a878 ; > __acrt_update_thread_locale_data @ 0x18013c4d6 ; > ___lc_codepage_func @ 0x18013d344 ; > _write_nolock @ 0x18014040d ; > @ 0x18020335c ; ; 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, 0x1801352b8 mov [rsp+arg_8], rsi ; +0x5, 0x1801352bd push rdi ; +0xa, 0x1801352c2 sub rsp, 20h ; +0xb, 0x1801352c3 call cs:GetLastError ; +0xf, 0x1801352c7 mov ecx, cs:dword_1801B1870 ; +0x15, 0x1801352cd mov ebx, eax ; +0x1b, 0x1801352d3 cmp ecx, 0FFFFFFFFh ; +0x1d, 0x1801352d5 jz short loc_1801352F9 ; +0x20, 0x1801352d8 call __acrt_FlsGetValue ; +0x22, 0x1801352da mov rdi, rax ; +0x27, 0x1801352df test rax, rax ; +0x2a, 0x1801352e2 jz short loc_1801352F3 ; +0x2d, 0x1801352e5 cmp rax, 0FFFFFFFFFFFFFFFFh ; +0x2f, 0x1801352e7 jnz short loc_180135360 ; +0x33, 0x1801352eb xor edi, edi ; +0x35, 0x1801352ed xor esi, esi ; +0x37, 0x1801352ef jmp short loc_180135363 ; +0x39, 0x1801352f1 mov ecx, cs:dword_1801B1870; dwTlsIndex ; +0x3b, 0x1801352f3 or rdx, 0FFFFFFFFFFFFFFFFh; lpTlsValue ; +0x41, 0x1801352f9 call __acrt_FlsSetValue ; +0x45, 0x1801352fd test eax, eax ; +0x4a, 0x180135302 jz short loc_1801352ED ; +0x4c, 0x180135304 mov edx, 3C8h; Size ; +0x4e, 0x180135306 mov ecx, 1; Count ; +0x53, 0x18013530b call _calloc_base ; +0x58, 0x180135310 mov ecx, cs:dword_1801B1870; dwTlsIndex ; +0x5d, 0x180135315 mov rdi, rax ; +0x63, 0x18013531b test rax, rax ; +0x66, 0x18013531e jnz short loc_180135333 ; +0x69, 0x180135321 xor edx, edx; lpTlsValue ; +0x6b, 0x180135323 call __acrt_FlsSetValue ; +0x6d, 0x180135325 xor ecx, ecx; Block ; +0x72, 0x18013532a call _free_base ; +0x74, 0x18013532c jmp short loc_1801352ED ; +0x79, 0x180135331 mov rdx, rdi; lpTlsValue ; +0x7b, 0x180135333 call __acrt_FlsSetValue ; +0x7e, 0x180135336 test eax, eax ; +0x83, 0x18013533b jnz short loc_180135351 ; +0x85, 0x18013533d mov ecx, cs:dword_1801B1870; dwTlsIndex ; +0x87, 0x18013533f xor edx, edx; lpTlsValue ; +0x8d, 0x180135345 call __acrt_FlsSetValue ; +0x8f, 0x180135347 mov rcx, rdi ; +0x94, 0x18013534c jmp short loc_18013532C ; +0x97, 0x18013534f mov rcx, rdi; struct __acrt_ptd * ; +0x99, 0x180135351 call ?construct_ptd_array@@YAXQEAU__acrt_ptd@@@Z ; +0x9c, 0x180135354 xor ecx, ecx; Block ; +0xa1, 0x180135359 call _free_base ; +0xa3, 0x18013535b mov rsi, rdi ; +0xa8, 0x180135360 mov ecx, ebx; dwErrCode ; +0xab, 0x180135363 call cs:SetLastError ; +0xad, 0x180135365 neg rdi ; +0xb3, 0x18013536b sbb rax, rax ; +0xb6, 0x18013536e and rax, rsi ; +0xb9, 0x180135371 jz short loc_180135386 ; +0xbc, 0x180135374 mov rbx, [rsp+28h+arg_0] ; +0xbe, 0x180135376 mov rsi, [rsp+28h+arg_8] ; +0xc3, 0x18013537b add rsp, 20h ; +0xc8, 0x180135380 pop rdi ; +0xcc, 0x180135384 retn ; +0xcd, 0x180135385 call abort ; +0xce, 0x180135386 align 4 ; +0xd3, 0x18013538b