Function at 0x42c170
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 0x42c191
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.0048e2b0
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x1c]
test ebx, ebx
je 0x42c4bb
mov al, byte [ebp + 0x17]
mov dword [esp + 0x2c], edx
test al, al
jne 0x42c1f2
mov ecx, dword [ebp + 0xc]
push 1
push 0
push edx
push 0
push ecx
call fcn.00474cc0
cmp eax, 1
jne 0x42c86b
cmp byte [ebp + 0x17], 0
jne 0x42c476
mov esi, dword [ebp + 0xc]
jmp 0x42c478
cmp dword [esp + 0x1c], 0xffffffff
mov byte [esp + 0x1b], 1
mov cl, 1
jne 0x42c210
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
xor cl, cl
jmp 0x42c215
mov byte [esp + 0x1b], 0
lea edi, [edx + 1]
cmp al, 2
jne 0x42c243
cmp byte [esp + 0x1b], 0
je 0x42c231
push 0x498861
mov eax, edx
call fcn.00404290
jmp 0x42c1d7
mov esi, 0x4ac8f0
call fcn.00404310
neg eax
sbb eax, eax
neg eax
jmp 0x42c1d7
mov esi, dword [0x4a688c]
cmp edi, esi
jbe 0x42c26b
cmp edi, dword [ebp + 0x10]
jbe 0x42c26b
push 0x498861
push 0x49faf4
mov ecx, 0x4ac290
call fcn.0042d750
jmp 0x42c1d7
cmp edi, 2
jae 0x42c289
xor edx, edx
test cl, cl
setne dl
xor al, al
mov ecx, ebp
add edx, 3
push edx
call fcn.00475260
jmp 0x42c1e0
mov al, byte [ebp + 0x15]
test al, 2
je 0x42c2a6
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 [0x4a688c]
mov ebx, dword [ebp + 0x10]
and byte [ebp + 0x15], 0x82
cmp edi, ebx
jbe 0x42c2d4
mov cl, byte [ebp + 0x14]
cmp cl, 1
jbe 0x42c315
cmp cl, 2
je 0x42c354
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 0x42c460
mov eax, dword [ebp + 8]
cmp eax, 0x498861
je 0x42c2fc
mov ecx, dword [esp + 0x2c]
push ecx
push 0x498861
push eax
call fcn.004859c0
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 0x42c1e0
cmp edi, 0x40
ja 0x42c354
cmp edi, 4
ja 0x42c326
mov edi, 4
jmp 0x42c334
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.0046f460
mov dword [esp + 0x38], eax
test eax, eax
je 0x42c86b
mov byte [ebp + 0x14], 1
jmp 0x42c2c6
cmp edi, 0x10
jae 0x42c360
mov edx, 0x10
jmp 0x42c3df
cmp edi, 0x104
jae 0x42c36f
mov edx, 0x104
jmp 0x42c3df
cmp edi, 0x28000
jae 0x42c3b3
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
test edi, edi
jns 0x42c389
fadd qword [0x4a0b48]
fmul qword [0x4a0b50]
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 0x42c3df
cmp edi, 0x190000
jae 0x42c3c3
lea edx, [edi + 0x4000]
jmp 0x42c3df
cmp edi, 0x640000
jae 0x42c3d9
mov eax, 0x51eb851f
mul edi
shr edx, 5
add edx, edi
jmp 0x42c3df
lea edx, [edi + 0x10000]
mov dword [esp + 0x20], edx
cmp edx, esi
jbe 0x42c3eb
mov dword [esp + 0x20], esi
cmp cl, 2
jne 0x42c426
test ebx, ebx
je 0x42c426
mov ecx, dword [ebp + 8]
push ecx
mov bl, 1
call fcn.00484df8
add esp, 4
mov eax, dword [esp + 0x20]
xor edi, edi
cmp eax, edi
jl 0x42c42a
push eax
call fcn.00484f99
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, edi
je 0x42c42a
mov byte [ebp + 0x14], 2
jmp 0x42c2c2
xor bl, bl
jmp 0x42c402
test bl, bl
je 0x42c43a
mov dword [ebp + 0x10], edi
mov dword [ebp + 8], 0x4abb35
jmp 0x42c440
mov edx, dword [ebp + 8]
mov byte [edx], 0
push 0x498861
push str.Out_of_memory.
mov ecx, 0x4ac290
mov dword [ebp + 0xc], edi
call fcn.0042d750
mov ebx, dword [esp + 0x30]
jmp 0x42c1d7
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 0x42c1e0
mov esi, ebp
test byte [esi + 0x15], 8
je 0x42c485
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42c4a2
test byte [esi + 0x15], 4
je 0x42c499
mov eax, esi
call fcn.0042dcd0
mov eax, dword [esi + 8]
mov dword [esp + 0x14], eax
jmp 0x42c4c3
cmp al, 2
jne 0x42c4b1
call fcn.00401000
mov dword [esp + 0x14], eax
jmp 0x42c4c3
mov dword [esp + 0x14], 0x4abb35
jmp 0x42c4c3
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x14c]
lea ebx, [ebx]
mov al, byte [ecx]
test al, al
je 0x42c503
cmp al, byte [0x4a68a1]
je 0x42c52a
cmp al, byte [0x4a68a0]
je 0x42c52a
test ebx, ebx
je 0x42c4f7
mov edx, dword [esp + 0x14]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], edx
jmp 0x42c4fb
inc dword [esp + 0x1c]
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x42c4d6
inc ebx
mov dword [esp + 0x30], ebx
cmp ebx, 2
jl 0x42c1b0
mov ecx, dword [esp + 0x14]
mov byte [ecx], 0
cmp byte [ebp + 0x17], 0
jne 0x42c87a
mov esi, dword [ebp + 0xc]
jmp 0x42c87c
mov al, byte [ecx]
test al, al
je 0x42c503
cmp al, byte [0x4a68a1]
jne 0x42c661
test ebx, ebx
je 0x42c64b
mov al, byte [ecx + 1]
movsx edx, al
add edx, 0xffffff9f
cmp edx, 0x15
ja case.0x42c55d.99
movzx edx, byte [edx + 0x42c994]
jmp dword [edx*4 + 0x42c974]
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
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 0x42c4d0
inc dword [esp + 0x1c]
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
inc ecx
jmp 0x42c4d0
lea esi, [ecx + 1]
mov ebp, esi
mov al, byte [ebp]
test al, al
je 0x42c85a
mov dl, byte [0x4a68a0]
cmp al, dl
je 0x42c694
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x42c677
mov ebp, dword [esp + 0x148]
mov ebx, dword [esp + 0x30]
inc ecx
jmp 0x42c4d0
cmp byte [ebp], 0
je 0x42c85a
mov edi, ebp
sub edi, ecx
dec edi
je 0x42c858
cmp edi, 0xfd
ja 0x42c858
push edi
lea eax, [esp + 0x44]
push esi
push eax
call fcn.00487d80
add esp, 0xc
mov byte [esp + edi + 0x40], 0
cmp byte [esp + 0x40], 0
je 0x42c86b
lea ecx, [esp + 0x2b]
push ecx
push 3
lea edx, [esp + 0x44]
push edx
push edi
lea eax, [esp + 0x50]
push eax
mov ecx, 0x4ac290
call fcn.00420be0
test eax, eax
jne 0x42c714
mov edx, dword [esp + 0x3c]
xor ecx, ecx
cmp byte [esp + 0x2b], cl
setne cl
inc ecx
push ecx
push edx
push 0x4ac290
mov ecx, edi
lea edx, [esp + 0x4c]
call fcn.00420e70
mov esi, eax
test esi, esi
je 0x42c86b
cmp byte [esi + 0x17], 0
jne 0x42c727
mov esi, dword [esi + 0xc]
cmp esi, dword [esp + 0x148]
je 0x42c858
cmp dword [esp + 0x30], 0
je 0x42c760
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.00475090
mov ebx, dword [esp + 0x30]
add edi, eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [esp + 0x14], edi
inc ecx
jmp 0x42c4d0
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x42c76d
jmp dword [eax*4 + 0x42c9ac]
mov eax, esi
call fcn.00401150
cmp dword [0x4aa394], 0
jne 0x42c7e0
cmp dword [esi + 0xc], 0
jne 0x42c7e0
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 0x42c7c1
mov ebx, dword [esp + 0x30]
dec eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
mov dword [0x4ad2ec], 0
inc ecx
jmp 0x42c4d0
mov dword [0x4ad2ec], 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 0x42c4d0
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 0x42c4d0
mov ecx, dword [esi + 0xc]
push 0
call fcn.00475090
add dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x30]
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x42c4d0
xor ecx, ecx
call fcn.004040c0
cmp eax, 0xffffffff
jne 0x42c854
mov ebx, dword [esp + 0x30]
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebp
mov ebp, dword [esp + 0x148]
inc ecx
jmp 0x42c4d0
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 0x42c4d0
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 0x42c889
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42c8a2
test byte [esi + 0x15], 4
je 0x42c89d
mov eax, esi
call fcn.0042dcd0
mov eax, dword [esi + 8]
jmp 0x42c8f0
cmp al, 2
jne 0x42c8eb
mov eax, dword [0x4ac8fc]
test eax, eax
jne 0x42c8f0
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 1
call esi
test eax, eax
jne 0x42c8d3
push 0xf
call esi
test eax, eax
je 0x42c8cc
mov eax, 0x49881c
jmp 0x42c8f0
mov eax, 0x498861
jmp 0x42c8f0
xor ecx, ecx
call fcn.004040c0
cmp eax, 0xffffffff
mov eax, 0x498861
je 0x42c8f0
mov eax, dword [0x4ac8f8]
jmp 0x42c8f0
mov eax, 0x4abb35
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42c8f3
sub eax, edx
mov edi, eax
cmp byte [ebp + 0x17], cl
jne 0x42c908
mov esi, dword [ebp + 0xc]
jmp 0x42c90a
mov esi, ebp
cmp byte [esi + 0x17], 1
jne 0x42c922
test byte [esi + 0x15], 8
je 0x42c91d
mov eax, esi
call fcn.00401150
lea eax, [esi + 0xc]
jmp 0x42c927
mov eax, 0x4acaa0
mov dword [eax], edi
cmp byte [ebp + 0x17], 0
jne 0x42c934
mov eax, dword [ebp + 0xc]
jmp 0x42c936
mov eax, ebp
cmp byte [eax + 0x17], 2
jne 0x42c95e
cmp dword [0x4ac8fc], 0
je 0x42c95e
push 1
mov ecx, 0x4ac8f0
call fcn.00404380
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