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

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6c]
test esi, esi
mov ebx, ecx
push edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x44], ebx
jne 0x10080923
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10080910
sub eax, edx
add eax, edi
mov dword [esp + 0x70], eax
mov esi, eax
fld dword [ebx + 8]
fld dword [esp + 0x5c]
call fcn.10119fe0
mov dword [esp + 0x6c], eax
fiadd dword [esp + 0x6c]
fstp dword [esp + 0x5c]
fld dword [ebx + 0xc]
fld dword [esp + 0x60]
call fcn.10119fe0
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
fiadd dword [esp + 0x6c]
fstp dword [esp + 0x60]
fld dword [esp + 0x5c]
fstp dword [esp + 0x14]
fld dword [esp + 0x60]
fst dword [esp + 0x10]
fld dword [ebp + 0xc]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x10080f61
fld dword [esp + 0x58]
fdiv dword [ebx]
fstp dword [esp + 0x58]
fld dword [ebx]
fmul dword [esp + 0x58]
fstp dword [esp + 0x1c]
fldz
fcomp dword [esp + 0x74]
fnstsw ax
test ah, 5
jp 0x100809a0
mov bl, 1
mov byte [esp + 0x6c], bl
jmp 0x100809a9
mov byte [esp + 0x6c], 0
mov bl, byte [esp + 0x6c]
fadd dword [esp + 0x1c]
mov dword [esp + 0x18], 0
fld dword [ebp + 4]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10080a12
test bl, bl
jne 0x10080a12
fld dword [ebp + 4]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10080a14
cmp edi, esi
jae 0x10080a14
mov eax, esi
sub eax, edi
push eax
push 0xa
push edi
call fcn.1011aff0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100809f0
add edi, 1
jmp 0x100809f2
mov edi, esi
fld dword [esp + 0x1c]
fld st(0)
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fadd dword [esp + 0x10]
fld dword [ebp + 4]
fcompp
fnstsw ax
test ah, 0x41
je 0x100809d1
jmp 0x10080a14
fstp st(0)
mov ecx, esi
sub ecx, edi
cmp ecx, 0x2710
jle 0x10080a83
test bl, bl
jne 0x10080a83
fld dword [esp + 0x10]
mov ecx, edi
fst dword [esp + 0x70]
fld dword [ebp + 0xc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10080a7d
lea ebx, [ebx]
cmp ecx, esi
jae 0x10080a7d
mov edx, esi
sub edx, ecx
push edx
push 0xa
push ecx
call fcn.1011aff0
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x10080a5f
add ecx, 1
jmp 0x10080a61
mov ecx, esi
fld dword [esp + 0x70]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fld dword [ebp + 0xc]
fcompp
fnstsw ax
test ah, 0x41
je 0x10080a40
mov dword [esp + 0x70], ecx
mov esi, ecx
cmp edi, esi
je 0x10080f63
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + 0xc]
mov eax, esi
sub eax, edi
lea ecx, [eax + eax*2]
add eax, eax
add ecx, ecx
add eax, eax
push eax
add edx, ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x54], edx
call fcn.1007e0f0
mov eax, dword [esp + 0x70]
cmp edi, eax
mov ecx, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
mov ebp, dword [ebx + 0x38]
mov dword [esp + 0x48], ecx
jae 0x10080ec0
fld dword [esp + 0x58]
cmp byte [esp + 0x6c], 0
je 0x10080b66
cmp dword [esp + 0x18], 0
jne 0x10080b19
fld dword [esp + 0x74]
push ecx
fld dword [esp + 0x18]
fsub dword [esp + 0x60]
fsubp st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x54]
fstp dword [esp]
call fcn.1007a670
fld dword [esp + 0x58]
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x10080b19
add eax, 1
mov dword [esp + 0x18], eax
cmp edi, dword [esp + 0x18]
jb 0x10080b66
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
fstp dword [esp + 0x14]
mov dword [esp + 0x18], 0
fld dword [esp + 0x1c]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
cmp edi, ecx
jae 0x10080ebe
mov al, byte [edi]
cmp al, 0x20
je 0x10080b51
cmp al, 9
jne 0x10080b56
add edi, 1
jmp 0x10080b3f
cmp al, 0xa
jne 0x10080eb2
add edi, 1
jmp 0x10080eb2
movsx ebx, byte [edi]
cmp ebx, 0x80
mov dword [esp + 0x40], ebx
jae 0x10080b7a
add edi, 1
jmp 0x10080b9d
mov edx, dword [esp + 0x70]
fstp st(0)
push edx
lea eax, [esp + 0x44]
push edi
push eax
call fcn.1003f980
mov ebx, dword [esp + 0x4c]
add esp, 0xc
add edi, eax
test ebx, ebx
je 0x10080bd5
fld dword [esp + 0x58]
cmp ebx, 0x20
jae 0x10080be7
cmp ebx, 0xa
jne 0x10080bde
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x68]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [ecx + 0xc]
fcompp
fnstsw ax
test ah, 5
jp 0x10080eae
fstp st(0)
mov ebx, dword [esp + 0x54]
jmp 0x10080ec0
cmp ebx, 0xd
je 0x10080eae
fldz
mov ecx, dword [esp + 0x44]
push ebx
fstp dword [esp + 0x40]
call fcn.1007a610
mov ecx, eax
test ecx, ecx
je 0x10080ea2
cmp ebx, 0x20
fld dword [ecx + 4]
fmul st(1)
fstp dword [esp + 0x3c]
je 0x10080ea2
cmp ebx, 9
je 0x10080ea2
fld dword [ecx + 8]
mov edx, dword [esp + 0x68]
fmul st(1)
fld dword [esp + 0x14]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [ecx + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x28]
fld dword [ecx + 0xc]
fmul st(1)
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [ecx + 0x14]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x34]
fld dword [edx + 8]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10080ea0
fld dword [esp + 0x28]
fld dword [edx]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10080e9e
cmp byte [esp + 0x78], 0
fld dword [ecx + 0x18]
fstp dword [esp + 0x28]
fld dword [ecx + 0x1c]
fstp dword [esp + 0x2c]
fld dword [ecx + 0x20]
fstp dword [esp + 0x38]
fld dword [ecx + 0x24]
fstp dword [esp + 0x30]
je 0x10080de1
fstp st(2)
fld dword [edx]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x38]
test ah, 0x41
jne 0x10080ceb
fld st(2)
fsub dword [edx]
fld st(3)
fsubrp st(3)
fdivrp st(2)
fld1
fsubrp st(2)
fld st(0)
fld dword [esp + 0x28]
fld st(0)
fsubp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [edx]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fxch st(1)
fld dword [esp + 0x20]
fld dword [edx + 4]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x24]
test ah, 0x41
jne 0x10080d33
fld st(0)
fsub dword [edx + 4]
fld st(1)
fsubrp st(3)
fdivrp st(2)
fld1
fsubrp st(2)
fld dword [esp + 0x30]
fld dword [esp + 0x2c]
fld st(0)
fsubp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [edx + 4]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fxch st(1)
fld dword [edx + 8]
fcomp st(5)
fnstsw ax
fld dword [esp + 0x28]
test ah, 5
jp 0x10080ddd
fld dword [edx + 8]
fsub st(5)
fld st(5)
fsubp st(7)
fdivrp st(6)
fld st(0)
fsubp st(4)
fxch st(5)
fmulp st(3)
fld st(4)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x38]
fld dword [edx + 8]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fxch st(4)
fxch st(2)
fld dword [edx + 0xc]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x2c]
test ah, 5
jp 0x10080dad
fld dword [edx + 0xc]
fsub st(3)
fld st(3)
fsubp st(3)
fdivrp st(2)
fld dword [esp + 0x30]
fsub st(1)
fmulp st(2)
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [edx + 0xc]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fxch st(1)
fxch st(2)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x10080e95
fstp st(1)
fstp st(0)
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
fld dword [esp + 0x3c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x58]
jmp 0x10080eae
fstp st(3)
jmp 0x10080d73
fld dword [esp + 0x20]
fld dword [esp + 0x24]
fld dword [esp + 0x28]
fld dword [esp + 0x2c]
fxch st(4)
fxch st(6)
fxch st(1)
fxch st(4)
fxch st(3)
fxch st(1)
mov edx, dword [esp + 0x48]
fxch st(5)
movzx eax, dx
mov word [ebp], ax
mov word [ebp + 6], ax
lea ecx, [eax + 1]
mov word [ebp + 2], cx
lea ecx, [eax + 2]
mov word [ebp + 4], cx
mov word [ebp + 8], cx
add eax, 3
mov word [ebp + 0xa], ax
mov eax, dword [esp + 0x64]
fst dword [esi]
add edx, 4
fxch st(1)
mov dword [esi + 0x10], eax
fst dword [esi + 4]
mov dword [esi + 0x24], eax
fxch st(4)
mov dword [esi + 0x38], eax
fst dword [esi + 8]
mov dword [esi + 0x4c], eax
fxch st(3)
add esi, 0x50
fst dword [esi - 0x44]
mov dword [esp + 0x48], edx
fxch st(6)
add ebp, 0xc
fst dword [esi - 0x3c]
fxch st(4)
fstp dword [esi - 0x38]
fld dword [esp + 0x38]
fst dword [esi - 0x34]
fxch st(6)
fstp dword [esi - 0x30]
fxch st(3)
fstp dword [esi - 0x28]
fst dword [esi - 0x24]
fxch st(4)
fstp dword [esi - 0x20]
fld dword [esp + 0x30]
fst dword [esi - 0x1c]
fxch st(2)
fstp dword [esi - 0x14]
fxch st(3)
fstp dword [esi - 0x10]
fxch st(2)
fstp dword [esi - 0xc]
fxch st(1)
fstp dword [esi - 8]
jmp 0x10080ea2
fld dword [esp + 0x58]
jmp 0x10080dfd
fstp st(1)
fstp st(0)
fld dword [esp + 0x3c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x70]
cmp edi, eax
jb 0x10080acb
fstp st(0)
mov ecx, esi
sub ecx, dword [ebx + 0x20]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebx + 0x1c]
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ecx
jle 0x10080f00
test ecx, ecx
je 0x10080eec
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10080ef1
mov eax, 8
cmp eax, edi
jg 0x10080ef7
mov eax, edi
push eax
lea ecx, [ebx + 0x18]
call fcn.1007b320
mov dword [ebx + 0x18], edi
mov ecx, dword [ebx + 0x10]
mov edi, ebp
sub edi, dword [ebx + 0x14]
sar edi, 1
cmp edi, ecx
jle 0x10080f34
test ecx, ecx
je 0x10080f20
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10080f25
mov eax, 8
cmp eax, edi
jg 0x10080f2b
mov eax, edi
push eax
lea ecx, [ebx + 0xc]
call fcn.100448d0
mov dword [ebx + 0xc], edi
mov edx, dword [ebx]
mov eax, dword [ebx + 8]
shl edx, 5
mov ecx, edi
sub ecx, dword [esp + 0x4c]
lea eax, [edx + eax - 0x20]
add dword [eax], ecx
mov edx, dword [ebx + 0x18]
pop edi
mov dword [ebx + 0x34], esi
pop esi
mov dword [ebx + 0x38], ebp
pop ebp
mov dword [ebx + 0x30], edx
pop ebx
add esp, 0x40
ret 0x28
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x28