Function at 0x42d690
Capabilities:
Query environment variable

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x234
cmp byte [ecx + 0x17], 0
push ebx
push ebp
push esi
push edi
jne 0x42d6ae
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x248], ecx
mov ebp, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x20], ebx
lea esi, [ebx + 1]
jmp 0x42d6c0
test ebx, ebx
je 0x42da29
mov al, byte [ecx + 0x17]
mov ebp, dword [esp + 0x1c]
test al, al
jne 0x42d6e4
mov eax, dword [ecx + 0xc]
push esi
push 0
push ebp
push 0
push eax
call fcn.00477e60
jmp 0x42d75a
mov byte [esp + 0x1b], 1
mov cl, 1
cmp ebp, 0xffffffff
jne 0x42d6f6
xor cl, cl
xor ebp, ebp
jmp 0x42d6fb
mov byte [esp + 0x1b], 0
lea edi, [ebp + 1]
lea esi, [edi + edi]
cmp al, 2
jne 0x42d72c
cmp byte [esp + 0x1b], 0
je 0x42d71a
push 0x4a2868
mov eax, ebp
call fcn.00404230
jmp 0x42d75a
mov esi, 0x4cc1a8
call fcn.004042b0
neg eax
sbb eax, eax
neg eax
jmp 0x42d75a
mov ebx, dword [0x4c58e8]
mov edx, dword [esp + 0x248]
cmp esi, ebx
jbe 0x42d7a0
cmp esi, dword [edx + 0x10]
jbe 0x42d7a0
push 0x4a2868
push 0x4bdf30
mov ecx, 0x4cb680
call fcn.0042ece0
mov ebx, dword [esp + 0x20]
cmp eax, 1
jne 0x42dd8c
mov esi, dword [esp + 0x248]
cmp byte [esi + 0x17], 0
jne 0x42d773
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x42d780
mov eax, esi
call fcn.00401160
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42da15
test byte [esi + 0x15], 4
je 0x42d798
mov eax, esi
call fcn.0042f290
mov ebp, dword [esi + 8]
jmp 0x42da31
cmp edi, 2
jae 0x42d7c4
xor edx, edx
test cl, cl
mov ecx, dword [esp + 0x248]
setne dl
xor al, al
add edx, 3
push edx
call fcn.00478410
mov ebx, dword [esp + 0x20]
jmp 0x42d763
mov al, byte [edx + 0x15]
test al, 2
je 0x42d7ee
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 [0x4c58e8]
mov edx, dword [esp + 0x248]
mov edi, dword [edx + 0x10]
and byte [edx + 0x15], 0x82
cmp esi, edi
jbe 0x42d82a
mov cl, byte [edx + 0x14]
cmp cl, 1
jbe 0x42d872
cmp cl, 2
je 0x42d8c1
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 0x42da00
cmp eax, 0x4a2868
je 0x42d859
lea edx, [ebp + ebp]
push edx
push 0x4a2868
push eax
call fcn.0048efd0
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 0x42d763
cmp esi, 0x80
ja 0x42d8c1
cmp esi, 8
ja 0x42d889
mov dword [esp + 0x14], 8
jmp 0x42d89c
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.004723e0
mov dword [esp + 0x28], eax
test eax, eax
je 0x42dd8c
mov eax, dword [esp + 0x248]
mov byte [eax + 0x14], 1
jmp 0x42d811
cmp esi, 0x20
jae 0x42d8d3
mov dword [esp + 0x14], 0x20
jmp 0x42d961
cmp esi, 0x208
jae 0x42d8e5
mov dword [esp + 0x14], 0x208
jmp 0x42d961
cmp esi, 0x50000
jae 0x42d92d
mov dword [esp + 0x30], esi
fild dword [esp + 0x30]
test esi, esi
jns 0x42d8ff
fadd qword [0x4bfa98]
fmul qword [0x4bfad0]
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 0x42d961
cmp esi, 0x320000
jae 0x42d93d
add esi, 0x8000
jmp 0x42d95d
cmp esi, 0xc80000
jae 0x42d957
mov eax, 0x51eb851f
mul esi
shr edx, 5
add edx, esi
mov dword [esp + 0x14], edx
jmp 0x42d961
add esi, 0x20000
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], ebx
jbe 0x42d96b
mov dword [esp + 0x14], ebx
cmp cl, 2
jne 0x42d9b5
test edi, edi
je 0x42d9b5
mov eax, dword [esp + 0x248]
mov ecx, dword [eax + 8]
push ecx
mov bl, 1
call fcn.0048f817
add esp, 4
cmp dword [esp + 0x14], 0
jl 0x42d9b9
mov edx, dword [esp + 0x14]
push edx
call fcn.0048e5e4
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
je 0x42d9b9
mov eax, dword [esp + 0x248]
mov byte [eax + 0x14], 2
jmp 0x42d80a
xor bl, bl
jmp 0x42d989
test bl, bl
je 0x42d9d4
mov eax, dword [esp + 0x248]
mov dword [eax + 0x10], 0
mov dword [eax + 8], 0x4cb614
jmp 0x42d9e3
mov ecx, dword [esp + 0x248]
mov edx, dword [ecx + 8]
xor eax, eax
mov word [edx], ax
mov ecx, dword [esp + 0x248]
push 0x4a2868
mov dword [ecx + 0xc], 0
push str.Out_of_memory.
jmp 0x42d74c
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp + ebp]
mov dword [edx + 0xc], eax
jmp 0x42d763
cmp al, 2
jne 0x42da22
call fcn.00401000
mov ebp, eax
jmp 0x42da31
mov ebp, 0x4cb614
jmp 0x42da31
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x24c]
jmp 0x42da40
movzx eax, word [ecx]
mov esi, 1
test ax, ax
je 0x42da7f
mov dx, word [0x4c5904]
cmp ax, dx
je 0x42da9a
cmp ax, word [0x4c5900]
je 0x42da9a
test ebx, ebx
je 0x42da6f
mov word [ebp], ax
add ebp, 2
jmp 0x42da73
add dword [esp + 0x1c], esi
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x42da54
add ebx, esi
mov dword [esp + 0x20], ebx
cmp ebx, 2
jge 0x42dd9b
mov ecx, dword [esp + 0x248]
jmp 0x42d6c0
movzx eax, word [ecx]
test ax, ax
je 0x42da7f
cmp ax, dx
jne 0x42dba1
test ebx, ebx
je 0x42db8e
movzx eax, word [ecx + 2]
lea edx, [eax - 0x61]
cmp edx, 0x15
ja case.0x42daca.99
movzx edx, byte [edx + 0x42ded8]
jmp dword [edx*4 + 0x42deb8]
mov ebx, dword [esp + 0x20]
mov eax, 7
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov ebx, dword [esp + 0x20]
mov edx, 8
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov ebx, dword [esp + 0x20]
mov eax, 0xc
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov ebx, dword [esp + 0x20]
mov edx, 0xa
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov ebx, dword [esp + 0x20]
mov eax, 0xd
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov ebx, dword [esp + 0x20]
mov edx, 9
mov word [ebp], dx
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
mov eax, 0xb
mov ebx, dword [esp + 0x20]
mov word [ebp], ax
add ecx, 2
add ebp, 2
add ecx, 2
jmp 0x42da40
add dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x20]
add ecx, 2
add ecx, 2
jmp 0x42da40
lea edx, [ecx + 2]
mov ebx, edx
movzx eax, word [ebx]
test ax, ax
je 0x42dd80
mov si, word [0x4c5900]
lea esp, [esp]
cmp ax, si
je 0x42dbdd
movzx eax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x42dbc0
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42da40
cmp word [ebx], 0
je 0x42dd80
mov edi, ebx
sub edi, ecx
sar edi, 1
dec edi
je 0x42dd7e
cmp edi, 0xfd
ja 0x42dd7e
push edi
push edx
lea ecx, [esp + 0x48]
push ecx
call fcn.00491254
xor edx, edx
add esp, 0xc
mov word [esp + edi*2 + 0x40], dx
cmp word [esp + 0x40], dx
je 0x42dd8c
lea eax, [esp + 0x27]
push eax
push 3
lea ecx, [esp + 0x34]
push ecx
push edi
lea edx, [esp + 0x50]
push edx
mov ecx, 0x4cb680
call fcn.00421e80
test eax, eax
jne 0x42dc60
cmp byte [esp + 0x27], al
mov ecx, dword [esp + 0x2c]
setne al
lea edx, [esp + 0x40]
inc eax
push eax
push ecx
push edx
push 0x4cb680
mov ecx, edi
call fcn.00422130
mov esi, eax
test esi, esi
je 0x42dd8c
cmp byte [esi + 0x17], 0
jne 0x42dc73
mov esi, dword [esi + 0xc]
cmp esi, dword [esp + 0x248]
je 0x42dd7e
cmp dword [esp + 0x20], 0
je 0x42dca1
push ebp
mov ecx, esi
call fcn.00478230
mov ecx, ebx
mov ebx, dword [esp + 0x20]
lea ebp, [ebp + eax*2]
add ecx, 2
jmp 0x42da40
movzx eax, byte [esi + 0x17]
cmp eax, 3
ja case.default.0x42dcae
jmp dword [eax*4 + 0x42def0]
mov eax, esi
call fcn.00401160
cmp dword [0x4c9670], 0
jne 0x42dd17
cmp dword [esi + 0xc], 0
jne 0x42dd17
mov ecx, dword [esi + 0x18]
push 0
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x42dcfd
dec eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
mov dword [0x4ccbc0], 0
add ecx, 2
jmp 0x42da40
mov dword [0x4ccbc0], esi
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42da40
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 0x42da40
mov ecx, dword [esi + 0xc]
push 0
call fcn.00478230
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42da40
xor ecx, ecx
call fcn.00404050
cmp eax, 0xffffffff
jne 0x42dd7a
xor eax, eax
add dword [esp + 0x1c], eax
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42da40
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, ebx
mov ebx, dword [esp + 0x20]
add ecx, 2
jmp 0x42da40
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x234
ret 8
mov esi, dword [esp + 0x248]
xor ecx, ecx
mov word [ebp], cx
cmp byte [esi + 0x17], cl
jne 0x42ddb0
mov esi, dword [esi + 0xc]
test byte [esi + 0x15], 8
je 0x42ddbd
mov eax, esi
call fcn.00401160
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x42ddd6
test byte [esi + 0x15], 4
je 0x42ddd1
mov eax, esi
call fcn.0042f290
mov eax, dword [esi + 8]
jmp 0x42de24
cmp al, 2
jne 0x42de1f
mov eax, dword [0x4cc1b4]
test eax, eax
jne 0x42de24
mov esi, dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
push 0xd
call esi
test eax, eax
jne 0x42de07
push 0xf
call esi
test eax, eax
je 0x42de00
mov eax, 0x4a285c
jmp 0x42de24
mov eax, 0x4a2868
jmp 0x42de24
xor ecx, ecx
call fcn.00404050
cmp eax, 0xffffffff
mov eax, 0x4a2868
je 0x42de24
mov eax, dword [0x4cc1b0]
jmp 0x42de24
mov eax, 0x4cb614
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42de27
mov ebx, dword [esp + 0x248]
sub eax, edx
sar eax, 1
mov edi, eax
cmp byte [ebx + 0x17], cl
jne 0x42de49
mov esi, dword [ebx + 0xc]
jmp 0x42de4b
mov esi, ebx
cmp byte [esi + 0x17], 1
jne 0x42de63
test byte [esi + 0x15], 8
je 0x42de5e
mov eax, esi
call fcn.00401160
lea eax, [esi + 0xc]
jmp 0x42de68
mov eax, 0x4cc370
lea edx, [edi + edi]
mov dword [eax], edx
cmp byte [ebx + 0x17], 0
jne 0x42de78
mov eax, dword [ebx + 0xc]
jmp 0x42de7a
mov eax, ebx
cmp byte [eax + 0x17], 2
jne 0x42dea0
cmp dword [0x4cc1b4], 0
je 0x42dea0
mov ecx, 0x4cc1a8
call fcn.00404330
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