Function at 0x43191f
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
xor eax, eax
and dword [ebp - 8], eax
push edi
xor ecx, ecx
test byte [ebp + 0x10], 1
push 0x40
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], ecx
pop edi
je 0x431a46
push edi
lea eax, [ebp - 4]
push eax
mov dword [ebp - 0xc], edi
call fcn.00433bdf
mov esi, eax
test esi, esi
js 0x431b61
push dword [ebp - 0xc]
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x431996
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0xf2
jmp 0x431b21
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jae 0x431a05
push eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 4]
push eax
call fcn.00433bdf
mov esi, eax
test esi, esi
js 0x431b61
push dword [ebp - 0xc]
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x4319ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0xfd
jmp 0x431b21
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jae 0x431a05
mov eax, 0x8007007a
push eax
push 0x102
jmp 0x431b1f
cmp eax, 0x104
jbe 0x431a43
lea eax, [ebp - 4]
push eax
call fcn.00431d67
mov esi, eax
xor eax, eax
cmp esi, 0x80070057
cmove esi, eax
test esi, esi
js 0x431b61
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 4]
call fcn.0043452e
mov esi, eax
test esi, esi
js 0x431b61
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
test byte [ebp + 0x10], 2
je 0x431b48
and dword [ebp + 0x10], 0
test eax, eax
mov edx, ebx
cmovne edx, eax
cmp ecx, edi
cmova edi, ecx
push edi
lea eax, [ebp - 8]
push eax
mov dword [ebp + 0xc], edx
call fcn.00433bdf
mov esi, eax
test esi, esi
js 0x431b61
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 8]
push edi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x431ab2
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x123
jmp 0x431b21
cmp edi, eax
jae 0x431b2d
lea edi, [eax + 7]
cmp eax, 0x104
cmovb edi, eax
push edi
lea eax, [ebp - 8]
push eax
call fcn.00433bdf
mov esi, eax
test esi, esi
js 0x431b61
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 8]
push edi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x431b10
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x12e
jmp 0x431b21
cmp edi, eax
jae 0x431b2d
mov eax, 0x8007007a
push eax
push 0x133
mov esi, eax
push str.pathutil.cpp
call fcn.004300d9
jmp 0x431b61
cmp eax, 0x104
jbe 0x431b43
lea eax, [ebp - 8]
push eax
call fcn.00431d67
mov esi, eax
test esi, esi
js 0x431b61
mov eax, dword [ebp - 8]
jmp 0x431b4f
and dword [ebp - 4], 0
mov dword [ebp - 8], eax
test eax, eax
push 0
cmovne ebx, eax
push ebx
push dword [ebp + 8]
call fcn.00433f88
mov esi, eax
cmp dword [ebp - 8], 0
je 0x431b6f
push dword [ebp - 8]
call fcn.004380ab
cmp dword [ebp - 4], 0
je 0x431b7d
push dword [ebp - 4]
call fcn.004380ab
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0xc