; ; __acrt_SetEnvironmentVariableA from 0x180140fdc to 0x180141173 (407 bytes) ; ; 2 xrefs: ; > common_set_variable_in_environment_nolock @ 0x18013b05a ; > @ 0x180203c74 ; ; 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 rax, rsp ; +0x0, 0x180140fdc mov [rax+8], rbx ; +0x3, 0x180140fdf mov [rax+10h], rsi ; +0x7, 0x180140fe3 mov [rax+18h], rdi ; +0xb, 0x180140fe7 push rbp ; +0xf, 0x180140feb push r14 ; +0x10, 0x180140fec push r15 ; +0x12, 0x180140fee lea rbp, [rax-5Fh] ; +0x14, 0x180140ff0 sub rsp, 0A0h ; +0x18, 0x180140ff4 xor r15d, r15d ; +0x1f, 0x180140ffb mov r14, rdx ; +0x22, 0x180140ffe mov rsi, rcx ; +0x25, 0x180141001 mov [rbp+57h+var_40], r15 ; +0x28, 0x180141004 xor edx, edx; struct __crt_locale_pointers * ; +0x2c, 0x180141008 mov [rbp+57h+var_38], r15 ; +0x2e, 0x18014100a lea rcx, [rbp+57h+var_90]; this ; +0x32, 0x18014100e mov [rbp+57h+lpName], r15 ; +0x36, 0x180141012 mov [rbp+57h+var_28], r15 ; +0x3a, 0x180141016 mov edi, r15d ; +0x3e, 0x18014101a mov [rbp+57h+var_20], r15 ; +0x41, 0x18014101d mov [rbp+57h+var_18], r15b ; +0x45, 0x180141021 mov [rbp+57h+var_70], r15 ; +0x49, 0x180141025 mov [rbp+57h+var_68], r15 ; +0x4d, 0x180141029 mov [rbp+57h+lpValue], r15 ; +0x51, 0x18014102d mov [rbp+57h+var_58], r15 ; +0x55, 0x180141031 mov [rbp+57h+var_50], r15 ; +0x59, 0x180141035 mov [rbp+57h+var_48], r15b ; +0x5d, 0x180141039 call ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z ; +0x61, 0x18014103d mov rax, [rbp+57h+var_88] ; +0x66, 0x180141042 mov ebx, 0FDE9h ; +0x6a, 0x180141046 cmp [rax+0Ch], ebx ; +0x6f, 0x18014104b jnz short loc_180141066 ; +0x72, 0x18014104e cmp [rbp+57h+var_78], r15b ; +0x74, 0x180141050 jz short loc_180141061 ; +0x78, 0x180141054 mov rax, [rbp+57h+var_90] ; +0x7a, 0x180141056 and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0x7e, 0x18014105a mov r8d, ebx ; +0x85, 0x180141061 jmp short loc_18014109C ; +0x88, 0x180141064 call __acrt_AreFileApisANSI ; +0x8a, 0x180141066 test eax, eax ; +0x8f, 0x18014106b jnz short loc_180141088 ; +0x91, 0x18014106d cmp [rbp+57h+var_78], r15b ; +0x93, 0x18014106f jz short loc_180141080 ; +0x97, 0x180141073 mov rax, [rbp+57h+var_90] ; +0x99, 0x180141075 and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0x9d, 0x180141079 mov r8d, 1 ; +0xa4, 0x180141080 jmp short loc_18014109C ; +0xaa, 0x180141086 cmp [rbp+57h+var_78], r15b ; +0xac, 0x180141088 jz short loc_180141099 ; +0xb0, 0x18014108c mov rax, [rbp+57h+var_90] ; +0xb2, 0x18014108e and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0xb6, 0x180141092 mov r8d, r15d ; +0xbd, 0x180141099 lea rdx, [rbp+57h+var_40] ; +0xc0, 0x18014109c mov rcx, rsi ; +0xc4, 0x1801410a0 call ??$__acrt_mbs_to_wcs_cp@U__crt_win32_buffer_internal_dynamic_resizing@@@@YAHQEBDAEAV?$__crt_win32_buffer@_WU__crt_win32_buffer_internal_dynamic_resizing@@@@I@Z ; +0xc7, 0x1801410a3 test eax, eax ; +0xcc, 0x1801410a8 jnz loc_180141134 ; +0xce, 0x1801410aa xor edx, edx; struct __crt_locale_pointers * ; +0xd4, 0x1801410b0 lea rcx, [rbp+57h+var_90]; this ; +0xd6, 0x1801410b2 call ??0_LocaleUpdate@@QEAA@QEAU__crt_locale_pointers@@@Z ; +0xda, 0x1801410b6 mov rax, [rbp+57h+var_88] ; +0xdf, 0x1801410bb cmp [rax+0Ch], ebx ; +0xe3, 0x1801410bf jnz short loc_1801410D7 ; +0xe6, 0x1801410c2 cmp [rbp+57h+var_78], r15b ; +0xe8, 0x1801410c4 jz short loc_18014110C ; +0xec, 0x1801410c8 mov rax, [rbp+57h+var_90] ; +0xee, 0x1801410ca and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0xf2, 0x1801410ce jmp short loc_18014110C ; +0xf9, 0x1801410d5 call __acrt_AreFileApisANSI ; +0xfb, 0x1801410d7 test eax, eax ; +0x100, 0x1801410dc jnz short loc_1801410F8 ; +0x102, 0x1801410de cmp [rbp+57h+var_78], r15b ; +0x104, 0x1801410e0 jz short loc_1801410F1 ; +0x108, 0x1801410e4 mov rax, [rbp+57h+var_90] ; +0x10a, 0x1801410e6 and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0x10e, 0x1801410ea mov ebx, 1 ; +0x115, 0x1801410f1 jmp short loc_18014110C ; +0x11a, 0x1801410f6 cmp [rbp+57h+var_78], r15b ; +0x11c, 0x1801410f8 jz short loc_180141109 ; +0x120, 0x1801410fc mov rax, [rbp+57h+var_90] ; +0x122, 0x1801410fe and dword ptr [rax+3A8h], 0FFFFFFFDh ; +0x126, 0x180141102 mov ebx, r15d ; +0x12d, 0x180141109 mov r8d, ebx ; +0x130, 0x18014110c lea rdx, [rbp+57h+var_70] ; +0x133, 0x18014110f mov rcx, r14 ; +0x137, 0x180141113 call ??$__acrt_mbs_to_wcs_cp@U__crt_win32_buffer_internal_dynamic_resizing@@@@YAHQEBDAEAV?$__crt_win32_buffer@_WU__crt_win32_buffer_internal_dynamic_resizing@@@@I@Z ; +0x13a, 0x180141116 mov rdi, [rbp+57h+lpValue] ; +0x13f, 0x18014111b test eax, eax ; +0x143, 0x18014111f jnz short loc_180141134 ; +0x145, 0x180141121 mov rcx, [rbp+57h+lpName]; lpName ; +0x147, 0x180141123 mov rdx, rdi; lpValue ; +0x14b, 0x180141127 call cs:SetEnvironmentVariableW ; +0x14e, 0x18014112a mov ebx, eax ; +0x154, 0x180141130 jmp short loc_180141137 ; +0x156, 0x180141132 mov ebx, r15d ; +0x158, 0x180141134 cmp [rbp+57h+var_48], r15b ; +0x15b, 0x180141137 jz short loc_180141145 ; +0x15f, 0x18014113b mov rcx, rdi; Block ; +0x161, 0x18014113d call _free_base ; +0x164, 0x180141140 cmp [rbp+57h+var_18], r15b ; +0x169, 0x180141145 jz short loc_180141154 ; +0x16d, 0x180141149 mov rcx, [rbp+57h+lpName]; Block ; +0x16f, 0x18014114b call _free_base ; +0x173, 0x18014114f lea r11, [rsp+0B0h+var_10] ; +0x178, 0x180141154 mov eax, ebx ; +0x180, 0x18014115c mov rbx, [r11+20h] ; +0x182, 0x18014115e mov rsi, [r11+28h] ; +0x186, 0x180141162 mov rdi, [r11+30h] ; +0x18a, 0x180141166 mov rsp, r11 ; +0x18e, 0x18014116a pop r15 ; +0x191, 0x18014116d pop r14 ; +0x193, 0x18014116f pop rbp ; +0x195, 0x180141171 retn ; +0x196, 0x180141172