Function at 0x42f0f0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x234
push ebx
push ebp
push esi
mov esi, dword [esp + 0x244]
cmp byte [esi + 0x17], 0
push edi
jne 0x42f111
mov esi, dword [esi + 0xc]
mov dword [esp + 0x248], esi
xor eax, eax
push 0x1fa
push eax
lea ecx, [esp + 0x4a]
push ecx
mov word [esp + 0x4c], ax
call fcn.00497940
mov ebp, dword [esp + 0x38]
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x20], ebx
lea edi, [ebx + 1]
test ebx, ebx
je 0x42f4a1
mov al, byte [esi + 0x17]
mov ebp, dword [esp + 0x1c]
test al, al
jne 0x42f15c
mov edx, dword [esi + 0xc]
push edi
push 0
push ebp
push 0
push edx
call fcn.004783a0
jmp 0x42f1d2
mov byte [esp + 0x1b], 1
mov cl, 1
cmp ebp, 0xffffffff
jne 0x42f16e
xor cl, cl
xor ebp, ebp
jmp 0x42f173
mov byte [esp + 0x1b], 0
lea edi, [ebp + 1]
lea esi, [edi + edi]
cmp al, 2
jne 0x42f1a4
cmp byte [esp + 0x1b], 0
je 0x42f192
push 0x4acd84
mov eax, ebp
call fcn.00404170
jmp 0x42f1d2
mov esi, 0x4ca0e4
call fcn.004041f0
neg eax
sbb eax, eax
neg eax
jmp 0x42f1d2
mov ebx, dword [0x4c43dc]
mov edx, dword [esp + 0x248]
cmp esi, ebx
jbe 0x42f218
cmp esi, dword [edx + 0x10]
jbe 0x42f218
push 0x4acd84
push 0x4bd738
mov ecx, 0x4ca140
call fcn.00430750
mov ebx, dword [esp + 0x20]
cmp eax, 1
jne 0x42f82c
mov esi, dword [esp + 0x248]
cmp byte [esi + 0x17], 0
jne 0x42f1eb
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x42f1f8
mov eax, esi
call fcn.00401160
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42f48d
test byte [esi + 0x15], 4
je 0x42f210
mov eax, esi
call fcn.00430d00
mov ebp, dword [esi + 8]
jmp 0x42f4a9
cmp edi, 2
jae 0x42f23c
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x248]
setne al
add eax, 3
push eax
xor al, al
call fcn.00478950
mov ebx, dword [esp + 0x20]
jmp 0x42f1db
mov al, byte [edx + 0x15]
test al, 2
je 0x42f266
mov ecx, dword [esp + 0x248]
and al, 0x3d
mov byte [ecx + 0x15], al
mov eax, dword [ecx]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [0x4c43dc]
mov edx, dword [esp + 0x248]
mov edi, dword [edx + 0x10]
and byte [edx + 0x15], 0x82
cmp esi, edi
jbe 0x42f2a2
mov cl, byte [edx + 0x14]
cmp cl, 1
jbe 0x42f2ea
cmp cl, 2
je 0x42f339
mov eax, dword [esp + 0x248]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
and byte [eax + 0x15], 0x7f
mov dword [eax + 8], edx
mov edx, dword [esp + 0x248]
mov dword [eax + 0x10], ecx
cmp byte [esp + 0x1b], 0
mov eax, dword [edx + 8]
je 0x42f478
cmp eax, 0x4acd84
je 0x42f2d1
lea edx, [ebp + ebp]
push edx
push 0x4acd84
push eax
call fcn.0048f4e0
mov edx, dword [esp + 0x254]
add esp, 0xc
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov word [eax + ebp*2], cx
lea eax, [ebp + ebp]
mov dword [edx + 0xc], eax
jmp 0x42f1db
cmp esi, 0x80
ja 0x42f339
cmp esi, 8
ja 0x42f301
mov dword [esp + 0x14], 8
jmp 0x42f314
mov eax, 0x10
cmp eax, esi
sbb eax, eax
and eax, 0x70
add eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
call fcn.00472b00
mov dword [esp + 0x28], eax
test eax, eax
je 0x42f82c
mov eax, dword [esp + 0x248]
mov byte [eax + 0x14], 1
jmp 0x42f289
cmp esi, 0x20
jae 0x42f34b
mov dword [esp + 0x14], 0x20
jmp 0x42f3d9
cmp esi, 0x208
jae 0x42f35d
mov dword [esp + 0x14], 0x208
jmp 0x42f3d9
cmp esi, 0x50000
jae 0x42f3a5
mov dword [esp + 0x30], esi
fild dword [esp + 0x30]
test esi, esi
jns 0x42f377
fadd qword [0x4bf1a0]
fmul qword [0x4bf1d8]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov edx, dword [esp + 0x30]
fldcw word [esp + 0x14]
mov dword [esp + 0x14], edx
jmp 0x42f3d9
cmp esi, 0x320000
jae 0x42f3b5
add esi, 0x8000
jmp 0x42f3d5
cmp esi, 0xc80000
jae 0x42f3cf
mov eax, 0x51eb851f
mul esi
shr edx, 5
add edx, esi
mov dword [esp + 0x14], edx
jmp 0x42f3d9
add esi, 0x20000
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jbe 0x42f3e3
mov dword [esp + 0x14], ebx
cmp cl, 2
jne 0x42f42d
test edi, edi
je 0x42f42d
mov eax, dword [esp + 0x248]
mov ecx, dword [eax + 8]
push ecx
mov bl, 1
call fcn.004900cf
add esp, 4
cmp dword [esp + 0x14], 0
jl 0x42f431
mov edx, dword [esp + 0x14]
push edx
call fcn.0048eaf4
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x42f431
mov eax, dword [esp + 0x248]
mov byte [eax + 0x14], 2
jmp 0x42f282
xor bl, bl
jmp 0x42f401
test bl, bl
je 0x42f44c
mov eax, dword [esp + 0x248]
mov dword [eax + 0x10], 0
mov dword [eax + 8], 0x4ca0b8
jmp 0x42f45b
mov ecx, dword [esp + 0x248]
mov edx, dword [ecx + 8]
xor eax, eax
mov word [edx], ax
mov ecx, dword [esp + 0x248]
push 0x4acd84
mov dword [ecx + 0xc], 0
push str.Out_of_memory.
jmp 0x42f1c4
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp + ebp]
mov dword [edx + 0xc], eax
jmp 0x42f1db
cmp al, 2
jne 0x42f49a
call fcn.00401000
mov ebp, eax
jmp 0x42f4a9
mov ebp, 0x4ca0b8
jmp 0x42f4a9
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24c]
movzx eax, word [ecx]
mov edi, 1
test ax, ax
je 0x42f4ef
mov dx, word [0x4c4404]
cmp ax, dx
je 0x42f540
cmp ax, word [0x4c4400]
je 0x42f540
test ebx, ebx
je 0x42f4df
mov word [ebp], ax
add ebp, 2
jmp 0x42f4e3
add dword [esp + 0x1c], edi
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x42f4c4
mov esi, dword [esp + 0x248]
add ebx, edi
mov dword [esp + 0x20], ebx
cmp ebx, 2
jl 0x42f138
xor eax, eax
mov word [ebp], ax
cmp byte [esi + 0x17], al
jne 0x42f513
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x42f520
mov eax, esi
call fcn.00401160
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42f83b
test byte [esi + 0x15], 4
je 0x42f538
mov eax, esi
call fcn.00430d00
mov eax, dword [esi + 8]
jmp 0x42f889
movzx eax, word [ecx]
test ax, ax
je 0x42f4ef
cmp ax, dx
jne 0x42f647
test ebx, ebx
je 0x42f634
movzx eax, word [ecx + 2]
lea edx, [eax - 0x61]
cmp edx, 0x15
ja case.0x42f570.99
movzx edx, byte [edx + 0x42f940]
jmp dword [edx*4 + 0x42f920]
mov ebx, dword [esp + 0x20]
mov eax, 7
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov ebx, dword [esp + 0x20]
mov edx, 8
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov ebx, dword [esp + 0x20]
mov eax, 0xc
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov ebx, dword [esp + 0x20]
mov edx, 0xa
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov ebx, dword [esp + 0x20]
mov eax, 0xd
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov ebx, dword [esp + 0x20]
mov edx, 9
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
mov eax, 0xb
mov ebx, dword [esp + 0x20]
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42f4b0
add dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x20]
add ecx, 2
add ecx, 2
jmp 0x42f4b0
lea edx, [ecx + 2]
mov ebx, edx
movzx eax, word [ebx]
test ax, ax
je 0x42f820
mov si, word [0x4c4400]
nop
cmp ax, si
je 0x42f67d
movzx eax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x42f660
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
cmp word [ebx], 0
je 0x42f820
mov edi, ebx
sub edi, ecx
sar edi, 1
dec edi
je 0x42f81e
cmp edi, 0xfd
ja 0x42f81e
push edi
push edx
lea ecx, [esp + 0x48]
push ecx
call fcn.00491764
xor edx, edx
add esp, 0xc
mov word [esp + edi*2 + 0x40], dx
cmp word [esp + 0x40], dx
je 0x42f82c
lea eax, [esp + 0x27]
push eax
push 3
lea ecx, [esp + 0x34]
push ecx
push edi
lea edx, [esp + 0x50]
push edx
mov ecx, 0x4ca140
call fcn.00421430
test eax, eax
jne 0x42f6ff
cmp byte [esp + 0x27], al
mov ecx, dword [esp + 0x2c]
setne al
lea edx, [esp + 0x40]
inc eax
push eax
push ecx
push 0x4ca140
mov ecx, edi
call fcn.004216d0
mov esi, eax
test esi, esi
je 0x42f82c
cmp byte [esi + 0x17], 0
jne 0x42f712
mov esi, dword [esi + 0xc]
cmp esi, dword [esp + 0x248]
je 0x42f81e
cmp dword [esp + 0x20], 0
je 0x42f740
push ebp
mov ecx, esi
call fcn.00478770
mov ecx, ebx
mov ebx, dword [esp + 0x20]
lea ebp, [ebp + eax*2]
add ecx, 2
jmp 0x42f4b0
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x42f74d
jmp dword [eax*4 + 0x42f958]
mov eax, esi
call fcn.00401160
cmp dword [0x4c811c], 0
jne 0x42f7b6
cmp dword [esi + 0xc], 0
jne 0x42f7b6
mov eax, dword [esi + 0x18]
push 0
lea edx, [esp + 0x40]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x42f79c
dec eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
mov dword [0x4cb658], 0
add ecx, 2
jmp 0x42f4b0
mov dword [0x4cb658], esi
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
mov eax, dword [esi + 0xc]
shr eax, 1
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
mov ecx, dword [esi + 0xc]
push 0
call fcn.00478770
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
xor ecx, ecx
call fcn.00403f90
cmp eax, 0xffffffff
jne 0x42f81a
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
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, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42f4b0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret 8
cmp al, 2
jne 0x42f884
mov eax, dword [0x4ca0f0]
test eax, eax
jne 0x42f889
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 0xd
call esi
test eax, eax
jne 0x42f86c
push 0xf
call esi
test eax, eax
je 0x42f865
mov eax, 0x4a2824
jmp 0x42f889
mov eax, 0x4acd84
jmp 0x42f889
xor ecx, ecx
call fcn.00403f90
cmp eax, 0xffffffff
mov eax, 0x4acd84
je 0x42f889
mov eax, dword [0x4ca0ec]
jmp 0x42f889
mov eax, 0x4ca0b8
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42f890
mov ebx, dword [esp + 0x248]
sub eax, edx
sar eax, 1
mov edi, eax
cmp byte [ebx + 0x17], cl
jne 0x42f8b2
mov esi, dword [ebx + 0xc]
jmp 0x42f8b4
mov esi, ebx
cmp byte [esi + 0x17], 1
jne 0x42f8cc
test byte [esi + 0x15], 8
je 0x42f8c7
mov eax, esi
call fcn.00401160
lea eax, [esi + 0xc]
jmp 0x42f8d1
mov eax, 0x4cae08
lea ecx, [edi + edi]
mov dword [eax], ecx
cmp byte [ebx + 0x17], 0
jne 0x42f8e1
mov eax, dword [ebx + 0xc]
jmp 0x42f8e3
mov eax, ebx
cmp byte [eax + 0x17], 2
jne 0x42f909
cmp dword [0x4ca0f0], 0
je 0x42f909
mov ecx, 0x4ca0e4
call fcn.00404270
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret 8
and byte [eax + 0x15], 0x86
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x234
ret 8