Function at 0x402d80
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
mov edi, edx
push esi
mov esi, ecx
push ebx
sub esp, 0x3c
cmp edx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x28], eax
jae 0x403125
mov ebx, edx
add ebx, 4
mov ebp, dword [ebx - 4]
mov eax, ebp
call fcn.004017d0
test al, al
je 0x402dbe
mov edx, 4
mov eax, ebp
call fcn.004022c0
cmp esi, ebx
ja 0x402da1
not edi
lea eax, [edi + esi]
shr eax, 2
lea esi, [eax + 2]
mov edi, dword [0x4830a4]
test edi, edi
je 0x4030f4
mov dword [esp], str.COLLECT_LTO_WRAPPER
call sub.msvcrt.dll_getenv
test eax, eax
mov ebx, eax
je 0x40315d
add esi, 1
mov dword [esp + 4], esi
mov dword [esp], 4
call fcn.0043e2e0
mov edx, dword [0x4830a4]
test edx, edx
mov esi, eax
lea ecx, [eax + 4]
mov dword [eax], ebx
je 0x402e24
mov eax, dword [edx]
add ecx, 4
mov dword [ecx - 4], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x402e15
movzx eax, byte [0x48306c]
mov dword [ecx], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], str.lto_wrapper
call fcn.004059a0
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x2c], eax
call fcn.0043ffc0
test eax, eax
mov ebx, eax
je 0x403141
xor esi, esi
jmp 0x402e96
cmp eax, 0xa
lea ecx, [edx + 1]
mov dword [0x48304c], ecx
mov byte [edx], al
sete al
movzx eax, al
add esi, eax
mov dword [esp], ebx
call sub.msvcrt.dll_getc
cmp eax, 0xffffffff
je 0x402ed5
mov edx, dword [0x48304c]
cmp dword [0x483050], edx
jne 0x402e80
mov dword [esp + 4], 1
mov dword [esp], 0x483040
mov dword [esp + 0x28], eax
call fcn.0043e0b0
mov edx, dword [0x48304c]
mov eax, dword [esp + 0x28]
jmp 0x402e80
lea eax, [esi + 1]
lea ebx, [eax*4]
mov dword [esp], ebx
mov dword [esp + 0x28], eax
call fcn.0043e2b0
mov dword [eax + ebx - 4], 0
mov ebx, dword [0x48304c]
mov dword [0x4830e4], eax
mov eax, dword [0x483048]
cmp ebx, eax
je 0x403119
mov edx, dword [0x483058]
mov ecx, dword [0x483044]
add ebx, edx
not edx
and ebx, edx
mov edx, dword [0x483050]
mov dword [0x48304c], ebx
sub ebx, ecx
mov edi, edx
sub edi, ecx
cmp ebx, edi
ja 0x4030da
mov edx, dword [0x48304c]
test esi, esi
mov dword [0x483048], edx
je 0x402f7f
xor ebp, ebp
lea esi, [esi]
cmp byte [eax], 0xa
mov ebx, eax
je 0x402f5f
add ebx, 1
cmp byte [ebx], 0xa
jne 0x402f57
mov edx, dword [0x4830e4]
mov byte [ebx], 0
mov dword [esp], eax
lea edi, [edx + ebp*4]
add ebp, 1
call fcn.00440340
cmp ebp, esi
mov dword [edi], eax
lea eax, [ebx + 1]
jne 0x402f50
mov eax, dword [0x483024]
cmp eax, dword [0x483044]
jbe 0x402f98
cmp eax, dword [0x483050]
jb 0x4030e5
mov dword [esp + 4], eax
mov dword [esp], 0x483040
call fcn.0043e1c0
mov eax, dword [esp + 0x2c]
mov dword [esp], str.lto_wrapper
mov dword [esp + 4], eax
call fcn.00405960
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
test esi, esi
je 0x40312f
xor eax, eax
lea esi, [esi]
add eax, 1
mov ebx, dword [ecx + eax*4]
mov edx, eax
test ebx, ebx
jne 0x402fd0
add edx, dword [esp + 0x28]
mov dword [esp + 4], 4
mov dword [esp], edx
call fcn.0043e2e0
mov esi, dword [esp + 0x24]
mov ecx, dword [esi]
test ecx, ecx
je 0x403136
mov edi, dword [0x4830a4]
xor ebx, ebx
test edi, edi
je 0x40301d
cmp ecx, dword [edi]
je 0x403030
mov edx, edi
jmp 0x403016
cmp ecx, dword [edx]
je 0x403030
mov edx, dword [edx + 4]
test edx, edx
jne 0x403012
add ebx, 1
add esi, 4
mov dword [eax + ebx*4 - 4], ecx
mov ecx, dword [esi]
test ecx, ecx
jne 0x403006
lea esi, [esi]
mov ecx, dword [0x4830e4]
mov edx, dword [ecx]
test edx, edx
je 0x40304f
imul edi, ebx, 0xfffffffc
add ecx, edi
add ebx, 1
mov dword [eax + ebx*4 - 4], edx
mov edx, dword [ecx + ebx*4]
test edx, edx
jne 0x403041
mov ecx, dword [esi]
test ecx, ecx
je 0x40308a
mov edi, dword [0x4830a4]
nop
lea esi, [esi]
test edi, edi
je 0x40307b
cmp ecx, dword [edi]
je 0x403081
mov edx, edi
jmp 0x403074
cmp ecx, dword [edx]
je 0x403081
mov edx, dword [edx + 4]
test edx, edx
jne 0x403070
mov dword [eax + ebx*4], ecx
add ebx, 1
add esi, 4
mov ecx, dword [esi]
test ecx, ecx
jne 0x403060
mov dword [eax + ebx*4], 0
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp], 0x470701
call fcn.00405c70
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [0x4830e4]
mov eax, dword [ebx]
test eax, eax
je 0x4030d2
add ebx, 4
mov dword [esp], eax
call fcn.00402bc0
mov eax, dword [ebx]
test eax, eax
jne 0x4030c1
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [0x48304c], edx
jmp 0x402f37
mov dword [0x483048], eax
mov dword [0x48304c], eax
jmp 0x402fa8
cmp byte [esp + 0x28], 0
je 0x4030d2
mov eax, dword [esp + 0x24]
mov dword [esp + 8], 0
mov dword [esp], 0x470701
mov dword [esp + 4], eax
call fcn.00405c70
jmp 0x4030d2
or byte [0x483068], 2
jmp 0x402f0b
mov esi, 1
jmp 0x402dcd
xor edx, edx
jmp 0x402fdc
mov esi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x403030
mov dword [esp + 8], str.maybe_run_lto_and_relink
mov dword [esp + 4], 0x2de
mov dword [esp], str..._.._gcc_gcc_collect2.c
call fcn.004096e0
mov eax, dword [0x483228]
mov dword [esp + 4], str.COLLECT_LTO_WRAPPER_must_be_set
mov dword [esp], eax
call fcn.0040ac00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub esp, 0x1c
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strcmp
test eax, eax
sete al
add esp, 0x1c
movzx eax, al
ret