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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
fld dword [ebp + 0xc]
push ebx
push esi
fld st(0)
push edi
mov ebx, ecx
call fcn.1007d560
fldz
fcom st(1)
mov edi, eax
mov dword [esp + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x1009a1a3
sub edi, 1
mov dword [esp + 0x40], edi
fld dword [ebp + 0x10]
fld st(0)
call fcn.1007d560
fcom st(1)
mov esi, eax
mov dword [esp + 0x28], eax
fnstsw ax
fstp st(1)
test ah, 5
jp 0x1009a1c5
sub esi, 1
mov dword [esp + 0x28], esi
mov eax, dword [ebp + 0x14]
add eax, 0xffffffff
cmp eax, 0x11
ja case.0x1009a1db.1
movzx eax, byte [eax + 0x1009c00c]
jmp dword [eax*4 + 0x1009bffc]
mov ecx, dword [ebp + 0x1c]
fld qword [0x10108880]
mov edx, dword [ebp + 0x18]
fadd st(1), st(0)
push ecx
fxch st(1)
push edx
call fcn.1007d560
faddp st(1)
push eax
call fcn.1007d560
mov esi, dword [ebp + 8]
push eax
push esi
mov ecx, ebx
call fcn.10099400
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
lea eax, [edi + 2]
test eax, eax
mov eax, dword [ebp + 0x18]
jl 0x1009a239
add edi, 0xffffffff
cmp edi, dword [ebx + 0xc]
jge 0x1009a239
lea ecx, [esi + 2]
test ecx, ecx
jl 0x1009a239
lea edx, [esi - 1]
cmp edx, dword [ebx + 0x10]
jl 0x1009a297
test eax, eax
fstp st(0)
fstp st(0)
jle 0x1009a24f
cmp eax, 3
jg 0x1009a24f
mov ecx, dword [ebp + 0x1c]
push ecx
jmp 0x1009ba6f
push eax
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp + 0xc]
push eax
mov ecx, ebx
call fcn.100991b0
fld dword [ebp + 0xc]
fld st(0)
call fcn.1007d560
fldz
fcom st(1)
mov dword [esp + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x1009a27d
sub dword [esp + 0x40], 1
fld dword [ebp + 0x10]
fld st(0)
call fcn.1007d560
fcom st(1)
mov esi, eax
fnstsw ax
fstp st(1)
test ah, 5
jp 0x1009a297
sub esi, 1
mov eax, dword [ebp + 0x14]
add eax, 0xfffffffd
cmp eax, 0xf
ja case.0x1009a2a6.6
jmp dword [eax*4 + 0x1009c020]
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.100996a0
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.100996a0
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a2ce
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
fld dword [0x101089e0]
sub esp, 8
fstp dword [esp + 4]
lea eax, [edx + edi]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fsub qword [esp + 0x58]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp]
call fcn.10099730
fstp dword [esp + ecx + 0x7c]
fld dword [0x101089e0]
fstp dword [esp + 4]
fild dword [esp + 0x14]
fsub qword [esp + 0x50]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp]
call fcn.10099730
fstp dword [esp + ecx + 0x6c]
add edx, 1
add esp, 8
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a348
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.100995b0
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.100995b0
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a3d8
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.10099880
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.10099880
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a452
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.100998b0
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.100998b0
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a4cc
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.100999b0
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.100999b0
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a546
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099a40
fstp dword [esp + edi + 0x78]
fild dword [esp + 0x2c]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099a40
mov eax, 1
fstp dword [esp + edi + 0x68]
add dword [esp + 0x2c], eax
add esp, 4
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a5c4
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099a90
fstp dword [esp + edi + 0x78]
fild dword [esp + 0x2c]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099a90
mov eax, 1
fstp dword [esp + edi + 0x68]
add dword [esp + 0x2c], eax
add esp, 4
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a64a
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099e10
fstp dword [esp + edi + 0x78]
fild dword [esp + 0x2c]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099e10
mov eax, 1
fstp dword [esp + edi + 0x68]
add dword [esp + 0x2c], eax
add esp, 4
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a6d0
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099e60
fstp dword [esp + edi + 0x78]
fild dword [esp + 0x2c]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099e60
mov eax, 1
fstp dword [esp + edi + 0x68]
add dword [esp + 0x2c], eax
add esp, 4
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a756
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.10099ea0
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.10099ea0
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a7d8
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.10099f30
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.10099f30
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a852
jmp 0x1009aa48
mov edi, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
lea edx, [esi - 1]
xor ecx, ecx
fstp qword [esp + 0x48]
mov dword [esp + 0xc], edx
sub edi, esi
mov dword [esp + 0x24], 4
lea eax, [edi + edx]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.1009a020
fstp dword [esp + ecx + 0x78]
fild dword [esp + 0x10]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.1009a020
fstp dword [esp + ecx + 0x68]
add edx, 1
add esp, 4
add ecx, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0xc], edx
jne 0x1009a8cc
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
add edx, eax
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
push ecx
fsub qword [esp + 0x54]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099930
fstp dword [esp + edi + 0x78]
fild dword [esp + 0x2c]
fsub qword [esp + 0x4c]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.10099930
mov eax, 1
fstp dword [esp + edi + 0x68]
add dword [esp + 0x2c], eax
add esp, 4
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a94a
jmp 0x1009aa48
mov eax, dword [esp + 0x40]
fxch st(1)
fstp qword [esp + 0x50]
xor edi, edi
lea ecx, [esi - 1]
sub eax, esi
fstp qword [esp + 0x48]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 4
mov eax, dword [esp + 0x28]
fld dword [0x101089f8]
mov edx, dword [esp + 0x38]
sub esp, 8
fstp dword [esp + 4]
add edx, eax
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fsub qword [esp + 0x58]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.1009a120
fstp dword [esp + edi + 0x7c]
fld dword [0x101089f8]
fstp dword [esp + 4]
fild dword [esp + 0x30]
fsub qword [esp + 0x50]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.1009a120
mov eax, 1
fstp dword [esp + edi + 0x6c]
add dword [esp + 0x30], eax
add esp, 8
add edi, 4
sub dword [esp + 0xc], eax
jne 0x1009a9d0
jmp 0x1009aa48
fstp st(0)
fstp st(0)
fldz
mov edi, dword [esp + 0x40]
fst dword [esp + 0x38]
lea ecx, [edi + 2]
cmp ecx, dword [ebx + 0xc]
fst dword [esp + 0x2c]
fst dword [esp + 0x30]
fstp dword [esp + 0x1c]
jge 0x1009ae4b
cmp edi, 1
jl 0x1009ae4b
lea edx, [esi + 2]
cmp edx, dword [ebx + 0x10]
jge 0x1009ae4b
cmp esi, 1
jl 0x1009ae4b
mov ecx, ebx
call fcn.10098190
test al, al
jne 0x1009ae4b
lea eax, [esi + 3]
lea edi, [esi - 1]
cmp edi, eax
mov dword [esp + 0x24], eax
jge 0x1009af58
fld dword [esp + 0x74]
mov eax, dword [esp + 0x40]
fstp qword [esp + 0x58]
add eax, 0xffffffff
fld dword [esp + 0x78]
mov ecx, edi
fstp qword [esp + 0x48]
sub ecx, esi
fld dword [esp + 0x7c]
lea edx, [esp + ecx*4 + 0x68]
fstp qword [esp + 0x10]
mov dword [esp + 0x34], eax
fld dword [esp + 0x80]
mov dword [esp + 0x28], edx
fstp qword [esp + 0x40]
mov eax, dword [esp + 0x34]
push edi
push eax
mov ecx, ebx
call fcn.10099010
mov ecx, dword [esp + 0x28]
fld dword [ecx]
mov ecx, ebx
fstp dword [esp + 0x20]
mov esi, eax
call fcn.10098430
test al, al
je 0x1009acd6
mov edx, dword [esp + 0x34]
push edi
push edx
mov ecx, ebx
call fcn.10098570
fld dword [esp + 0x20]
movzx ecx, byte [esi]
fld qword [esp + 0x58]
fmul st(1)
movzx edx, byte [esi + 1]
fstp dword [esp + 0x20]
mov dword [esp + 0xc], ecx
fld dword [esp + 0x20]
add esi, 1
fild dword [esp + 0xc]
movzx ecx, byte [esi + 1]
fmul st(1)
mov dword [esp + 0xc], edx
movzx edx, byte [eax]
fadd dword [esp + 0x2c]
add esi, 1
add esi, 1
fstp dword [esp + 0x2c]
add esi, 1
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi - 1]
fmul st(1)
add esi, 1
add eax, 1
fadd dword [esp + 0x30]
add esi, 1
add eax, 1
add esi, 1
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
movzx edx, byte [esi - 3]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi - 2]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld qword [esp + 0x48]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
movzx edx, byte [eax - 1]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi - 1]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld qword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
movzx edx, byte [esi]
movzx ecx, byte [esi + 1]
mov dword [esp + 0xc], edx
movzx edx, byte [eax]
fild dword [esp + 0xc]
add esi, 1
fmul st(1)
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi + 1]
fadd dword [esp + 0x30]
add esi, 1
add esi, 1
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
movzx edx, byte [esi]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi + 1]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fmul qword [esp + 0x40]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
movzx edx, byte [eax + 1]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0xc]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
jmp 0x1009ae34
movzx eax, byte [esi]
fld dword [esp + 0x20]
fld qword [esp + 0x58]
movzx ecx, byte [esi + 1]
fmul st(1)
mov dword [esp + 0xc], eax
fstp dword [esp + 0x20]
add esi, 1
fld dword [esp + 0x20]
movzx edx, byte [esi + 1]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
fmul st(1)
add esi, 1
movzx eax, byte [esi + 1]
fadd dword [esp + 0x2c]
add esi, 1
movzx ecx, byte [esi + 1]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
add esi, 1
fmul st(1)
movzx edx, byte [esi + 1]
fadd dword [esp + 0x30]
add esi, 1
add esi, 1
add esi, 1
fstp dword [esp + 0x30]
add esi, 1
fild dword [esp + 0xc]
mov dword [esp + 0xc], eax
movzx eax, byte [esi - 2]
fmulp st(1)
add esi, 1
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld qword [esp + 0x48]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
movzx ecx, byte [esi - 2]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
movzx edx, byte [esi - 1]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], eax
movzx eax, byte [esi]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld qword [esp + 0x10]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
mov dword [esp + 0xc], ecx
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
mov dword [esp + 0xc], eax
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fmul qword [esp + 0x40]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0xc]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
fmul st(1)
add esi, 1
mov dword [esp + 0xc], ecx
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0xc]
mov dword [esp + 0xc], edx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0xc]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
add dword [esp + 0x28], 4
add edi, 1
cmp edi, dword [esp + 0x24]
jl 0x1009aae3
jmp 0x1009af58
lea eax, [esi - 1]
lea ecx, [esi + 3]
cmp eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
jge 0x1009af58
lea ecx, [edi - 1]
add edi, 3
sub eax, esi
lea edx, [esp + eax*4 + 0x68]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
fld dword [eax]
cmp esi, dword [esp + 0xc]
fstp dword [esp + 0x20]
jge 0x1009af3e
fld dword [esp + 0x20]
mov ecx, esi
sub ecx, dword [esp + 0x40]
fstp qword [esp + 0x58]
lea edi, [esp + ecx*4 + 0x78]
mov edx, dword [ebp + 0x1c]
fld dword [edi]
mov eax, dword [ebp + 0x18]
fmul qword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push edx
push eax
fstp dword [esp + 0x28]
push ecx
push esi
lea edx, [esp + 0xb4]
push edx
mov ecx, ebx
call fcn.10099400
fld dword [esp + 0x20]
mov eax, dword [eax]
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov dword [esp + 0x20], edx
mov ecx, eax
fild dword [esp + 0x20]
shr ecx, 8
movzx edx, cl
fmul st(1)
mov dword [esp + 0x20], edx
movzx ecx, al
fadd dword [esp + 0x1c]
shr eax, 0x18
fstp dword [esp + 0x1c]
add esi, 1
fild dword [esp + 0x20]
mov dword [esp + 0x20], ecx
add edi, 4
cmp esi, dword [esp + 0xc]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x20]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
jl 0x1009aea3
mov eax, dword [esp + 0x28]
add dword [esp + 0x24], 4
add eax, 1
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x28], eax
jl 0x1009ae79
fld dword [esp + 0x1c]
fld qword [0x10108898]
fcom st(1)
fnstsw ax
fld dword [0x10108c18]
test ah, 5
jp 0x1009af7d
fstp st(2)
fxch st(1)
fst dword [esp + 0x1c]
fldz
jmp 0x1009af96
fldz
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x1009afd7
fxch st(2)
fst dword [esp + 0x1c]
fxch st(1)
fxch st(2)
fxch st(1)
fld dword [esp + 0x1c]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x22], dl
fldcw word [esp + 0x1c]
fld dword [esp + 0x30]
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x1009afdd
fstp st(0)
fxch st(1)
fst dword [esp + 0x30]
jmp 0x1009afec
fxch st(1)
fxch st(2)
jmp 0x1009af96
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x1009afea
fst dword [esp + 0x30]
fxch st(1)
fld dword [esp + 0x30]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov al, byte [esp + 0x10]
mov byte [esp + 0x21], al
fldcw word [esp + 0x1c]
fld dword [esp + 0x2c]
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x1009b02f
fstp st(2)
fstp st(0)
fstp dword [esp + 0x2c]
jmp 0x1009b044
fstp st(0)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x1009b042
fstp dword [esp + 0x2c]
jmp 0x1009b044
fstp st(0)
fld dword [esp + 0x2c]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov cl, byte [esp + 0x10]
mov byte [esp + 0x20], cl
mov ecx, ebx
fldcw word [esp + 0x1c]
call fcn.10098430
test al, al
je 0x1009bd0c
fld dword [esp + 0x38]
fcom qword [0x10108898]
fnstsw ax
test ah, 0x41
jne 0x1009b09c
fstp st(0)
fld dword [0x10108c18]
fstp dword [esp + 0x38]
jmp 0x1009b0ab
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x1009b096
fstp st(0)
fld dword [esp + 0x38]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x23], dl
mov ecx, dword [esp + 0x20]
fldcw word [esp + 0x1c]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0x18]
lea edx, [edi + 6]
test edx, edx
jl 0x1009b108
lea ecx, [edi - 5]
cmp ecx, dword [ebx + 0xc]
jge 0x1009b108
lea edx, [esi + 6]
test edx, edx
jl 0x1009b108
lea ecx, [esi - 5]
cmp ecx, dword [ebx + 0x10]
jl 0x1009b165
test eax, eax
fstp st(0)
fstp st(0)
jle 0x1009b119
cmp eax, 3
jle 0x1009ba6b
push eax
lea eax, [ebp + 0x10]
push eax
lea ecx, [ebp + 0xc]
push ecx
mov ecx, ebx
call fcn.100991b0
fld dword [ebp + 0xc]
fld st(0)
call fcn.1007d560
fldz
fcom st(1)
mov edi, eax
mov dword [esp + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x1009b14b
sub edi, 1
mov dword [esp + 0x40], edi
fld dword [ebp + 0x10]
fld st(0)
call fcn.1007d560
fcom st(1)
mov esi, eax
fnstsw ax
fstp st(1)
test ah, 5
jp 0x1009b165
sub esi, 1
lea eax, [edi - 5]
add edi, 7
cmp eax, edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], edi
jge 0x1009b1cf
sub eax, dword [esp + 0x40]
fstp st(0)
fstp qword [esp + 0x50]
lea edi, [esp + eax*4 + 0x88]
fld dword [0x101089a8]
sub esp, 8
fstp dword [esp + 4]
fild dword [esp + 0x2c]
fsub qword [esp + 0x58]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.100997e0
mov eax, dword [esp + 0x2c]
fstp dword [edi]
add eax, 1
add esp, 8
add edi, 4
cmp eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
jl 0x1009b18c
fld dword [ebp + 0x10]
jmp 0x1009b1d1
fstp st(1)
fldz
mov edx, dword [esp + 0x40]
fst dword [esp + 0x38]
add edx, 6
cmp edx, dword [ebx + 0xc]
fst dword [esp + 0x2c]
fst dword [esp + 0x30]
fstp dword [esp + 0x1c]
jge 0x1009b797
cmp dword [esp + 0x34], 0
jl 0x1009b797
lea eax, [esi + 6]
cmp eax, dword [ebx + 0x10]
jge 0x1009b797
lea edi, [esi - 5]
test edi, edi
jl 0x1009b797
mov ecx, ebx
fstp st(0)
call fcn.10098190
test al, al
jne 0x1009b794
add esi, 7
cmp edi, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0xc], esi
jge 0x1009b8b4
fld dword [ebp + 0x10]
fstp qword [esp + 0x48]
mov ecx, dword [esp + 0x34]
push edi
push ecx
mov ecx, ebx
call fcn.10099010
fld dword [0x101089a8]
sub esp, 8
fstp dword [esp + 4]
mov esi, eax
fild dword [esp + 0x30]
fsub qword [esp + 0x50]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.100997e0
add esp, 8
fstp dword [esp + 0x20]
mov ecx, ebx
call fcn.10098430
test al, al
je 0x1009b553
mov edx, dword [esp + 0x40]
push edi
add edx, 0xffffffff
push edx
mov ecx, ebx
call fcn.10098570
fld dword [esp + 0x20]
xor ecx, ecx
movzx edx, byte [esi]
fld dword [esp + ecx*4 + 0x74]
fmul st(1)
mov dword [esp + 0x10], edx
movzx edx, byte [esi + 1]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + 1]
fmul st(1)
add esi, 1
add esi, 1
fadd dword [esp + 0x2c]
add esi, 1
add esi, 1
add esi, 1
fstp dword [esp + 0x2c]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [eax]
fmul st(1)
add esi, 1
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 5]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 4]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + ecx*4 + 0x78]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 3]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [eax + 1]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 2]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 1]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + ecx*4 + 0x7c]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
movzx edx, byte [eax + 2]
mov dword [esp + 0x10], edx
movzx edx, byte [esi + 1]
fmul st(1)
add esi, 1
fadd dword [esp + 0x1c]
add esi, 1
add esi, 1
add esi, 1
fstp dword [esp + 0x1c]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 3]
fmulp st(1)
add esi, 1
add esi, 1
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + ecx*4 + 0x80]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 4]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [eax + 3]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 3]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 2]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + ecx*4 + 0x84]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 1]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [eax + 4]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi]
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + ecx*4 + 0x88]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
movzx edx, byte [esi + 1]
fmul st(1)
add esi, 1
mov dword [esp + 0x10], edx
fadd dword [esp + 0x2c]
movzx edx, byte [esi + 1]
fstp dword [esp + 0x2c]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [eax + 5]
fmul st(1)
add ecx, 6
add esi, 1
fadd dword [esp + 0x30]
add eax, 6
cmp ecx, 0xc
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x10]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
jl 0x1009b2a0
jmp 0x1009b77c
fld dword [esp + 0x20]
xor eax, eax
movzx ecx, byte [esi]
fld dword [esp + eax*4 + 0x74]
fmul st(1)
movzx edx, byte [esi + 1]
fstp dword [esp + 0x20]
mov dword [esp + 0x10], ecx
fld dword [esp + 0x20]
add esi, 1
movzx ecx, byte [esi + 1]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(1)
add esi, 1
movzx edx, byte [esi + 1]
fadd dword [esp + 0x2c]
add esi, 1
add esi, 1
fstp dword [esp + 0x2c]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi - 1]
fmul st(1)
add esi, 1
add esi, 1
fadd dword [esp + 0x30]
add esi, 1
add esi, 1
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 4]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + eax*4 + 0x78]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi - 3]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 2]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi - 1]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + eax*4 + 0x7c]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + eax*4 + 0x80]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
movzx ecx, byte [esi + 1]
add esi, 1
movzx edx, byte [esi + 1]
fmul st(1)
mov dword [esp + 0x10], ecx
fadd dword [esp + 0x2c]
add esi, 1
movzx ecx, byte [esi + 1]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
add esi, 1
movzx edx, byte [esi + 1]
fmul st(1)
add esi, 1
fadd dword [esp + 0x30]
add esi, 1
add esi, 1
add esi, 1
fstp dword [esp + 0x30]
add esi, 1
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi - 3]
fmulp st(1)
add eax, 6
add esi, 1
cmp eax, 0xc
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + eax*4 + 0x6c]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 3]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esi - 2]
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, byte [esi - 1]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + eax*4 + 0x70]
fmul st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
fmulp st(1)
fadd dword [esp + 0x1c]
fstp dword [esp + 0x1c]
jl 0x1009b559
add edi, 1
fstp st(0)
cmp edi, dword [esp + 0xc]
mov dword [esp + 0x28], edi
jl 0x1009b240
jmp 0x1009b8b4
fld dword [ebp + 0x10]
lea eax, [esi - 5]
add esi, 7
cmp eax, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], esi
jge 0x1009b8b2
fstp qword [esp + 0x48]
fld dword [0x101089a8]
sub esp, 8
fstp dword [esp + 4]
fild dword [esp + 0x30]
fsub qword [esp + 0x50]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.100997e0
mov esi, dword [esp + 0x3c]
fstp dword [esp + 0x28]
add esp, 8
cmp esi, dword [esp + 0xc]
jge 0x1009b89b
fld dword [esp + 0x20]
mov eax, esi
sub eax, dword [esp + 0x40]
fstp qword [esp + 0x58]
lea edi, [esp + eax*4 + 0x88]
mov ecx, dword [ebp + 0x1c]
fld dword [edi]
mov edx, dword [ebp + 0x18]
fmul qword [esp + 0x58]
mov eax, dword [esp + 0x28]
push ecx
push edx
fstp dword [esp + 0x28]
push eax
push esi
lea ecx, [esp + 0xc4]
push ecx
mov ecx, ebx
call fcn.10099400
fld dword [esp + 0x20]
mov eax, dword [eax]
mov edx, eax
shr edx, 0x10
movzx ecx, dl
mov dword [esp + 0x10], ecx
mov edx, eax
shr edx, 8
fild dword [esp + 0x10]
movzx ecx, dl
fmul st(1)
mov dword [esp + 0x10], ecx
movzx edx, al
fadd dword [esp + 0x1c]
shr eax, 0x18
add esi, 1
fstp dword [esp + 0x1c]
add edi, 4
cmp esi, dword [esp + 0xc]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul st(1)
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x10]
fmulp st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
jl 0x1009b800
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x28], eax
jl 0x1009b7b1
jmp 0x1009b8b4
fstp st(0)
fld dword [esp + 0x1c]
fld qword [0x10108898]
fcom st(1)
fnstsw ax
fld dword [0x10108c18]
test ah, 5
jp 0x1009b8d9
fstp st(2)
fxch st(1)
fst dword [esp + 0x1c]
fldz
jmp 0x1009b8f2
fldz
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x1009b933
fxch st(2)
fst dword [esp + 0x1c]
fxch st(1)
fxch st(2)
fxch st(1)
fld dword [esp + 0x1c]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov al, byte [esp + 0x10]
mov byte [esp + 0x22], al
fldcw word [esp + 0x1c]
fld dword [esp + 0x30]
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x1009b939
fstp st(0)
fxch st(1)
fst dword [esp + 0x30]
jmp 0x1009b948
fxch st(1)
fxch st(2)
jmp 0x1009b8f2
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x1009b946
fst dword [esp + 0x30]
fxch st(1)
fld dword [esp + 0x30]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov cl, byte [esp + 0x10]
mov byte [esp + 0x21], cl
fldcw word [esp + 0x1c]
fld dword [esp + 0x2c]
fcom st(3)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x1009b98b
fstp st(2)
fstp st(0)
fstp dword [esp + 0x2c]
jmp 0x1009b9a0
fstp st(0)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x1009b99e
fstp dword [esp + 0x2c]
jmp 0x1009b9a0
fstp st(0)
fld dword [esp + 0x2c]
mov ecx, ebx
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x20], dl
fldcw word [esp + 0x1c]
call fcn.10098430
test al, al
je 0x1009bd0c
fld dword [esp + 0x38]
fcom qword [0x10108898]
fnstsw ax
test ah, 0x41
jne 0x1009b9f8
fstp st(0)
fld dword [0x10108c18]
fstp dword [esp + 0x38]
jmp 0x1009ba07
fldz
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x1009b9f2
fstp st(0)
fld dword [esp + 0x38]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov al, byte [esp + 0x10]
mov byte [esp + 0x23], al
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
fldcw word [esp + 0x1c]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp edi, 0xffffffff
mov eax, dword [ebp + 0x18]
jl 0x1009ba5e
cmp edi, dword [ebx + 0xc]
jge 0x1009ba5e
cmp esi, 0xffffffff
jl 0x1009ba5e
cmp esi, dword [ebx + 0x10]
jl 0x1009bae6
test eax, eax
fstp st(0)
fstp st(0)
jle 0x1009ba90
cmp eax, 3
jg 0x1009ba90
mov edx, dword [ebp + 0x1c]
push edx
mov esi, dword [ebp + 8]
push eax
push 0xfffffc19
push 0xfffffc19
push esi
mov ecx, ebx
call fcn.10099400
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, eax
push ecx
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp + 0xc]
push eax
mov ecx, ebx
call fcn.100991b0
fld dword [ebp + 0xc]
fld st(0)
call fcn.1007d560
fldz
fcom st(1)
mov edi, eax
mov dword [esp + 0x40], eax
fnstsw ax
test ah, 0x41
jne 0x1009bac4
sub edi, 1
mov dword [esp + 0x40], edi
fld dword [ebp + 0x10]
fld st(0)
call fcn.1007d560
fcom st(1)
mov esi, eax
mov dword [esp + 0x28], esi
fnstsw ax
fstp st(1)
test ah, 5
jp 0x1009bae6
sub esi, 1
mov dword [esp + 0x28], esi
lea eax, [edi + 1]
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
jge 0x1009bd23
test edi, edi
jl 0x1009bd23
lea ecx, [esi + 1]
cmp ecx, dword [ebx + 0x10]
jge 0x1009bd23
test esi, esi
jl 0x1009bd23
cmp dword [ebx + 0x28], 0
jne 0x1009bd23
fild dword [esp + 0x40]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fsubp st(2)
fld qword [0x101089b0]
or eax, 0xc00
mov dword [esp + 0x10], eax
fmul st(2), st(0)
fldcw word [esp + 0x10]
fxch st(2)
fistp dword [esp + 0x10]
movzx edx, word [esp + 0x10]
movzx ecx, dx
fldcw word [esp + 0x1c]
movzx edi, cx
fisub dword [esp + 0x28]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x10], eax
fmulp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov ax, word [esp + 0x10]
movzx eax, ax
movzx edx, ax
fldcw word [esp + 0x1c]
imul edx, edi
sar edx, 8
movzx edi, dx
mov edx, ecx
sub edx, edi
movzx edx, dx
mov dword [esp + 0x34], edx
sub eax, edi
movzx eax, ax
mov dword [esp + 0x30], eax
mov edx, 0x100
sub edx, eax
mov eax, dword [ebx + 0x30]
sub edx, ecx
imul eax, esi
movzx ecx, dx
mov edx, dword [esp + 0x40]
lea edx, [edx + edx*2]
add eax, edx
add eax, dword [ebx + 0x34]
mov dword [esp + 0x10], ecx
movzx edx, byte [eax]
imul dx, cx
movzx edx, dx
mov dword [esp + 0x28], edx
movzx edx, byte [eax + 1]
imul dx, cx
add eax, 1
movzx edx, dx
mov dword [esp + 0x2c], edx
movzx edx, byte [eax + 1]
add eax, 1
imul dx, cx
movzx ecx, dx
movzx edx, byte [eax + 1]
imul dx, word [esp + 0x34]
add word [esp + 0x28], dx
add eax, 1
mov dword [esp + 0x38], ecx
movzx ecx, byte [eax + 1]
imul cx, word [esp + 0x34]
add word [esp + 0x2c], cx
mov ecx, dword [ebx + 0x30]
add eax, 1
movzx edx, byte [eax + 1]
imul dx, word [esp + 0x34]
add word [esp + 0x38], dx
add eax, 1
lea eax, [eax + ecx - 5]
movzx ecx, byte [eax]
imul cx, word [esp + 0x30]
add word [esp + 0x28], cx
movzx edx, byte [eax + 1]
add eax, 1
imul dx, word [esp + 0x30]
movzx ecx, byte [eax + 1]
add word [esp + 0x2c], dx
imul cx, word [esp + 0x30]
add word [esp + 0x38], cx
add eax, 1
movzx edx, byte [eax + 1]
add eax, 1
imul dx, di
add word [esp + 0x28], dx
movzx ecx, byte [eax + 2]
movzx edx, byte [eax + 1]
imul cx, di
add cx, word [esp + 0x38]
imul dx, di
add dx, word [esp + 0x2c]
add eax, 1
cmp dword [ebx + 0x1b0], 0
mov al, byte [esp + 0x29]
mov byte [esp + 0x22], ch
mov byte [esp + 0x21], dh
mov byte [esp + 0x20], al
je 0x1009bd0c
mov ecx, dword [esp + 0x40]
push esi
push ecx
mov ecx, ebx
call fcn.10098570
movzx edx, byte [eax]
imul dx, word [esp + 0x10]
movzx ecx, dx
movzx edx, byte [eax + 1]
imul dx, word [esp + 0x34]
add eax, 1
mov dword [esp + 0x10], ecx
add cx, dx
mov edx, dword [ebx + 0xc]
lea eax, [eax + edx - 1]
movzx edx, byte [eax + 1]
movzx ax, byte [eax]
imul dx, di
imul ax, word [esp + 0x30]
add dx, ax
mov eax, dword [ebp + 8]
add dx, cx
mov byte [esp + 0x23], dh
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 8]
mov byte [esp + 0x23], 0
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
fild dword [esp + 0x40]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push edx
fsubp st(2)
push eax
fxch st(1)
push esi
push edi
fstp dword [esp + 0x1c]
lea ecx, [esp + 0xc0]
push ecx
fisub dword [esp + 0x3c]
mov ecx, ebx
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fld dword [esp + 0x20]
fld st(0)
fmul st(2)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst qword [esp + 0x5c]
fld st(1)
fsub st(1)
fstp dword [esp + 0x4c]
fsubp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst qword [esp + 0x6c]
fld1
fsubrp st(2)
fsubp st(1)
fstp dword [esp + 0x24]
call fcn.10099400
mov edx, dword [eax]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push eax
push ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
push esi
push edx
lea eax, [esp + 0xb8]
push eax
mov ecx, ebx
call fcn.10099400
mov ecx, dword [eax]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push edx
push eax
add esi, 1
push esi
mov dword [esp + 0x40], ecx
push edi
lea ecx, [esp + 0xbc]
push ecx
mov ecx, ebx
call fcn.10099400
mov edx, dword [eax]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
push eax
push ecx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x2c]
push esi
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
call fcn.10099400
fld dword [esp + 0x10]
mov ecx, dword [eax]
fst qword [esp + 0x40]
fld dword [esp + 0x38]
movzx edx, byte [esp + 0x36]
fst qword [esp + 0x38]
mov dword [esp + 0x24], ecx
movzx eax, byte [esp + 0xe]
fnstcw word [esp + 0x1c]
mov dword [esp + 0x10], edx
movzx edx, byte [esp + 0x2a]
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, ecx
fmul st(1)
shr eax, 0x10
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
movzx edx, al
fmul st(3)
movzx eax, word [esp + 0x1c]
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fld qword [esp + 0x58]
movzx edx, byte [esp + 0x35]
fmul st(1), st(0)
fxch st(2)
or eax, 0xc00
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fld qword [esp + 0x48]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
mov byte [esp + 0x22], al
mov dword [esp + 0x10], edx
fldcw word [esp + 0x1c]
mov edx, dword [esp + 0xc]
movzx eax, dh
movzx edx, dl
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x29]
fnstcw word [esp + 0x1c]
fmul st(3)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, ecx
shr eax, 8
movzx eax, al
fmul st(5)
movzx ecx, cl
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x1c]
fmul st(3)
or eax, 0xc00
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul st(2)
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
movzx eax, byte [esp + 0x10]
mov byte [esp + 0x21], al
movzx eax, byte [esp + 0x34]
fldcw word [esp + 0x1c]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x28]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmulp st(3)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmulp st(4)
fxch st(2)
faddp st(3)
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmulp st(1)
faddp st(2)
fild dword [esp + 0x10]
mov ecx, ebx
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fmulp st(1)
or eax, 0xc00
mov dword [esp + 0x10], eax
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x20], dl
fldcw word [esp + 0x1c]
call fcn.10098430
test al, al
je 0x1009bfe2
movzx eax, byte [esp + 0x37]
fnstcw word [esp + 0x1c]
movzx ecx, byte [esp + 0xf]
movzx edx, byte [esp + 0x2b]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x27]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [esp + 0x38]
fild dword [esp + 0x10]
mov dword [esp + 0x10], edx
fmul qword [esp + 0x40]
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
movzx eax, word [esp + 0x1c]
or eax, 0xc00
fmul qword [esp + 0x58]
faddp st(1)
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
fmul qword [esp + 0x48]
faddp st(1)
fldcw word [esp + 0x10]
fistp dword [esp + 0x10]
mov cl, byte [esp + 0x10]
mov byte [esp + 0x23], cl
mov edx, dword [esp + 0x20]
fldcw word [esp + 0x1c]
mov dword [eax], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 8]
pop edi
mov byte [esp + 0x1f], 0
mov edx, dword [esp + 0x1c]
pop esi
mov dword [eax], edx
pop ebx
mov esp, ebp
pop ebp
ret 0x18