Function at 0x403f30
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x69c
mov eax, dword [0x43a004]
xor eax, esp
mov dword [esp + 0x698], eax
push ebx
mov eax, ecx
mov dword [esp + 4], 0
push esi
push edi
mov dword [esp + 0x10], eax
mov ebx, edx
mov edi, dword [eax]
mov esi, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
movzx eax, word [edi]
test ax, ax
je 0x403fa0
mov ecx, eax
push ecx
call fcn.0041f2cc
movzx eax, ax
push eax
push str.dpnxfsatz
call fcn.0041de51
add esp, 0xc
test eax, eax
je 0x403fa0
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x403f77
movzx eax, word [esi]
cmp eax, 0x24
jne 0x403fef
lea eax, [esi + 2]
push 0x3a
push eax
mov dword [esp + 0x20], eax
call fcn.0041de51
mov esi, eax
add esp, 8
test esi, esi
je 0x403fd8
movzx ecx, word [esi + 2]
lea eax, [esp + 0x20]
add esi, 2
push eax
push ecx
call ebx
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x40401d
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x698]
xor ecx, esp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x20]
push ecx
push eax
call ebx
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x40401d
cmp esi, edi
je 0x403fd8
sub esi, 2
lea eax, [esp + 0x20]
push eax
movzx eax, word [esi]
push eax
call dword [esp + 0x1c]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x404000
cmp edi, esi
jae 0x404059
movzx eax, word [edi]
cmp eax, 0x24
je 0x404059
push eax
call fcn.0041f2cc
movzx eax, ax
push eax
push str.dpnxfsatz
call fcn.0041de51
mov ecx, dword [esp + 0x18]
sub eax, str.dpnxfsatz
sar eax, 1
add edi, 2
bts ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
cmp edi, esi
jb 0x404021
mov ecx, dword [esp + 0x10]
lea eax, [esi + 2]
mov dword [ecx], eax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404067
sub ecx, edx
sar ecx, 1
cmp word [ebx], 0x22
lea edi, [ebx + ecx*2]
jne 0x404091
add ebx, 2
cmp edi, ebx
jbe 0x404091
cmp word [edi - 2], 0x22
lea eax, [edi - 2]
cmove edi, eax
sub edi, ebx
cmp edi, 0x4000
jae 0x40415d
push edi
push ebx
push 0x43be78
lfence
call fcn.0041ec00
and edi, 0xfffffffe
add esp, 0xc
cmp edi, 0x4000
jae 0x404631
mov ebx, dword [esp + 0x18]
xor eax, eax
mov word [edi + 0x43be78], ax
test ebx, ebx
je 0x404177
push dword [0x43bc60]
mov word [esi - 2], ax
call fcn.0041f3e5
add esp, 4
mov dword [0x43bc60], 0
push 0
push 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
call ebx
mov edi, eax
test edi, edi
je 0x40412a
lea ecx, [edi + edi]
push ecx
lfence
call fcn.0041f424
add esp, 4
mov dword [0x43bc60], eax
test eax, eax
je 0x40412f
lea ecx, [edi + 1]
push ecx
push eax
push dword [esp + 0x20]
lfence
call ebx
mov eax, dword [0x43bc60]
mov ecx, 0x3a
mov word [esi - 2], cx
test eax, eax
je 0x40415d
push 0
lea ecx, [esp + 0x49c]
push ecx
push 0x104
push 0
push 0x43be78
push eax
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x4041d0
mov eax, 0x436be8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x698]
xor ecx, esp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0xc], eax
je 0x404617
cmp dword [esp + 0x20], eax
je 0x4041b2
mov ecx, dword [0x43bbd0]
lea edx, [esp + 0x498]
add ecx, 0x14
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4041a0
jmp 0x4041d0
push 0
lea eax, [esp + 0x49c]
push eax
push 0x104
push 0x43be78
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x40415d
movzx eax, word [esp + 0x498]
lea ebx, [esp + 0x296]
mov word [esp + 0x290], ax
lea edi, [esp + 0x49e]
movzx eax, word [esp + 0x49a]
mov word [esp + 0x292], ax
movzx eax, word [esp + 0x49c]
mov word [esp + 0x294], ax
nop
push 0x5c
push edi
call fcn.0041de51
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x40422f
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x14], eax
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404234
sub ecx, edx
sar ecx, 1
inc ecx
lea eax, [ebx + ecx*2]
lea ecx, [esp + 0x498]
cmp eax, ecx
jae 0x40415d
mov edx, ebx
mov ecx, edi
sub edx, edi
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x404260
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x294]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x404310
cmp word [esp + 0x274], 0
lea esi, [esp + 0x6c]
je 0x4042c2
test byte [esp + 0xc], 0x20
jne 0x4042bb
lea eax, [esp + 0x274]
push eax
push edi
call fcn.0041f4c2
add esp, 8
test eax, eax
jne 0x4042c2
lea esi, [esp + 0x274]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4042d1
sub ecx, edx
sar ecx, 1
inc ecx
lea eax, [ebx + ecx*2]
lea ecx, [esp + 0x498]
cmp eax, ecx
jae 0x40415d
mov ecx, ebx
sub ecx, esi
nop word [eax + eax]
movzx eax, word [esi]
lea esi, [esi + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x404300
mov ecx, ebx
mov esi, ebx
mov dword [esp + 0x1c], esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404320
sub ecx, edx
mov eax, 0x5c
sar ecx, 1
lea ebx, [ebx + ecx*2]
mov word [ebx], ax
add ebx, 2
mov eax, dword [esp + 0x14]
mov edi, eax
test eax, eax
jne 0x404210
cmp dword [esp + 0x10], 0xffffffff
mov edi, 0x43be78
mov word [ebx - 2], ax
mov eax, dword [esp + 0xc]
je 0x404521
test al, 0x40
je 0x4043ac
mov ebx, dword [esp + 0x40]
mov ecx, 0x436f38
mov edx, ecx
movzx eax, word [ecx + 2]
test ebx, eax
je 0x40437f
movzx eax, word [ecx]
jmp 0x404384
mov eax, 0x2d
lea ecx, [edx + 4]
mov word [edi], ax
add edi, 2
mov edx, ecx
cmp ecx, str.dpnxfsatz
jne 0x404372
mov eax, 0x20
mov dword [0x43bc64], ecx
mov word [edi], ax
add edi, 2
mov eax, dword [esp + 0xc]
test al, al
jns 0x4044fd
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov eax, dword [0x44a1c0]
sub eax, 0
je 0x40441c
sub eax, 1
je 0x404410
sub eax, 1
jne 0x40441c
movzx esi, word [esp + 0x32]
lea ebx, [eax + 4]
movzx ecx, word [0x44a1bc]
mov edx, str._0d_c_02d_c_02d
movzx eax, word [esp + 0x30]
mov dword [esp + 0x14], esi
movzx esi, word [esp + 0x36]
mov dword [esp + 0x10], ecx
jmp 0x404443
movzx ebx, word [esp + 0x36]
movzx ecx, word [esp + 0x32]
jmp 0x404426
movzx ebx, word [esp + 0x32]
movzx ecx, word [esp + 0x36]
movzx eax, word [0x44a1bc]
mov edx, str._02d_c_02d_c_0d
movzx esi, word [esp + 0x30]
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], esi
push dword [esp + 0x24]
mov esi, dword [esp + 0x20]
push dword [esp + 0x14]
push dword [esp + 0x1c]
push ecx
push eax
push ebx
push edx
push edi
call fcn.00402b70
mov ebx, 0x20
add esp, 0x20
mov word [edi + eax*2], bx
lea edi, [edi + eax*2]
mov eax, dword [0x44a1b8]
add edi, 2
sub eax, 0
je 0x4044a6
sub eax, 1
jne 0x4044a6
movzx eax, word [esp + 0x3a]
push eax
movzx eax, word [0x44a1b6]
push eax
movzx eax, word [esp + 0x40]
push eax
push str._02d_c_02u
push edi
call fcn.00402b70
add esp, 0x14
jmp 0x4044f0
mov ax, word [esp + 0x38]
test ax, ax
jne 0x4044b7
mov ecx, 0xc
jmp 0x4044c3
movzx ecx, ax
cmp ax, 0xc
jbe 0x4044c3
sub ecx, 0xc
mov dx, 0xb
cmp dx, ax
sbb eax, eax
and eax, 0xf
add eax, 0x41
push eax
movzx eax, word [esp + 0x3e]
push eax
movzx eax, word [0x44a1b6]
push eax
push ecx
push str._02d_c_02u__cM
push edi
call fcn.00402b70
add esp, 0x18
lea edi, [edi + eax*2]
mov eax, dword [esp + 0xc]
mov word [edi], bx
add edi, 2
test eax, 0x100
je 0x404521
push dword [esp + 0x5c]
push dword [esp + 0x64]
push str._I64u
push edi
call fcn.00402b70
add esp, 0x10
lea edi, [edi + eax*2]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x18], 0
jne 0x40452c
test al, 0x20
je 0x404537
test al, 0xf
jne 0x404537
or eax, 0x10
mov dword [esp + 0xc], eax
push 0x2e
push esi
call fcn.0041df18
mov edx, dword [esp + 0x14]
add esp, 8
mov ebx, eax
test dl, 0x11
je 0x404567
movzx ecx, word [esp + 0x290]
mov word [edi], cx
movzx ecx, word [esp + 0x292]
mov word [edi + 2], cx
add edi, 4
test dl, 0x12
je 0x40459a
lea eax, [esp + 0x290]
sub esi, eax
lea eax, [esi - 4]
push eax
lea eax, [esp + 0x298]
push eax
push edi
call fcn.0041ec00
mov edx, dword [esp + 0x18]
lea eax, [esi - 4]
mov esi, dword [esp + 0x28]
add esp, 0xc
sar eax, 1
lea edi, [edi + eax*2]
test dl, 0x14
je 0x4045bc
movzx eax, word [esi]
test ax, ax
je 0x4045bc
cmp esi, ebx
je 0x4045bc
add esi, 2
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
test ax, ax
jne 0x4045a7
test dl, 0x18
je 0x4045f5
test ebx, ebx
je 0x4045f5
mov edx, edi
mov ecx, ebx
sub edx, ebx
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4045d0
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x4045e3
sub ebx, ecx
sar ebx, 1
lea edi, [edi + ebx*2]
cmp edi, 0x43be78
je 0x404612
nop dword [eax]
cmp word [edi - 2], 0x20
jne 0x404612
add edi, 0xfffffffe
cmp edi, 0x43be78
jne 0x404600
xor eax, eax
mov word [edi], ax
mov ecx, dword [esp + 0x6a4]
mov eax, 0x43be78
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041d22b
mov esp, ebp
pop ebp
ret
call fcn.0041d35b
int3