Function at 0x41fd77
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, edx
mov dword [ebp - 4], ecx
xor ebx, ebx
and dword [ebp - 8], ebx
and dword [ebp - 0xc], ebx
push edi
xor edi, edi
cmp byte [esi + 0x25a], bl
je 0x41fda5
call fcn.0041fcf0
mov edx, eax
mov dword [ebp - 0xc], edx
test edx, edx
jne 0x41fdd6
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x574]
test ecx, ecx
je 0x41fdf4
push ecx
call dword [0x53b9f8]
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x41fdf1
push str.memory_shortage
push dword [ebp - 4]
call fcn.00416cbd
pop ecx
pop ecx
mov dword [ebp - 0xc], 0x1b
mov edi, dword [ebp - 8]
push edi
call dword [0x53b9f4]
pop ecx
push ebx
call dword [0x53b9f4]
mov eax, dword [ebp - 0xc]
pop ecx
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x578]
test ecx, ecx
je 0x41fe10
push ecx
call dword [0x53b9f8]
mov dword [ebp - 8], eax
pop ecx
test eax, eax
je 0x41fdc0
mov eax, dword [ebp - 4]
xor ecx, ecx
xor edx, edx
inc ecx
cmp dword [eax + 0x5e4], edx
jne 0x41fef1
push ecx
mov dword [ebp - 0x10], str.no_proxy
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], ecx
push edx
jmp 0x41fe63
mov eax, dword [ebp - 0x14]
push eax
push edi
push str.no_proxy
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41fe91
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
je 0x41fe91
cmp eax, 0x8000
ja 0x41fe91
cmp eax, ecx
jb 0x41fe9b
push eax
push edi
call dword [0x53ba00]
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x41fe32
push dword [ebp - 0x18]
call dword [0x53b9f4]
pop ecx
and dword [ebp - 0x14], 0
xor eax, eax
inc eax
mov dword [ebp - 0x10], str.NO_PROXY
push eax
mov dword [ebp - 0x18], eax
push 0
jmp 0x41fed4
push edi
call dword [0x53b9f4]
pop ecx
xor edi, edi
test edi, edi
jne 0x41ff31
jmp 0x41fe7b
mov eax, dword [ebp - 0x18]
push eax
push edi
push dword [ebp - 0x10]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x41ff23
mov ecx, dword [ebp - 0x1c]
cmp eax, ecx
je 0x41ff23
cmp eax, 0x8000
ja 0x41ff23
cmp eax, ecx
jb 0x41ff2d
push eax
push edi
call dword [0x53ba00]
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x41fea5
push dword [ebp - 0x14]
call dword [0x53b9f4]
pop ecx
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5e4]
mov edx, edi
mov ecx, dword [esi + 0x60]
test eax, eax
cmovne edx, eax
call fcn.0041f5b3
test al, al
je 0x41ff47
push ebx
call dword [0x53b9f4]
pop ecx
push dword [ebp - 8]
xor ebx, ebx
call dword [0x53b9f4]
and dword [ebp - 8], ebx
pop ecx
jmp 0x41ff5c
push edi
call dword [0x53b9f4]
pop ecx
xor edi, edi
test edi, edi
je 0x41feee
push edi
push dword [ebp - 0x10]
push str.Uses_proxy_env_variable__s___s
push dword [ebp - 4]
call fcn.00416c42
add esp, 0x10
jmp 0x41feee
test ebx, ebx
jne 0x41ff5c
cmp dword [ebp - 8], ebx
jne 0x41ff5c
mov ecx, dword [ebp - 4]
mov edx, esi
call fcn.0041f6e9
mov ebx, eax
push edi
call dword [0x53b9f4]
pop ecx
test ebx, ebx
je 0x41ffa2
mov edi, dword [esi + 0x398]
test edi, edi
je 0x41ff7a
push ebx
call dword [0x53b9f4]
pop ecx
xor ecx, ecx
test edi, edi
cmove ecx, ebx
mov ebx, ecx
test ecx, ecx
je 0x41ffa2
cmp byte [ecx], 0
je 0x41ff98
mov eax, dword [esi + 0x2a0]
test byte [eax + 0x4c], 0x10
je 0x41ffa2
push ecx
call dword [0x53b9f4]
pop ecx
xor ebx, ebx
mov edi, dword [ebp - 8]
test edi, edi
je 0x41ffc7
cmp byte [edi], 0
je 0x41ffba
mov eax, dword [esi + 0x2a0]
test byte [eax + 0x4c], 0x10
je 0x41ffc7
push edi
call dword [0x53b9f4]
xor edi, edi
pop ecx
mov dword [ebp - 8], edi
test ebx, ebx
jne 0x41ffde
test edi, edi
jne 0x42000b
mov word [esi + 0x258], di
mov edi, dword [ebp - 8]
jmp 0x4200e8
push dword [esi + 0xb4]
mov ecx, dword [ebp - 4]
mov edx, esi
push ebx
call fcn.0041f96c
push ebx
mov dword [ebp - 0xc], eax
call dword [0x53b9f4]
xor ebx, ebx
add esp, 0xc
cmp dword [ebp - 0xc], ebx
jne 0x41fdd6
test edi, edi
je 0x420036
push dword [esi + 0x94]
mov ecx, dword [ebp - 4]
mov edx, esi
push edi
call fcn.0041f96c
push edi
mov dword [ebp - 0xc], eax
call dword [0x53b9f4]
xor edi, edi
add esp, 0xc
cmp dword [ebp - 0xc], edi
jne 0x41fdd9
jmp 0x420039
mov edi, dword [ebp - 8]
cmp dword [esi + 0xa0], 0
je 0x420077
mov eax, dword [esi + 0x2a0]
test byte [eax + 0x44], 3
jne 0x420073
test dword [eax + 0x4c], 0x800
je 0x42006c
cmp byte [esi + 0x25b], 0
jne 0x42006c
mov dword [esi + str.HTTP], 0x50dd48
jmp 0x420073
mov byte [esi + 0x25b], 1
mov al, 1
jmp 0x420080
mov byte [esi + 0x25b], 0
xor al, al
mov byte [esi + 0x258], al
cmp dword [esi + 0x80], 0
je 0x4200e1
cmp dword [esi + 0xa0], 0
jne 0x4200d4
cmp dword [esi + 0x98], 0
jne 0x4200d4
mov eax, dword [esi + 0xb8]
push dword [esi + 0x9c]
and dword [esi + 0xb8], 0
mov dword [esi + 0x98], eax
call dword [0x53b9f4]
mov eax, dword [esi + 0xbc]
and dword [esi + 0xbc], 0
pop ecx
mov dword [esi + 0x9c], eax
xor ecx, ecx
inc ecx
mov byte [esi + 0x259], cl
mov al, cl
jmp 0x4200ed
mov byte [esi + 0x259], 0
xor ecx, ecx
xor al, al
inc ecx
cmp byte [esi + 0x258], 0
jne 0x4200fc
test al, al
jne 0x4200fc
xor cl, cl
mov byte [esi + 0x25d], cl
test cl, cl
jne 0x41fdd9
and dword [esi + 0xb4], 0
mov byte [esi + 0x25d], cl
mov dword [esi + 0x258], 0
jmp 0x41fdd9