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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x101d9590]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0xa4], esi
cmp ebx, dword [esi + 0x20]
jae 0x10128302
push ebx
call fcn.10128250
mov ecx, eax
test ecx, ecx
js 0x10128bc7
mov eax, dword [esi]
mov dword [esi + 0x20], ebx
add ebx, ebx
mov eax, dword [eax + ebx*8 - 0xc]
mov dword [esi + 0x24], eax
mov eax, ecx
jmp 0x10128bc7
fld dword [0x10001748]
push edi
fst dword [ebp - 0x4c]
push 4
fst dword [ebp - 0x48]
lea edi, [ebp - 0x44]
fldz
pop esi
fst dword [ebp - 0x44]
fxch st(1)
fst dword [ebp - 0x40]
fld1
fst dword [ebp - 0x3c]
fst dword [ebp - 0x34]
fst dword [ebp - 0x30]
fst dword [ebp - 0x28]
fstp dword [ebp - 0x14]
fxch st(1)
fst dword [ebp - 0x38]
fst dword [ebp - 0x2c]
fst dword [ebp - 0x20]
fst dword [ebp - 0x1c]
fst dword [ebp - 0x18]
fst dword [ebp - 0x10]
fstp dword [ebp - 0xc]
fst dword [ebp - 0x24]
fstp dword [ebp - 8]
fld dword [edi - 4]
fld dword [edi]
fld dword [edi - 8]
fmul st(0), st(0)
fxch st(2)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
call sub.msvcrt.dll__CIsqrt
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fld1
fdivrp st(1)
fstp dword [ebp - 0x8c]
fld dword [ebp - 0x8c]
fld st(0)
fmul dword [edi - 8]
fstp dword [edi - 8]
fld st(0)
fmul dword [edi - 4]
fstp dword [edi - 4]
fmul dword [edi]
fstp dword [edi]
add edi, 0xc
dec esi
jne 0x1012834d
mov esi, dword [ebp - 0xa4]
push ebx
mov ecx, esi
mov dword [esi + 0x20], ebx
call fcn.10128223
test eax, eax
js 0x10128bc6
cmp byte [esi + 0x2c], 0
mov ecx, dword [esi]
mov dword [ebp - 0x8c], ecx
je 0x101283d3
push 4
jmp 0x101283d5
push 8
call fcn.10127c66
mov edx, eax
test edx, edx
js 0x10128bc4
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx]
mov edi, eax
lea esi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xc]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x18]
lea esi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea edi, [eax + 0x24]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x30]
lea esi, [ebp - 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x3c]
lea esi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea edi, [eax + 0x48]
lea esi, [ebp - 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x54]
lea esi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x60]
lea esi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea esi, [ebp - 0x28]
lea edi, [eax + 0x6c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x78]
lea esi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x84]
lea esi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xa4]
cmp byte [esi + 0x2c], 0
jne 0x1012850e
mov eax, dword [ecx]
lea edi, [eax + 0x90]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x9c]
lea esi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xa8]
lea esi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea edi, [eax + 0xb4]
lea esi, [ebp - 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xc0]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xcc]
lea esi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea edi, [eax + 0xd8]
lea esi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xe4]
lea esi, [ebp - 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xf0]
lea esi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea esi, [ebp - 0x4c]
lea edi, [eax + 0xfc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x108]
lea esi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x114]
lea esi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xa4]
xor eax, eax
inc eax
mov dword [ebp - 0xb8], eax
cmp ebx, eax
jbe 0x10128bb9
push 0x10
pop ecx
mov dword [ebp - 0x8c], ecx
mov edi, dword [esi]
add edi, ecx
mov eax, dword [edi - 0xc]
add eax, eax
push eax
mov ecx, edi
mov dword [ebp - 0xbc], edi
call fcn.10127c66
mov edx, eax
mov dword [ebp - 0xcc], edx
test edx, edx
js 0x10128bc4
xor eax, eax
mov dword [ebp - 0xc0], eax
cmp dword [edi - 0xc], eax
jbe 0x10128b95
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc8], eax
mov ebx, dword [edi - 0x10]
add ebx, eax
fld dword [ebx + 0x10]
lea eax, [ebx + 8]
fmul dword [eax]
lea esi, [ebp - 0x138]
fld dword [ebx + 0x14]
lea edi, [ebp - 0x28]
fmul dword [ebx + 4]
push 3
mov dword [ebp - 0x88], eax
fsubp st(1)
fstp dword [ebp - 0x138]
fld dword [ebx + 0x14]
fmul dword [ebx]
fld dword [ebx + 0xc]
fmul dword [eax]
fsubp st(1)
fstp dword [ebp - 0x134]
fld dword [ebx + 0xc]
fmul dword [ebx + 4]
fld dword [ebx + 0x10]
fmul dword [ebx]
fsubp st(1)
fstp dword [ebp - 0x130]
movsd dword es:[edi], dword [esi]
fld dword [ebx + 0x1c]
fmul dword [ebx + 0x14]
movsd dword es:[edi], dword [esi]
fld dword [ebx + 0x10]
fmul dword [ebx + 0x20]
movsd dword es:[edi], dword [esi]
fsubp st(1)
fstp dword [ebp - 0x12c]
lea esi, [ebp - 0x12c]
fld dword [ebx + 0xc]
lea edi, [ebp - 0x1c]
fmul dword [ebx + 0x20]
fld dword [ebx + 0x14]
fmul dword [ebx + 0x18]
fsubp st(1)
fstp dword [ebp - 0x128]
fld dword [ebx + 0x10]
fmul dword [ebx + 0x18]
fld dword [ebx + 0x1c]
fmul dword [ebx + 0xc]
fsubp st(1)
fstp dword [ebp - 0x124]
movsd dword es:[edi], dword [esi]
fld dword [ebx + 0x20]
fmul dword [ebx + 4]
movsd dword es:[edi], dword [esi]
fld dword [ebx + 0x1c]
fmul dword [eax]
movsd dword es:[edi], dword [esi]
fsubp st(1)
fstp dword [ebp - 0x120]
lea esi, [ebp - 0x120]
fld dword [ebx + 0x18]
lea edi, [ebp - 0x10]
fmul dword [eax]
fld dword [ebx]
fmul dword [ebx + 0x20]
fsubp st(1)
fstp dword [ebp - 0x11c]
fld dword [ebx + 0x1c]
fmul dword [ebx]
fld dword [ebx + 0x18]
fmul dword [ebx + 4]
fsubp st(1)
fstp dword [ebp - 0x118]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x20]
pop edi
fld dword [esi - 4]
fld dword [esi]
fld dword [esi - 8]
fmul st(0), st(0)
fxch st(2)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x7c]
call sub.msvcrt.dll__CIsqrt
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x7c]
fld1
fdivrp st(1)
fstp dword [ebp - 0x7c]
fld dword [esi - 8]
fld dword [ebp - 0x7c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esi - 8]
fld dword [esi - 4]
fld st(1)
fmulp st(1)
fstp dword [esi - 4]
fmul dword [esi]
fstp dword [esi]
add esi, 0xc
dec edi
jne 0x10128650
fld dword [0x1000f880]
mov edi, dword [ebp - 0x88]
xor ecx, ecx
fstp dword [ebp - 0x90]
fld dword [0x1000f884]
xor eax, eax
inc ecx
fstp dword [ebp - 0xa8]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x7c], eax
mov esi, eax
mov eax, ebx
mov edx, ecx
sub eax, edx
mov dword [ebp - 0x58], 2
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + esi*4 - 0x58]
imul eax, eax, 0xc
fld dword [ebp + eax - 0x24]
fmul dword [ecx - 4]
fld dword [ebp + eax - 0x28]
fmul dword [ecx - 8]
faddp st(1)
fld dword [ebp + eax - 0x20]
fmul dword [ecx]
faddp st(1)
fstp dword [ebp - 0x88]
fld dword [ebp - 0x88]
fchs
call sub.msvcrt.dll__CIacos
fstp dword [ebp - 0x88]
mov eax, dword [ebp + esi*4 - 0x5c]
fld dword [ebp - 0x88]
mov ecx, dword [ebp - 0x94]
fst dword [ebp + esi*4 - 0x6c]
imul eax, eax, 0xc
fadd dword [ebp - 0x90]
fstp dword [ebp - 0x90]
fld dword [edi - 4]
mov edx, dword [ebp - 0x84]
fmul dword [eax + ebx + 4]
fld dword [ecx + edx]
fmul dword [eax + ebx]
faddp st(1)
fld dword [edi]
fmul dword [eax + ebx + 8]
faddp st(1)
fstp dword [ebp - 0x88]
fld dword [ebp - 0x88]
call sub.msvcrt.dll__CIacos
fstp dword [ebp - 0x88]
fld dword [ebp - 0x88]
fst dword [ebp + esi*4 - 0x78]
fld dword [ebp - 0xa8]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x101287a4
mov eax, esi
fstp dword [ebp - 0xa8]
mov dword [ebp - 0x7c], eax
jmp 0x101287a9
mov eax, dword [ebp - 0x7c]
fstp st(0)
mov ecx, dword [ebp - 0x94]
inc esi
add ecx, 0xc
add edi, 0xc
mov dword [ebp - 0x94], ecx
cmp esi, 3
jb 0x101286ef
and dword [ebp - 0x84], 0
xor ecx, ecx
inc ecx
sub eax, 0
push 2
pop edx
je 0x101287e3
dec eax
jne 0x101287ed
push edx
xor edx, edx
xor ecx, ecx
pop eax
inc edx
jmp 0x101287f3
xor eax, eax
push 2
inc eax
pop ecx
xor edx, edx
jmp 0x101287f3
mov eax, dword [ebp - 0x84]
fld dword [ebp + eax*4 - 0x6c]
mov esi, eax
imul ecx, ecx, 0xc
fstp dword [ebp - 0x94]
fld dword [ebp - 0x90]
fmul qword [0x100014c0]
fstp dword [ebp - 0x84]
fld dword [ebp - 0x84]
fsub dword [ebp - 0x94]
imul esi, esi, 0xc
imul edx, edx, 0xc
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x7c]
add esi, ebx
lea edi, [ebp - 0xb4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + ecx]
lea edi, [ebp - 0xd8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + edx]
lea edi, [ebp - 0x114]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sub.msvcrt.dll__CIsin
fstp dword [ebp - 0x84]
fld dword [ebp - 0x84]
fstp dword [ebp - 0xa8]
fld dword [ebp - 0x7c]
call sub.msvcrt.dll__CIcos
fstp dword [ebp - 0x84]
fld dword [ebp - 0x84]
fstp dword [ebp - 0x90]
fld dword [ebp - 0x94]
call sub.msvcrt.dll__CIcos
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x90]
fsub dword [ebp - 0x7c]
fstp dword [ebp - 0x80]
fld dword [ebp - 0x94]
call sub.msvcrt.dll__CIsin
fstp dword [ebp - 0x88]
fld dword [ebp - 0xb0]
fmul dword [ebp - 0xd4]
fld dword [ebp - 0xd8]
fmul dword [ebp - 0xb4]
faddp st(1)
fld dword [ebp - 0xac]
fmul dword [ebp - 0xd0]
faddp st(1)
fstp dword [ebp - 0x84]
fld dword [ebp - 0x84]
fld dword [ebp - 0x88]
fld st(0)
fmulp st(2)
fld dword [ebp - 0xa8]
fld st(0)
faddp st(3)
fxch st(2)
fstp dword [ebp - 0x84]
fld dword [ebp - 0x84]
fld st(0)
fmul dword [ebp - 0x90]
fld dword [ebp - 0x80]
fld st(0)
fld st(5)
fmulp st(1)
fsubp st(2)
fld dword [ebp - 0x7c]
fmulp st(2)
fld st(2)
fsubp st(2)
fmul dword [ebp - 0x90]
fxch st(2)
fmulp st(4)
fxch st(1)
faddp st(3)
fxch st(2)
fmulp st(1)
fdivp st(1)
fstp dword [ebp - 0x7c]
fld dword [ebp - 0x110]
fld st(0)
fmul dword [ebp - 0xb0]
fld dword [ebp - 0x114]
fld st(0)
fld dword [ebp - 0xb4]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [ebp - 0x10c]
fld st(0)
fld dword [ebp - 0xac]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fstp dword [ebp - 0x80]
fld dword [ebp - 0x80]
fld st(0)
fmulp st(5)
fxch st(4)
fstp dword [ebp - 0xe4]
fld dword [ebp - 0xb0]
fld st(4)
fmulp st(1)
fstp dword [ebp - 0xe0]
fxch st(1)
fmulp st(3)
fxch st(2)
fstp dword [ebp - 0xdc]
fsub dword [ebp - 0xe4]
fstp dword [ebp - 0xa0]
fld dword [ebp - 0xe0]
fsubp st(2)
fxch st(1)
fstp dword [ebp - 0x9c]
fsub dword [ebp - 0xdc]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x9c]
fld dword [ebp - 0x98]
fld dword [ebp - 0xa0]
fmul st(0), st(0)
fxch st(2)
fmul st(0), st(0)
faddp st(2)
fmul st(0), st(0)
faddp st(1)
fstp dword [ebp - 0x80]
fld dword [ebp - 0x80]
call sub.msvcrt.dll__CIsqrt
fstp dword [ebp - 0x80]
fld dword [ebp - 0x80]
fld1
fld st(0)
fdivrp st(2)
fxch st(1)
fstp dword [ebp - 0x80]
fld dword [ebp - 0xa0]
fld dword [ebp - 0x80]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [ebp - 0xa0]
fld dword [ebp - 0x9c]
fld st(1)
fmulp st(1)
fstp dword [ebp - 0x9c]
fmul dword [ebp - 0x98]
fstp dword [ebp - 0x98]
fld dword [ebp - 0x7c]
fmul st(0), st(0)
fsubp st(1)
fstp dword [ebp - 0x80]
fld dword [ebp - 0x80]
call sub.msvcrt.dll__CIsqrt
fstp dword [ebp - 0x80]
fld dword [ebp - 0x80]
mov ecx, dword [ebp - 0xbc]
fstp dword [ebp - 0x80]
mov eax, dword [ecx]
fld dword [ebp - 0xa0]
mov ebx, dword [ebp - 0xc4]
fld dword [ebp - 0x80]
add eax, ebx
fld st(0)
mov edi, eax
fmulp st(2)
lea esi, [ebp - 0xb4]
fxch st(1)
movsd dword es:[edi], dword [esi]
fstp dword [ebp - 0xf0]
movsd dword es:[edi], dword [esi]
fld dword [ebp - 0x9c]
fld st(1)
fmulp st(1)
movsd dword es:[edi], dword [esi]
fstp dword [ebp - 0xec]
fmul dword [ebp - 0x98]
lea edi, [eax + 0xc]
lea esi, [ebp - 0xd8]
movsd dword es:[edi], dword [esi]
fstp dword [ebp - 0xe8]
fld dword [ebp - 0xb4]
fld dword [ebp - 0x7c]
fld st(0)
movsd dword es:[edi], dword [esi]
fmulp st(2)
fxch st(1)
fstp dword [ebp - 0xfc]
movsd dword es:[edi], dword [esi]
fld dword [ebp - 0xb0]
fld st(1)
fmulp st(1)
lea edi, [eax + 0x18]
lea esi, [ebp - 0x108]
fstp dword [ebp - 0xf8]
fmul dword [ebp - 0xac]
fstp dword [ebp - 0xf4]
fld dword [ebp - 0xfc]
fadd dword [ebp - 0xf0]
fstp dword [ebp - 0x108]
fld dword [ebp - 0xf8]
fadd dword [ebp - 0xec]
fstp dword [ebp - 0x104]
fld dword [ebp - 0xf4]
fadd dword [ebp - 0xe8]
fstp dword [ebp - 0x100]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ecx]
lea eax, [eax + ebx + 0x24]
mov edi, eax
lea esi, [ebp - 0x108]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0xc]
lea esi, [ebp - 0xd8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x18]
lea esi, [ebp - 0x114]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ecx
mov ecx, dword [edi]
add ecx, ebx
call fcn.1012793c
mov eax, dword [edi]
fstp st(0)
lea ecx, [eax + ebx + 0x24]
call fcn.1012793c
mov ecx, dword [ebp - 0xc0]
fstp st(0)
mov eax, dword [ebp - 0xc8]
inc ecx
add eax, 0x24
add ebx, 0x48
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ebx
cmp ecx, dword [edi - 0xc]
jb 0x1012856c
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x8c]
inc eax
add ecx, 0x10
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x8c], ecx
cmp eax, ebx
jb 0x10128528
mov eax, dword [esi]
add ebx, ebx
mov eax, dword [eax + ebx*8 - 0xc]
mov dword [esi + 0x24], eax
mov eax, edx
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.101becf5
leave
ret 4