Function at 0x42c360
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 0x42c381
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.0048e850
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x1c]
test ebx, ebx
je 0x42c6ab
mov al, byte [ebp + 0x17]
mov dword [esp + 0x2c], edx
test al, al
jne 0x42c3e2
mov ecx, dword [ebp + 0xc]
push 1
push 0
push edx
push 0
push ecx
call fcn.00475240
cmp eax, 1
jne 0x42ca5b
cmp byte [ebp + 0x17], 0
jne 0x42c666
mov esi, dword [ebp + 0xc]
jmp 0x42c668
cmp dword [esp + 0x1c], 0xffffffff
mov byte [esp + 0x1b], 1
mov cl, 1
jne 0x42c400
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
xor cl, cl
jmp 0x42c405
mov byte [esp + 0x1b], 0
lea edi, [edx + 1]
cmp al, 2
jne 0x42c433
cmp byte [esp + 0x1b], 0
je 0x42c421
push 0x499869
mov eax, edx
call fcn.004042e0
jmp 0x42c3c7
mov esi, 0x4ad8f0
call fcn.00404360
neg eax
sbb eax, eax
neg eax
jmp 0x42c3c7
mov esi, dword [0x4a788c]
cmp edi, esi
jbe 0x42c45b
cmp edi, dword [ebp + 0x10]
jbe 0x42c45b
push 0x499869
push 0x4a0b9c
mov ecx, 0x4ad290
call fcn.0042d940
jmp 0x42c3c7
cmp edi, 2
jae 0x42c479
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, ebp
add edx, 3
push edx
call fcn.004757e0
jmp 0x42c3d0
mov al, byte [ebp + 0x15]
test al, 2
je 0x42c496
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 [0x4a788c]
mov ebx, dword [ebp + 0x10]
and byte [ebp + 0x15], 0x82
cmp edi, ebx
jbe 0x42c4c4
mov cl, byte [ebp + 0x14]
cmp cl, 1
jbe 0x42c505
cmp cl, 2
je 0x42c544
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 0x42c650
mov eax, dword [ebp + 8]
cmp eax, 0x499869
je 0x42c4ec
mov ecx, dword [esp + 0x2c]
push ecx
push 0x499869
push eax
call fcn.00485f60
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 0x42c3d0
cmp edi, 0x40
ja 0x42c544
cmp edi, 4
ja 0x42c516
mov edi, 4
jmp 0x42c524
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.0046f950
mov dword [esp + 0x38], eax
test eax, eax
je 0x42ca5b
mov byte [ebp + 0x14], 1
jmp 0x42c4b6
cmp edi, 0x10
jae 0x42c550
mov edx, 0x10
jmp 0x42c5cf
cmp edi, 0x104
jae 0x42c55f
mov edx, 0x104
jmp 0x42c5cf
cmp edi, 0x28000
jae 0x42c5a3
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
test edi, edi
jns 0x42c579
fadd qword [0x4a1bf0]
fmul qword [0x4a1bf8]
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 0x42c5cf
cmp edi, 0x190000
jae 0x42c5b3
lea edx, [edi + 0x4000]
jmp 0x42c5cf
cmp edi, 0x640000
jae 0x42c5c9
mov eax, 0x51eb851f
mul edi
shr edx, 5
add edx, edi
jmp 0x42c5cf
lea edx, [edi + 0x10000]
mov dword [esp + 0x20], edx
cmp edx, esi
jbe 0x42c5db
mov dword [esp + 0x20], esi
cmp cl, 2
jne 0x42c616
test ebx, ebx
je 0x42c616
mov ecx, dword [ebp + 8]
push ecx
mov bl, 1
call fcn.00485398
add esp, 4
mov eax, dword [esp + 0x20]
xor edi, edi
cmp eax, edi
jl 0x42c61a
push eax
call fcn.00485539
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, edi
je 0x42c61a
mov byte [ebp + 0x14], 2
jmp 0x42c4b2
xor bl, bl
jmp 0x42c5f2
test bl, bl
je 0x42c62a
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], 0x4acb37
jmp 0x42c630
mov edx, dword [ebp + 8]
mov byte [edx], 0
push 0x499869
push str.Out_of_memory.
mov ecx, 0x4ad290
mov dword [ebp + 0xc], edi
call fcn.0042d940
mov ebx, dword [esp + 0x30]
jmp 0x42c3c7
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 0x42c3d0
mov esi, ebp
test byte [esi + 0x15], 8
je 0x42c675
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42c692
test byte [esi + 0x15], 4
je 0x42c689
mov eax, esi
call fcn.0042dec0
mov eax, dword [esi + 8]
mov dword [esp + 0x14], eax
jmp 0x42c6b3
cmp al, 2
jne 0x42c6a1
call fcn.00401000
mov dword [esp + 0x14], eax
jmp 0x42c6b3
mov dword [esp + 0x14], 0x4acb37
jmp 0x42c6b3
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x14c]
lea ebx, [ebx]
mov al, byte [ecx]
test al, al
je 0x42c6f3
cmp al, byte [0x4a78a1]
je 0x42c71a
cmp al, byte [0x4a78a0]
je 0x42c71a
test ebx, ebx
je 0x42c6e7
mov edx, dword [esp + 0x14]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x42c6eb
inc dword [esp + 0x1c]
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x42c6c6
inc ebx
mov dword [esp + 0x30], ebx
cmp ebx, 2
jl 0x42c3a0
mov ecx, dword [esp + 0x14]
mov byte [ecx], 0
cmp byte [ebp + 0x17], 0
jne 0x42ca6a
mov esi, dword [ebp + 0xc]
jmp 0x42ca6c
mov al, byte [ecx]
test al, al
je 0x42c6f3
cmp al, byte [0x4a78a1]
jne 0x42c851
test ebx, ebx
je 0x42c83b
mov al, byte [ecx + 1]
movsx edx, al
add edx, 0xffffff9f
cmp edx, 0x15
ja case.0x42c74d.99
movzx edx, byte [edx + 0x42cb84]
jmp dword [edx*4 + 0x42cb64]
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
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 0x42c6c0
inc dword [esp + 0x1c]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
inc ecx
jmp 0x42c6c0
lea esi, [ecx + 1]
mov ebp, esi
mov al, byte [ebp]
test al, al
je 0x42ca4a
mov dl, byte [0x4a78a0]
cmp al, dl
je 0x42c884
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x42c867
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
jmp 0x42c6c0
cmp byte [ebp], 0
je 0x42ca4a
mov edi, ebp
sub edi, ecx
dec edi
je 0x42ca48
cmp edi, 0xfd
ja 0x42ca48
push edi
lea eax, [esp + 0x44]
push esi
push eax
call fcn.00488320
add esp, 0xc
mov byte [esp + edi + 0x40], 0
cmp byte [esp + 0x40], 0
je 0x42ca5b
lea ecx, [esp + 0x2b]
push ecx
push 3
lea edx, [esp + 0x44]
push edx
push edi
lea eax, [esp + 0x50]
push eax
mov ecx, 0x4ad290
call fcn.00420cd0
test eax, eax
jne 0x42c904
mov edx, dword [esp + 0x3c]
xor ecx, ecx
cmp byte [esp + 0x2b], cl
setne cl
inc ecx
push ecx
push edx
push 0x4ad290
mov ecx, edi
lea edx, [esp + 0x4c]
call fcn.00420f70
mov esi, eax
test esi, esi
je 0x42ca5b
cmp byte [esi + 0x17], 0
jne 0x42c917
mov esi, dword [esi + 0xc]
cmp esi, dword [esp + 0x148]
je 0x42ca48
cmp dword [esp + 0x30], 0
je 0x42c950
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.00475610
mov ebx, dword [esp + 0x30]
add edi, eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x14], edi
inc ecx
jmp 0x42c6c0
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x42c95d
jmp dword [eax*4 + 0x42cb9c]
mov eax, esi
call fcn.00401150
cmp dword [0x4ab394], 0
jne 0x42c9d0
cmp dword [esi + 0xc], 0
jne 0x42c9d0
mov ecx, dword [esi + 0x18]
push 0
lea eax, [esp + 0x3b]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x42c9b1
mov ebx, dword [esp + 0x30]
dec eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [0x4ae2f4], 0
inc ecx
jmp 0x42c6c0
mov dword [0x4ae2f4], 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 0x42c6c0
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 0x42c6c0
mov ecx, dword [esi + 0xc]
push 0
call fcn.00475610
add dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x42c6c0
xor ecx, ecx
call fcn.00404110
cmp eax, 0xffffffff
jne 0x42ca44
mov ebx, dword [esp + 0x30]
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x42c6c0
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
push edx
push 0
call eax
add esp, 8
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
jmp 0x42c6c0
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 0x42ca79
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42ca92
test byte [esi + 0x15], 4
je 0x42ca8d
mov eax, esi
call fcn.0042dec0
mov eax, dword [esi + 8]
jmp 0x42cae0
cmp al, 2
jne 0x42cadb
mov eax, dword [0x4ad8fc]
test eax, eax
jne 0x42cae0
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x42cac3
push 0xf
call esi
test eax, eax
je 0x42cabc
mov eax, 0x499824
jmp 0x42cae0
mov eax, 0x499869
jmp 0x42cae0
xor ecx, ecx
call fcn.00404110
cmp eax, 0xffffffff
mov eax, 0x499869
je 0x42cae0
mov eax, dword [0x4ad8f8]
jmp 0x42cae0
mov eax, 0x4acb37
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42cae3
sub eax, edx
mov edi, eax
cmp byte [ebp + 0x17], cl
jne 0x42caf8
mov esi, dword [ebp + 0xc]
jmp 0x42cafa
mov esi, ebp
cmp byte [esi + 0x17], 1
jne 0x42cb12
test byte [esi + 0x15], 8
je 0x42cb0d
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x42cb17
mov eax, 0x4adaa8
mov dword [eax], edi
cmp byte [ebp + 0x17], 0
jne 0x42cb24
mov eax, dword [ebp + 0xc]
jmp 0x42cb26
mov eax, ebp
cmp byte [eax + 0x17], 2
jne 0x42cb4e
cmp dword [0x4ad8fc], 0
je 0x42cb4e
push 1
mov ecx, 0x4ad8f0
call fcn.004043d0
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