Function at 0x407400
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x70
mov eax, dword [ebp + 8]
test eax, eax
je 0x407608
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4074bd
call dword [0x417584]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov dword [esp], edx
call dword [0x4175b4]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x40748c
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x1e8]
mov dword [esp + 4], 0
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x50]
mov dword [esp], eax
call sub.msvcrt.dll__setjmp3
mov ecx, dword [ebp - 0x5c]
lea edx, [ebp - 0x54]
test eax, eax
mov dword [ebp - 0x10], eax
mov dword [ecx + 0x1e8], edx
mov byte [ebp - 0xc], 0
je 0x407614
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x1e8], eax
mov eax, dword [sym.imp.msvcrt.dll__environ]
mov edx, dword [ebp - 0x5c]
mov eax, dword [eax]
mov dword [edx + 0x794], eax
mov dword [esp], edx
call dword [0x417568]
mov ecx, dword [ebp - 0x5c]
mov dword [esp], ecx
call dword [0x41759c]
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
call dword [0x4175b4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
test eax, eax
je 0x4074e6
mov dword [esp], 0x413a4c
call sub.msvcrt.dll__strdup
call fcn.00402c10
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x40750f
mov dword [esp], 0x413a55
call sub.msvcrt.dll__strdup
call fcn.00402c10
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [esp], eax
call fcn.004097f0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [esp], eax
call fcn.004097f0
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x4075a4
lea esi, [esi]
mov eax, dword [ebx]
mov edx, dword [ebp + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call fcn.004097f0
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x407592
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 8]
test ebx, ebx
jne 0x407570
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
test eax, eax
je 0x4075b6
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
mov dword [esp], eax
call fcn.00405340
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x250]
test eax, eax
jle 0x4075fd
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
lea esi, [esi]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ebx*4 + 0x50]
add ebx, 1
mov dword [esp], eax
call esi
mov ecx, dword [ebp + 8]
sub esp, 4
cmp dword [ecx + 0x250], ebx
jg 0x4075e0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_free
lea esp, [ebp - 8]
mov eax, 1
pop ebx
pop esi
pop ebp
ret
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov edx, dword [ecx + 0x74]
mov dword [ecx + 0x358], eax
mov dword [ecx + 0x78], edx
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x24]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [0x417598]
jmp 0x407480