Function at 0x59b430
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 8
push 0
push 0
dec ecx
jne 0x59b439
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405168
xor eax, eax
push ebp
push 0x59b829
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call fcn.00404cac
cmp dword [ebp - 4], 0
je 0x59b7f9
lea eax, [ebp - 0x20]
push eax
mov eax, dword [0x69800c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [ebp - 4]
call fcn.004323cc
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0x22
jne 0x59b4af
mov eax, dword [ebp - 0x20]
call fcn.00405178
lea edx, [ebp - 0x18]
call fcn.0059b2a8
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x18]
call fcn.00404d44
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x20]
call fcn.0040b870
cmp dword [ebp - 0x28], 0
jne 0x59b4e3
test bl, bl
je 0x59b4d6
lea eax, [ebp - 0x18]
mov ecx, 0x59b840
mov edx, dword [ebp - 0x20]
call fcn.00404fcc
jmp 0x59b4e3
lea eax, [ebp - 0x20]
mov edx, 0x59b850
call fcn.00404f88
mov eax, dword [ebp - 0x20]
call fcn.004f1814
test al, al
je 0x59b4ff
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x20]
call fcn.00404d00
jmp 0x59b7f9
test bl, bl
jne 0x59b6ba
mov dl, 1
mov eax, dword [0x42d344]
call fcn.0042d4b0
mov dword [ebp - 0x10], eax
mov edx, 0x80000002
mov eax, dword [ebp - 0x10]
call fcn.0042d58c
call fcn.004f12c8
test al, al
je 0x59b538
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0x20119
jmp 0x59b542
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0x20019
xor ecx, ecx
mov edx, 0x59b860
mov eax, dword [ebp - 0x10]
call fcn.0042d6d0
test al, al
je 0x59b6ba
mov dl, 1
mov eax, dword [0x42d344]
call fcn.0042d4b0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x18], 0x20019
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
call fcn.0042d58c
xor ecx, ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
call fcn.0042d6d0
test al, al
je 0x59b6a2
lea eax, [ebp - 0x1c]
call fcn.00404cac
xor eax, eax
push ebp
push 0x59b5c2
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x1c]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.0042dc4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59b5cc
cmp dword [ebp - 0x1c], 0
je 0x59b69a
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0x22
jne 0x59b5f0
mov eax, dword [ebp - 0x1c]
call fcn.00405178
lea edx, [ebp - 0x18]
call fcn.0059b2a8
jmp 0x59b5fb
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00404d44
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [0x69800c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [ebp - 0x18]
call fcn.004323cc
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x18]
call fcn.00404d44
mov eax, dword [ebp - 0x18]
call fcn.0040b3a0
test al, al
jne 0x59b68f
xor eax, eax
push ebp
push 0x59b64f
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x1c]
mov edx, 0x59b89c
mov eax, dword [ebp - 0x14]
call fcn.0042dc4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x59b659
cmp dword [ebp - 0x1c], 0
je 0x59b69a
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00404fcc
lea eax, [ebp - 0x30]
push eax
mov eax, dword [0x69800c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, dword [ebp - 0x18]
call fcn.004323cc
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x18]
call fcn.00404d44
jmp 0x59b69a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
call fcn.00404d00
mov eax, dword [ebp - 0x14]
call fcn.0042d55c
mov eax, dword [ebp - 0x14]
call fcn.00403e80
mov eax, dword [ebp - 0x10]
call fcn.0042d55c
mov eax, dword [ebp - 0x10]
call fcn.00403e80
mov eax, dword [ebp - 8]
cmp dword [eax], 0
je 0x59b6d4
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004f1814
test al, al
jne 0x59b7f9
mov dl, 1
mov eax, dword [0x41ca64]
call fcn.00403e50
mov ebx, eax
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00404d00
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x44]
push 0
push 0
push 0x59b8a4
call sub.kernel32.dll_GetEnvironmentVariableA
mov esi, eax
test esi, esi
je 0x59b7f2
mov eax, esi
call fcn.00402a88
mov dword [ebp - 0xc], eax
push esi
mov eax, dword [ebp - 0xc]
push eax
push 0x59b8a4
call sub.kernel32.dll_GetEnvironmentVariableA
push ebx
mov ecx, dword [ebp - 0xc]
mov edx, 0x59b8ac
mov eax, 0x59b8cc
call fcn.0041ec54
lea edx, [ebp - 0x34]
mov eax, dword [0x69800c]
mov eax, dword [eax]
call fcn.00431668
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x60]
lea edx, [ebp - 0x38]
mov eax, dword [0x69800c]
mov eax, dword [eax]
call fcn.004317d8
mov ecx, dword [ebp - 0x38]
xor edx, edx
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0x60]
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jb 0x59b7ea
inc eax
mov dword [ebp - 0x24], eax
xor esi, esi
lea ecx, [ebp - 0x40]
mov edx, esi
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.0040f8f8
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x20]
call fcn.00404f88
mov eax, dword [ebp - 0x3c]
call fcn.004f1814
test al, al
je 0x59b7e4
lea ecx, [ebp - 0x48]
mov edx, esi
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x44]
call fcn.0040f8f8
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
call fcn.00404fcc
mov eax, dword [ebp - 0xc]
call fcn.00402aa8
mov eax, ebx
call fcn.00403e80
jmp 0x59b7f9
inc esi
dec dword [ebp - 0x24]
jne 0x59b780
mov eax, dword [ebp - 0xc]
call fcn.00402aa8
mov eax, ebx
call fcn.00403e80
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59b830
lea eax, [ebp - 0x48]
mov edx, 9
call fcn.00404cd0
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404cd0
lea eax, [ebp - 4]
call fcn.00404cac
ret