Function at 0x4490d8
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push edi
push esi
push ebx
mov ebx, sym.imp.KERNEL32.dll_CloseHandle
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x24], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 8], 8
mov dword [ebp - 0x58], 0xffffffff
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x60], 0xffffffff
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x50], 0xffffffff
mov dword [ebp - 0x68], 0xffffffff
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x4c], 0xffffffff
mov eax, dword [0x4fdeb8]
mov dword [ebp - 0x14], eax
mov dword [0x4fdeb8], 0x8000
cmp dword [ebp + 0x18], 0
je 0x4491a7
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00448ffb
add esp, 8
cmp dword [ebp - 0x58], 0xffffffff
jne 0x449174
jmp 0x4494e1
push 2
push 1
push 0
lea edi, [ebp - 0x54]
push edi
push dword [ebp - 0x1c]
push dword [ebp - 0x5c]
push dword [ebp - 0x1c]
mov eax, dword [sym.imp.KERNEL32.dll_DuplicateHandle]
call eax
or eax, eax
jne 0x449197
jmp 0x4494e1
push dword [ebp - 0x5c]
mov eax, dword [ebx]
call eax
mov dword [ebp - 0x5c], 0xffffffff
jmp 0x4491ae
mov dword [ebp - 0x54], 0xffffffff
cmp dword [ebp + 0x1c], 0
je 0x4491f2
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00448ffb
add esp, 8
cmp dword [ebp - 0x60], 0xffffffff
jne 0x4491cf
jmp 0x4494e1
push 2
push 1
lea eax, [ebp - 0x50]
push 0
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x60]
push dword [ebp - 0x1c]
mov eax, dword [sym.imp.KERNEL32.dll_DuplicateHandle]
call eax
or eax, eax
jne 0x4491f9
jmp 0x4494e1
mov dword [ebp - 0x50], 0xffffffff
cmp byte [ebp + 0x24], 0
je 0x44921d
mov edi, dword [ebp - 0x50]
mov dword [ebp - 0x4c], edi
cmp dword [ebp + 0x20], 0
je 0x449268
mov eax, dword [ebp + 0x20]
mov dword [eax], 0
mov dword [ebp + 0x20], 0
jmp 0x449268
cmp dword [ebp + 0x20], 0
je 0x449261
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00448ffb
add esp, 8
cmp dword [ebp - 0x68], 0xffffffff
jne 0x44923e
jmp 0x4494e1
lea esi, [ebp - 0x4c]
push 2
push 1
push 0
push esi
push dword [ebp - 0x1c]
push dword [ebp - 0x68]
push dword [ebp - 0x1c]
mov eax, dword [sym.imp.KERNEL32.dll_DuplicateHandle]
call eax
or eax, eax
jne 0x449268
jmp 0x4494e1
mov dword [ebp - 0x4c], 0xffffffff
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
cmp byte [ebp + 0x28], 0
je 0x44927a
add dword [ebp - 0x18], 1
cmp dword [ebp + 0x2c], 0
je 0x449402
mov eax, dword [ebp + 0x2c]
cmp dword [eax + 8], 0
jle 0x449402
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
call eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x10], 0
je 0x4492d6
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x20], edi
jmp 0x4492b4
add dword [ebp - 0x20], 1
mov edx, dword [ebp - 0x20]
cmp byte [edx], 0
jne 0x4492b0
mov edx, dword [ebp - 0x20]
cmp byte [edx + 1], 0
jne 0x4492b0
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
lea edx, [eax + 1]
mov dword [ebp - 0xc], edx
mov eax, edx
mov dword [ebp - 0x28], eax
mov edi, dword [ebp + 0x2c]
mov edi, dword [edi]
mov dword [ebp - 0x48], edi
mov esi, dword [ebp + 0x30]
mov esi, dword [esi]
mov dword [ebp - 0x44], esi
jmp 0x44930d
push edi
call fcn.0043e3fa
lea edx, [eax + 1]
mov dword [ebp - 4], edx
add esp, 4
push esi
call fcn.0043e3fa
sub esp, 0xfffffffc
add eax, dword [ebp - 4]
inc eax
add dword [ebp - 0x28], eax
mov edi, dword [edi + 4]
mov esi, dword [esi + 4]
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x40]
cmp edi, eax
jne 0x4492e8
sub dword [ebp - 0x28], 0xffffffff
push 1
push dword [ebp - 0x28]
mov eax, dword [fcn.004092c1]
call eax
mov dword [ebp - 0x24], eax
add esp, 8
mov edi, dword [ebp - 0x24]
mov dword [ebp - 4], edi
mov esi, dword [ebp + 0x2c]
mov esi, dword [esi]
mov dword [ebp - 0x3c], esi
mov edi, dword [ebp + 0x30]
mov edi, dword [edi]
mov dword [ebp - 0x38], edi
jmp 0x4493ac
push 0x4db988
push esi
lea eax, [ebp - 0x30]
push eax
call fcn.0043e5d9
add esp, 0xc
push edi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0043e53c
add esp, 0xc
push 2
lea eax, [ebp - 0x30]
push eax
call fcn.0043d8d8
sub esp, 0xfffffff8
push dword [ebp - 0x2c]
push dword [ebp - 4]
call fcn.004a7810
lea eax, [ebp - 0x2c]
add esp, 8
push eax
call fcn.0043e3fa
add esp, 4
inc eax
add dword [ebp - 4], eax
push 2
lea eax, [ebp - 0x2c]
push eax
call fcn.0043d8d8
mov esi, dword [esi + 4]
sub esp, 0xfffffff8
mov edi, dword [edi + 4]
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x34]
cmp esi, eax
jne 0x449349
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 4]
call fcn.004a86b0
add esp, 0xc
push dword [ebp - 0x10]
mov eax, dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
call eax
push 0
push 0x2b5
push 0x4db9b0
push str.__envc__oldlen____envp__1___count
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x24]
inc eax
cmp eax, dword [ebp - 0x28]
sete al
movzx eax, al
push eax
call fcn.00409813
sub esp, 0xffffffec
push dword [ebp - 0x24]
push dword [ebp - 8]
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push dword [ebp - 0x54]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 8]
push dword [ebp - 0x18]
call fcn.0045260d
add esp, 0x24
test eax, eax
jne 0x44943b
push dword [ebp - 0x24]
mov eax, dword [0x4d3eec]
call eax
add esp, 4
jmp 0x4494e1
push dword [ebp - 0x24]
mov eax, dword [0x4d3eec]
call eax
sub esp, 0xfffffffc
cmp dword [ebp + 0x18], 0
je 0x449477
push dword [ebp - 0x5c]
mov eax, dword [ebx]
call eax
mov dword [ebp - 0x5c], 0xffffffff
push dword [ebp - 0x54]
mov eax, dword [ebx]
call eax
push 0
push dword [ebp - 0x58]
push 0
call fcn.00448e20
sub esp, 0xfffffff4
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
cmp dword [ebp + 0x1c], 0
je 0x4494a6
push dword [ebp - 0x60]
mov eax, dword [ebx]
call eax
mov dword [ebp - 0x60], 0xffffffff
push dword [ebp - 0x50]
mov eax, dword [ebx]
call eax
push 0
push dword [ebp - 0x64]
push 0
call fcn.00448e20
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
add esp, 0xc
cmp dword [ebp + 0x20], 0
je 0x4494d5
push dword [ebp - 0x68]
mov eax, dword [ebx]
call eax
mov dword [ebp - 0x68], 0xffffffff
push dword [ebp - 0x4c]
mov eax, dword [ebx]
call eax
push 0
push dword [ebp - 0x6c]
push 0
call fcn.00448e20
mov edx, dword [ebp + 0x20]
mov dword [edx], eax
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov dword [0x4fdeb8], eax
mov al, 1
jmp 0x449553
cmp dword [ebp - 0x54], 0xffffffff
je 0x4494ee
push dword [ebp - 0x54]
mov eax, dword [ebx]
call eax
cmp dword [ebp - 0x50], 0xffffffff
je 0x4494fb
push dword [ebp - 0x50]
mov eax, dword [ebx]
call eax
cmp dword [ebp - 0x4c], 0xffffffff
je 0x449510
mov edi, dword [ebp - 0x4c]
cmp edi, dword [ebp - 0x50]
je 0x449510
push dword [ebp - 0x4c]
mov eax, dword [ebx]
call eax
cmp dword [ebp + 0x18], 0
je 0x449523
cmp dword [ebp - 0x58], 0xffffffff
je 0x449523
push dword [ebp - 0x58]
mov eax, dword [ebx]
call eax
cmp dword [ebp + 0x1c], 0
je 0x449536
cmp dword [ebp - 0x64], 0xffffffff
je 0x449536
push dword [ebp - 0x64]
mov eax, dword [ebx]
call eax
cmp dword [ebp + 0x20], 0
je 0x449549
cmp dword [ebp - 0x6c], 0xffffffff
je 0x449549
push dword [ebp - 0x6c]
mov eax, dword [ebx]
call eax
mov eax, dword [ebp - 0x14]
mov dword [0x4fdeb8], eax
mov al, 0
pop ebx
pop esi
pop edi
leave
ret