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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
xor ecx, ecx
push edi
xor ebx, ebx
xor esi, esi
mov edi, 0xc13
lea eax, [ecx + 0x7e]
mov dword [ebp - 0x14], edi
cmp dword [ebp + 0xc], ecx
je 0x402400
cmp dword [ebp + 0x10], ecx
jne 0x4021a9
cmp dword [ebp + 0x18], ecx
jne 0x4021a9
mov ecx, 0x111f
mov edx, 0x61
cmp eax, 0x61
cmovg eax, edx
dec ecx
jne 0x402197
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x13e
mov edi, edi
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021b0
mov ecx, 0x292d
lea ebx, [ebx]
mov eax, 0x828cbfbf
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021d0
mov ebx, 0xa4c
lea ebx, [ebx]
mov eax, 0x2c0b02c1
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4021f0
mov eax, dword [ebp + 0xc]
mov edx, 0x5a4d
mov ecx, dword [eax + 0x3c]
add ecx, eax
mov ebx, esi
cmp word [eax], dx
jne 0x40241a
cmp dword [ecx], 0x4550
jne 0x40241a
mov eax, dword [ecx + 0x7c]
mov dword [ebp - 8], eax
mov esi, 0x1c91
mov eax, 0x487ede05
imul esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402232
mov edi, 0x6698
lea ebx, [ebx]
mov eax, 0x2aaaaaab
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402250
cmp dword [ebp - 8], ebx
je 0x40241a
mov eax, dword [ecx + 0x78]
add eax, dword [ebp + 0xc]
mov edi, 0x20c3
mov dword [ebp - 4], eax
lea ebx, [ebx]
mov eax, 0x66666667
imul edi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402280
mov ecx, 0x1d8b
jmp 0x4022a0
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4022a0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
add ecx, dword [ebp + 0xc]
mov eax, dword [eax + 0x24]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
lea ebx, [ebx]
inc ebx
mov eax, 0x38e38e39
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x4022eb
inc ebx
cmp ebx, 0x4cbe
jl 0x4022d0
mov edi, 0x628a
jmp 0x402300
mov eax, 0xdbeb61f
imul edi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402300
inc esi
mov eax, 0x38e38e39
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x402330
add esi, 5
cmp esi, 0x176f
jl 0x402313
mov ebx, dword [ebp - 4]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x1c]
add eax, edx
mov dword [ebp - 4], eax
mov eax, 0xe3d
mov esi, 0xa3
mov ecx, 0xd7
cmp ecx, esi
cmovg ecx, esi
dec eax
jne 0x402355
mov ecx, dword [ebp + 0x10]
mov eax, ecx
shr eax, 0x10
test eax, eax
je 0x40241a
xor esi, esi
cmp dword [ebx + 0x18], esi
jbe 0x40241a
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + esi*4]
add eax, edx
push eax
push ecx
call fcn.00402c60
add esp, 8
test eax, eax
jne 0x4023a1
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
inc esi
cmp esi, dword [ebx + 0x18]
jb 0x402378
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov edi, 0x279c
movzx ecx, word [eax + esi*2]
lea ecx, [ecx]
mov eax, 0x94f2095
imul edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4023b0
mov edi, dword [ebp - 0x14]
mov eax, 0xae4c415d
imul edi
add edx, edi
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4023c6
mov eax, ecx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp + 0xc]
cmp ecx, ebx
jbe 0x4023f3
mov eax, dword [ebp - 8]
add eax, ebx
cmp ecx, eax
jb 0x40241a
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x40240f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x402412
inc ecx
cmp ecx, 0x5e5
jl 0x402400
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret