Function at 0x1007f9c0
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 0x1007f9f3
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1007f9e0
sub eax, edx
add eax, edi
mov dword [esp + 0x70], eax
mov esi, eax
fld dword [ebx + 8]
fld dword [esp + 0x5c]
call fcn.10118910
mov dword [esp + 0x6c], eax
fiadd dword [esp + 0x6c]
fstp dword [esp + 0x5c]
fld dword [ebx + 0xc]
fld dword [esp + 0x60]
call fcn.10118910
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 0x10080031
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 0x1007fa70
mov bl, 1
mov byte [esp + 0x6c], bl
jmp 0x1007fa79
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 0x1007fae2
test bl, bl
jne 0x1007fae2
fld dword [ebp + 4]
fcompp
fnstsw ax
test ah, 0x41
jne 0x1007fae4
cmp edi, esi
jae 0x1007fae4
mov eax, esi
sub eax, edi
push eax
push 0xa
push edi
call fcn.101197e0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x1007fac0
add edi, 1
jmp 0x1007fac2
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 0x1007faa1
jmp 0x1007fae4
fstp st(0)
mov ecx, esi
sub ecx, edi
cmp ecx, 0x2710
jle 0x1007fb53
test bl, bl
jne 0x1007fb53
fld dword [esp + 0x10]
mov ecx, edi
fst dword [esp + 0x70]
fld dword [ebp + 0xc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x1007fb4d
lea ebx, [ebx]
cmp ecx, esi
jae 0x1007fb4d
mov edx, esi
sub edx, ecx
push edx
push 0xa
push ecx
call fcn.101197e0
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x1007fb2f
add ecx, 1
jmp 0x1007fb31
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 0x1007fb10
mov dword [esp + 0x70], ecx
mov esi, ecx
cmp edi, esi
je 0x10080033
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.1007d1c0
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 0x1007ff90
fld dword [esp + 0x58]
cmp byte [esp + 0x6c], 0
je 0x1007fc36
cmp dword [esp + 0x18], 0
jne 0x1007fbe9
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.10079740
fld dword [esp + 0x58]
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x1007fbe9
add eax, 1
mov dword [esp + 0x18], eax
cmp edi, dword [esp + 0x18]
jb 0x1007fc36
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 0x1007ff8e
mov al, byte [edi]
cmp al, 0x20
je 0x1007fc21
cmp al, 9
jne 0x1007fc26
add edi, 1
jmp 0x1007fc0f
cmp al, 0xa
jne 0x1007ff82
add edi, 1
jmp 0x1007ff82
movsx ebx, byte [edi]
cmp ebx, 0x80
mov dword [esp + 0x40], ebx
jae 0x1007fc4a
add edi, 1
jmp 0x1007fc6d
mov edx, dword [esp + 0x70]
fstp st(0)
push edx
lea eax, [esp + 0x44]
push edi
push eax
call fcn.1003ea50
mov ebx, dword [esp + 0x4c]
add esp, 0xc
add edi, eax
test ebx, ebx
je 0x1007fca5
fld dword [esp + 0x58]
cmp ebx, 0x20
jae 0x1007fcb7
cmp ebx, 0xa
jne 0x1007fcae
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 0x1007ff7e
fstp st(0)
mov ebx, dword [esp + 0x54]
jmp 0x1007ff90
cmp ebx, 0xd
je 0x1007ff7e
fldz
mov ecx, dword [esp + 0x44]
push ebx
fstp dword [esp + 0x40]
call fcn.100796e0
mov ecx, eax
test ecx, ecx
je 0x1007ff72
cmp ebx, 0x20
fld dword [ecx + 4]
fmul st(1)
fstp dword [esp + 0x3c]
je 0x1007ff72
cmp ebx, 9
je 0x1007ff72
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 0x1007ff70
fld dword [esp + 0x28]
fld dword [edx]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1007ff6e
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 0x1007feb1
fstp st(2)
fld dword [edx]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x38]
test ah, 0x41
jne 0x1007fdbb
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 0x1007fe03
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 0x1007fead
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 0x1007fe7d
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 0x1007ff65
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 0x1007ff7e
fstp st(3)
jmp 0x1007fe43
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 0x1007ff72
fld dword [esp + 0x58]
jmp 0x1007fecd
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 0x1007fb9b
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 0x1007ffd0
test ecx, ecx
je 0x1007ffbc
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1007ffc1
mov eax, 8
cmp eax, edi
jg 0x1007ffc7
mov eax, edi
push eax
lea ecx, [ebx + 0x18]
call fcn.1007a3f0
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 0x10080004
test ecx, ecx
je 0x1007fff0
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1007fff5
mov eax, 8
cmp eax, edi
jg 0x1007fffb
mov eax, edi
push eax
lea ecx, [ebx + 0xc]
call fcn.100439a0
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