Function at 0x431ad0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x134
push ebx
push ebp
mov ebp, dword [esp + 0x140]
cmp byte [ebp + 0x17], 0
push esi
push edi
jne 0x431af1
mov ebp, dword [ebp + 0xc]
mov dword [esp + 0x148], ebp
push 0xfd
lea eax, [esp + 0x45]
push 0
push eax
mov byte [esp + 0x4c], 0
call fcn.0049a020
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x1c]
test ebx, ebx
je 0x431e1b
mov al, byte [ebp + 0x17]
mov dword [esp + 0x2c], edx
test al, al
jne 0x431b52
mov ecx, dword [ebp + 0xc]
push 1
push 0
push edx
push 0
push ecx
call fcn.00481890
cmp eax, 1
jne 0x4321cb
cmp byte [ebp + 0x17], 0
jne 0x431dd6
mov esi, dword [ebp + 0xc]
jmp 0x431dd8
cmp dword [esp + 0x1c], 0xffffffff
mov byte [esp + 0x1b], 1
mov cl, 1
jne 0x431b70
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
xor cl, cl
jmp 0x431b75
mov byte [esp + 0x1b], 0
lea edi, [edx + 1]
cmp al, 2
jne 0x431ba3
cmp byte [esp + 0x1b], 0
je 0x431b91
push 0x4a6869
mov eax, edx
call fcn.00403ee0
jmp 0x431b37
mov esi, 0x4bd7c4
call fcn.00403f60
neg eax
sbb eax, eax
neg eax
jmp 0x431b37
mov esi, dword [0x4b73d0]
cmp edi, esi
jbe 0x431bcb
cmp edi, dword [ebp + 0x10]
jbe 0x431bcb
push 0x4a6869
push 0x4af3e0
mov ecx, 0x4bd7e0
call fcn.004330b0
jmp 0x431b37
cmp edi, 2
jae 0x431be9
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, ebp
add edx, 2
push edx
call fcn.00481e30
jmp 0x431b40
mov al, byte [ebp + 0x15]
test al, 2
je 0x431c06
and al, 0x3d
mov byte [ebp + 0x15], al
mov eax, dword [ebp]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [0x4b73d0]
mov ebx, dword [ebp + 0x10]
and byte [ebp + 0x15], 0x82
cmp edi, ebx
jbe 0x431c34
mov cl, byte [ebp + 0x14]
cmp cl, 1
jbe 0x431c75
cmp cl, 2
je 0x431cb4
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
and byte [ebp + 0x15], 0x7f
mov dword [ebp + 8], eax
mov dword [ebp + 0x10], edi
cmp byte [esp + 0x1b], 0
je 0x431dc0
mov eax, dword [ebp + 8]
cmp eax, 0x4a6869
je 0x431c5c
mov ecx, dword [esp + 0x2c]
push ecx
push 0x4a6869
push eax
call fcn.004926e0
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov byte [eax + edx], 0
mov edx, eax
mov dword [ebp + 0xc], edx
jmp 0x431b40
cmp edi, 0x40
ja 0x431cb4
cmp edi, 4
ja 0x431c86
mov edi, 4
jmp 0x431c94
mov eax, 8
cmp eax, edi
sbb edi, edi
and edi, 0x38
add edi, eax
mov eax, edi
mov dword [esp + 0x20], edi
call fcn.0047b180
mov dword [esp + 0x38], eax
test eax, eax
je 0x4321cb
mov byte [ebp + 0x14], 1
jmp 0x431c26
cmp edi, 0x10
jae 0x431cc0
mov edx, 0x10
jmp 0x431d3f
cmp edi, 0x104
jae 0x431ccf
mov edx, 0x104
jmp 0x431d3f
cmp edi, 0x28000
jae 0x431d13
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
test edi, edi
jns 0x431ce9
fadd qword [0x4b0c38]
fmul qword [0x4b0c40]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov edx, dword [esp + 0x20]
fldcw word [esp + 0x14]
jmp 0x431d3f
cmp edi, 0x190000
jae 0x431d23
lea edx, [edi + 0x4000]
jmp 0x431d3f
cmp edi, 0x640000
jae 0x431d39
mov eax, 0x51eb851f
mul edi
shr edx, 5
add edx, edi
jmp 0x431d3f
lea edx, [edi + 0x10000]
mov dword [esp + 0x20], edx
cmp edx, esi
jbe 0x431d4b
mov dword [esp + 0x20], esi
cmp cl, 2
jne 0x431d86
test ebx, ebx
je 0x431d86
mov ecx, dword [ebp + 8]
push ecx
mov bl, 1
call fcn.00491a68
add esp, 4
mov eax, dword [esp + 0x20]
xor edi, edi
cmp eax, edi
jl 0x431d8a
push eax
call fcn.00491c09
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, edi
je 0x431d8a
mov byte [ebp + 0x14], 2
jmp 0x431c22
xor bl, bl
jmp 0x431d62
test bl, bl
je 0x431d9a
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], 0x4bd07e
jmp 0x431da0
mov edx, dword [ebp + 8]
mov byte [edx], 0
push 0x4a6869
push str.Out_of_memory.
mov ecx, 0x4bd7e0
mov dword [ebp + 0xc], edi
call fcn.004330b0
mov ebx, dword [esp + 0x30]
jmp 0x431b37
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov byte [ecx], 0
mov dword [ebp + 0xc], edx
jmp 0x431b40
mov esi, ebp
test byte [esi + 0x15], 8
je 0x431de5
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x431e02
test byte [esi + 0x15], 4
je 0x431df9
mov eax, esi
call fcn.00433620
mov eax, dword [esi + 8]
mov dword [esp + 0x14], eax
jmp 0x431e23
cmp al, 2
jne 0x431e11
call fcn.00401000
mov dword [esp + 0x14], eax
jmp 0x431e23
mov dword [esp + 0x14], 0x4bd07e
jmp 0x431e23
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x14c]
lea ebx, [ebx]
mov al, byte [ecx]
test al, al
je 0x431e63
cmp al, byte [0x4b73f1]
je 0x431e8a
cmp al, byte [0x4b73f0]
je 0x431e8a
test ebx, ebx
je 0x431e57
mov edx, dword [esp + 0x14]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x431e5b
inc dword [esp + 0x1c]
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x431e36
inc ebx
mov dword [esp + 0x30], ebx
cmp ebx, 2
jl 0x431b10
mov eax, dword [esp + 0x14]
mov byte [eax], 0
cmp byte [ebp + 0x17], 0
jne 0x4321da
mov esi, dword [ebp + 0xc]
jmp 0x4321dc
mov al, byte [ecx]
test al, al
je 0x431e63
cmp al, byte [0x4b73f1]
jne 0x431fc1
test ebx, ebx
je 0x431fab
mov al, byte [ecx + 1]
movsx edx, al
add edx, 0xffffff9f
cmp edx, 0x15
ja case.0x431ebd.99
movzx edx, byte [edx + 0x4322f4]
jmp dword [edx*4 + 0x4322d4]
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [eax], 7
inc ecx
jmp 0x431e30
mov edx, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [edx], 8
inc ecx
jmp 0x431e30
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [eax], 0xc
inc ecx
jmp 0x431e30
mov edx, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [edx], 0xa
inc ecx
jmp 0x431e30
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [eax], 0xd
inc ecx
jmp 0x431e30
mov edx, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [edx], 9
inc ecx
jmp 0x431e30
mov eax, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [eax], 0xb
inc ecx
jmp 0x431e30
mov edx, dword [esp + 0x14]
inc dword [esp + 0x14]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
mov byte [edx], al
inc ecx
jmp 0x431e30
inc dword [esp + 0x1c]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
inc ecx
jmp 0x431e30
lea esi, [ecx + 1]
mov ebp, esi
mov al, byte [ebp]
test al, al
je 0x4321ba
mov dl, byte [0x4b73f0]
cmp al, dl
je 0x431ff4
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x431fd7
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
jmp 0x431e30
cmp byte [ebp], 0
je 0x4321ba
mov edi, ebp
sub edi, ecx
dec edi
je 0x4321b8
cmp edi, 0xfd
ja 0x4321b8
push edi
lea eax, [esp + 0x44]
push esi
push eax
call fcn.004954d0
add esp, 0xc
mov byte [esp + edi + 0x40], 0
cmp byte [esp + 0x40], 0
je 0x4321cb
lea ecx, [esp + 0x2b]
push ecx
push 3
lea edx, [esp + 0x44]
push edx
push edi
lea eax, [esp + 0x50]
push eax
mov ecx, 0x4bd7e0
call fcn.00424ec0
test eax, eax
jne 0x432072
cmp byte [esp + 0x2b], al
mov ecx, dword [esp + 0x3c]
setne al
lea edx, [esp + 0x40]
inc eax
push eax
push ecx
push 0x4bd7e0
mov ecx, edi
call fcn.004253d0
mov esi, eax
test esi, esi
je 0x4321cb
cmp byte [esi + 0x17], 0
jne 0x432085
mov esi, dword [esi + 0xc]
cmp esi, dword [esp + 0x148]
je 0x4321b8
cmp dword [esp + 0x30], 0
je 0x4320be
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.00481c60
mov ebx, dword [esp + 0x30]
add edi, eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x14], edi
inc ecx
jmp 0x431e30
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x4320cb
jmp dword [eax*4 + 0x43230c]
mov eax, esi
call fcn.00401150
cmp dword [0x4b73c4], 0
jne 0x43213e
cmp dword [esi + 0xc], 0
jne 0x43213e
mov eax, dword [esi + 0x18]
push 0
lea edx, [esp + 0x3b]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x43211f
mov ebx, dword [esp + 0x30]
dec eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [0x4be790], 0
inc ecx
jmp 0x431e30
mov dword [0x4be790], esi
mov ebx, dword [esp + 0x30]
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x431e30
mov eax, dword [esi + 0xc]
add dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x431e30
mov ecx, dword [esi + 0xc]
push 0
call fcn.00481c60
add dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x431e30
xor ecx, ecx
call fcn.00403d10
cmp eax, 0xffffffff
jne 0x4321b4
mov ebx, dword [esp + 0x30]
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x431e30
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
push ecx
push 0
call edx
add esp, 8
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
jmp 0x431e30
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret 8
mov esi, ebp
test byte [esi + 0x15], 8
je 0x4321e9
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x432202
test byte [esi + 0x15], 4
je 0x4321fd
mov eax, esi
call fcn.00433620
mov eax, dword [esi + 8]
jmp 0x432250
cmp al, 2
jne 0x43224b
mov eax, dword [0x4bd7d0]
test eax, eax
jne 0x432250
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x432233
push 0xf
call esi
test eax, eax
je 0x43222c
mov eax, 0x4a6864
jmp 0x432250
mov eax, 0x4a6869
jmp 0x432250
xor ecx, ecx
call fcn.00403d10
cmp eax, 0xffffffff
mov eax, 0x4a6869
je 0x432250
mov eax, dword [0x4bd7cc]
jmp 0x432250
mov eax, 0x4bd07e
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x432253
sub eax, edx
mov edi, eax
cmp byte [ebp + 0x17], cl
jne 0x432268
mov esi, dword [ebp + 0xc]
jmp 0x43226a
mov esi, ebp
cmp byte [esi + 0x17], 1
jne 0x432282
test byte [esi + 0x15], 8
je 0x43227d
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x432287
mov eax, 0x4bdf44
mov dword [eax], edi
cmp byte [ebp + 0x17], 0
jne 0x432294
mov eax, dword [ebp + 0xc]
jmp 0x432296
mov eax, ebp
cmp byte [eax + 0x17], 2
jne 0x4322be
cmp dword [0x4bd7d0], 0
je 0x4322be
push 1
mov ecx, 0x4bd7c4
call fcn.00403fd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret 8
and byte [eax + 0x15], 0x86
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x134
ret 8