Function at 0x10041f20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
mov eax, dword [ebp + 0x24]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x30]
and esi, 1
cmp eax, ebx
push edi
mov dword [esp + 0x58], ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x3c], eax
jne 0x10041f56
mov ecx, 1
mov dword [esp + 0x60], ecx
jmp 0x10041f71
lea ecx, [ebx + ebx]
cmp eax, ecx
jne 0x10041f68
mov ecx, 2
mov dword [esp + 0x60], ecx
jmp 0x10041f71
cdq
idiv ebx
mov ecx, eax
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x10041fa7
test esi, esi
mov edx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 8]
push edx
push eax
mov eax, dword [ebp + 0xc]
push eax
push ecx
jne 0x10041f98
call dword [0x100dcac8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
call dword [0x100dcacc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp edi, eax
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
je 0x100420ef
xor edx, edx
cmp dword [esp + 0x7c], edx
lea esi, [ebx - 2]
jne 0x10042041
test esi, esi
jl 0x10042024
mov ebx, dword [ebp + 0x1c]
add esi, 2
shr esi, 1
mov dword [esp + 0x4c], esi
add esi, esi
mov edx, edi
mov dword [esp + 0x24], esi
mov esi, dword [ebx + ecx*4]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ebx
mov ebx, dword [eax + ebx*8]
mov dword [edx], ebx
mov ebx, dword [esp + 0x44]
mov ebx, dword [eax + ebx*8 + 4]
mov dword [edx + 4], ebx
mov ebx, dword [eax + esi*8]
mov dword [edx + 8], ebx
mov esi, dword [eax + esi*8 + 4]
mov ebx, dword [ebp + 0x1c]
mov dword [edx + 0xc], esi
lea esi, [ecx*8]
add ebx, esi
add edx, 0x10
sub dword [esp + 0x4c], 1
mov dword [ebp + 0x1c], ebx
jne 0x10041fde
mov ebx, dword [ebp + 0x10]
mov edx, dword [esp + 0x24]
cmp edx, ebx
jge 0x10042255
mov edx, dword [eax + ebx*8 - 8]
mov dword [edi + ebx*8 - 8], edx
mov eax, dword [eax + ebx*8 - 4]
mov dword [edi + ebx*8 - 4], eax
jmp 0x10042255
test esi, esi
jl 0x100420c1
mov ebx, dword [ebp + 0x1c]
add esi, 2
shr esi, 1
mov dword [esp + 0x4c], esi
add esi, esi
mov edx, edi
mov dword [esp + 0x24], esi
lea esp, [esp]
mov esi, dword [ebx]
fld dword [eax + esi*8]
mov ecx, dword [ebx + ecx*4]
fstp dword [esp + 0x30]
add edx, 0x10
fld dword [eax + esi*8 + 4]
mov esi, dword [esp + 0x30]
fchs
mov dword [edx - 0x10], esi
fstp dword [esp + 0x34]
mov esi, dword [esp + 0x34]
mov dword [edx - 0xc], esi
fld dword [eax + ecx*8]
fstp dword [esp + 0x30]
fld dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x30]
fchs
mov dword [edx - 8], ecx
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov dword [edx - 4], ecx
mov ecx, dword [esp + 0x60]
lea esi, [ecx*8]
add ebx, esi
sub dword [esp + 0x4c], 1
jne 0x10042060
mov edx, dword [esp + 0x24]
mov ebx, dword [ebp + 0x10]
cmp edx, ebx
jge 0x10042255
fld dword [eax + ebx*8 - 8]
fstp dword [esp + 0x30]
fld dword [eax + ebx*8 - 4]
mov eax, dword [esp + 0x30]
fchs
mov dword [edi + edx*8], eax
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov dword [edi + edx*8 + 4], ecx
jmp 0x10042255
test byte [ebp + 0x30], 2
jne 0x1004221a
mov eax, dword [esi]
cmp eax, dword [esi + edx*4 - 4]
je 0x1004210f
mov eax, 0xffffff90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
cmp edx, 1
jne 0x10042602
test bl, 3
jne 0x1004221a
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
test eax, eax
mov dword [esp + 0x18], eax
lea ebx, [edi + eax*8]
mov dword [esp + 0x24], 0
jle 0x10042217
mov eax, dword [ebp + 0x1c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x60], edi
lea esi, [ebx + 8]
mov dword [esp + 0x44], ecx
jmp 0x10042160
mov edx, dword [eax]
cmp edx, dword [esp + 0x24]
mov eax, dword [ecx + esi]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + esi + 4]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + edx*8]
mov dword [ecx + esi], eax
mov eax, dword [ebx + edx*8 + 4]
mov dword [ecx + esi + 4], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + edx*8], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + edx*8 + 4], eax
mov eax, dword [esp + 0x60]
jle 0x100421ee
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + edx*8]
mov dword [eax], ecx
mov ecx, dword [edi + edx*8 + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [edi + edx*8], ecx
mov ecx, dword [esp + 0x34]
mov dword [edi + edx*8 + 4], ecx
mov ecx, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + edx*8 + 8]
lea edx, [ebx + edx*8 + 8]
mov dword [esi], ecx
mov ecx, dword [edx + 4]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [edx], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
add eax, 0x10
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x1c]
add eax, dword [esp + 0x54]
add edx, 2
add esi, 0x10
cmp edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov dword [ebp + 0x1c], eax
jl 0x10042160
mov ebx, dword [ebp + 0x10]
cmp dword [esp + 0x7c], 0
je 0x10042255
lea ecx, [ebx - 2]
xor edx, edx
test ecx, ecx
mov esi, 0x80000000
jl 0x1004224d
add ecx, 2
shr ecx, 1
lea eax, [edi + 0xc]
lea edx, [ecx + ecx]
lea ebx, [ebx]
xor dword [eax - 8], esi
xor dword [eax], esi
add eax, 0x10
sub ecx, 1
jne 0x10042240
cmp edx, ebx
jge 0x10042255
xor dword [edi + edx*8 + 4], esi
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test al, 1
mov esi, dword [ebp + 0x20]
mov edi, 1
mov dword [ebp + 0x10], edi
jne 0x10042904
cmp eax, 4
jl 0x100425ac
mov eax, dword [esp + 0x3c]
cdq
mov ecx, edi
and edx, 3
add edi, edi
add eax, edx
add edi, edi
sar eax, 2
cmp dword [esp + 0x58], 0
mov dword [esp + 0x40], ecx
mov dword [ebp + 0x10], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], 0
jle 0x1004259a
mov ebx, ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
shl ebx, 4
lea edx, [ecx + 4]
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0xc]
lea edi, [edx + 4]
lea eax, [ecx + ebx]
add eax, edx
mov edx, ecx
neg edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
sub edx, ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x20], edx
fld dword [edi - 4]
mov ecx, dword [esp + 0x40]
fld dword [edi]
mov edx, dword [esp + 0x14]
add ecx, ecx
add ecx, ecx
add ecx, ecx
cmp dword [esp + 0x40], 1
fld dword [ecx + edi - 4]
fld dword [edx + edi - 4]
mov edx, dword [esp + 0x20]
fld st(1)
mov dword [esp + 0x54], ecx
fadd st(4)
fld st(1)
fadd st(4)
fxch st(5)
fsubrp st(3)
fxch st(3)
fsubrp st(1)
fld dword [eax]
fld dword [eax + edx]
mov edx, dword [esp + 0x1c]
fld dword [ebx + edi - 4]
fld dword [edx + eax + 4]
fstp qword [esp + 0x70]
fld st(0)
fadd st(3)
fstp qword [esp + 0x30]
fld qword [esp + 0x70]
fadd st(2)
fstp qword [esp + 0x80]
fld qword [esp + 0x70]
fsubrp st(2)
fsubp st(2)
fld st(4)
fadd qword [esp + 0x30]
fstp dword [edi - 4]
fld st(5)
fld qword [esp + 0x80]
fadd st(1), st(0)
fxch st(1)
fstp dword [edi]
fxch st(5)
fsub qword [esp + 0x30]
fstp dword [ebx + edi - 4]
fxch st(5)
fsubrp st(4)
fxch st(3)
fstp dword [edx + eax + 4]
mov edx, dword [esp + 0x20]
fld st(3)
fadd st(2)
fstp dword [ecx + edi - 4]
mov ecx, dword [esp + 0x14]
fld st(2)
fadd st(1)
fstp dword [ecx + edi - 4]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [eax]
fsubp st(1)
fstp dword [eax + edx]
jle 0x1004256e
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + ecx*2]
add ecx, ecx
add edx, edx
add ecx, ecx
add edx, edx
add ecx, ecx
add edx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x3c]
add edi, 4
mov dword [esp + 0x50], edx
add edx, esi
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x40]
shl ecx, 4
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x44]
add edx, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x10], edx
lea edx, [ecx + esi]
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + eax + 8]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + edi*2]
mov edi, dword [esp + 0x54]
lea ecx, [edi + ecx*8 + 8]
add ecx, dword [ebp + 0xc]
mov edi, 4
sub edi, ebx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x40]
add edi, edi
add edi, edi
add edi, edi
sub edi, ebx
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x14]
sub edi, ebx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x40]
add edi, 0xffffffff
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
fld dword [eax + ebx]
mov ebx, dword [esp + 0x28]
fmul dword [edx]
fld dword [edx + 4]
fmul dword [eax + ebx]
mov ebx, dword [esp + 0x60]
fsubp st(1)
fld dword [eax + ebx]
mov ebx, dword [esp + 0x28]
fmul dword [edx + 4]
fld dword [eax + ebx]
mov ebx, dword [esp + 0x10]
fmul dword [edx]
faddp st(1)
fld dword [eax]
fmul dword [ebx + 4]
fld dword [ebx]
mov ebx, dword [esp + 0x1c]
fmul dword [ecx + ebx + 4]
mov ebx, dword [esp + 0x10]
faddp st(1)
fld dword [ebx]
mov ebx, dword [esp + 0x1c]
fmul dword [eax]
fld dword [ecx + ebx + 4]
mov ebx, dword [esp + 0x10]
fmul dword [ebx + 4]
mov ebx, dword [esp + 0x20]
fsubp st(1)
fld dword [ecx + ebx]
fmul dword [edi]
fld dword [ecx]
fmul dword [edi + 4]
faddp st(1)
fld dword [ecx]
fmul dword [edi]
fld dword [ecx + ebx]
mov ebx, dword [esp + 0x44]
fmul dword [edi + 4]
mov edi, dword [esp + 0x4c]
fsubp st(1)
fld st(0)
fadd st(3)
fld st(2)
fadd st(5)
fxch st(5)
fsubrp st(3)
fxch st(1)
fsubrp st(3)
fld dword [edi]
fld dword [eax + ebx]
fstp qword [esp + 0x70]
fld st(0)
fadd st(7)
fstp qword [esp + 0x30]
fld qword [esp + 0x70]
fadd st(6)
fxch st(1)
fsubrp st(7)
fld qword [esp + 0x70]
fsubrp st(6)
fld qword [esp + 0x30]
fadd st(2)
fstp dword [edi]
fld st(0)
fadd st(5)
fstp dword [eax + ebx]
mov ebx, dword [esp + 0x1c]
fld qword [esp + 0x30]
fsubrp st(2)
fxch st(1)
fstp dword [eax]
fsubrp st(3)
fxch st(2)
fstp dword [ecx + ebx + 4]
mov ebx, dword [esp + 0x60]
fld st(1)
fadd st(4)
fstp dword [eax + ebx]
fld st(0)
mov ebx, dword [esp + 0x28]
fadd st(3)
add edx, dword [esp + 0x48]
add edi, 8
fstp dword [eax + ebx]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x4c], edi
fxch st(3)
mov edi, dword [esp + 0x3c]
fsubrp st(1)
add edi, edi
add edi, edi
fstp dword [ecx]
add edi, edi
add dword [esp + 0x10], edi
mov edi, dword [esp + 0x2c]
fsubrp st(1)
add edi, dword [esp + 0x50]
add eax, 8
fstp dword [ecx + ebx]
add ecx, 8
sub dword [esp + 0x5c], 1
mov dword [esp + 0x2c], edi
jne 0x10042435
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x10]
add edx, ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
add eax, ecx
add edi, ecx
cmp edx, dword [esp + 0x58]
mov dword [esp + 0x24], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], edi
jl 0x100422e2
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
lea edx, [edi*4]
cmp edx, dword [eax]
jle 0x10042276
mov ecx, dword [ebp + 0x18]
cmp edi, dword [ecx]
jge 0x10042904
mov eax, dword [esp + 0x3c]
cdq
sub eax, edx
mov ecx, edi
xor ebx, ebx
add edi, edi
sar eax, 1
cmp dword [esp + 0x58], ebx
mov dword [esp + 0x40], ecx
mov dword [ebp + 0x10], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ebx
jle 0x100428f9
mov edx, dword [ebp + 0xc]
add ecx, ecx
add ecx, ecx
add ecx, ecx
lea eax, [ecx + edx]
lea edi, [ecx + 4]
mov edx, ecx
mov dword [esp + 0x14], edi
neg edx
sub edi, ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], edi
jmp 0x10042674
xor esi, esi
test ebx, ebx
jle 0x1004221a
lea edx, [ecx*4]
mov dword [esp + 0x44], edx
mov eax, edi
lea esp, [esp]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
cmp edx, esi
jle 0x10042651
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + edx*8]
mov dword [eax], ecx
mov ecx, dword [edi + edx*8 + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [edi + edx*8], ecx
mov ecx, dword [esp + 0x34]
mov dword [edi + edx*8 + 4], ecx
mov edx, dword [esp + 0x44]
add dword [ebp + 0x1c], edx
add esi, 1
add eax, 8
cmp esi, ebx
jl 0x10042620
jmp 0x1004221a
mov edi, dword [esp + 0x20]
fld dword [eax + edi]
mov ecx, dword [ebp + 0xc]
fadd dword [eax + edx + 4]
mov dword [esp + 0x38], 1
fld dword [ecx + ebx*8]
fsub dword [eax]
fld dword [eax + edx + 4]
fsub dword [eax + edi]
fld dword [ecx + ebx*8]
fadd dword [eax]
fstp dword [ecx + ebx*8]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
fxch st(2)
fstp dword [eax + edx + 4]
add ebx, 0xffffffff
cmp ebx, 4
fstp dword [eax]
fstp dword [eax + edi]
jl 0x10042828
lea edi, [eax + edi + 8]
mov dword [esp + 0x44], edi
mov edi, 8
sub edi, dword [esp + 0x14]
add eax, 0x10
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x40]
add edi, 0xfffffffb
shr edi, 2
add edi, 1
mov dword [esp + 0x18], edi
lea edi, [edi*4 + 1]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x44]
fld dword [esi + ecx*8]
mov ebx, dword [esp + 0x20]
fmul dword [eax - 8]
fld dword [edi]
fmul dword [esi + ecx*8 + 4]
fsubp st(1)
fld dword [edi]
fmul dword [esi + ecx*8]
fld dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x3c]
fmul dword [eax - 8]
faddp st(1)
fld dword [eax + edx - 8]
fld dword [eax + edx - 4]
fld st(3)
fadd st(2)
fstp dword [eax + edx - 8]
fld st(2)
fadd st(1)
fstp dword [eax + edx - 4]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [eax - 8]
fsubp st(1)
fstp dword [edi]
fld dword [eax]
fmul dword [esi + ecx*8]
fld dword [eax + ebx]
fmul dword [esi + ecx*8 + 4]
fsubp st(1)
fld dword [eax]
fmul dword [esi + ecx*8 + 4]
fld dword [esi + ecx*8]
fmul dword [eax + ebx]
mov ebx, dword [esp + 0x54]
faddp st(1)
fld dword [edi + ebx]
fld dword [eax + edx + 4]
fld st(3)
fadd st(2)
fstp dword [edi + ebx]
mov ebx, dword [esp + 0x20]
fld st(2)
fadd st(1)
fstp dword [eax + edx + 4]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [eax]
fsubp st(1)
fstp dword [eax + ebx]
mov ebx, dword [esp + 0x3c]
fld dword [eax + 8]
add ecx, ebx
fmul dword [esi + ecx*8]
fld dword [edi + 0x10]
fmul dword [esi + ecx*8 + 4]
fsubp st(1)
fld dword [edi + 0x10]
fmul dword [esi + ecx*8]
fld dword [eax + 8]
fmul dword [esi + ecx*8 + 4]
add ecx, ebx
faddp st(1)
fld dword [eax + edx + 8]
fld dword [eax + edx + 0xc]
fld st(3)
fadd st(2)
fstp dword [eax + edx + 8]
fld st(2)
fadd st(1)
fstp dword [eax + edx + 0xc]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [eax + 8]
fsubp st(1)
fstp dword [edi + 0x10]
fld dword [eax + 0x10]
fmul dword [esi + ecx*8]
fld dword [edi + 0x18]
add edi, 0x20
fmul dword [esi + ecx*8 + 4]
add eax, 0x20
fsubp st(1)
fld dword [edi - 8]
fmul dword [esi + ecx*8]
fld dword [eax - 0x10]
fmul dword [esi + ecx*8 + 4]
add ecx, ebx
sub dword [esp + 0x18], 1
faddp st(1)
fld dword [eax + edx - 0x10]
fld dword [eax + edx - 0xc]
fld st(3)
fadd st(2)
fstp dword [eax + edx - 0x10]
fld st(2)
fadd st(1)
fstp dword [eax + edx - 0xc]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [eax - 0x10]
fsubp st(1)
fstp dword [edi - 8]
jne 0x100426f1
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
cmp ebx, dword [esp + 0x40]
jge 0x100428d5
lea ecx, [esi + ecx*8]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x24]
lea edi, [ebx + ecx]
mov ecx, dword [ebp + 0xc]
add edi, edi
add edi, edi
add edi, edi
add ecx, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x40]
add ecx, ecx
add ecx, ecx
add ecx, ecx
add edi, ecx
mov ecx, dword [esp + 0x40]
add edi, dword [ebp + 0xc]
sub ecx, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x44]
fld dword [edi]
mov ebx, dword [esp + 0x20]
fmul dword [ecx]
add edi, 8
fld dword [edi + ebx - 8]
fmul dword [ecx + 4]
fsubp st(1)
fld dword [edi - 8]
fmul dword [ecx + 4]
fld dword [ecx]
fmul dword [edi + ebx - 8]
mov ebx, dword [esp + 0x2c]
add dword [esp + 0x2c], 8
faddp st(1)
fld dword [ebx]
fld dword [edx + edi - 4]
fld st(3)
fadd st(2)
fstp dword [ebx]
mov ebx, dword [esp + 0x20]
fld st(2)
fadd st(1)
fstp dword [edx + edi - 4]
fxch st(1)
fsubrp st(3)
fxch st(2)
fstp dword [edi - 8]
fsubp st(1)
fstp dword [edi + ebx - 8]
mov ebx, dword [esp + 0x3c]
add ebx, ebx
add ebx, ebx
add ebx, ebx
add ecx, ebx
sub dword [esp + 0x18], 1
jne 0x10042870
mov edi, dword [ebp + 0x10]
mov ebx, dword [esp + 0x24]
add ebx, edi
lea ecx, [edi*8]
add eax, ecx
cmp ebx, dword [esp + 0x58]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], eax
jl 0x10042670
mov edx, dword [ebp + 0x18]
cmp edi, dword [edx]
jl 0x100425b7
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
not eax
and eax, 1
cmp eax, dword [ebp + 0x14]
mov dword [esp + 0x4c], eax
jge 0x100435f8
jmp 0x10042920
mov edx, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [ebp + 0x10]
mov eax, ecx
imul eax, ebx
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x3c]
cdq
idiv ecx
cmp ecx, 3
mov dword [esp + 0x88], ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], eax
jne 0x10042b8e
cmp dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
jle 0x100435e4
mov ecx, dword [ebp + 0xc]
fld qword [0x100b4610]
fld qword [0x100b6168]
lea edx, [ebx*8]
mov edi, edx
neg edi
mov eax, ebx
shl eax, 4
mov dword [esp + 0x1c], edi
mov edi, eax
sub eax, edx
sub edi, edx
add ecx, edx
add eax, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], edi
cmp ebx, 1
fld dword [ecx]
fadd dword [edi + ecx]
mov edx, dword [esp + 0x38]
fld dword [edx + ecx]
mov edi, dword [ebp + 0xc]
mov edx, 4
fadd dword [ecx + edx]
fld dword [edi + eax*8]
mov edi, dword [esp + 0x1c]
fld dword [edi + ecx + 4]
mov edi, dword [esp + 0x38]
fld dword [ecx + edx]
fsub dword [edi + ecx]
mov edi, dword [esp + 0x28]
fmul st(6)
fstp qword [esp + 0x30]
fld dword [edi + ecx]
mov edi, dword [ebp + 0xc]
fsub dword [ecx]
fmul st(6)
fld st(2)
fadd st(5)
fstp dword [edi + eax*8]
mov edi, dword [esp + 0x1c]
fld st(1)
fadd st(4)
fstp dword [edi + ecx + 4]
mov edi, dword [esp + 0x28]
fxch st(4)
fmul st(5)
fsubp st(2)
fxch st(2)
fmul st(4)
fsubp st(2)
fld qword [esp + 0x30]
fld st(0)
fadd st(2)
fstp dword [ecx]
fld st(3)
fadd st(3)
fstp dword [ecx + edx]
mov edx, dword [esp + 0x38]
fsubp st(1)
fstp dword [edi + ecx]
fsubrp st(1)
fstp dword [edx + ecx]
jle 0x10042b6a
mov eax, dword [esp + 0x3c]
mov edx, eax
add eax, eax
add eax, eax
shl edx, 4
add eax, eax
mov dword [esp + 0x48], edx
add edx, esi
add eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
lea eax, [eax + ecx + 8]
lea edi, [ebx - 1]
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edx
lea eax, [ecx + 8]
mov dword [esp + 0x68], edi
fstp st(0)
mov edi, dword [esp + 0x10]
fld dword [edi]
add eax, 8
fmul dword [eax - 8]
fld dword [edi + 4]
mov edi, 4
fmul dword [eax + edi - 8]
mov edi, dword [esp + 0x10]
fsubp st(1)
fld dword [edi + 4]
fmul dword [eax - 8]
fld dword [edi]
mov edi, 4
fmul dword [eax + edi - 8]
mov edi, dword [esp + 0x28]
faddp st(1)
fld dword [edi + eax - 8]
mov edi, dword [esp + 0x38]
fmul dword [edx]
fld dword [edi + eax - 8]
mov edi, dword [esp + 0x28]
fmul dword [edx + 4]
fsubp st(1)
fld dword [edi + eax - 8]
mov edi, dword [esp + 0x38]
fmul dword [edx + 4]
fld dword [edi + eax - 8]
mov edi, dword [esp + 0x1c]
fmul dword [edx]
mov edx, dword [esp + 0x18]
add edx, 8
mov dword [esp + 0x18], edx
faddp st(1)
fld st(1)
fadd st(4)
fld st(1)
fadd st(4)
fxch st(4)
fsubrp st(2)
fxch st(1)
fmul st(5)
fxch st(2)
fsubrp st(4)
fxch st(3)
fmul st(4)
fld dword [edx - 8]
fld dword [eax + edi - 4]
fld st(1)
fadd st(6)
fstp dword [edx - 8]
mov edx, dword [esp + 0x3c]
add edx, edx
fld st(0)
add edx, edx
fadd st(5)
add edx, edx
add dword [esp + 0x10], edx
fstp dword [eax + edi - 4]
mov edi, 4
fld qword [0x100b6168]
fmul st(6), st(0)
fxch st(2)
fsubrp st(6)
fxch st(4)
fmul st(1)
fsubp st(4)
fld st(2)
fadd st(5)
fstp dword [eax - 8]
fld st(1)
fadd st(4)
fstp dword [eax + edi - 8]
mov edi, dword [esp + 0x28]
fxch st(4)
fsubrp st(2)
fxch st(1)
fstp dword [edi + eax - 8]
mov edi, dword [esp + 0x38]
fsubp st(1)
fstp dword [edi + eax - 8]
mov edx, dword [esp + 0x5c]
add edx, dword [esp + 0x48]
sub dword [esp + 0x68], 1
mov dword [esp + 0x5c], edx
jne 0x10042a61
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 0x10]
add eax, edx
add edx, edx
add edx, edx
add edx, edx
add ecx, edx
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
jl 0x100429a1
fstp st(0)
fstp st(0)
jmp 0x100435e4
cmp ecx, 5
jne 0x10042ecf
xor edi, edi
cmp dword [esp + 0x58], edi
mov dword [esp + 0x24], edi
jle 0x100435e4
mov edx, dword [esp + 0x3c]
jmp 0x10042bb0
test ebx, ebx
jle 0x10042eb9
lea ecx, [ebx*8 + 4]
mov dword [esp + 0x14], ecx
mov ecx, edx
shl ecx, 4
mov dword [esp + 0x48], ecx
lea ecx, [edx + edx*2]
add ecx, ecx
add ecx, ecx
shl edx, 5
add ecx, ecx
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 0xc]
mov eax, ebx
shl eax, 4
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], eax
lea eax, [eax + edi*8]
lea ecx, [ebx*8]
lea ecx, [ecx + edi*8]
add ecx, edx
lea edi, [edi + ebx*4]
lea eax, [eax + edx + 4]
lea edx, [edx + edi*8 + 4]
mov dword [esp + 0x40], edx
mov edx, 0xfffffffc
sub edx, dword [esp + 0x38]
mov edi, 4
mov dword [esp + 0x44], edx
lea edx, [ebx*8]
sub edi, edx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x14]
sub edi, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], ebx
mov edx, esi
mov edi, dword [esp + 0x10]
fld dword [ecx]
fmul dword [edi]
mov edi, dword [esp + 0x20]
fld dword [ecx + edi]
mov edi, dword [esp + 0x10]
fmul dword [edi + 4]
fsubp st(1)
fld dword [edi + 4]
mov edi, dword [esp + 0x20]
fmul dword [ecx]
fld dword [ecx + edi]
mov edi, dword [esp + 0x10]
fmul dword [edi]
mov edi, dword [esp + 0x28]
faddp st(1)
fld dword [edi]
mov edi, dword [esp + 0x38]
fmul dword [eax + edi - 4]
mov edi, dword [esp + 0x40]
fld dword [edi]
mov edi, dword [esp + 0x28]
fmul dword [edi + 4]
mov edi, dword [esp + 0x40]
fsubp st(1)
fld dword [edi]
mov edi, dword [esp + 0x28]
fmul dword [edi]
fld dword [edi + 4]
mov edi, dword [esp + 0x38]
fmul dword [eax + edi - 4]
mov edi, dword [esp + 0x1c]
faddp st(1)
fld st(1)
fadd st(4)
fld st(1)
fadd st(4)
fxch st(5)
fsubrp st(3)
fxch st(3)
fsubrp st(1)
fld dword [edi]
fmul dword [eax + ebx*8 - 4]
fld dword [edi + 4]
mov edi, dword [esp + 0x14]
fmul dword [eax + edi - 4]
fsubp st(1)
fld dword [eax + edi - 4]
mov edi, dword [esp + 0x1c]
fmul dword [edi]
fld dword [edi + 4]
mov edi, dword [esp + 0x54]
fmul dword [eax + ebx*8 - 4]
faddp st(1)
fstp qword [esp + 0x80]
fld dword [eax - 4]
fmul dword [edx]
fld dword [eax]
fmul dword [edx + 4]
fsubp st(1)
fstp qword [esp + 0x30]
fld dword [eax]
fmul dword [edx]
fld dword [eax - 4]
fmul dword [edx + 4]
mov edx, dword [esp + 0x44]
faddp st(1)
fld qword [esp + 0x30]
fadd st(2)
fstp qword [esp + 0x60]
fld st(0)
fld qword [esp + 0x80]
fadd st(1), st(0)
fxch st(3)
fsub qword [esp + 0x30]
fxch st(3)
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0x80]
fld dword [eax + edx]
fstp qword [esp + 0x30]
fld dword [ecx + edi]
fstp qword [esp + 0x68]
fld st(4)
fadd qword [esp + 0x60]
fst qword [esp + 0x90]
fld st(6)
fadd st(2)
fstp qword [esp + 0x88]
fadd qword [esp + 0x30]
fstp dword [eax + edx]
mov edx, dword [esp + 0x20]
fld qword [esp + 0x88]
fadd qword [esp + 0x68]
fstp dword [ecx + edi]
fld qword [esp + 0x90]
fmul qword [0x100b43d8]
fsubr qword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x88]
fmul qword [0x100b43d8]
fsubr qword [esp + 0x68]
fxch st(5)
fsub qword [esp + 0x60]
fld qword [0x100b4620]
fmul st(1), st(0)
fxch st(7)
fsubrp st(2)
fxch st(1)
fmulp st(6)
fld qword [esp + 0x80]
fadd st(3)
fmul qword [0x100b6160]
fld st(2)
fadd st(5)
fmul qword [0x100b4628]
fxch st(4)
fmul qword [0x100b6158]
fadd st(1)
fxch st(5)
fmul qword [0x100b4638]
fadd st(4)
fstp qword [esp + 0x88]
fld qword [esp + 0x80]
fmul qword [0x100b6150]
fsubp st(1)
fxch st(2)
fmul qword [0x100b4630]
fsubp st(3)
fld qword [esp + 0x30]
fadd st(1)
fld st(5)
fadd st(7)
fstp qword [esp + 0x90]
fld qword [esp + 0x30]
fsubrp st(2)
fxch st(5)
fsubrp st(6)
fld st(1)
fadd st(5)
fstp dword [ecx]
fld st(2)
fld qword [esp + 0x90]
fadd st(1), st(0)
fxch st(1)
fstp dword [ecx + edx]
mov edx, dword [esp + 0x38]
fxch st(5)
fsubrp st(2)
fxch st(1)
fstp dword [eax + edx - 4]
mov edx, dword [esp + 0x40]
fxch st(3)
fsubrp st(1)
fstp dword [edx]
fld st(0)
fadd st(2)
fstp dword [eax - 4]
fld qword [esp + 0x88]
fld st(0)
fadd st(4)
fstp dword [eax]
mov edi, dword [esp + 0x14]
fxch st(2)
add edx, 8
fsubrp st(1)
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x3c]
add edx, edx
fstp dword [eax + ebx*8 - 4]
add edx, edx
add edx, edx
fsubp st(1)
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x5c]
add dword [esp + 0x28], edx
fstp dword [eax + edi - 4]
mov edx, dword [esp + 0x50]
add dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0x48]
add eax, 8
add ecx, 8
sub dword [esp + 0x18], 1
mov dword [esp + 0x2c], edx
jne 0x10042c49
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
add edi, dword [ebp + 0x10]
cmp edi, dword [esp + 0x58]
mov dword [esp + 0x24], edi
jl 0x10042bb0
jmp 0x100435e4
lea eax, [ecx - 1]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp + 0x24]
cdq
idiv ecx
sar edi, 1
cmp dword [esp + 0x58], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x2c]
lea eax, [eax + edi*8]
mov dword [esp + 0x28], eax
jle 0x100435e4
jmp 0x10042f10
test ebx, ebx
mov dword [esp + 0x38], 0
jle 0x100435cf
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], ecx
mov ecx, edx
neg ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x88]
imul ecx, edx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x68], esi
jmp 0x10042f60
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
add edx, ecx
test ecx, ecx
lea edi, [edi + edx*8]
mov edx, dword [edi]
mov dword [esp + 0x70], edx
fld dword [esp + 0x70]
mov edx, dword [edi + 4]
mov dword [esp + 0x74], edx
fld dword [esp + 0x74]
jne 0x100431c8
cmp dword [esp + 0x20], 4
mov edx, 1
mov dword [esp + 0x50], edx
mov ecx, ebx
jl 0x10043102
mov edx, ebx
neg edx
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x1c], edx
lea edx, [eax + 0xc]
sub eax, dword [ebp + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x2c]
add edx, 4
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
sub edx, ebx
shr eax, 2
mov dword [esp + 0x18], eax
lea eax, [eax*4 + 1]
lea edx, [edi + edx*8]
mov dword [esp + 0x50], eax
fld dword [edi + ecx*8]
mov eax, dword [esp + 0x14]
fadd dword [edx]
mov ebx, dword [esp + 0x10]
fld dword [edi + ecx*8 + 4]
fsub dword [edx + 4]
fld dword [edi + ecx*8]
fsub dword [edx]
fld dword [edx + 4]
add edx, dword [esp + 0x1c]
fadd dword [edi + ecx*8 + 4]
fxch st(5)
fadd st(3)
fxch st(4)
fadd st(5)
fxch st(3)
fstp dword [eax - 4]
fxch st(1)
fstp dword [eax]
fstp dword [ebx - 0xc]
mov ebx, dword [esp + 0x48]
fxch st(2)
fstp dword [ebx + eax]
mov ebx, dword [esp + 0x40]
add ecx, ebx
fld dword [edi + ecx*8]
fadd dword [edx]
fld dword [edi + ecx*8 + 4]
fsub dword [edx + 4]
fld dword [edi + ecx*8]
fsub dword [edx]
fld dword [edx + 4]
add edx, dword [esp + 0x1c]
fadd dword [edi + ecx*8 + 4]
add ecx, ebx
fxch st(4)
fadd st(3)
fxch st(5)
fadd st(4)
fxch st(3)
fstp dword [eax + 4]
fxch st(1)
fstp dword [eax + 8]
mov eax, dword [esp + 0x10]
fstp dword [eax - 4]
fxch st(1)
fstp dword [eax]
mov eax, dword [esp + 0x14]
fld dword [edi + ecx*8]
fadd dword [edx]
fld dword [edi + ecx*8 + 4]
fsub dword [edx + 4]
fld dword [edi + ecx*8]
fsub dword [edx]
fld dword [edx + 4]
fadd dword [edi + ecx*8 + 4]
add ecx, ebx
add edx, dword [esp + 0x1c]
fxch st(5)
fadd st(3)
fxch st(4)
fadd st(5)
fxch st(3)
fstp dword [eax + 0xc]
fxch st(1)
fstp dword [eax + 0x10]
mov eax, dword [esp + 0x10]
fstp dword [eax + 4]
fxch st(2)
fstp dword [eax + 8]
fld dword [edi + ecx*8]
fadd dword [edx]
fld dword [edi + ecx*8 + 4]
fsub dword [edx + 4]
fld dword [edi + ecx*8]
fsub dword [edx]
fld dword [edx + 4]
fadd dword [edi + ecx*8 + 4]
fxch st(4)
fadd st(3)
fxch st(5)
mov eax, dword [esp + 0x14]
fadd st(4)
add edx, dword [esp + 0x1c]
fxch st(3)
add dword [esp + 0x14], 0x20
fstp dword [eax + 0x14]
fxch st(1)
add ecx, ebx
fstp dword [eax + 0x18]
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 0x20
sub dword [esp + 0x18], 1
fstp dword [eax + 0xc]
fxch st(1)
fstp dword [eax + 0x10]
jne 0x10042fe7
mov edx, dword [esp + 0x50]
cmp edx, dword [esp + 0x20]
jg 0x100432c8
lea eax, [edi + ecx*8]
mov dword [esp + 0x2c], eax
mov eax, ebx
neg eax
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
lea eax, [eax + edx*8 - 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x2c]
lea edx, [eax + edx*8 - 4]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0x10]
sub edx, ecx
lea ecx, [edi + edx*8]
mov edx, dword [esp + 0x28]
sub edx, eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x50]
mov dword [esp + 0x48], edx
add eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
jmp 0x10043161
fxch st(1)
fld dword [eax]
mov edx, dword [esp + 0x10]
fadd dword [ecx]
add dword [esp + 0x10], 8
fld dword [eax + 4]
fsub dword [ecx + 4]
fld dword [eax]
fsub dword [ecx]
fld dword [ecx + 4]
add ecx, dword [esp + 0x1c]
fadd dword [eax + 4]
mov eax, dword [esp + 0x14]
add dword [esp + 0x14], 8
fxch st(5)
fadd st(3)
fxch st(4)
fadd st(5)
fxch st(3)
fstp dword [edx - 4]
fxch st(1)
fstp dword [edx]
fstp dword [eax]
mov eax, dword [esp + 0x48]
fxch st(2)
fstp dword [edx + eax]
mov eax, dword [esp + 0x2c]
lea edx, [ebx*8]
add eax, edx
sub dword [esp + 0x18], 1
mov dword [esp + 0x2c], eax
jne 0x1004315f
mov eax, dword [esp + 0x28]
jmp 0x100432ce
cmp dword [esp + 0x20], 1
jl 0x100432cc
mov edx, dword [esp + 0x60]
lea ecx, [edi + ebx*8]
mov dword [esp + 0x2c], ecx
lea ecx, [edx + esi]
mov dword [esp + 0x14], ecx
mov ecx, ebx
neg ecx
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x2c]
add ecx, 4
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x68]
sub ecx, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x50], eax
sub edx, ebx
sub eax, dword [ebp + 0x2c]
lea edx, [edi + edx*8]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], edx
fld dword [eax]
mov edx, dword [esp + 0x2c]
fmul dword [edx]
fld dword [eax + 4]
fmul dword [edx + 4]
fsubp st(1)
fld dword [eax]
fmul dword [edx + 4]
fld dword [eax + 4]
mov eax, dword [esp + 0x10]
fmul dword [edx]
mov edx, dword [esp + 0x50]
add dword [esp + 0x50], 8
faddp st(1)
fld dword [ecx]
fmul dword [eax]
fld dword [ecx + 4]
fmul dword [eax + 4]
fsubp st(1)
fld dword [ecx + 4]
fmul dword [eax]
fld dword [ecx]
add ecx, dword [esp + 0x5c]
fmul dword [eax + 4]
mov eax, dword [esp + 0x18]
add eax, 8
mov dword [esp + 0x18], eax
faddp st(1)
fld st(1)
fadd st(4)
fld st(3)
fsub st(2)
fxch st(2)
faddp st(4)
fld st(0)
faddp st(7)
fld st(3)
faddp st(6)
fstp dword [eax - 0xc]
fstp dword [eax - 8]
fsubp st(2)
fxch st(1)
fstp dword [edx]
mov edx, dword [esp + 0x48]
fstp dword [eax + edx - 8]
lea eax, [ebx*8]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x60]
sub dword [esp + 0x54], 1
mov dword [esp + 0x14], eax
jne 0x10043226
mov eax, dword [esp + 0x28]
fxch st(1)
cmp dword [esp + 0x20], 1
fstp dword [edi]
fstp dword [edi + 4]
jl 0x1004359b
mov ecx, dword [esp + 0x44]
lea edx, [edi + ebx*8]
mov dword [esp + 0x2c], edx
mov edx, ebx
neg edx
add edx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
add edx, edx
add edx, edx
sub ecx, ebx
lea ecx, [edi + ecx*8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
nop
fld dword [esp + 0x70]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x74]
xor edi, edi
cmp dword [esp + 0x20], 4
fld st(1)
fld st(1)
mov dword [esp + 0x48], edi
fst qword [esp + 0xb0]
jl 0x100434d4
mov ebx, dword [ebp + 0x2c]
fstp st(0)
lea edx, [eax + 4]
lea edi, [ebx + 0xc]
sub ebx, eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
shr eax, 2
add eax, 1
mov dword [esp + 0x54], eax
add eax, eax
add eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x50], ebx
jmp 0x1004336d
mov ebx, dword [esp + 0x50]
fstp st(2)
fld dword [edi - 0xc]
fmul dword [esi + ecx*8]
fld dword [ebx + edx]
xor ebx, ebx
fmul dword [esi + ecx*8 + 4]
fld dword [edx]
fmul dword [esi + ecx*8]
fld dword [edx - 4]
fmul dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x14]
fld st(2)
fadd st(4)
cmp ecx, eax
setge bl
faddp st(5)
fxch st(3)
fsubrp st(2)
fxch st(1)
faddp st(5)
neg ebx
and ebx, eax
sub ecx, ebx
fld st(0)
xor ebx, ebx
fsub st(2)
fadd qword [esp + 0xb0]
fxch st(2)
faddp st(1)
faddp st(3)
fxch st(2)
fstp qword [esp + 0xa0]
fld dword [edi - 4]
fmul dword [esi + ecx*8]
fld dword [edi]
fmul dword [esi + ecx*8 + 4]
fld dword [edx + 8]
fmul dword [esi + ecx*8]
fld dword [edx + 4]
fmul dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x14]
fld st(2)
fadd st(4)
cmp ecx, eax
setge bl
faddp st(5)
fxch st(3)
fsubrp st(2)
fxch st(1)
faddp st(5)
neg ebx
and ebx, eax
sub ecx, ebx
fld st(0)
fsub st(2)
faddp st(4)
faddp st(1)
fadd qword [esp + 0xa0]
fstp qword [esp + 0xa0]
fld dword [edi + 4]
fmul dword [esi + ecx*8]
fld dword [edi + 8]
fmul dword [esi + ecx*8 + 4]
fld dword [edx + 0x10]
fmul dword [esi + ecx*8]
fld dword [edx + 0xc]
fmul dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x14]
fld st(2)
xor ebx, ebx
fadd st(4)
faddp st(5)
fxch st(3)
fsubrp st(2)
fxch st(1)
faddp st(5)
fld st(0)
fsub st(2)
faddp st(4)
faddp st(1)
fadd qword [esp + 0xa0]
fstp qword [esp + 0xa0]
fld dword [edi + 0xc]
cmp ecx, eax
setge bl
neg ebx
and ebx, eax
sub ecx, ebx
fmul dword [esi + ecx*8]
xor ebx, ebx
fld dword [edi + 0x10]
fmul dword [esi + ecx*8 + 4]
fld dword [edx + 0x18]
fmul dword [esi + ecx*8]
fld dword [edx + 0x14]
fmul dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x14]
fld st(2)
fadd st(4)
cmp ecx, eax
setge bl
add edi, 0x20
faddp st(5)
add edx, 0x20
fxch st(3)
fsubrp st(2)
fxch st(1)
faddp st(5)
neg ebx
and ebx, eax
sub ecx, ebx
sub dword [esp + 0x54], 1
fld st(0)
fsub st(2)
faddp st(4)
fxch st(3)
fst qword [esp + 0xb0]
fxch st(1)
faddp st(3)
fxch st(2)
fadd qword [esp + 0xa0]
jne 0x10043367
mov ebx, dword [esp + 0x40]
fxch st(2)
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
cmp edi, dword [esp + 0x20]
jge 0x10043563
mov edx, dword [ebp + 0x2c]
sub edx, eax
lea edi, [eax + edi*8 + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0x2c]
fld dword [edx + eax*8]
mov eax, dword [esp + 0x50]
fmul dword [esi + ecx*8]
xor edx, edx
fld dword [edi + eax]
mov eax, dword [ebp + 0x24]
fmul dword [esi + ecx*8 + 4]
fld dword [esi + ecx*8]
fmul dword [edi]
fstp qword [esp + 0x90]
fld dword [edi - 4]
fmul dword [esi + ecx*8 + 4]
add ecx, dword [esp + 0x14]
fld st(1)
fadd st(3)
cmp ecx, eax
setge dl
add edi, 8
faddp st(5)
fxch st(2)
fsubrp st(1)
faddp st(5)
neg edx
fld qword [esp + 0x90]
and edx, eax
mov eax, dword [esp + 0x48]
fld st(0)
fsub st(2)
add eax, 1
sub ecx, edx
cmp eax, dword [esp + 0x20]
faddp st(3)
mov dword [esp + 0x48], eax
faddp st(1)
faddp st(3)
jl 0x100434ef
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
fxch st(3)
fstp dword [ecx]
fxch st(1)
fstp dword [ecx + 4]
mov ecx, dword [esp + 0x10]
add dword [esp + 0x10], edx
fstp dword [ecx]
fstp dword [ecx + 4]
mov ecx, dword [esp + 0x44]
add dword [esp + 0x14], ecx
lea ecx, [ebx*8]
add dword [esp + 0x2c], ecx
sub dword [esp + 0x18], 1
jne 0x10043310
mov ecx, dword [esp + 0x80]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add ecx, ecx
add ecx, ecx
add ecx, ecx
add dword [esp + 0x60], ecx
add edx, 1
cmp edx, ebx
mov dword [esp + 0x38], edx
jl 0x10042f60
mov ecx, dword [esp + 0x24]
add ecx, dword [ebp + 0x10]
cmp ecx, dword [esp + 0x58]
mov dword [esp + 0x24], ecx
jl 0x10042f10
mov eax, dword [esp + 0x4c]
add eax, 1
cmp eax, dword [ebp + 0x14]
mov dword [esp + 0x4c], eax
jl 0x10042920
fld qword [ebp + 0x34]
mov esi, dword [ebp + 0xc]
fld qword [0x100b12c8]
fsubr st(1)
fabs
fcomp qword [0x100b12c0]
fnstsw ax
test ah, 0x41
jne 0x100436bb
cmp dword [esp + 0x7c], 0
fld st(0)
je 0x10043628
fstp st(0)
fld st(0)
fchs
mov edi, dword [esp + 0x58]
xor ecx, ecx
cmp edi, 4
jl 0x1004368e
lea edx, [edi - 4]
shr edx, 2
add edx, 1
lea eax, [esi + 8]
lea ecx, [edx*4]
fld dword [eax - 8]
add eax, 0x20
sub edx, 1
fmul st(2)
fstp dword [eax - 0x28]
fld dword [eax - 0x24]
fmul st(1)
fstp dword [eax - 0x24]
fld dword [eax - 0x20]
fmul st(2)
fstp dword [eax - 0x20]
fld dword [eax - 0x1c]
fmul st(1)
fstp dword [eax - 0x1c]
fld dword [eax - 0x18]
fmul st(2)
fstp dword [eax - 0x18]
fld dword [eax - 0x14]
fmul st(1)
fstp dword [eax - 0x14]
fld dword [eax - 0x10]
fmul st(2)
fstp dword [eax - 0x10]
fld dword [eax - 0xc]
fmul st(1)
fstp dword [eax - 0xc]
jne 0x10043646
cmp ecx, edi
jge 0x100436ac
fld dword [esi + ecx*8]
add ecx, 1
cmp ecx, edi
fmul st(2)
fstp dword [esi + ecx*8 - 8]
fld dword [esi + ecx*8 - 4]
fmul st(1)
fstp dword [esi + ecx*8 - 4]
jl 0x10043692
fstp st(0)
fstp st(0)
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
cmp dword [esp + 0x7c], 0
fstp st(0)
je 0x100436b0
mov edi, dword [esp + 0x58]
lea ecx, [edi - 2]
xor edx, edx
test ecx, ecx
jl 0x100436f8
add ecx, 2
shr ecx, 1
lea eax, [esi + 0xc]
lea edx, [ecx + ecx]
lea esp, [esp]
fld dword [eax - 8]
add eax, 0x10
sub ecx, 1
fchs
fstp dword [eax - 0x18]
fld dword [eax - 0x10]
fchs
fstp dword [eax - 0x10]
jne 0x100436e0
cmp edx, edi
jge 0x100436b0
fld dword [esi + edi*8 - 4]
xor eax, eax
fchs
fstp dword [esi + edi*8 - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34