Function at 0xca1f40
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x11c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xec], eax
jne 0xca1f72
mov eax, 0xffffff7d
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret
fld qword [eax + 0xda8]
mov edx, dword [eax + 0xd80]
fld dword [0x12bed04]
fld st(0)
fxch st(2)
fucomi st(2)
fstp st(2)
mov dword [ebp - 0xd4], edx
jbe 0xca443c
fstp st(1)
fstp qword [eax + 0xda8]
mov ebx, dword [ebp - 0xd8]
fld qword [ebx + 0xdb8]
fldz
fxch st(1)
fucomi st(1)
jbe 0xca441b
fstp st(0)
fstp qword [ebx + 0xdb8]
mov edi, dword [ebp - 0xd8]
mov edi, dword [edi + 0xd44]
test edi, edi
mov dword [ebp - 0xd0], edi
je 0xca1f62
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], 0
mov dword [eax + 0xd40], 1
fld qword [eax + 0xd48]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov edx, dword [edi + 0x1c]
shl eax, 2
mov ecx, dword [edx + eax]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + eax]
mov edx, dword [ebp - 0xd8]
cmp eax, ecx
mov dword [edx], eax
mov eax, dword [edi + 0x90]
sete byte [ebp - 0x35]
mov dword [edx + 4], ecx
test eax, eax
jle 0xca4963
mov ebx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x94]
mov esi, dword [eax + edi*4]
mov eax, ebx
mov edx, dword [eax + 0x88]
mov ebx, dword [ebx + 0x8c]
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov dword [esp + 4], 0x460
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0xc4], edx
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ecx, dword [ebp + 8]
lea edi, [esi + edi*4]
mov dword [ebp - 0xbc], edi
mov ecx, dword [ecx + 0x1c]
mov dword [ebp - 0xdc], eax
imul eax, dword [edi], 0x460
mov dword [ebp - 0xc0], ecx
mov dword [esp + 8], 0x460
add ebx, eax
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0xdc]
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0xdc]
mov ebx, dword [esi]
test ebx, ebx
jle 0xca21cf
mov edi, dword [ebp - 0xdc]
xor edx, edx
mov ecx, 0xffffffff
mov eax, dword [edi + edx*4 + 4]
cmp ecx, eax
cmovl ecx, eax
add edx, 1
cmp edx, ebx
jne 0xca20e0
test ecx, ecx
js 0xca21cf
add ecx, 1
mov ebx, 0xffffffff
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xc0]
mov edi, ecx
mov eax, dword [ecx + edx*4 + 0x100]
cmp ebx, eax
cmovl ebx, eax
add eax, dword [esi + 0x18]
mov esi, 1
mov dword [ecx + edx*4 + 0x100], eax
mov ecx, dword [ecx + edx*4 + 0xc0]
shl esi, cl
test esi, esi
jle 0xca217a
mov eax, edx
xor ecx, ecx
shl eax, 5
lea edx, [edi + eax + 0x140]
mov eax, dword [edx]
cmp ebx, eax
cmovl ebx, eax
test eax, eax
js 0xca2170
mov edi, dword [ebp - 0xc0]
add eax, dword [edi + 0x18]
mov dword [edx], eax
add ecx, 1
add edx, 4
cmp esi, ecx
jg 0xca215a
add dword [ebp - 0x10c], 1
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0x10c], eax
jne 0xca2110
test ebx, ebx
js 0xca21cf
xor ecx, ecx
add ebx, 1
mov esi, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xbc]
mov edx, dword [esi + 0x18]
mov eax, dword [edi]
mov esi, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xc0]
mov eax, dword [esi + eax*4]
mov eax, dword [eax + ecx*4]
add ecx, 1
mov dword [edi + edx*4 + 0x720], eax
add edx, 1
cmp ecx, ebx
mov dword [edi + 0x18], edx
jne 0xca2198
mov edx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
add dword [ebp - 0xcc], 1
mov ecx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x10]
mov ebx, dword [ebp - 0xcc]
add dword [edx + 0x10], 1
mov dword [edx + eax*4 + 0x320], 1
cmp dword [esi + 0x90], ebx
mov dword [edx + eax*4 + 0x420], ecx
jle 0xca222d
mov ecx, dword [ebp - 0xd8]
fld qword [ecx + 0xd48]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
jmp 0xca203d
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x1c]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov dword [ebp - 0xec], edi
mov ah, 0xc
mov word [ebp - 0x20], ax
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd0]
fld qword [ecx + 0xdc0]
mov edi, dword [eax + 0x80]
mov edx, dword [eax + 0x7c]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xec]
push ebx
fild dword [esp]
shl ebx, 3
add esp, 4
fsubp st(1)
add edx, 0xb34
lea esi, [edi + ebx]
fld qword [esi]
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov dword [esp + 8], 0x1ec
mov eax, dword [ebp - 0x24]
mov dword [esp], edx
fstp qword [ebp - 0x108]
imul eax, eax, 0x1ec
add eax, dword [ebp - 0xb8]
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
fld1
fld qword [ebp - 0x108]
fld st(1)
fsub st(1)
fmul qword [esi]
fxch st(1)
fmul qword [ebx + edi + 8]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
faddp st(1)
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
fild dword [esp]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
jne 0xca2312
jp 0xca2312
test eax, eax
jle 0xca2312
fstp st(0)
sub eax, 1
lea esi, [esi]
jmp 0xca231a
fstp st(1)
fstp st(1)
fld1
fsub st(1)
imul eax, eax, 0x1ec
mov ecx, dword [ebp - 0xb8]
mov edx, 1
mov ebx, dword [ebp - 0xb8]
add ecx, eax
lea eax, [eax + ebx + 0x1ec]
fld st(0)
mov esi, dword [ebp - 0xec]
fmul dword [ecx + edx*4]
fld st(2)
fmul dword [eax + edx*4]
faddp st(1)
fstp dword [esi + edx*4 + 0xb34]
fld st(0)
fmul dword [ecx + edx*4 + 0x1c]
fld st(2)
fmul dword [eax + edx*4 + 0x1c]
faddp st(1)
fstp dword [esi + edx*4 + 0xb50]
add edx, 1
cmp edx, 5
jne 0xca233a
fstp st(0)
fstp st(0)
mov edi, dword [ebp - 0xd0]
mov edx, dword [ebp + 8]
fld qword [esi + 0xdb8]
fstp dword [esi + 0xb78]
mov eax, dword [ebp - 0xd8]
mov esi, dword [edi + 0x84]
mov edx, dword [edx + 0x1c]
fld qword [eax + 0xd90]
test esi, esi
mov dword [ebp - 0xec], edx
je 0xca4922
fstp dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xec]
add edx, 0xc30
fld dword [ebp - 0x1c]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
imul eax, eax, 0xf0
fild dword [esp]
add esp, 4
fsubp st(1)
lea ebx, [esi + eax]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx]
mov dword [ecx + 0xc30], eax
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebx + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebx + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ebx + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov edx, ecx
mov edi, dword [ebp - 0xec]
lea ecx, [ebx + 0x3c]
add edx, 0xc6c
mov dword [edi + 0xc6c], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [ecx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edx + 0x38], eax
mov edx, dword [ebp - 0xd8]
mov edi, dword [edx + 0xd5c]
test edi, edi
jne 0xca25c5
fld1
mov edx, dword [ebp - 0x10c]
fsub st(1)
mov edi, dword [ebp - 0xec]
fld st(0)
fmul dword [ebx + 0x94]
lea eax, [esi + edx + 0xf0]
mov esi, dword [ebp + 8]
xor edx, edx
fld st(2)
fmul dword [eax + 0x94]
faddp st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fld st(0)
fmul dword [0x12bed10]
fxch st(1)
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ecx, dword [ebp - 0x24]
fild dword [esi + 8]
fild dword [edi]
fild dword [edi + 4]
fxch st(3)
fdiv st(2)
fmul st(1), st(0)
fmulp st(3)
jmp 0xca2522
fxch st(2)
mov esi, dword [ebp - 0xec]
fldcw word [ebp - 0x20]
fist dword [esi + edx*4 + 0xbb8]
fldcw word [ebp - 0x1e]
fxch st(2)
fldcw word [ebp - 0x20]
fist dword [esi + edx*4 + 0xbf4]
fldcw word [ebp - 0x1e]
mov dword [esi + edx*4 + 0xb7c], ecx
add edx, 1
cmp edx, 0xf
jne 0xca2520
fstp st(0)
fstp st(1)
fxch st(1)
fmul dword [ebx + 0xd0]
fxch st(2)
fmul dword [eax + 0xd0]
xor eax, eax
faddp st(2)
fxch st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fmul dword [0x12bed10]
fild dword [esi]
fild dword [esi + 4]
fxch st(2)
fdivrp st(3)
fmul st(2)
fxch st(1)
fmulp st(2)
jmp 0xca2592
fxch st(1)
mov edi, dword [ebp - 0xec]
fldcw word [ebp - 0x20]
fist dword [edi + eax*4 + 0xca8]
fldcw word [ebp - 0x1e]
fxch st(1)
fldcw word [ebp - 0x20]
fist dword [edi + eax*4 + 0xce4]
fldcw word [ebp - 0x1e]
add eax, 1
cmp eax, 0xf
jne 0xca2590
fstp st(0)
fstp st(0)
jmp 0xca2689
mov ecx, dword [ebp - 0x10c]
fld1
xor edx, edx
fsub st(1)
lea eax, [esi + ecx + 0xf0]
mov esi, dword [ebp + 8]
fild dword [esi + 8]
fld st(1)
mov edi, dword [ebp - 0xec]
fmul dword [ebx + edx*4 + 0x78]
fld st(3)
fmul dword [eax + edx*4 + 0x78]
faddp st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fld dword [0x12bed10]
fld st(0)
fmul st(2)
fdiv st(3)
fild dword [edi]
fmul st(1)
fldcw word [ebp - 0x20]
fistp dword [edi + edx*4 + 0xbb8]
fldcw word [ebp - 0x1e]
fild dword [edi + 4]
fmulp st(1)
fldcw word [ebp - 0x20]
fistp dword [edi + edx*4 + 0xbf4]
fldcw word [ebp - 0x1e]
fxch st(1)
fldcw word [ebp - 0x20]
fistp dword [edi + edx*4 + 0xb7c]
fldcw word [ebp - 0x1e]
fld st(2)
fmul dword [ebx + edx*4 + 0xb4]
fld st(4)
fmul dword [eax + edx*4 + 0xb4]
faddp st(1)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fmulp st(1)
fdiv st(1)
fild dword [edi]
fmul st(1)
fldcw word [ebp - 0x20]
fistp dword [edi + edx*4 + 0xca8]
fldcw word [ebp - 0x1e]
fild dword [edi + 4]
fmulp st(1)
fldcw word [ebp - 0x20]
fistp dword [edi + edx*4 + 0xce4]
fldcw word [ebp - 0x1e]
add edx, 1
cmp edx, 0xf
jne 0xca25de
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xec], eax
mov edi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd8]
mov edi, dword [edi + 0x6c]
mov esi, dword [eax + 0x5c]
fld qword [edx + 0xd48]
fstp qword [ebp - 0xb0]
mov dword [ebp - 0xb4], edi
mov edi, dword [eax + 0x64]
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x1c]
mov ebx, dword [eax + 0xb24]
test ecx, ecx
jle 0xca4916
test ebx, ebx
je 0xca48ef
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0x1152be0
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0xec]
mov dword [ebx], 0
mov edx, dword [ecx + 0xd84]
test edx, edx
je 0xca2760
mov dword [ebx + 0x1f4], 1
fld qword [ebp - 0xb0]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
mov eax, dword [esi + edx]
mov dword [ebx + 0x1f8], eax
mov eax, dword [edi + edx]
mov dword [ebx + 0x1fc], eax
mov eax, dword [ebp - 0xb4]
fld qword [eax + ecx*8]
fstp qword [ebx + 0x200]
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd0]
fld qword [esi + 0xd48]
mov esi, dword [eax + 0x1c]
fstp qword [ebp - 0xa0]
mov ebx, dword [ebp - 0xd0]
mov edx, dword [edx + 0x6c]
mov ecx, dword [ecx + 0x64]
cmp dword [esi + 0x1c], 1
mov edi, dword [ebx + 0x5c]
mov dword [ebp - 0xa8], edx
mov ebx, dword [esi + 0xb28]
mov dword [ebp - 0xa4], ecx
jle 0xca48e3
test ebx, ebx
je 0xca48c2
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0x1152be0
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov dword [ebx], 0
mov eax, dword [esi + 0xd84]
test eax, eax
je 0xca2836
mov dword [ebx + 0x1f4], 1
fld qword [ebp - 0xa0]
fnstcw word [ebp - 0x1e]
mov esi, dword [ebp - 0xa4]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
mov eax, dword [edi + edx]
mov edi, dword [ebp - 0xa8]
mov dword [ebx + 0x1f8], eax
mov eax, dword [esi + edx]
fld qword [edi + ecx*8]
fstp qword [ebx + 0x200]
mov dword [ebx + 0x1fc], eax
mov eax, dword [ebp - 0xd4]
test eax, eax
sete al
cmp byte [ebp - 0x35], 0
movzx edx, al
mov edi, eax
mov dword [ebp - 0xc8], edx
jne 0xca4856
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd0]
fld qword [eax + 0xd48]
mov esi, dword [esi + 0x60]
fstp qword [ebp - 0x88]
mov eax, dword [ebp + 8]
mov ebx, dword [ebx + 0x68]
mov ecx, dword [ecx + 0x6c]
mov dword [ebp - 0x8c], esi
mov esi, dword [eax + 0x1c]
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x94], ecx
cmp dword [esi + 0x1c], 2
mov ebx, dword [esi + 0xb2c]
jg 0xca28ae
mov dword [esi + 0x1c], 3
test ebx, ebx
je 0xca4835
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0x1152be0
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov dword [ebx], 1
mov eax, dword [esi + 0xd84]
test eax, eax
je 0xca293b
mov dword [ebx + 0x1f4], 1
fld qword [ebp - 0x88]
fnstcw word [ebp - 0x1e]
mov esi, dword [ebp - 0x8c]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
mov eax, dword [esi + edx]
mov esi, dword [ebp - 0x90]
mov dword [ebx + 0x1f8], eax
mov eax, dword [esi + edx]
mov dword [ebx + 0x1fc], eax
mov eax, dword [ebp - 0x94]
fld qword [eax + ecx*8]
fstp qword [ebx + 0x200]
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd0]
fld qword [esi + 0xd48]
mov esi, dword [eax + 0x1c]
fstp qword [ebp - 0x70]
mov edx, dword [edx + 0x6c]
mov ebx, dword [ebx + 0x60]
mov ecx, dword [ecx + 0x68]
cmp dword [esi + 0x1c], 3
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x74], ebx
mov ebx, dword [esi + 0xb30]
mov dword [ebp - 0x78], ecx
jg 0xca2987
mov dword [esi + 0x1c], 4
test ebx, ebx
je 0xca4814
mov dword [esp + 8], 0x208
mov dword [esp + 4], 0x1152be0
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov dword [ebx], 1
mov eax, dword [esi + 0xd84]
test eax, eax
je 0xca2a08
mov dword [ebx + 0x1f4], 1
fld qword [ebp - 0x70]
fnstcw word [ebp - 0x1e]
mov esi, dword [ebp - 0x74]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx*4]
mov eax, dword [esi + edx]
mov esi, dword [ebp - 0x78]
mov dword [ebx + 0x1f8], eax
mov eax, dword [esi + edx]
mov dword [ebx + 0x1fc], eax
mov eax, dword [ebp - 0x7c]
fld qword [eax + ecx*8]
fstp qword [ebx + 0x200]
mov eax, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x20]
mov edx, eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x24]
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
shl eax, 5
fld qword [ebx + eax + 0xdc8]
mov eax, dword [ebp + 8]
fstp qword [esp]
call fcn.00ca1d70
mov esi, dword [ebp - 0xd0]
mov edx, 1
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
fld qword [ebx + 0xde8]
fstp qword [esp]
call fcn.00ca1d70
mov eax, dword [esi + 0x34]
mov edx, 2
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
fld qword [ebx + 0xe08]
fstp qword [esp]
call fcn.00ca1d70
mov eax, dword [esi + 0x30]
mov edx, 3
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
fld qword [ebx + 0xe28]
fstp qword [esp]
call fcn.00ca1d70
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [ebp + 8]
mov edx, dword [eax + 0x54]
mov esi, dword [eax + 0x50]
mov eax, dword [ebp - 0xc8]
shl eax, 5
fld qword [ecx + eax + 0xde0]
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebx + 0x1c]
fild dword [esp]
shl eax, 3
fsubp st(1)
mov dword [ebp - 0xec], ebx
mov ebx, dword [ebx + 0xb24]
fld1
fld st(0)
fsub st(2)
fmul qword [edx + eax]
fxch st(2)
fmul qword [eax + edx + 8]
faddp st(2)
fxch st(1)
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
fild dword [esp]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
jne 0xca447d
jp 0xca447d
test eax, eax
jle 0xca447d
fstp st(0)
sub eax, 1
lea eax, [eax + eax*4]
shl eax, 5
lea ecx, [eax + esi]
lea edx, [esi + eax + 0xa0]
mov eax, 1
fild dword [ecx + eax*4 - 4]
fmul st(1)
fild dword [edx + eax*4 - 4]
fmul st(3)
faddp st(1)
fstp dword [ebx + eax*4 + 0x14c]
add eax, 1
cmp eax, 0x29
jne 0xca2b73
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xec]
fld qword [eax + 0xe00]
mov edx, dword [ebx + 0x54]
mov esi, dword [ebx + 0x50]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ecx + 0xb28]
fild dword [esp]
shl eax, 3
fsubp st(1)
fld1
fld st(0)
fsub st(2)
fmul qword [edx + eax]
fxch st(2)
fmul qword [eax + edx + 8]
faddp st(2)
fxch st(1)
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
fild dword [esp]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
jne 0xca4470
jp 0xca4470
test eax, eax
jle 0xca4470
fstp st(0)
sub eax, 1
lea eax, [eax + eax*4]
shl eax, 5
lea ecx, [eax + esi]
lea edx, [esi + eax + 0xa0]
mov eax, 1
fild dword [ecx + eax*4 - 4]
fmul st(1)
fild dword [edx + eax*4 - 4]
fmul st(3)
faddp st(1)
fstp dword [ebx + eax*4 + 0x14c]
add eax, 1
cmp eax, 0x29
jne 0xca2c2b
fstp st(0)
fstp st(0)
cmp byte [ebp - 0x35], 0
jne 0xca2dc6
mov esi, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xd0]
fld qword [esi + 0xe20]
mov edx, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x50]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [esi + 0xb2c]
fild dword [esp]
shl eax, 3
fsubp st(1)
fld1
fld st(0)
fsub st(2)
fmul qword [edx + eax]
fxch st(2)
fmul qword [eax + edx + 8]
faddp st(2)
fxch st(1)
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
fild dword [esp]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
jne 0xca47fa
jp 0xca47fa
test eax, eax
jle 0xca47fa
fstp st(0)
sub eax, 1
lea eax, [eax + eax*4]
shl eax, 5
lea edx, [eax + ecx]
lea ecx, [ecx + eax + 0xa0]
mov eax, 1
fild dword [edx + eax*4 - 4]
fmul st(1)
fild dword [ecx + eax*4 - 4]
fmul st(3)
faddp st(1)
fstp dword [ebx + eax*4 + 0x14c]
add eax, 1
cmp eax, 0x29
jne 0xca2ced
fstp st(0)
fstp st(0)
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xec]
fld qword [ebx + 0xe40]
mov edx, dword [eax + 0x58]
mov ecx, dword [eax + 0x50]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [esi + 0xb30]
fild dword [esp]
shl eax, 3
fsubp st(1)
fld1
fld st(0)
fsub st(2)
fmul qword [edx + eax]
fxch st(2)
fmul qword [eax + edx + 8]
faddp st(2)
fxch st(1)
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
fild dword [esp]
add esp, 4
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
jne 0xca4807
jp 0xca4807
test eax, eax
jle 0xca4807
fstp st(0)
sub eax, 1
lea eax, [eax + eax*4]
shl eax, 5
lea edx, [ecx + eax]
lea ecx, [ecx + eax + 0xa0]
mov eax, 1
fild dword [edx + eax*4 - 4]
fmul st(1)
fild dword [ecx + eax*4 - 4]
fmul st(3)
faddp st(1)
fstp dword [ebx + eax*4 + 0x14c]
add eax, 1
cmp eax, 0x29
jne 0xca2da5
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xec]
mov esi, dword [ebp - 0xd0]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0xc8]
shl eax, 5
fld qword [ecx + eax + 0xdd0]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebx + 0xb24]
fild dword [esp]
shl eax, 2
fsubp st(1)
fild dword [edx + eax]
fld1
fld st(0)
fsub st(3)
fmulp st(2)
fild dword [eax + edx + 4]
fmulp st(3)
fxch st(1)
mov eax, dword [ebp - 0xd8]
faddp st(2)
fxch st(1)
fstp dword [ecx + 0x20]
mov edx, dword [esi + 0x28]
fld qword [eax + 0xdf0]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
shl eax, 2
mov ecx, dword [ebx + 0xb28]
fild dword [esp]
add esp, 4
fsubp st(1)
cmp byte [ebp - 0x35], 0
fild dword [edx + eax]
fld st(2)
fsub st(2)
fmulp st(1)
fild dword [eax + edx + 4]
fmulp st(2)
faddp st(1)
fstp dword [ecx + 0x20]
jne 0xca4491
mov ecx, dword [ebp - 0xd8]
mov edx, dword [esi + 0x28]
fld qword [ecx + 0xe10]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebx + 0xb2c]
fild dword [esp]
shl eax, 2
fsubp st(1)
mov ebx, dword [ebp - 0xd8]
fild dword [edx + eax]
fld st(2)
fsub st(2)
fmulp st(1)
fild dword [eax + edx + 4]
fmulp st(2)
faddp st(1)
fstp dword [ecx + 0x20]
mov edx, dword [esi + 0x28]
fld qword [ebx + 0xe30]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
shl eax, 2
mov ecx, dword [esi + 0xb30]
fild dword [esp]
add esp, 4
fsubp st(1)
fild dword [edx + eax]
fxch st(2)
fsub st(1)
fmulp st(2)
fild dword [eax + edx + 4]
fmulp st(1)
faddp st(1)
fstp dword [ecx + 0x20]
mov eax, edi
test al, al
jne 0xca448a
mov edx, dword [ebp - 0xd8]
fld qword [edx + 0xd50]
shl dword [ebp - 0xc8], 5
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd0]
fld qword [eax + edx + 0xdd8]
mov ebx, dword [ecx + 0x38]
mov esi, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x3c]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [eax + 0xb24]
fild dword [esp]
lea eax, [edx*4]
add esp, 4
fsubp st(1)
imul edx, edx, 0xcc
fld1
fsub st(1)
fild dword [esi + eax]
fmul st(1)
fild dword [eax + esi + 4]
lea esi, [edi + edx]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x6c]
mov eax, dword [ebx]
mov dword [ecx + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
lea ebx, [edx + edi + 0xcc]
xor edx, edx
mov dword [ecx + 0x80], eax
mov eax, ecx
fild dword [edx + esi]
fmul st(1)
fild dword [edx + ebx]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x84]
fild dword [edx + esi + 4]
fmul st(1)
fild dword [edx + ebx + 4]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x88]
fild dword [edx + esi + 8]
fmul st(1)
fild dword [edx + ebx + 8]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x8c]
fild dword [edx + esi + 0xc]
fmul st(1)
fild dword [edx + ebx + 0xc]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x90]
fild dword [edx + esi + 0x10]
fmul st(1)
fild dword [edx + ebx + 0x10]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x94]
fild dword [edx + esi + 0x14]
fmul st(1)
fild dword [edx + ebx + 0x14]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x98]
fild dword [edx + esi + 0x18]
fmul st(1)
fild dword [edx + ebx + 0x18]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x9c]
fild dword [edx + esi + 0x1c]
fmul st(1)
fild dword [edx + ebx + 0x1c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa0]
fild dword [edx + esi + 0x20]
fmul st(1)
fild dword [edx + ebx + 0x20]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa4]
fild dword [edx + esi + 0x24]
fmul st(1)
fild dword [edx + ebx + 0x24]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa8]
fild dword [edx + esi + 0x28]
fmul st(1)
fild dword [edx + ebx + 0x28]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xac]
fild dword [edx + esi + 0x2c]
fmul st(1)
fild dword [edx + ebx + 0x2c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb0]
fild dword [edx + esi + 0x30]
fmul st(1)
fild dword [edx + ebx + 0x30]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb4]
fild dword [edx + esi + 0x34]
fmul st(1)
fild dword [edx + ebx + 0x34]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb8]
fild dword [edx + esi + 0x38]
fmul st(1)
fild dword [edx + ebx + 0x38]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xbc]
fild dword [edx + esi + 0x3c]
fmul st(1)
fild dword [edx + ebx + 0x3c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc0]
fild dword [edx + esi + 0x40]
fmul st(1)
fild dword [edx + ebx + 0x40]
add edx, 0x44
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc4]
add ecx, 0x44
cmp edx, 0xcc
jne 0xca2f9d
fstp st(0)
fstp st(0)
xor edx, edx
fld dword [0x12bed14]
fadd dword [eax + 0x84]
fld st(1)
fadd dword [eax + 0x84]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x84]
fld st(1)
fadd dword [eax + 0x88]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x88]
fld st(1)
fadd dword [eax + 0x8c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x8c]
fld st(1)
fadd dword [eax + 0x90]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x90]
fld st(1)
fadd dword [eax + 0x94]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x94]
fld st(1)
fadd dword [eax + 0x98]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x98]
fld st(1)
fadd dword [eax + 0x9c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0x9c]
fld st(1)
fadd dword [eax + 0xa0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xa0]
fld st(1)
fadd dword [eax + 0xa4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xa4]
fld st(1)
fadd dword [eax + 0xa8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xa8]
fld st(1)
fadd dword [eax + 0xac]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xac]
fld st(1)
fadd dword [eax + 0xb0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xb0]
fld st(1)
fadd dword [eax + 0xb4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xb4]
fld st(1)
fadd dword [eax + 0xb8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xb8]
fld st(1)
fadd dword [eax + 0xbc]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xbc]
fld st(1)
fadd dword [eax + 0xc0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fxch st(1)
fcmovnbe st(0), st(1)
fstp dword [eax + 0xc0]
fld st(1)
fadd dword [eax + 0xc4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
add edx, 1
fstp dword [eax + 0xc4]
add eax, 0x44
cmp edx, 3
jne 0xca3107
fstp st(0)
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xec]
fld qword [ecx + 0xdf8]
mov esi, dword [edx + 0x38]
mov ebx, dword [edx + 0x4c]
mov edi, dword [edx + 0x40]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [eax + 0xb28]
fild dword [esp]
lea eax, [edx*4]
add esp, 4
fsubp st(1)
imul edx, edx, 0xcc
fld1
fsub st(1)
fild dword [ebx + eax]
fmul st(1)
fild dword [eax + ebx + 4]
lea ebx, [esi + 0xc]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x6c]
mov eax, dword [esi + 0xc]
lea esi, [edx + edi]
mov dword [ecx + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
lea ebx, [edx + edi + 0xcc]
xor edx, edx
mov dword [ecx + 0x80], eax
mov eax, ecx
fild dword [edx + esi]
fmul st(1)
fild dword [edx + ebx]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x84]
fild dword [edx + esi + 4]
fmul st(1)
fild dword [edx + ebx + 4]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x88]
fild dword [edx + esi + 8]
fmul st(1)
fild dword [edx + ebx + 8]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x8c]
fild dword [edx + esi + 0xc]
fmul st(1)
fild dword [edx + ebx + 0xc]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x90]
fild dword [edx + esi + 0x10]
fmul st(1)
fild dword [edx + ebx + 0x10]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x94]
fild dword [edx + esi + 0x14]
fmul st(1)
fild dword [edx + ebx + 0x14]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x98]
fild dword [edx + esi + 0x18]
fmul st(1)
fild dword [edx + ebx + 0x18]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x9c]
fild dword [edx + esi + 0x1c]
fmul st(1)
fild dword [edx + ebx + 0x1c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa0]
fild dword [edx + esi + 0x20]
fmul st(1)
fild dword [edx + ebx + 0x20]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa4]
fild dword [edx + esi + 0x24]
fmul st(1)
fild dword [edx + ebx + 0x24]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa8]
fild dword [edx + esi + 0x28]
fmul st(1)
fild dword [edx + ebx + 0x28]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xac]
fild dword [edx + esi + 0x2c]
fmul st(1)
fild dword [edx + ebx + 0x2c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb0]
fild dword [edx + esi + 0x30]
fmul st(1)
fild dword [edx + ebx + 0x30]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb4]
fild dword [edx + esi + 0x34]
fmul st(1)
fild dword [edx + ebx + 0x34]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb8]
fild dword [edx + esi + 0x38]
fmul st(1)
fild dword [edx + ebx + 0x38]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xbc]
fild dword [edx + esi + 0x3c]
fmul st(1)
fild dword [edx + ebx + 0x3c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc0]
fild dword [edx + esi + 0x40]
fmul st(1)
fild dword [edx + ebx + 0x40]
add edx, 0x44
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc4]
add ecx, 0x44
cmp edx, 0xcc
jne 0xca3383
fstp st(0)
fstp st(0)
xor edx, edx
fld dword [0x12bed14]
fadd dword [eax + 0x84]
fldz
fld st(0)
fadd dword [eax + 0x84]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x84]
fld st(0)
fadd dword [eax + 0x88]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x88]
fld st(0)
fadd dword [eax + 0x8c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x8c]
fld st(0)
fadd dword [eax + 0x90]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x90]
fld st(0)
fadd dword [eax + 0x94]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x94]
fld st(0)
fadd dword [eax + 0x98]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x98]
fld st(0)
fadd dword [eax + 0x9c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x9c]
fld st(0)
fadd dword [eax + 0xa0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa0]
fld st(0)
fadd dword [eax + 0xa4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa4]
fld st(0)
fadd dword [eax + 0xa8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa8]
fld st(0)
fadd dword [eax + 0xac]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xac]
fld st(0)
fadd dword [eax + 0xb0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb0]
fld st(0)
fadd dword [eax + 0xb4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb4]
fld st(0)
fadd dword [eax + 0xb8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb8]
fld st(0)
fadd dword [eax + 0xbc]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xbc]
fld st(0)
fadd dword [eax + 0xc0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xc0]
fadd dword [eax + 0xc4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
add edx, 1
fstp dword [eax + 0xc4]
add eax, 0x44
cmp edx, 3
jne 0xca34ed
cmp byte [ebp - 0x35], 0
jne 0xca3eb6
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xec]
fld qword [ecx + 0xe18]
mov esi, dword [edx + 0x38]
mov ebx, dword [edx + 0x4c]
mov edi, dword [edx + 0x44]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [eax + 0xb2c]
fild dword [esp]
lea eax, [edx*4]
add esp, 4
fsubp st(1)
imul edx, edx, 0xcc
fld1
fsub st(1)
fild dword [ebx + eax]
fmul st(1)
fild dword [eax + ebx + 4]
lea ebx, [esi + 0x18]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x6c]
mov eax, dword [esi + 0x18]
lea esi, [edi + edx]
mov dword [ecx + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
lea ebx, [edx + edi + 0xcc]
xor edx, edx
mov dword [ecx + 0x80], eax
mov eax, ecx
fild dword [edx + esi]
fmul st(1)
fild dword [edx + ebx]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x84]
fild dword [edx + esi + 4]
fmul st(1)
fild dword [edx + ebx + 4]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x88]
fild dword [edx + esi + 8]
fmul st(1)
fild dword [edx + ebx + 8]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x8c]
fild dword [edx + esi + 0xc]
fmul st(1)
fild dword [edx + ebx + 0xc]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x90]
fild dword [edx + esi + 0x10]
fmul st(1)
fild dword [edx + ebx + 0x10]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x94]
fild dword [edx + esi + 0x14]
fmul st(1)
fild dword [edx + ebx + 0x14]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x98]
fild dword [edx + esi + 0x18]
fmul st(1)
fild dword [edx + ebx + 0x18]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x9c]
fild dword [edx + esi + 0x1c]
fmul st(1)
fild dword [edx + ebx + 0x1c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa0]
fild dword [edx + esi + 0x20]
fmul st(1)
fild dword [edx + ebx + 0x20]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa4]
fild dword [edx + esi + 0x24]
fmul st(1)
fild dword [edx + ebx + 0x24]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa8]
fild dword [edx + esi + 0x28]
fmul st(1)
fild dword [edx + ebx + 0x28]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xac]
fild dword [edx + esi + 0x2c]
fmul st(1)
fild dword [edx + ebx + 0x2c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb0]
fild dword [edx + esi + 0x30]
fmul st(1)
fild dword [edx + ebx + 0x30]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb4]
fild dword [edx + esi + 0x34]
fmul st(1)
fild dword [edx + ebx + 0x34]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb8]
fild dword [edx + esi + 0x38]
fmul st(1)
fild dword [edx + ebx + 0x38]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xbc]
fild dword [edx + esi + 0x3c]
fmul st(1)
fild dword [edx + ebx + 0x3c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc0]
fild dword [edx + esi + 0x40]
fmul st(1)
fild dword [edx + ebx + 0x40]
add edx, 0x44
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc4]
add ecx, 0x44
cmp edx, 0xcc
jne 0xca3771
fstp st(0)
fstp st(0)
xor edx, edx
fld dword [0x12bed14]
fadd dword [eax + 0x84]
fldz
fld st(0)
fadd dword [eax + 0x84]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x84]
fld st(0)
fadd dword [eax + 0x88]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x88]
fld st(0)
fadd dword [eax + 0x8c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x8c]
fld st(0)
fadd dword [eax + 0x90]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x90]
fld st(0)
fadd dword [eax + 0x94]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x94]
fld st(0)
fadd dword [eax + 0x98]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x98]
fld st(0)
fadd dword [eax + 0x9c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x9c]
fld st(0)
fadd dword [eax + 0xa0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa0]
fld st(0)
fadd dword [eax + 0xa4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa4]
fld st(0)
fadd dword [eax + 0xa8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa8]
fld st(0)
fadd dword [eax + 0xac]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xac]
fld st(0)
fadd dword [eax + 0xb0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb0]
fld st(0)
fadd dword [eax + 0xb4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb4]
fld st(0)
fadd dword [eax + 0xb8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb8]
fld st(0)
fadd dword [eax + 0xbc]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xbc]
fld st(0)
fadd dword [eax + 0xc0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xc0]
fadd dword [eax + 0xc4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
add edx, 1
fstp dword [eax + 0xc4]
add eax, 0x44
cmp edx, 3
jne 0xca38db
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xec]
fld qword [ecx + 0xe38]
mov esi, dword [edx + 0x38]
mov ebx, dword [edx + 0x4c]
mov edi, dword [edx + 0x48]
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [eax + 0xb30]
fild dword [esp]
lea eax, [edx*4]
add esp, 4
fsubp st(1)
imul edx, edx, 0xcc
fld1
fsub st(1)
fild dword [ebx + eax]
fmul st(1)
fild dword [eax + ebx + 4]
lea ebx, [esi + 0x24]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x6c]
mov eax, dword [esi + 0x24]
lea esi, [edx + edi + 0xcc]
mov dword [ecx + 0x78], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0x7c], eax
mov eax, dword [ebx + 8]
lea ebx, [edi + edx]
xor edx, edx
mov dword [ecx + 0x80], eax
mov eax, ecx
fild dword [edx + ebx]
fmul st(1)
fild dword [edx + esi]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x84]
fild dword [edx + ebx + 4]
fmul st(1)
fild dword [edx + esi + 4]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x88]
fild dword [edx + ebx + 8]
fmul st(1)
fild dword [edx + esi + 8]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x8c]
fild dword [edx + ebx + 0xc]
fmul st(1)
fild dword [edx + esi + 0xc]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x90]
fild dword [edx + ebx + 0x10]
fmul st(1)
fild dword [edx + esi + 0x10]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x94]
fild dword [edx + ebx + 0x14]
fmul st(1)
fild dword [edx + esi + 0x14]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x98]
fild dword [edx + ebx + 0x18]
fmul st(1)
fild dword [edx + esi + 0x18]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0x9c]
fild dword [edx + ebx + 0x1c]
fmul st(1)
fild dword [edx + esi + 0x1c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa0]
fild dword [edx + ebx + 0x20]
fmul st(1)
fild dword [edx + esi + 0x20]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa4]
fild dword [edx + ebx + 0x24]
fmul st(1)
fild dword [edx + esi + 0x24]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xa8]
fild dword [edx + ebx + 0x28]
fmul st(1)
fild dword [edx + esi + 0x28]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xac]
fild dword [edx + ebx + 0x2c]
fmul st(1)
fild dword [edx + esi + 0x2c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb0]
fild dword [edx + ebx + 0x30]
fmul st(1)
fild dword [edx + esi + 0x30]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb4]
fild dword [edx + ebx + 0x34]
fmul st(1)
fild dword [edx + esi + 0x34]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xb8]
fild dword [edx + ebx + 0x38]
fmul st(1)
fild dword [edx + esi + 0x38]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xbc]
fild dword [edx + ebx + 0x3c]
fmul st(1)
fild dword [edx + esi + 0x3c]
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc0]
fild dword [edx + ebx + 0x40]
fmul st(1)
fild dword [edx + esi + 0x40]
add edx, 0x44
fmul st(3)
faddp st(1)
fstp dword [ecx + 0xc4]
add ecx, 0x44
cmp edx, 0xcc
jne 0xca3b55
fstp st(0)
fstp st(0)
xor edx, edx
fld dword [0x12bed14]
fadd dword [eax + 0x84]
fldz
fld st(0)
fadd dword [eax + 0x84]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x84]
fld st(0)
fadd dword [eax + 0x88]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x88]
fld st(0)
fadd dword [eax + 0x8c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x8c]
fld st(0)
fadd dword [eax + 0x90]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x90]
fld st(0)
fadd dword [eax + 0x94]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x94]
fld st(0)
fadd dword [eax + 0x98]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x98]
fld st(0)
fadd dword [eax + 0x9c]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0x9c]
fld st(0)
fadd dword [eax + 0xa0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa0]
fld st(0)
fadd dword [eax + 0xa4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa4]
fld st(0)
fadd dword [eax + 0xa8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xa8]
fld st(0)
fadd dword [eax + 0xac]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xac]
fld st(0)
fadd dword [eax + 0xb0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb0]
fld st(0)
fadd dword [eax + 0xb4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb4]
fld st(0)
fadd dword [eax + 0xb8]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xb8]
fld st(0)
fadd dword [eax + 0xbc]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xbc]
fld st(0)
fadd dword [eax + 0xc0]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(2)
fucomi st(2)
fxch st(2)
fcmovnbe st(0), st(2)
fstp dword [eax + 0xc0]
fadd dword [eax + 0xc4]
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fxch st(1)
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
add edx, 1
fstp dword [eax + 0xc4]
add eax, 0x44
cmp edx, 3
jne 0xca3cbf
mov edx, dword [ebp - 0xec]
cmp byte [ebp - 0x35], 0
mov eax, dword [edx + 0xb24]
fld qword [edx + 0xda8]
fstp dword [eax + 4]
fld qword [edx + 0xdb0]
fstp dword [eax + 8]
mov eax, dword [edx + 0xb28]
fld qword [edx + 0xda8]
fstp dword [eax + 4]
fld qword [edx + 0xdb0]
fstp dword [eax + 8]
jne 0xca3f22
mov eax, dword [edx + 0xb2c]
fld qword [edx + 0xda8]
fstp dword [eax + 4]
fld qword [edx + 0xdb0]
fstp dword [eax + 8]
mov eax, dword [edx + 0xb30]
fld qword [edx + 0xda8]
fstp dword [eax + 4]
fld qword [edx + 0xdb0]
fstp dword [eax + 8]
mov ecx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xd0]
mov dword [ebp - 0x54], 0
fld qword [ecx + 0xd48]
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov edx, dword [ebp - 0x24]
mov eax, dword [edi]
shl edx, 3
add edx, dword [ebx + 0x98]
cmp eax, dword [edi + 4]
mov esi, dword [edx + 4]
mov edx, dword [edx]
setne al
movzx eax, al
add eax, 1
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x34], edx
mov dword [esp + 4], 0xc88
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xec]
mov dword [ecx + edx*4 + 0x220], eax
mov dword [esp + 4], 0x10
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp - 0xec]
mov edx, ebx
shl edx, 4
mov dword [esi + ebx*4 + 0x20], eax
lea ecx, [edx + 0x1152e00]
mov edx, dword [edx + 0x1152e00]
lea edi, [ebx + 1]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
cmp dword [esi + 8], ebx
mov dword [ebp - 0xe4], edi
jg 0xca3fed
mov dword [esi + 8], edi
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0x34]
mov dword [edx + eax*4 + 0x120], 0
mov eax, dword [edx + eax*4 + 0x220]
mov dword [esp + 8], 0xc88
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0x54]
cmp dword [edi + 0xc], esi
jg 0xca403c
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x60], 0
mov eax, dword [eax]
test eax, eax
jle 0xca4335
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x60]
mov edi, dword [ebp + 8]
mov ebx, dword [esi + ebx*4 + 0x444]
mov eax, ebx
shl eax, 5
add eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], ebx
mov ebx, dword [edi + 0x1c]
mov dword [esp], 0xb18
mov dword [ebp - 0x58], eax
call sub.msvcrt.dll_malloc
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebx + edx*4 + 0x620], eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0xe0]
mov dword [esp + 8], 0xb18
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_memcpy
mov edi, dword [ebp - 0x5c]
cmp edi, dword [ebx + 0x14]
jl 0xca40bd
mov eax, edi
add eax, 1
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax]
mov dword [ebx + esi*4 + 0x520], eax
mov eax, dword [ebx + 0xd5c]
test eax, eax
je 0xca4498
mov edi, dword [edx + 0xc]
test edi, edi
jle 0xca4152
mov eax, dword [ebp - 0x58]
xor edx, edx
mov edi, dword [eax + 0x1c]
mov eax, edx
shl eax, 4
mov ecx, dword [eax + edi]
test ecx, ecx
je 0xca410c
mov ecx, dword [ebp - 0xe0]
or dword [ecx + edx*4 + 0x18], 1
add eax, edi
mov esi, dword [eax + 4]
test esi, esi
je 0xca4120
mov esi, dword [ebp - 0xe0]
or dword [esi + edx*4 + 0x18], 2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0xca4132
mov ecx, dword [ebp - 0xe0]
or dword [ecx + edx*4 + 0x18], 4
mov eax, dword [eax + 0xc]
test eax, eax
je 0xca4144
mov esi, dword [ebp - 0xe0]
or dword [esi + edx*4 + 0x18], 8
mov eax, dword [ebp - 0xe0]
add edx, 1
cmp dword [eax + 0xc], edx
jg 0xca40f5
mov edx, dword [ebp - 0x58]
mov ecx, dword [edx + 0x14]
mov edx, dword [ebx + 0x18]
test edx, edx
jle 0xca4180
xor eax, eax
cmp ecx, dword [ebx + 0x720]
jne 0xca4179
jmp 0xca4188
cmp ecx, dword [ebx + eax*4 + 0x720]
je 0xca4188
add eax, 1
cmp eax, edx
jne 0xca4170
lea eax, [edx + 1]
mov dword [ebx + 0x18], eax
mov eax, edx
mov esi, dword [ebp - 0xe0]
mov dword [ebx + eax*4 + 0x720], ecx
mov dword [esi + 0x14], eax
mov esi, dword [esi + 0xc]
test esi, esi
jle 0xca4245
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x2c], 0
mov edi, dword [eax + 0x1c]
mov edx, dword [ebp - 0x2c]
xor esi, esi
shl edx, 2
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xf0]
add eax, esi
mov eax, dword [edi + eax*4]
test eax, eax
je 0xca4227
mov ecx, dword [ebx + 0x18]
test ecx, ecx
jle 0xca41f7
xor edx, edx
cmp eax, dword [ebx + 0x720]
jne 0xca41f0
jmp 0xca41ff
cmp eax, dword [ebx + edx*4 + 0x720]
je 0xca41ff
add edx, 1
cmp edx, ecx
jne 0xca41e7
lea eax, [ecx + 1]
mov edx, ecx
mov dword [ebx + 0x18], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4 + 0x118], edx
mov eax, dword [ebp - 0xf0]
add ecx, 1
mov dword [ebp - 0x48], ecx
add eax, esi
mov eax, dword [edi + eax*4]
mov dword [ebx + edx*4 + 0x720], eax
add esi, 1
cmp esi, 4
jne 0xca41c5
mov ecx, dword [ebp - 0xe0]
add dword [ebp - 0x2c], 1
mov edx, dword [ebp - 0x2c]
cmp dword [ecx + 0xc], edx
jg 0xca41b7
fld dword [0x12bed10]
fld qword [ebx + 0xd98]
fmul st(1)
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x54]
fild dword [edi + 8]
fmul dword [0x12bed18]
fxch st(1)
mov eax, dword [ebx + esi*4]
mov edx, dword [ebx + esi*4 + 0x420]
fnstcw word [ebp - 0x1e]
sar eax, 1
fucomi st(1)
fld st(1)
fcmovbe st(0), st(1)
fstp st(1)
mov dword [ebp - 0x4c], eax
movzx eax, word [ebp - 0x1e]
fild dword [ebp - 0x4c]
fxch st(1)
fdiv st(2)
mov ah, 0xc
mov word [ebp - 0x20], ax
fld st(0)
fmul st(2)
fldcw word [ebp - 0x20]
fistp dword [edx + 0x45c]
fldcw word [ebp - 0x1e]
mov edx, dword [ebp - 0x58]
mov eax, dword [edx + 4]
cmp eax, 1
je 0xca4609
fstp st(3)
fxch st(1)
fxch st(2)
cmp eax, 2
je 0xca45fa
fstp st(2)
fxch st(1)
mov ecx, dword [ebp - 0x5c]
cmp dword [ebx + ecx*4 + 0x520], 2
je 0xca4642
mov esi, dword [ebp - 0xe0]
fmulp st(1)
mov ecx, dword [esi + 8]
push ecx
fild dword [esp]
add esp, 4
fdivp st(1)
fadd qword [0x12bed20]
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp dword [ebp - 0x4c], eax
mov dword [esi + 4], eax
jge 0xca4313
mov edx, dword [ebp - 0x4c]
mov eax, edx
sar edx, 0x1f
idiv ecx
imul eax, ecx
mov dword [esi + 4], eax
mov edi, dword [ebp - 0xe0]
mov ebx, dword [edi + 4]
test ebx, ebx
jne 0xca4323
mov dword [edi + 4], ecx
mov edx, dword [ebp - 0x34]
add dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
cmp dword [edx], eax
jg 0xca4050
mov ecx, dword [ebp - 0xe4]
add dword [ebp - 0x34], 0xc88
cmp dword [ebp - 0x64], ecx
mov dword [ebp - 0x54], ecx
jg 0xca3f72
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 0xd64]
test eax, eax
jle 0xca4785
mov esi, dword [ebp + 8]
mov dword [esi + 0x10], eax
mov ecx, dword [ebp - 0xd8]
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + 0xd60]
mov dword [ebx + 0x14], eax
mov eax, dword [ecx + 0xd70]
mov dword [ebx + 0xc], eax
mov eax, dword [ecx + 0xd64]
test eax, eax
je 0xca4776
fild dword [ecx + 0xd74]
push eax
fild dword [esp]
add esp, 4
fdivp st(1)
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fistp dword [ebx + 0x18]
fldcw word [ebp - 0x1e]
mov edi, dword [ebp - 0xd8]
xor eax, eax
mov edx, dword [edi + 0xd5c]
test edx, edx
je 0xca1f67
mov eax, dword [edi + 0xd64]
fld qword [edi + 0xd78]
fstp qword [edi + 0xd30]
fld qword [edi + 0xd68]
mov dword [edi + 0xd20], eax
mov eax, dword [edi + 0xd60]
fstp qword [edi + 0xd38]
mov dword [edi + 0xd24], eax
mov eax, dword [edi + 0xd70]
mov dword [edi + 0xd28], eax
mov eax, dword [edi + 0xd74]
mov dword [edi + 0xd2c], eax
xor eax, eax
jmp 0xca1f67
fstp st(1)
fld dword [0x12bed0c]
fld st(0)
fucompi st(2)
fstp st(1)
jbe 0xca445d
mov esi, dword [ebp - 0xd8]
fstp qword [esi + 0xdb8]
jmp 0xca1fc0
fstp st(0)
fld dword [0x12bed08]
fld st(0)
fucompi st(2)
fstp st(1)
jbe 0xca4464
mov ecx, dword [ebp - 0xd8]
fstp qword [ecx + 0xda8]
jmp 0xca1fa0
fstp st(0)
jmp 0xca1fc0
fstp st(0)
jmp 0xca1fa0
fstp st(1)
fstp st(1)
fld1
fsub st(1)
jmp 0xca2c16
fstp st(1)
fstp st(1)
fld1
fsub st(1)
jmp 0xca2b5e
fldz
jmp 0xca2f10
fstp st(0)
jmp 0xca2efa
mov esi, dword [edx + 0xc]
test esi, esi
lea esi, [esi]
jle 0xca4507
mov esi, dword [ebp - 0x58]
xor edx, edx
mov edi, dword [esi + 0x18]
mov eax, edx
shl eax, 4
mov ecx, dword [eax + edi]
test ecx, ecx
je 0xca44c1
mov ecx, dword [ebp - 0xe0]
or dword [ecx + edx*4 + 0x18], 1
add eax, edi
mov esi, dword [eax + 4]
test esi, esi
je 0xca44d5
mov esi, dword [ebp - 0xe0]
or dword [esi + edx*4 + 0x18], 2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0xca44e7
mov ecx, dword [ebp - 0xe0]
or dword [ecx + edx*4 + 0x18], 4
mov eax, dword [eax + 0xc]
test eax, eax
je 0xca44f9
mov esi, dword [ebp - 0xe0]
or dword [esi + edx*4 + 0x18], 8
mov eax, dword [ebp - 0xe0]
add edx, 1
cmp dword [eax + 0xc], edx
jg 0xca44aa
mov edx, dword [ebp - 0x58]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebx + 0x18]
test edx, edx
jle 0xca4530
xor eax, eax
cmp ecx, dword [ebx + 0x720]
jne 0xca4529
jmp 0xca4538
cmp ecx, dword [ebx + eax*4 + 0x720]
je 0xca4538
add eax, 1
cmp eax, edx
jne 0xca4520
lea eax, [edx + 1]
mov dword [ebx + 0x18], eax
mov eax, edx
mov esi, dword [ebp - 0xe0]
mov dword [ebx + eax*4 + 0x720], ecx
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0xc]
test eax, eax
jle 0xca4245
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x44], 0
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x28], 0
mov edi, dword [eax + 0x18]
shl edx, 2
xor esi, esi
mov dword [ebp - 0xf4], edx
mov eax, dword [ebp - 0xf4]
add eax, esi
mov eax, dword [edi + eax*4]
test eax, eax
je 0xca45d7
mov ecx, dword [ebx + 0x18]
test ecx, ecx
jle 0xca45a7
xor edx, edx
cmp eax, dword [ebx + 0x720]
jne 0xca45a0
jmp 0xca45af
cmp eax, dword [ebx + edx*4 + 0x720]
je 0xca45af
add edx, 1
cmp edx, ecx
jne 0xca4597
lea eax, [ecx + 1]
mov edx, ecx
mov dword [ebx + 0x18], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4 + 0x118], edx
mov eax, dword [ebp - 0xf4]
add ecx, 1
mov dword [ebp - 0x28], ecx
add eax, esi
mov eax, dword [edi + eax*4]
mov dword [ebx + edx*4 + 0x720], eax
add esi, 1
cmp esi, 4
jne 0xca4575
mov ecx, dword [ebp - 0xe0]
add dword [ebp - 0x44], 1
mov edx, dword [ebp - 0x44]
cmp dword [ecx + 0xc], edx
jg 0xca456a
jmp 0xca4245
fstp st(0)
fxch st(1)
fdivr dword [0x12bed1c]
jmp 0xca42c1
fstp st(0)
mov edi, dword [ebx + 0xd5c]
test edi, edi
je 0xca475c
fild dword [ebx + 0xbb4]
fmulp st(3)
fxch st(2)
fucomi st(1)
jbe 0xca4755
fstp st(0)
mov ecx, dword [ebp - 0x5c]
fld st(0)
fdivrp st(1)
cmp dword [ebx + ecx*4 + 0x520], 2
jne 0xca42d2
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x50], 0
test esi, esi
mov dword [ebp - 0x40], esi
jle 0xca476b
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x50]
mov edx, dword [ebx + edi*4 + 0x220]
test esi, esi
mov eax, dword [edx]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
sete al
test ecx, ecx
jle 0xca46a2
test al, al
je 0xca46a2
xor esi, esi
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [edx + esi*4 + 0x444]
je 0xca471a
mov edi, dword [ebp - 0x50]
add esi, 1
test edi, edi
sete al
cmp dword [ebp - 0x3c], esi
jg 0xca4706
add dword [ebp - 0x30], 1
mov edx, dword [ebp - 0x30]
cmp dword [ebp - 0x40], edx
jg 0xca4748
mov edx, dword [ebp - 0x50]
imul edx, dword [ebp - 0x4c]
fild dword [ebp - 0x50]
fxch st(2)
fmulp st(1)
mov ebx, dword [ebp - 0xe0]
mov ecx, dword [ebx + 8]
fmulp st(1)
push ecx
fild dword [esp]
add esp, 4
fdivp st(1)
fadd qword [0x12bed20]
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
imul eax, ecx
cmp eax, edx
mov dword [ebx + 4], eax
jle 0xca4313
mov eax, edx
sar edx, 0x1f
idiv ecx
imul eax, ecx
mov dword [ebx + 4], eax
jmp 0xca4313
test al, al
je 0xca46a2
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [edx + esi*4 + 0x444]
jne 0xca4692
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
test edi, edi
jle 0xca4692
xor ecx, ecx
lea esi, [esi]
xor eax, eax
cmp dword [edx + ecx*4 + 4], esi
sete al
add ecx, 1
add dword [ebp - 0x50], eax
cmp ecx, edi
jne 0xca4730
jmp 0xca4692
test al, al
jne 0xca465e
jmp 0xca46b2
fdivrp st(1)
jmp 0xca42c1
fild dword [ebx + 0xb98]
fmulp st(3)
fxch st(2)
jmp 0xca4623
fldz
fxch st(2)
xor edx, edx
jmp 0xca46be
mov esi, dword [ebp + 8]
mov dword [esi + 0x18], 0
jmp 0xca43b6
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 4]
fld qword [eax + 0xd48]
mov eax, dword [eax + 0xd44]
mov edx, dword [eax + 4]
mov eax, 0xffffffff
test edx, edx
je 0xca47f6
fnstcw word [ebp - 0x1e]
movzx eax, word [ebp - 0x1e]
mov ah, 0xc
mov word [ebp - 0x20], ax
fldcw word [ebp - 0x20]
fist dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
push eax
fild dword [esp]
fsubp st(1)
fld1
fsub st(1)
fmul qword [edx + eax*8]
fxch st(1)
fmul qword [edx + eax*8 + 8]
mov dword [esp], ecx
faddp st(1)
fild dword [esp]
add esp, 4
fmulp st(1)
fldcw word [ebp - 0x20]
fistp dword [ebp - 0x24]
fldcw word [ebp - 0x1e]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], eax
jmp 0xca4368
fstp st(0)
jmp 0xca47eb
fstp st(1)
fstp st(1)
fld1
fsub st(1)
jmp 0xca2cd8
fstp st(1)
fstp st(1)
fld1
fsub st(1)
jmp 0xca2d90
mov dword [esp + 4], 0x208
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ebx, eax
mov dword [esi + 0xb30], eax
jmp 0xca298f
mov dword [esp + 4], 0x208
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ebx, eax
mov dword [esi + 0xb2c], eax
jmp 0xca28b6
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x2c]
mov ecx, dword [edx + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x24]
xor edx, edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
shl eax, 5
fld qword [ebx + eax + 0xdc8]
mov eax, dword [ebp + 8]
fstp qword [esp]
call fcn.00ca1d70
mov esi, dword [ebp - 0xd0]
mov edx, 1
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
fld qword [ebx + 0xde8]
fstp qword [esp]
call fcn.00ca1d70
jmp 0xca2abf
mov dword [esp + 4], 0x208
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov ebx, eax
mov dword [esi + 0xb28], eax
jmp 0xca27b7
mov dword [esi + 0x1c], 2
jmp 0xca27af
mov dword [esp + 4], 0x208
mov dword [esp], 1
call sub.msvcrt.dll_calloc
mov edx, dword [ebp - 0xec]
mov ebx, eax
mov dword [edx + 0xb24], eax
jmp 0xca26e1
mov dword [eax + 0x1c], 1
jmp 0xca26d9
fstp st(0)
mov ecx, dword [ebp - 0xec]
mov eax, 1
mov edx, dword [ecx]
mov ebx, ecx
mov dword [ecx + 0xca8], edx
mov ecx, dword [ecx + 4]
mov dword [ebx + 0xce4], ecx
mov esi, dword [ebp - 0xec]
mov dword [esi + eax*4 + 0xca8], edx
mov dword [esi + eax*4 + 0xce4], ecx
add eax, 1
cmp eax, 0xf
jne 0xca4942
jmp 0xca2695
fstp st(0)
jmp 0xca2246