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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
mov ecx, dword [0x2118b234]
fldz
mov edx, dword [ecx + 0x10]
mov ecx, dword [0x2118b230]
push edi
mov edi, eax
mov eax, dword [ebx + 4]
imul eax, eax, 0x34
mov eax, dword [eax + edx + 0x18]
mov edx, dword [ebp + 8]
imul eax, eax, 0x12c
add eax, dword [ecx + 0x10]
mov dword [esi + 4], edx
mov ecx, dword [edi + 0x38]
mov eax, dword [eax + 0x128]
mov edx, ecx
shl edx, 4
sub edx, ecx
lea ecx, [eax + edx*4]
mov dword [esi + 0xc], ecx
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi], 1
mov edx, dword [ebx]
mov dword [esi + 0x10], edx
mov eax, dword [ebx + 4]
mov edx, dword [0x21188da8]
mov dword [esi + 0x14], eax
mov eax, ecx
mov dword [esi + 0x18], edi
mov ecx, dword [eax + 4]
and cl, 1
neg cl
fstp dword [esi + 0x50]
sbb ecx, ecx
neg ecx
add ecx, 1
mov dword [esi + 0x44], ecx
mov ecx, dword [edx + 4]
mov edx, dword [eax + 4]
and ecx, 2
or ecx, 0xc0
shr ecx, 1
and edx, 1
add edx, edx
or ecx, edx
mov dword [esi + 0x1c], ecx
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + 0x5c]
movsx edx, word [edi + 0x12]
mov ecx, eax
imul ecx, dword [ebp + 8]
sar ecx, 7
mov dword [esp + 8], ecx
movzx ecx, word [edi + 0x10]
fild dword [esp + 8]
imul ecx, eax
mov dword [esp + 8], edx
sar ecx, 7
fiadd dword [esp + 8]
mov dword [esp + 8], ecx
fisub dword [esp + 8]
fstp dword [esi + 0x3c]
movzx eax, byte [ebx + 3]
mov edx, eax
imul edx, eax
mov dword [esp + 8], edx
fild dword [esp + 8]
fld1
fdivrp st(1)
fmul dword [0x21158500]
fldlg2
fxch st(1)
fyl2x
fmul dword [0x211584fc]
fst dword [esi + 0x40]
mov eax, dword [edi + 0x14]
cmp eax, 0x80000000
fld dword [0x211584f8]
mov dword [esp + 8], eax
je 0x2110665e
fild dword [esp + 8]
fmul st(1)
fsubp st(2)
fxch st(1)
fstp dword [esi + 0x40]
jmp 0x21106660
fstp st(1)
mov eax, dword [edi + 0x3c]
fimul dword [eax + 0x48]
mov eax, 0x51eb851f
fistp qword [esp + 8]
mov ecx, dword [esp + 8]
shl ecx, 7
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esi + 0xbc], ecx
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + 0x4c]
cmp eax, 0x80000000
mov dword [esp + 8], eax
jne 0x211066a5
mov dword [esi + 0x64], 0
jmp 0x2110684c
fild dword [esp + 8]
mov dword [esi + 0x64], 1
mov dword [esi + 0x68], 0
fmul dword [0x211584f4]
fst dword [esp + 4]
fst dword [esi + 0x6c]
fst dword [esi + 0x70]
fmul dword [0x211584f0]
fld qword [0x211584e8]
fxch st(1)
call fcn.2113f980
fstp dword [esi + 0x78]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + 0x18]
cmp ecx, 0x80000000
mov dword [esp + 8], ecx
je 0x2110675a
mov eax, dword [eax + 0x28]
cmp eax, 0x80000000
je 0x2110670f
cdq
and edx, 0x7f
add eax, edx
movzx edx, byte [ebx + 3]
sar eax, 7
imul eax, edx
add ecx, eax
mov dword [esp + 8], ecx
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov eax, dword [0x21188da8]
fdiv dword [eax + 0x2c]
fistp qword [esp + 8]
mov eax, dword [esp + 8]
test eax, eax
mov dword [esp + 8], eax
mov dword [esi + 0x80], eax
mov dword [esi + 0x7c], eax
je 0x21106761
fild dword [esp + 8]
fdivr dword [esp + 4]
fstp dword [esi + 0x74]
jmp 0x21106761
mov dword [esi + 0x7c], 0
mov ecx, dword [edi + 0x3c]
fild dword [ecx + 0x20]
fmul dword [0x211584f8]
fld dword [esp + 4]
fmul st(1), st(0)
fxch st(1)
fmul dword [0x211584dc]
fsubp st(1)
fst dword [esi + 0x88]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + 0x1c]
cmp ecx, 0x80000000
mov dword [esp + 8], ecx
je 0x211067e0
mov eax, edx
fstp st(0)
mov eax, dword [eax + 0x2c]
cmp eax, 0x80000000
je 0x211067b6
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
imul eax, dword [ebp + 8]
add ecx, eax
mov dword [esp + 8], ecx
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov ecx, dword [0x21188da8]
fdiv dword [ecx + 0x2c]
fdivr dword [esp + 4]
fstp dword [esi + 0x84]
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + 0x24]
cmp eax, 0x80000000
mov dword [esp + 8], eax
je 0x21106842
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov eax, dword [0x21188da8]
fdiv dword [eax + 0x2c]
fistp qword [esp + 8]
mov eax, dword [esp + 8]
test eax, eax
mov dword [esp + 8], eax
mov dword [esi + 0x90], eax
je 0x2110684c
fild dword [esp + 8]
fdivr dword [esp + 4]
fstp dword [esi + 0x8c]
jmp 0x2110684c
mov dword [esi + 0x90], 0
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + 0x50]
cmp eax, 0x80000000
mov dword [esp + 8], eax
jne 0x2110686c
mov dword [esi + 0x94], 0
jmp 0x21106a0e
fild dword [esp + 8]
xor edx, edx
mov dword [esi + 0x94], 1
mov dword [esi + 0x98], edx
fmul dword [0x211584d8]
fst dword [esp + 4]
fst dword [esi + 0x9c]
fst dword [esi + 0xa0]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + 0x30]
cmp ecx, 0x80000000
mov dword [esp + 8], ecx
je 0x2110691d
mov eax, dword [eax + 0x40]
fstp st(0)
cmp eax, 0x80000000
je 0x211068cc
cdq
and edx, 0x7f
add eax, edx
movzx edx, byte [ebx + 3]
sar eax, 7
imul eax, edx
add ecx, eax
mov dword [esp + 8], ecx
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov eax, dword [0x21188da8]
fdiv dword [eax + 0x2c]
fistp qword [esp + 8]
mov eax, dword [esp + 8]
test eax, eax
mov dword [esp + 8], eax
mov dword [esi + 0xa8], eax
je 0x21106925
fild dword [esp + 8]
fld dword [esp + 4]
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [esi + 0xa4]
jmp 0x21106929
mov dword [esi + 0xa8], edx
jmp 0x21106929
fld dword [esp + 4]
mov ecx, dword [edi + 0x3c]
fild dword [ecx + 0x38]
fmul dword [0x211584f8]
fmul st(1)
fmul dword [0x211584dc]
fsubp st(1)
fst dword [esi + 0xb0]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + 0x34]
cmp ecx, 0x80000000
mov dword [esp + 8], ecx
je 0x211069a2
mov eax, edx
fstp st(0)
mov eax, dword [eax + 0x44]
cmp eax, 0x80000000
je 0x21106978
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
imul eax, dword [ebp + 8]
add ecx, eax
mov dword [esp + 8], ecx
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov ecx, dword [0x21188da8]
fdiv dword [ecx + 0x2c]
fdivr dword [esp + 4]
fstp dword [esi + 0xac]
mov edx, dword [edi + 0x3c]
mov eax, dword [edx + 0x3c]
cmp eax, 0x80000000
mov dword [esp + 8], eax
je 0x21106a04
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov eax, dword [0x21188da8]
fdiv dword [eax + 0x2c]
fistp qword [esp + 8]
mov eax, dword [esp + 8]
test eax, eax
mov dword [esp + 8], eax
mov dword [esi + 0xb8], eax
je 0x21106a0e
fild dword [esp + 8]
fdivr dword [esp + 4]
fstp dword [esi + 0xb4]
jmp 0x21106a0e
mov dword [esi + 0xb8], 0
fldz
fstp dword [esi + 0x50]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + 4]
cmp eax, 0x80000000
mov dword [esp + 8], eax
jne 0x21106a2d
mov dword [esi + 0x48], 0
jmp 0x21106a5e
fild dword [esp + 8]
fmul dword [0x211584e4]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584e0]
mov edx, dword [0x21188da8]
fdiv dword [edx + 0x2c]
fistp qword [esp + 8]
mov eax, dword [esp + 8]
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 0x3c]
fild dword [ecx]
fmul dword [0x211584d8]
fsub dword [0x211584d4]
fmul dword [0x211584d0]
fld qword [0x21158460]
fxch st(1)
call fcn.2113f980
fmul dword [0x211584cc]
mov edx, dword [0x21188da8]
fmul dword [edx + 0x2c]
fmul dword [0x211584c8]
fmul dword [0x211584c4]
fstp dword [esi + 0x4c]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + 8]
cmp ecx, 0x80000000
mov eax, dword [eax + 0x10]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
jne 0x21106abf
fldz
fld st(0)
jmp 0x21106acd
fild dword [esp + 4]
fmul dword [0x211584f8]
fldz
fxch st(1)
cmp eax, 0x80000000
fstp dword [esi + 0x54]
jne 0x21106adb
fld st(0)
jmp 0x21106ae5
fild dword [esp + 8]
fmul dword [0x211584f8]
fstp dword [esi + 0x5c]
mov eax, dword [edi + 0x3c]
mov ecx, dword [eax + 0xc]
cmp ecx, 0x80000000
mov eax, dword [eax + 0x14]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
jne 0x21106b05
fld st(0)
jmp 0x21106b0f
fild dword [esp + 4]
fmul dword [0x211584d8]
cmp eax, 0x80000000
fstp dword [esi + 0x58]
je 0x21106b25
fstp st(0)
fild dword [esp + 8]
fmul dword [0x211584d8]
fstp dword [esi + 0x60]
cmp dword [edi + 0x1c], 0
jne 0x21106b43
or eax, 0xffffffff
mov dword [esi + 0x30], eax
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], eax
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x28]
mov eax, dword [esi + 0x44]
imul ecx, eax
mov dword [esi + 0x30], ecx
mov edi, dword [edi + 0x2c]
imul edi, eax
mov edx, ecx
add edx, edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x34], edx
pop edi
mov esp, ebp
pop ebp
ret