Function at 0x403b90
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbd0
push esi
push edi
push ebx
mov dword [ebp - 4], 0
mov esi, dword [ebp + 8]
push 0x400
push 0x411c4c
push 6
push dword [0x407372]
call sub.user32.dll_LoadStringA
push 0x411c4c
call fcn.00401ce6
push dword [esi + 0x401]
push 0
lea eax, [esi + 1]
push eax
call fcn.00401e5e
or eax, eax
je 0x403f54
push 4
push 0x1000
push 0x2000000
push 0
call sub.kernel32.dll_VirtualAlloc
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], eax
push 4
push 0x1000
push 0x2000000
push 0
call sub.kernel32.dll_VirtualAlloc
mov dword [ebp - 0xc], eax
mov eax, dword [0x407be8]
cmp word [eax], 0xfeff
jne 0x403c6a
add eax, 2
mov ecx, dword [0x407be4]
sub ecx, 2
shr ecx, 1
push 0
push 0
push 0x2000000
push dword [ebp - 8]
push ecx
push eax
push 0
push 0
call sub.kernel32.dll_WideCharToMultiByte
push 0x400
push 0x41204c
push 0x18
push dword [0x407372]
call sub.user32.dll_LoadStringA
push 0x41204c
call fcn.00401ce6
mov dword [ebp - 0x30], 1
jmp 0x403c85
push dword [0x407be4]
push dword [0x407be8]
push dword [ebp - 8]
call sub.kernel32.dll_RtlMoveMemory
mov dword [ebp - 0x30], 0
add esi, 0x408
jmp 0x403eaf
push dword [esi]
pop dword [ebp - 0x1c]
add esi, 8
mov dword [ebp - 0x20], esi
push dword [esi - 4]
pop dword [ebp - 0x28]
add esi, dword [esi - 4]
add esi, 5
mov dword [ebp - 0x24], esi
push dword [esi - 4]
pop dword [ebp - 0x2c]
push dword [ebp - 0x10]
call fcn.00405180
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
push 0x2000000
push edi
call sub.kernel32.dll_RtlZeroMemory
push dword [ebp - 0x24]
test dword [ebp - 0x1c], 0x80
je 0x403cff
push 0x1000
push 0x40844c
push dword [ebp - 0x20]
call sub.kernel32.dll_ExpandEnvironmentStringsA
push 0x40844c
call fcn.00405180
mov dword [ebp - 0x28], eax
push 0x40844c
pop dword [ebp - 0x20]
test dword [ebp - 0x1c], 0x100
je 0x403d2f
push 0x1000
push 0x40944c
push dword [ebp - 0x24]
call sub.kernel32.dll_ExpandEnvironmentStringsA
push 0x40944c
call fcn.00405180
mov dword [ebp - 0x2c], eax
push 0x40944c
pop dword [ebp - 0x24]
jmp 0x403e87
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x1c]
push esi
push dword [ebp - 0x20]
call fcn.004034d0
or eax, eax
jne 0x403d94
test dword [ebp - 0x1c], 2
je 0x403d94
mov dword [ebp - 0x18], 0
cmp esi, dword [ebp - 0x10]
je 0x403d76
mov eax, esi
dec eax
push str.______________.:_____r_n_t
push eax
call fcn.00405640
or eax, eax
jne 0x403d76
mov dword [ebp - 0x18], 1
mov eax, esi
add eax, dword [ebp - 0x28]
push str.______________.:_____r_n_t
push eax
call fcn.00405640
or eax, eax
jne 0x403d91
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
or eax, eax
jne 0x403e83
test dword [ebp - 0x1c], 0x40
je 0x403df7
lea eax, [ebp - 0x430]
cmp dword [0x41404c], eax
je 0x403df7
push dword [ebp - 0x24]
pop dword [0x41404c]
lea eax, [ebp - 0x430]
push eax
push 0x404350
push dword [0x407376]
push 3
push dword [0x407372]
call sub.user32.dll_DialogBoxParamA
or eax, eax
je 0x403df7
lea eax, [ebp - 0x430]
push eax
call fcn.00405180
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x430]
mov dword [ebp - 0x24], eax
test dword [ebp - 0x1c], 8
je 0x403e05
add esi, dword [ebp - 0x28]
jmp 0x403e74
test dword [ebp - 0x1c], 4
je 0x403e22
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
push edi
call sub.kernel32.dll_RtlMoveMemory
add edi, dword [ebp - 0x2c]
add esi, dword [ebp - 0x28]
jmp 0x403e74
test dword [ebp - 0x1c], 0x10
je 0x403e4c
push dword [ebp - 0x28]
push esi
push edi
call sub.kernel32.dll_RtlMoveMemory
add edi, dword [ebp - 0x28]
add esi, dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
push edi
call sub.kernel32.dll_RtlMoveMemory
add edi, dword [ebp - 0x2c]
jmp 0x403e74
test dword [ebp - 0x1c], 0x20
je 0x403e74
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
push edi
call sub.kernel32.dll_RtlMoveMemory
add edi, dword [ebp - 0x2c]
push dword [ebp - 0x28]
push esi
push edi
call sub.kernel32.dll_RtlMoveMemory
add edi, dword [ebp - 0x28]
add esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
sub dword [ebp - 0x14], eax
mov dword [ebp - 4], 1
jmp 0x403e87
movsb byte es:[edi], byte [esi]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0
jne 0x403d34
pop dword [ebp - 0x24]
push dword [ebp - 8]
push dword [ebp - 0xc]
pop dword [ebp - 8]
pop dword [ebp - 0xc]
push dword [ebp - 8]
pop dword [ebp - 0x10]
mov esi, dword [ebp - 0x24]
add esi, dword [esi - 4]
add esi, 1
cmp dword [esi + 4], 0
jne 0x403c90
push dword [ebp - 4]
call fcn.004021fd
cmp dword [ebp - 0x30], 1
jne 0x403f0a
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 8], eax
jne 0x403ed4
mov ebx, dword [ebp - 0xc]
jmp 0x403ed7
mov ebx, dword [ebp - 8]
mov word [ebx], 0xfeff
add ebx, 2
push 0x2000000
push ebx
push 0xffffffffffffffff
push dword [ebp - 0x10]
push 0
push 0
call sub.kernel32.dll_MultiByteToWideChar
sub ebx, 2
mov dword [ebp - 0x10], ebx
push dword [ebp - 0x10]
call sub.kernel32.dll_lstrlenW
shl eax, 1
mov dword [0x407bf0], eax
jmp 0x403f17
push dword [ebp - 0x10]
call fcn.00405180
mov dword [0x407bf0], eax
push dword [0x407bf0]
push dword [ebp - 0x10]
push 0x4073dc
call fcn.004051c8
or eax, eax
je 0x403f30
jmp 0x403f5c
push 0x4000
push 0x2000000
push dword [ebp - 8]
call sub.kernel32.dll_VirtualFree
push 0x4000
push 0x2000000
push dword [ebp - 0xc]
call sub.kernel32.dll_VirtualFree
push dword [ebp - 4]
call fcn.004021fd
cmp dword [ebp - 4], 0
jne 0x403f80
push 0x400
push 0x41244c
push 0xa
push dword [0x407372]
call sub.user32.dll_LoadStringA
mov eax, 0x41244c
jmp 0x403f9c
push 0x400
push 0x41284c
push 0xb
push dword [0x407372]
call sub.user32.dll_LoadStringA
mov eax, 0x41284c
push eax
call fcn.00401ce6
push 0x400
push 0x412c4c
push 0xc
push dword [0x407372]
call sub.user32.dll_LoadStringA
push 0x412c4c
call fcn.00401ce6
push 0x4070ef
call fcn.00401ce6
pop ebx
pop edi
pop esi
leave
ret 4