Function at 0x42159e
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x450239
mov eax, dword fs:[0]
push eax
sub esp, 0x310
mov eax, dword [0x462700]
xor eax, esp
mov dword [esp + 0x308], eax
push ebx
push esi
push edi
mov eax, dword [0x462700]
xor eax, esp
push eax
lea eax, [esp + 0x320]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
xor eax, eax
push 0x206
mov word [esp + 0x110], ax
xor ebx, ebx
lea eax, [esp + 0x112]
push ebx
push eax
mov esi, ecx
mov edi, edx
call fcn.004317b0
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x42161a
mov esi, dword [esi]
push 0x104
lea eax, [esp + 0x110]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp eax, ebx
jne 0x421760
lea eax, [esp + 0x1c]
push eax
call fcn.00404d15
mov dword [esp + 0x328], ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004096fb
push 0xf
pop esi
push 0x32
push str.path_manager::get_exist_current_user_path_from_env
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
call fcn.00407efb
mov byte [esp + 0x328], 1
push 0x10
push str.path_manager.cpp
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
call fcn.00407efb
mov byte [esp + 0x328], 2
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x20]
call fcn.00404dc4
mov byte [esp + 0x328], 3
push eax
lea eax, [esp + 0xbc]
push eax
push 0x162
push 2
call fcn.004109b9
lea ecx, [esp + 0xe4]
mov ebx, eax
call fcn.004109f8
mov byte [esp + 0x328], 2
xor ebx, ebx
push ebx
push 1
lea ecx, [esp + 0xf8]
call fcn.00407e53
mov byte [esp + 0x328], 1
push ebx
push 1
lea ecx, [esp + 0xdc]
call fcn.00407e53
mov byte [esp + 0x328], bl
push ebx
push 1
lea ecx, [esp + 0xc0]
call fcn.00407e53
or dword [esp + 0x328], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.00404d81
lea ecx, [esp + 0x6c]
call fcn.00407b8a
call edi
jmp 0x421a21
lea eax, [esp + 0x10c]
push eax
mov ecx, edi
call fcn.00401e93
push 0xffffffffffffffff
push ebx
push dword [esp + 0x20]
mov ecx, edi
call fcn.0040181f
mov ecx, dword [esp + 0x14]
push edi
call fcn.00420312
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4218d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [esp + 0x1c]
push eax
call fcn.00404d15
mov dword [esp + 0x328], 4
push esi
push ecx
lea eax, [esp + 0x24]
push 0x45665c
push eax
call fcn.0040616a
add esp, 0xc
push eax
call fcn.004096fb
push 0xf
pop esi
push 0x32
push str.path_manager::get_exist_current_user_path_from_env
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
call fcn.00407efb
mov byte [esp + 0x328], 5
push 0x10
push str.path_manager.cpp
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
call fcn.00407efb
mov byte [esp + 0x328], 6
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x20]
call fcn.00404dc4
mov byte [esp + 0x328], 7
push eax
lea eax, [esp + 0xd8]
push eax
push 0x165
push 2
call fcn.004109b9
lea ecx, [esp + 0xc8]
mov ebx, eax
call fcn.004109f8
mov byte [esp + 0x328], 6
xor esi, esi
push esi
push 1
lea ecx, [esp + 0xf8]
call fcn.00407e53
mov byte [esp + 0x328], 5
push esi
push 1
lea ecx, [esp + 0xc0]
call fcn.00407e53
mov byte [esp + 0x328], 4
push esi
push 1
lea ecx, [esp + 0xdc]
call fcn.00407e53
or dword [esp + 0x328], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.00404d81
lea ecx, [esp + 0x6c]
call fcn.00407b8a
mov eax, dword [esp + 0x14]
jmp 0x421a21
mov ecx, edi
call fcn.00420be5
mov edi, eax
cmp edi, ebx
je 0x421a1f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [esp + 0x1c]
push eax
call fcn.00404d15
mov dword [esp + 0x328], 8
push esi
push ecx
lea eax, [esp + 0x24]
push 0x45665c
push eax
call fcn.0040616a
add esp, 0xc
push eax
call fcn.004096fb
push 0xf
pop esi
push 0x32
push str.path_manager::get_exist_current_user_path_from_env
lea ecx, [esp + 0xdc]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebx
mov byte [esp + 0xdc], bl
call fcn.00407efb
mov byte [esp + 0x328], 9
push 0x10
push str.path_manager.cpp
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], ebx
mov byte [esp + 0xc0], bl
call fcn.00407efb
mov byte [esp + 0x328], 0xa
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x20]
call fcn.00404dc4
mov byte [esp + 0x328], 0xb
push eax
lea eax, [esp + 0xd8]
push eax
push 0x166
push 2
call fcn.004109b9
lea ecx, [esp + 0xc8]
mov ebx, eax
call fcn.004109f8
mov byte [esp + 0x328], 0xa
xor esi, esi
push esi
push 1
lea ecx, [esp + 0xf8]
call fcn.00407e53
mov byte [esp + 0x328], 9
push esi
push 1
lea ecx, [esp + 0xc0]
call fcn.00407e53
mov byte [esp + 0x328], 8
push esi
push 1
lea ecx, [esp + 0xdc]
call fcn.00407e53
or dword [esp + 0x328], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.00404d81
lea ecx, [esp + 0x6c]
call fcn.00407b8a
mov eax, edi
jmp 0x421a21
xor eax, eax
mov ecx, dword [esp + 0x320]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x308]
xor ecx, esp
call fcn.004313d1
mov esp, ebp
pop ebp
ret 8