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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [ebp + 0x20]
push ebx
push esi
cmp eax, 8
push edi
je 0x42089d
cmp eax, 0x18
jne 0x42106c
mov esi, dword [ebp + 0x24]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x28]
xor ebx, ebx
mov dword [esp + 0x20], eax
cmp esi, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ecx
jg 0x4208c7
cmp edi, eax
je 0x4209ad
fild dword [ebp + 0x14]
fstp dword [esp + 0x48]
fild dword [ebp + 0x1c]
fstp dword [esp + 0x44]
fld dword [esp + 0x48]
fdiv dword [esp + 0x44]
fstp dword [esp + 0x38]
fild dword [ebp + 0x24]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul dword [esp + 0x38]
call fcn.004d6118
fild dword [ebp + 0x28]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul dword [esp + 0x38]
call fcn.004d6118
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
cmp eax, ebx
jge 0x42091e
mov dword [esp + 0x34], ebx
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x30]
cmp eax, ecx
jle 0x42092d
mov dword [esp + 0x30], ecx
fld dword [esp + 0x38]
fcomp dword [0x5527ac]
fnstsw ax
test ah, 5
jp 0x420969
cmp ecx, 0x64
jle 0x42098a
mov ecx, edi
mov eax, 0x66666667
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0x19
mov eax, edx
jg 0x420963
mov eax, 0x19
sub esi, eax
add eax, edi
jmp 0x42096f
add esi, 0xfffffffb
lea eax, [edi + 5]
cmp esi, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jge 0x42097f
mov dword [esp + 0x18], ebx
mov ecx, dword [ebp + 0x1c]
cmp eax, ecx
jle 0x42098a
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov dword [esp + 0x28], eax
jge 0x42099a
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
mov dword [esp + 0x2c], eax
jle 0x4209ad
mov dword [esp + 0x2c], ecx
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 0x20]
imul eax, esi
add eax, 0x1f
mov edi, dword [ebp + 0x10]
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
mov eax, edi
imul eax, esi
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar ecx, 5
sar eax, 5
shl ecx, 2
shl eax, 2
cmp ecx, ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
jle 0x42106c
cmp eax, ebx
jle 0x42106c
mov eax, esi
push 1
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, dword [ebp + 0x1c]
push eax
call fcn.004d61b4
add esp, 8
cmp eax, ebx
mov dword [esp + 0x30], eax
je 0x42106c
cmp esi, 0x18
jne 0x420e64
cmp edi, ebx
jbe 0x421053
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], ebx
lea edx, [ecx + eax*2]
mov ecx, edi
add eax, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
cmp ecx, eax
mov dword [esp + 0x24], edx
jae 0x420c47
mov esi, dword [esp + 0x34]
mov edi, dword [ebp + 0xc]
imul esi, ecx
add esi, edi
sub eax, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
mov edi, dword [eax]
cmp edi, ebx
jle 0x420b54
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x1c], edx
xor edx, edx
lea eax, [eax + eax*2]
add ecx, 8
mov dl, byte [esi + eax]
inc eax
mov dword [esp + 0x50], edx
xor edx, edx
fild dword [esp + 0x50]
mov dl, byte [esi + eax]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
mov dword [esp + 0x50], edx
xor edx, edx
mov dl, byte [esi + eax + 1]
dec edi
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
fild dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
mov dword [esp + 0x50], edx
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
jne 0x420aa1
fld dword [esp + 0xc]
fcomp dword [0x552710]
fnstsw ax
test ah, 5
jp 0x420b33
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
jmp 0x420b62
fld dword [esp + 0xc]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420b54
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], 0x406fe000
jmp 0x420b62
fld dword [esp + 0xc]
fadd qword [0x5526c8]
fstp qword [esp + 0x58]
fld qword [esp + 0x58]
call fcn.004d6118
fld dword [esp + 0x10]
fcomp dword [0x552710]
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
inc ecx
fnstsw ax
mov dword [esp + 0x24], ecx
test ah, 5
jp 0x420b91
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
jmp 0x420bc0
fld dword [esp + 0x10]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420bb2
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], 0x406fe000
jmp 0x420bc0
fld dword [esp + 0x10]
fadd qword [0x5526c8]
fstp qword [esp + 0x60]
fld qword [esp + 0x60]
call fcn.004d6118
fld dword [esp + 0x14]
fcomp dword [0x552710]
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
inc ecx
fnstsw ax
mov dword [esp + 0x24], ecx
test ah, 5
jp 0x420bef
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
jmp 0x420c1e
fld dword [esp + 0x14]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420c10
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0x406fe000
jmp 0x420c1e
fld dword [esp + 0x14]
fadd qword [0x5526c8]
fstp qword [esp + 0x68]
fld qword [esp + 0x68]
call fcn.004d6118
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
mov eax, dword [esp + 0x44]
inc ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x34]
add esi, ecx
dec eax
mov dword [esp + 0x44], eax
jne 0x420a84
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp edi, eax
jae 0x420e3a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
add ecx, eax
lea eax, [ecx + edx + 1]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebx
mov esi, dword [eax + edi*8]
cmp esi, ebx
jle 0x420d40
mov ecx, dword [eax + edi*8 + 4]
mov eax, dword [ecx]
mov edx, dword [esp + 0x30]
add ecx, 8
lea edx, [edx + eax*2]
add eax, edx
mov edx, dword [ecx - 4]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dl, byte [eax]
inc eax
mov dword [esp + 0x50], edx
xor edx, edx
fild dword [esp + 0x50]
mov dl, byte [eax]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
mov dword [esp + 0x50], edx
xor edx, edx
mov dl, byte [eax + 1]
dec esi
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
fild dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
mov dword [esp + 0x50], edx
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x1c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
jne 0x420c8a
fld dword [esp + 0xc]
fcomp dword [0x552710]
fnstsw ax
test ah, 5
jp 0x420d1f
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
jmp 0x420d4e
fld dword [esp + 0xc]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420d40
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0x406fe000
jmp 0x420d4e
fld dword [esp + 0xc]
fadd qword [0x5526c8]
fstp qword [esp + 0x70]
fld qword [esp + 0x70]
call fcn.004d6118
fld dword [esp + 0x10]
fcomp dword [0x552710]
mov ecx, dword [esp + 0x24]
mov byte [ecx - 1], al
fnstsw ax
test ah, 5
jp 0x420d79
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
jmp 0x420da8
fld dword [esp + 0x10]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420d9a
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0x406fe000
jmp 0x420da8
fld dword [esp + 0x10]
fadd qword [0x5526c8]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
call fcn.004d6118
fld dword [esp + 0x14]
fcomp dword [0x552710]
mov edx, dword [esp + 0x24]
mov byte [edx], al
fnstsw ax
test ah, 5
jp 0x420dd8
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
jmp 0x420e10
fld dword [esp + 0x14]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420dff
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], 0x406fe000
jmp 0x420e10
fld dword [esp + 0x14]
fadd qword [0x5526c8]
fstp qword [esp + 0x80]
fld qword [esp + 0x80]
call fcn.004d6118
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
inc edi
mov byte [ecx + 1], al
mov eax, dword [esp + 0x2c]
add ecx, edx
cmp edi, eax
mov dword [esp + 0x24], ecx
jb 0x420c6c
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
add edx, 3
add ecx, 8
dec eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], eax
jne 0x420a5a
jmp 0x421053
cmp edi, ebx
mov dword [esp + 0x40], ebx
jbe 0x421053
mov eax, dword [esp + 0x38]
imul eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp edi, eax
jae 0x420f61
mov esi, dword [esp + 0x34]
mov eax, dword [ebp + 0xc]
imul esi, edi
add esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
mov ecx, dword [eax]
cmp ecx, ebx
jle 0x420f27
mov eax, dword [eax + 4]
mov edx, dword [eax]
xor ebx, ebx
add eax, 8
dec ecx
mov bl, byte [esi + edx]
mov dword [esp + 0x54], ebx
fild dword [esp + 0x54]
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
fmul dword [eax - 4]
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
jne 0x420eb1
fld dword [esp + 0xc]
fcomp dword [0x552710]
fnstsw ax
test ah, 5
jp 0x420efc
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
jmp 0x420f38
fld dword [esp + 0xc]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x420f27
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x406fe000
jmp 0x420f38
fld dword [esp + 0xc]
fadd qword [0x5526c8]
fstp qword [esp + 0x80]
fld qword [esp + 0x80]
call fcn.004d6118
mov ecx, dword [esp + 0x30]
inc edi
xor ebx, ebx
mov byte [edi + ecx - 1], al
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
add esi, ecx
cmp edi, eax
jb 0x420ea0
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp esi, eax
jae 0x421034
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 8]
add eax, edx
add eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0xc], ebx
mov ecx, dword [eax + esi*8]
cmp ecx, ebx
jle 0x421000
mov eax, dword [eax + esi*8 + 4]
mov edi, dword [esp + 0x30]
mov edx, dword [eax]
xor ebx, ebx
add eax, 8
dec ecx
mov bl, byte [edx + edi]
mov dword [esp + 0x54], ebx
fild dword [esp + 0x54]
fstp dword [esp + 0x54]
fld dword [esp + 0x54]
fmul dword [eax - 4]
fadd dword [esp + 0xc]
fstp dword [esp + 0xc]
jne 0x420f9a
fld dword [esp + 0xc]
fcomp dword [0x552710]
xor ebx, ebx
fnstsw ax
test ah, 5
jp 0x420fdf
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
jmp 0x42100e
fld dword [esp + 0xc]
fcomp dword [0x5526c0]
fnstsw ax
and eax, 0x4100
jne 0x421000
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0x406fe000
jmp 0x42100e
fld dword [esp + 0xc]
fadd qword [0x5526c8]
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
call fcn.004d6118
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
inc esi
mov byte [ecx], al
mov eax, dword [esp + 0x2c]
add ecx, edx
cmp esi, eax
mov dword [esp + 0x48], ecx
jb 0x420f84
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x10]
inc eax
add edx, 8
cmp eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], edx
jb 0x420e84
mov eax, dword [esp + 0x30]
push eax
call fcn.004d59c1
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret