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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4212d2
sub esp, 0x48
mov eax, dword [esp + 0x4c]
test byte [eax], al
movzx ecx, byte [esp + 0x50]
test cl, cl
je 0x421025
lea ecx, [eax + 0x38]
mov dword [esp], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.00402280
jmp 0x421057
lea ecx, [eax + 0x50]
mov dword [esp], ecx
call fcn.00402260
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
add eax, 0x100000
adc ecx, 0
mov edx, dword [esp + 0x4c]
lea ebx, [edx + 0x38]
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call fcn.00402280
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.004020d0
mov eax, dword [esp + 4]
test eax, eax
jge 0x42107a
mov eax, 0xffffffff
mov ecx, 0xffffffff
jmp 0x42117d
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 0x68]
mov dword [esp], ecx
call fcn.00402260
mov eax, dword [esp + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x4c]
lea ebx, [edx + 0x78]
mov dword [esp], ebx
call fcn.00402260
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x20]
mov ebp, ecx
add ecx, ebx
mov esi, edx
add edx, ecx
mov dword [esp + 0x40], edx
mov edi, eax
mov eax, dword [esp + 0x30]
mul edx
mov edi, dword [edi + 0x84]
mov dword [esp + 0x3c], edi
add ebx, ebp
mov ebx, dword [esp + 0x2c]
adc ebx, edi
mov edi, dword [esp + 8]
add esi, ecx
adc ebx, edi
mov ecx, dword [esp + 0x30]
imul ebx, ecx
sar ecx, 0x1f
mov esi, dword [esp + 0x40]
imul ecx, esi
add ecx, edx
add ecx, ebx
mov edx, ecx
shr ecx, 1
mov ebx, eax
mov eax, ecx
mov esi, 0xa3d70a3e
mov ecx, edx
mul esi
shr edx, 5
mov dword [esp + 0x40], edx
imul eax, edx, 0x64
sub ecx, eax
mov eax, ecx
mov edi, 0x28f5c28
mul edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov edi, ebx
shr ebx, 1
mov eax, esi
mul ebx
shr edx, 5
mov eax, edx
add edx, 0
mov ebx, dword [esp + 0x40]
adc ebx, 0
mov ebp, dword [esp + 0x34]
add edx, ebp
mov ebp, dword [esp + 0x38]
adc ebx, ebp
imul eax, eax, 0x64
sub edi, eax
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, edi
shr eax, 1
mov ecx, edx
mul esi
shr edx, 5
add edx, ecx
adc ebx, 0
mov eax, dword [esp + 0x44]
add eax, edx
mov ecx, dword [esp + 0x3c]
adc ecx, ebx
mov edx, dword [esp + 0x4c]
mov ebx, dword [edx + 0x14]
cmp ecx, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [edx + 0x10]
cmp eax, edi
setb dl
and esi, edx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4211aa
mov edi, eax
mov ebx, ecx
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 0x30]
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
call fcn.00402280
mov eax, dword [esp + 0x4c]
lea ecx, [eax + 0x68]
mov dword [esp], ecx
call fcn.00402260
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x4c]
lea ebx, [edx + 0x78]
mov dword [esp], ebx
call fcn.00402260
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ebx, dword [esp + 4]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x24], ebp
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fe80000
mov dword [esp + 8], 0
call fcn.0044cdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 0xc], 0x3fd00000
mov dword [esp + 8], 0
call fcn.0044d210
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov ebx, dword [esp + 0x1c]
add ecx, ebx
mov ebx, dword [esp + 0x28]
adc edx, ebx
mov ebx, dword [esp + 0x18]
add ebx, ecx
mov ecx, dword [esp + 0x24]
adc edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x40], ebp
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0044eab0
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.0044cdd0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0044e9d0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x4c]
add edx, 0x18
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
call fcn.00402280
add esp, 0x48
ret
call fcn.004649b0
jmp fcn.00420fe0