Function at 0x4012e0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x120
mov eax, dword [0x420160]
xor eax, esp
mov dword [esp + 0x11c], eax
mov eax, dword [section..data]
mov ecx, dword [esp + 0x124]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
push ebx
push ebp
push esi
push edi
test eax, eax
je 0x40153f
xor eax, eax
mov ebx, 0x5a4d
mov eax, dword [eax + 0x420004]
mov esi, 0x35
push 0x40
push ecx
mov dword [esp + 0x20], eax
call dword [0x420c50]
test eax, eax
je 0x401345
push 0x3d
jmp 0x401506
mov eax, dword [esp + 0x10]
cmp word [eax], bx
je 0x401355
push 0x44
jmp 0x401506
mov edi, dword [eax + 0x3c]
add edi, eax
push 0xf8
push edi
call dword [0x420c50]
test eax, eax
jne 0x401504
cmp dword [edi], 0x4550
jne 0x401504
mov eax, dword [edi + 0x78]
test eax, eax
jne 0x401388
push 0x58
jmp 0x401506
mov ecx, dword [esp + 0x10]
mov esi, dword [eax + ecx + 0x1c]
lea edx, [eax + ecx]
mov ebx, dword [edx + 0x20]
add esi, ecx
mov ebp, dword [edx + 0x24]
add ebx, ecx
mov edi, dword [edi + 0x7c]
add ebp, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], esi
jne 0x4013d7
mov eax, dword [edx + 0x10]
neg eax
cmp eax, dword [edx + 0x14]
jb 0x4013cf
push 0x69
push 0x12
call fcn.00402ca0
mov esi, eax
jmp 0x40150d
mov eax, dword [esi + eax*4]
jmp 0x40145c
mov edi, dword [edx + 0x18]
test edi, edi
je 0x401431
nop
mov esi, edi
shr esi, 1
mov eax, dword [ebx + esi*4]
add eax, ecx
mov ecx, dword [esp + 0x14]
nop dword [eax]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x401410
test dl, dl
je 0x40140c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x401410
add ecx, 2
add eax, 2
test dl, dl
jne 0x4013f0
xor eax, eax
jmp 0x401415
sbb eax, eax
or eax, 1
test eax, eax
je 0x401444
jle 0x401427
inc esi
sub edi, esi
lea ebx, [ebx + esi*4]
lea ebp, [ebp + esi*2]
jmp 0x401429
mov edi, esi
mov ecx, dword [esp + 0x10]
test edi, edi
jne 0x4013e0
push 0xa1
push 0x10
call fcn.00402ca0
mov esi, eax
jmp 0x40150d
mov ecx, dword [esp + 0x20]
movzx eax, word [ebp + esi*2]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x10]
lea esi, [eax + ecx]
cmp esi, edx
jb 0x4014fc
lea eax, [edx + edi]
cmp esi, eax
ja 0x4014fc
push 0x2e
push esi
call fcn.00404dd0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x401493
push 0x83
push 0x1b
call fcn.00402ca0
mov esi, eax
jmp 0x40150d
mov edi, ebx
sub edi, esi
cmp edi, 0xff
jb 0x4014af
push 0x89
push 0x16
call fcn.00402ca0
mov esi, eax
jmp 0x40150d
push edi
lea eax, [esp + 0x30]
push esi
push eax
call fcn.004046f0
add esp, 0xc
mov byte [esp + edi + 0x2c], 0
lea eax, [esp + 0x2c]
push eax
call dword [0x420c40]
mov ecx, eax
test ecx, ecx
jne 0x4014e4
push 0x91
push 0x12
call fcn.00402ca0
mov esi, eax
jmp 0x40150d
mov eax, dword [esp + 0x18]
push eax
push 0
lea eax, [ebx + 1]
push eax
push ecx
call fcn.00401a20
add esp, 0x10
mov esi, eax
jmp 0x401510
mov eax, dword [esp + 0x18]
mov dword [eax], esi
jmp 0x401518
push 0x4f
push 0x35
call fcn.00402ca0
add esp, 8
test esi, esi
jne 0x40155a
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
inc ebp
mov dword [esp + 0x1c], ebp
lea eax, [ebp*8]
mov ebx, dword [eax + section..data]
test ebx, ebx
mov dword [esp + 0x14], ebx
mov ebx, 0x5a4d
jne 0x401322
xor eax, eax
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00403b83
add esp, 0x120
ret
mov eax, esi
jmp 0x401541