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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1ac
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [esp + 0x1c8]
mov eax, dword [ebx]
test eax, eax
je 0x4120a9
test ecx, ecx
je 0x4120bf
mov eax, ecx
fldz
mov edx, dword [eax + 0x20]
fiadd dword [edx]
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x411546
fstp qword [esp + 0x110]
mov dword [esp + 0xe8], ecx
fldz
fstp qword [esp + 0xe0]
mov ebx, dword [esp + 0xe8]
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0x70], ebx
mov esi, dword [ebx]
mov dword [esp + 0xb0], esi
mov dword [esp + 4], 0x28
mov eax, esi
inc eax
mov dword [esp], eax
call sub.msvcrt.dll_calloc
mov dword [ebx + 0x14], eax
test eax, eax
je 0x41205d
mov edi, dword [ebx + 4]
mov dword [esp + 0x98], edi
mov ebp, dword [edi]
mov dword [ebx + 0xc], ebp
mov ecx, edi
mov edi, dword [edi + 4]
mov dword [ebx + 0x10], edi
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
test esi, esi
jle 0x411666
mov edx, ecx
mov ebx, dword [esp + 0xb0]
lea esi, [ecx + ebx*8]
nop
mov ecx, dword [edx + 4]
sub ecx, edi
mov ebx, dword [edx]
sub ebx, ebp
mov dword [esp + 0x17c], ebx
fild dword [esp + 0x17c]
fld qword [eax]
fadd st(1)
fstp qword [eax + 0x28]
mov dword [esp + 0x17c], ecx
fild dword [esp + 0x17c]
fld qword [eax + 8]
fadd st(1)
fstp qword [eax + 0x30]
fld st(1)
fmul st(2)
fadd qword [eax + 0x10]
fstp qword [eax + 0x38]
fmul st(1), st(0)
fxch st(1)
fadd qword [eax + 0x18]
fstp qword [eax + 0x40]
fmul st(0)
fadd qword [eax + 0x20]
fstp qword [eax + 0x48]
add edx, 8
add eax, 0x28
cmp edx, esi
jne 0x41160c
mov esi, dword [esp + 0xb0]
mov dword [esp + 0xd0], esi
mov dword [esp + 4], 4
mov dword [esp], esi
call sub.msvcrt.dll_calloc
mov dword [esp + 0xb8], eax
test eax, eax
je 0x412070
mov dword [esp + 4], 4
mov esi, dword [esp + 0xb0]
mov dword [esp], esi
call sub.msvcrt.dll_calloc
mov dword [esp + 0xa0], eax
test eax, eax
je 0x41207b
dec esi
mov dword [esp + 0xbc], esi
js 0x413eef
mov eax, dword [esp + 0xb0]
xor ecx, ecx
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0xa0]
nop
lea ebx, [edx + ecx*8]
mov edi, dword [ebx]
cmp dword [edx + eax*8 - 8], edi
je 0x4116f6
mov edi, dword [ebx + 4]
cmp dword [edx + eax*8 - 4], edi
je 0x4116f6
mov ecx, eax
mov dword [esi + eax*4 - 4], ecx
dec eax
jne 0x4116e0
mov dword [esp + 4], 4
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xc8], eax
mov esi, dword [esp + 0x70]
mov dword [esi + 8], eax
test eax, eax
je 0x41207b
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0x98]
lea ecx, [ebx + ecx*8]
mov dword [esp + 0xb4], ecx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0xa8], ebx
mov esi, dword [esp + 0xa8]
dec esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 0
mov edx, dword [esp + 0xa8]
cmp dword [esp + 0xb0], edx
jg 0x4117a5
mov eax, edx
cdq
idiv dword [esp + 0xb0]
mov edi, dword [esp + 0x98]
lea edx, [edi + edx*8]
mov ecx, dword [esp + 0xb4]
mov ecx, dword [ecx - 8]
mov dword [esp + 0x90], ecx
mov ebx, dword [esp + 0xb4]
mov ebx, dword [ebx - 4]
mov dword [esp + 0x9c], ebx
mov eax, dword [edx]
sub eax, ecx
lea eax, [eax + eax*2 + 3]
sub eax, ebx
add eax, dword [edx + 4]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
inc dword [esp + eax*4 + 0x190]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa0]
mov edi, dword [edx + eax*4 - 4]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x98]
lea eax, [ecx + edi*8]
mov ebx, dword [eax]
mov dword [esp + 0x50], ebx
sub ebx, dword [esp + 0x88]
test ebx, ebx
jle 0x412250
mov ecx, 6
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
mov edx, eax
sub edx, dword [esp + 0x80]
test edx, edx
jle 0x412244
mov eax, 1
add eax, ecx
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
inc dword [esp + eax*4 + 0x190]
mov eax, dword [esp + 0x190]
test eax, eax
je 0x4118c0
mov eax, dword [esp + 0x194]
test eax, eax
je 0x4118c0
mov eax, dword [esp + 0x198]
test eax, eax
je 0x4118c0
mov eax, dword [esp + 0x19c]
test eax, eax
jne 0x412ceb
nop
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x48]
sub esi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x58]
imul ebp, esi
mov eax, dword [esp + 0x60]
imul eax, ecx
cmp ebp, eax
js 0x412345
mov eax, dword [esp + 0x78]
imul eax, esi
mov ebp, dword [esp + 0x7c]
imul ebp, ecx
sub eax, ebp
test eax, eax
jg 0x412379
lea edx, [ecx + 1]
mov dword [esp + 0x80], edx
cmp edx, 2
ja 0x41217c
lea edx, [esi + 1]
cmp edx, 2
ja 0x41217c
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x68], ebx
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
mov eax, dword [edx + edi*4]
cmp edi, eax
jl 0x41213c
cmp eax, dword [esp + 0x8c]
jg 0x411957
cmp edi, dword [esp + 0x8c]
jg 0x412149
mov ebx, dword [esp + 0x98]
lea eax, [ebx + eax*8]
mov ebx, dword [eax]
sub ebx, dword [esp + 0x50]
mov edx, dword [eax + 4]
sub edx, dword [esp + 0x48]
cmp ebx, 0
jle 0x4122ff
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
cmp edx, 0
jle 0x4122f0
mov edx, dword [esp + 0x78]
mov eax, ebp
sub edx, ebx
mov ebx, edx
sub eax, dword [esp + 0x50]
js 0x4122ca
mov ebp, 0x989680
test ebx, ebx
jle 0x4119ca
mov edx, dword [esp + 0x78]
imul edx, esi
mov eax, dword [esp + 0x7c]
imul eax, ecx
sub eax, edx
js 0x4120ec
cdq
idiv ebx
cmp ebp, eax
jg 0x4120fb
lea esi, [edi + ebp]
cmp dword [esp + 0xb0], esi
jle 0x41210d
test esi, esi
js 0x41232b
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xb8]
mov dword [edx + eax*4 - 4], esi
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xa8], ecx
sub dword [esp + 0xb4], 8
test ecx, ecx
jne 0x411750
mov eax, dword [esp + 0xbc]
shl eax, 2
mov ebx, dword [esp + 0xb8]
mov ecx, dword [ebx + eax]
mov esi, dword [esp + 0xc8]
mov dword [esi + eax], ecx
cmp dword [esp + 0xb0], 1
jle 0x411a63
mov eax, dword [esp + 0xbc]
lea esi, [esi]
mov edx, dword [ebx + eax*4 - 4]
cmp eax, ecx
jg 0x412120
cmp edx, eax
jl 0x411a5c
cmp ecx, edx
jg 0x412128
mov dword [esi + eax*4 - 4], ecx
dec eax
jne 0x411a44
mov esi, dword [esp + 0xb0]
not esi
mov ebp, dword [esp + 0xb0]
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0xc8]
mov edi, dword [esi + ebx*4 - 4]
mov edx, ebx
cmp ebp, ebx
jle 0x411ab7
nop
test ebx, ebx
js 0x412314
cmp edi, edx
jl 0x411ac0
cmp edx, ecx
jg 0x411ac8
cmp edi, ecx
jle 0x411ac8
mov dword [esi + ebx*4 - 4], ecx
dec ebx
inc dword [esp + 0x50]
mov edi, dword [esi + ebx*4 - 4]
mov edx, ebx
cmp ebp, ebx
jg 0x411a90
mov eax, ebx
cdq
idiv ebp
cmp edi, edx
jge 0x411a9c
cmp edx, ecx
jle 0x411aa4
cmp edi, ecx
jg 0x411aa4
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx]
mov dword [esp + 0xbc], ecx
mov ebx, ecx
inc ebx
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0x8c], eax
test eax, eax
je 0x411fcc
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0x90], eax
test eax, eax
je 0x412438
mov dword [esp + 4], 4
mov ecx, dword [esp + 0xbc]
mov dword [esp], ecx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xc0], eax
test eax, eax
je 0x412475
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xac], eax
test eax, eax
je 0x412cc0
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xd0], eax
test eax, eax
je 0x412cdb
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xd4], eax
test eax, eax
je 0x412003
mov eax, dword [esp + 0xbc]
test eax, eax
jle 0x413e65
mov edi, 1
mov ebp, 0xffffffff
mov ebx, dword [esp + 0xbc]
jmp 0x411be5
mov dword [eax + edi*4 - 4], ebx
inc ebp
inc edi
cmp ebx, dword [esp + 0x50]
jle 0x411c39
lea esi, [edi - 1]
mov edx, ebp
cmp ebx, ebp
jle 0x4123d7
cmp ebp, 0xffffffff
je 0x412430
mov eax, dword [esp + 0xc8]
mov ecx, dword [eax + edx*4]
dec ecx
cmp ebx, ecx
jle 0x4123ad
test ecx, ecx
js 0x41241f
mov dword [esp + 0x50], edi
cmp esi, ecx
je 0x4123c0
mov eax, dword [esp + 0xc0]
cmp ecx, esi
jl 0x411bd9
mov dword [eax + edi*4 - 4], ecx
inc ebp
inc edi
cmp ebx, dword [esp + 0x50]
jg 0x411be5
xor edx, edx
mov eax, 1
mov edi, dword [esp + 0xc0]
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0xbc]
mov esi, dword [edi + edx*4]
cmp eax, esi
jg 0x411c6b
lea ecx, [esi + 1]
nop
mov dword [ebx + eax*4], edx
inc eax
cmp eax, ecx
jne 0x411c60
lea eax, [esi + 1]
inc edx
cmp edx, ebp
jne 0x411c55
xor eax, eax
mov dword [esp + 0xc8], 0
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0xd0]
xor ecx, ecx
mov edi, dword [esp + 0xbc]
mov dword [esi + ecx*4], eax
mov eax, dword [ebx + eax*4]
inc ecx
cmp edi, eax
jg 0x411c94
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xd8], ecx
mov ebx, dword [esp + 0xbc]
mov eax, dword [esp + 0xd0]
mov dword [eax + ecx*4], ebx
mov eax, ecx
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0xd4]
mov dword [ebx + eax*4], edx
mov edx, dword [ecx + edx*4]
dec eax
jne 0x411cce
mov eax, dword [esp + 0xd4]
mov dword [eax], 0
mov eax, dword [esp + 0x8c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esp + 0xb8], 1
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + edx*4]
mov ebx, dword [esp + 0xd0]
mov ebx, dword [ebx + edx*4]
mov dword [esp + 0xa0], ebx
cmp ebx, eax
jl 0x4124e9
mov esi, dword [esp + 0xd0]
mov esi, dword [esi + edx*4 - 4]
mov dword [esp + 0x9c], esi
mov dword [esp + 0x68], eax
lea eax, [eax + eax*4 + 5]
shl eax, 3
mov dword [esp + 0x98], eax
lea eax, [esi + esi*4]
shl eax, 3
mov dword [esp + 0xb0], eax
mov edi, 1
sub edi, esi
mov dword [esp + 0xb4], edi
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0xac]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x9c]
cmp edx, ecx
jg 0x41249b
mov edx, dword [esp + 0x68]
inc edx
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0xb4]
add ecx, dword [esp + 0x68]
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x50], esi
fld1
fchs
fstp qword [esp + 0x80]
jmp 0x411f78
mov ebp, dword [esp + 0x68]
sub ebp, edx
lea esi, [ebp + 1]
mov dword [esp + 0x58], esi
lea ebx, [esi + esi*4]
lea esi, [ecx + ebx*8]
mov ebx, dword [esp + 0x78]
add ebx, ecx
lea edi, [edx + edx*4]
lea ecx, [ecx + edi*8]
fld qword [esi]
fsub qword [ebx]
fadd qword [ecx]
fld qword [esi + 8]
fsub qword [ebx + 8]
fadd qword [ecx + 8]
fld qword [esi + 0x10]
fsub qword [ebx + 0x10]
fadd qword [ecx + 0x10]
fld qword [esi + 0x18]
fsub qword [ebx + 0x18]
fadd qword [ecx + 0x18]
fld qword [esi + 0x20]
fsub qword [ebx + 0x20]
fadd qword [ecx + 0x20]
fstp qword [esp + 0x48]
mov edi, dword [esp + 0x58]
sub edi, dword [esp + 0x50]
add edi, edx
mov dword [esp + 0x17c], edi
fild dword [esp + 0x17c]
fstp qword [esp + 0x58]
mov ebx, dword [esp + 0x50]
shl ebx, 3
lea ecx, [eax + ebx]
mov esi, dword [ecx]
lea edx, [eax + ebp*8]
mov edi, dword [edx]
lea ebp, [esi + edi]
fld dword [0x427568]
fld st(0)
push ebp
fimul dword [esp]
fisub dword [eax]
fxch st(1)
mov ecx, dword [ecx + 4]
mov edx, dword [edx + 4]
lea ebp, [ecx + edx]
mov dword [esp], ebp
fimul dword [esp]
pop ebp
fisub dword [eax + 4]
sub edi, esi
mov dword [esp + 0x17c], edi
fild dword [esp + 0x17c]
fstp qword [esp + 0x60]
sub ecx, edx
mov dword [esp + 0x17c], ecx
fild dword [esp + 0x17c]
fld st(6)
fadd st(7)
fmul st(3)
fsubp st(5)
fxch st(4)
fdiv qword [esp + 0x58]
fld st(2)
fmul st(3)
faddp st(1)
fld st(4)
fmul st(5)
fmulp st(1)
fxch st(6)
fmul st(1)
fsubp st(3)
fld st(1)
fmul st(5)
fsubp st(3)
fxch st(2)
fdiv qword [esp + 0x58]
fxch st(1)
fmul st(2)
faddp st(1)
fxch st(2)
fadd st(0)
fmul qword [esp + 0x60]
fmulp st(2)
fxch st(3)
faddp st(1)
fxch st(1)
fadd st(0)
fmul st(2)
fsubr qword [esp + 0x48]
fdiv qword [esp + 0x58]
fld st(2)
fmulp st(3)
faddp st(2)
fld qword [esp + 0x60]
fmul st(0)
fmulp st(2)
faddp st(1)
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x412d1a
fstp st(1)
mov eax, dword [esp + 0x8c]
fadd qword [eax + ebx]
fldz
fld qword [esp + 0x80]
fxch st(1)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x411f38
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x411f58
jmp 0x411f3a
fstp st(0)
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x90]
mov dword [eax + edx*4], ecx
fstp qword [esp + 0x80]
jmp 0x411f5a
fstp st(0)
dec dword [esp + 0x50]
sub dword [esp + 0x78], 0x28
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x88]
cmp dword [esp + 0x50], ebx
jl 0x4124b4
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x14]
cmp dword [esp + 0x68], edx
jge 0x411dd4
mov edx, dword [esp + 0x98]
add edx, ecx
add ecx, dword [esp + 0x78]
fld qword [edx]
fsub qword [ecx]
fld qword [edx + 8]
fsub qword [ecx + 8]
fld qword [edx + 0x10]
fsub qword [ecx + 0x10]
fld qword [edx + 0x18]
fsub qword [ecx + 0x18]
fld qword [edx + 0x20]
fsub qword [ecx + 0x20]
fstp qword [esp + 0x48]
fild dword [esp + 0x7c]
fstp qword [esp + 0x58]
mov ebp, dword [esp + 0x68]
jmp 0x411e3d
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, 1
add esp, 0x1ac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, 1
add esp, 0x1ac
pop ebx
pop esi
pop edi
pop ebp
ret
test ecx, ecx
je 0x412a5b
fldz
fstp qword [esp + 0x110]
jmp 0x411559
fldz
mov ebx, dword [esp + 0x1c8]
fmul qword [ebx + 8]
fadd qword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov dword [esp + 8], edx
fst qword [esp]
fstp qword [esp + 0x30]
call eax
fld qword [esp + 0x30]
fstp qword [ebx + 0x28]
xor eax, eax
jmp 0x412062
not eax
cdq
idiv ebx
not eax
cmp ebp, eax
jle 0x4119ca
mov ebp, eax
lea esi, [edi + ebp]
cmp dword [esp + 0xb0], esi
jg 0x4119da
mov eax, esi
cdq
idiv dword [esp + 0xb0]
mov esi, edx
jmp 0x4119e2
cmp edx, eax
jl 0x411a54
mov ecx, edx
mov dword [esi + eax*4 - 4], ecx
dec eax
jne 0x411a44
jmp 0x411a63
cmp eax, dword [esp + 0x8c]
jg 0x41194a
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x80], ebx
mov esi, dword [esp + 0x50]
mov dword [esp + 0x88], esi
mov edx, dword [esp + 0x68]
mov dword [esp + 0x60], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0xac], edi
mov edi, eax
jmp 0x41183c
cmp esi, 0
jl 0x412220
je 0x412294
mov ebp, 1
add ebp, ecx
cmp ecx, 0
jle 0x412230
mov edx, 0xffffffff
add edx, esi
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 0x58]
imul ebx, edx
mov edx, dword [esp + 0x60]
imul edx, ebp
cmp ebx, edx
js 0x412280
cmp esi, 0
jle 0x412260
mov eax, 0xffffffff
add eax, ecx
mov dword [esp + 0x58], eax
cmp ecx, 0
jl 0x412218
je 0x4122ac
mov edx, 1
add edx, esi
mov eax, dword [esp + 0x78]
imul eax, edx
mov ebx, dword [esp + 0x7c]
imul ebx, dword [esp + 0x58]
sub eax, ebx
test eax, eax
jg 0x41192f
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
jmp 0x41192f
mov eax, dword [esp + 0x80]
mov dword [esp + 0x58], eax
mov edx, 0xffffffff
jmp 0x4121e0
mov ebp, 0xffffffff
add ebp, ecx
cmp ecx, 0
jg 0x41219b
jne 0x4123e1
mov eax, esi
cdq
and edx, 2
dec edx
jmp 0x4121a0
cmp edx, 1
sbb eax, eax
not eax
jmp 0x41187d
cmp ebx, 1
sbb ecx, ecx
and ecx, 3
jmp 0x411860
jne 0x4122c0
test ecx, ecx
js 0x41220d
lea ebx, [ecx - 1]
mov dword [esp + 0x58], ebx
test ecx, ecx
jne 0x4121db
mov edx, 0xffffffff
jmp 0x4121e0
mov edx, dword [esp + 0x60]
mov dword [esp + 0x68], edx
mov ebp, dword [esp + 0x58]
jmp 0x4121bc
test ecx, ecx
jns 0x412220
mov ebp, dword [esp + 0x80]
mov edx, 1
jmp 0x4121a0
test esi, esi
js 0x4121db
mov edx, 0xffffffff
jmp 0x4121e0
mov eax, 1
jmp 0x4121ca
imul ebp, esi
mov edx, dword [esp + 0x68]
imul edx, ecx
neg eax
mov dword [esp + 0x50], eax
mov eax, ebp
sub eax, edx
js 0x412400
cdq
idiv dword [esp + 0x50]
mov ebp, eax
jmp 0x4119a5
jne 0x412410
xor edx, edx
xor eax, eax
jmp 0x411992
jne 0x4123eb
xor ebx, ebx
mov dword [esp + 0x50], 0
jmp 0x411983
mov eax, dword [esp + 0x50]
cdq
idiv ebp
mov eax, dword [esp + 0xbc]
sub eax, edx
mov edx, eax
jmp 0x411a98
mov eax, esi
not eax
cdq
idiv dword [esp + 0xb0]
mov esi, dword [esp + 0xbc]
sub esi, edx
jmp 0x4119e2
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x80]
sub esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x68], edi
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0xac]
jmp 0x41196e
mov ecx, dword [esp + 0x88]
sub ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x80]
sub esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x68], eax
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0xac]
jmp 0x41196e
mov eax, ecx
cdq
idiv ebx
mov ecx, edx
mov dword [esp + 0x50], edi
cmp esi, ecx
jne 0x411c22
cmp ebx, edi
jle 0x412469
test edi, edi
js 0x412d09
mov ecx, edi
jmp 0x411c22
mov eax, ebp
cdq
idiv ebx
jmp 0x411bfb
mov edx, 1
jmp 0x4121a0
mov eax, dword [esp + 0x68]
neg eax
mov dword [esp + 0x50], eax
mov ebx, dword [esp + 0x7c]
neg ebx
jmp 0x411983
not eax
cdq
idiv dword [esp + 0x50]
mov ebp, eax
not ebp
jmp 0x4119a5
mov eax, ebp
neg eax
mov edx, dword [esp + 0x78]
neg edx
jmp 0x411992
mov eax, ecx
not eax
cdq
idiv ebx
lea ecx, [ebx - 1]
sub ecx, edx
jmp 0x411c16
lea edx, [ebx - 1]
jmp 0x411bfb
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xc0], 0
jmp 0x412003
mov eax, edi
cdq
idiv ebx
mov ecx, edx
jmp 0x411c22
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xac], 0
jmp 0x412003
mov ebx, dword [esp + 0x68]
inc ebx
mov dword [esp + 0xa8], ebx
fld1
fchs
fstp qword [esp + 0x80]
nop
fld qword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x8c]
fstp qword [eax + esi*8]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x68], edx
add dword [esp + 0x98], 0x28
cmp dword [esp + 0xa0], edx
jge 0x411d6c
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xc8]
cmp dword [esp + 0xb8], ecx
jle 0x411d03
mov esi, dword [esp + 0xc8]
mov ebx, dword [esp + 0x70]
mov dword [ebx + 0x18], esi
mov dword [esp + 4], 4
mov edi, dword [esp + 0xd8]
mov dword [esp], edi
call sub.msvcrt.dll_calloc
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x412003
mov edx, dword [esp + 0xbc]
test edx, edx
jle 0x41255d
lea eax, [eax + esi*4]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0xbc]
mov edx, dword [ecx + edx*4]
mov dword [eax - 4], edx
sub eax, 4
test edx, edx
jg 0x412550
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xc0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xac]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [esp + 0xe8]
mov eax, dword [ebx + 0x20]
call fcn.00410824
test eax, eax
jne 0x41205d
mov ebx, dword [esp + 0xe8]
cmp dword [ebx + 4], 0x2d
je 0x412c3c
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0xb0], ebx
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x1c4]
fld qword [ebx + 8]
fstp qword [esp + 0x90]
mov ebx, dword [esp + 0xb0]
add ebx, 0x20
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x41295b
mov dword [esp + 0x48], 0
mov ebp, 1
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 0x18]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 0x1c]
mov dword [esp + 0x80], ebx
jmp 0x412779
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(2)
fstp st(2)
lea ebx, [ecx*8]
fld qword [0x427578]
mov eax, dword [esp + 0x9c]
fst qword [eax + ebx]
fld qword [esp + 0x90]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
je 0x412898
fstp st(0)
fxch st(1)
jmp 0x4126ce
fstp st(0)
fld1
fld st(0)
fld qword [edi]
fstp qword [esp + 0x60]
fld qword [edi + 8]
fstp qword [esp + 0x68]
fld qword [esi]
fld qword [esi + 8]
fld qword [edx]
fld qword [edx + 8]
fstp qword [esp + 0x70]
mov eax, dword [esp + 0x88]
mov dword [eax + ecx*4], 1
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x8c]
fld qword [esp + 0x60]
fsubr st(3)
fmul st(4)
fadd qword [esp + 0x60]
fstp qword [eax]
fld qword [esp + 0x68]
fsubr st(2)
fmul st(4)
fadd qword [esp + 0x68]
fstp qword [eax + 8]
fsub st(2), st(0)
fxch st(2)
fmul st(3)
faddp st(2)
fxch st(1)
fstp qword [eax + 0x10]
fsub qword [esp + 0x70]
fmulp st(1)
fadd qword [esp + 0x70]
fstp qword [eax + 0x18]
fxch st(1)
fstp qword [eax + 0x20]
fxch st(1)
fstp qword [eax + 0x28]
mov edx, dword [esp + 0x7c]
fstp qword [edx + ebx]
mov ecx, dword [esp + 0x80]
mov dword [ecx + ebx], 0
mov dword [ecx + ebx + 4], 0x3fe00000
add dword [esp + 0x48], 0x10
mov ebx, dword [esp + 0x50]
cmp dword [esp + 0x78], ebx
je 0x41295b
mov dword [esp + 0x78], ebp
cmp ebp, dword [esp + 0x50]
jge 0x412900
mov ecx, ebp
inc ebp
mov edx, ebp
cmp ebp, dword [esp + 0x50]
jl 0x412799
mov eax, ebp
cdq
idiv dword [esp + 0x50]
mov esi, ecx
shl esi, 4
add esi, dword [esp + 0x58]
shl edx, 4
add edx, dword [esp + 0x58]
fld qword [edx]
fld qword [edx + 8]
fld qword [esi]
fst qword [esp + 0x60]
fld qword [esi + 8]
fst qword [esp + 0x68]
fxch st(1)
fsub st(3)
fmul qword [0x427570]
fadd st(3)
fxch st(1)
fsub st(2)
fmul qword [0x427570]
fadd st(2)
mov edi, dword [esp + 0x58]
add edi, dword [esp + 0x48]
fld qword [edi]
fld qword [edi + 8]
fxch st(5)
fsub st(1)
fldz
fld st(0)
fxch st(2)
fucom st(2)
fnstsw ax
test ah, 0x45
jne 0x412934
fstp st(2)
fstp st(0)
fld1
fxch st(5)
fsub st(6)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x412910
fstp st(1)
fld1
fchs
fxch st(6)
fmul st(2)
fxch st(6)
fmul st(1)
fsubp st(6)
fldz
fxch st(6)
fucom st(6)
fnstsw ax
fstp st(6)
and ah, 0x45
cmp ah, 0x40
je 0x41268c
fxch st(2)
fsubr qword [esp + 0x60]
fmulp st(2)
fxch st(5)
fsubr qword [esp + 0x68]
fmulp st(5)
fsubrp st(4)
fxch st(3)
fdivrp st(2)
fxch st(1)
fabs
fld1
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x413eb1
fdivr st(1)
fsubr st(1)
fdiv dword [0x427590]
lea ebx, [ecx*8]
mov eax, dword [esp + 0x9c]
fst qword [eax + ebx]
fld qword [esp + 0x90]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x4128ce
fstp st(1)
fxch st(1)
jmp 0x41289c
fxch st(1)
fxch st(2)
mov eax, dword [esp + 0x88]
mov dword [eax + ecx*4], 2
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [esp + 0x8c]
lea edi, [eax + 0x10]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
fstp qword [eax + 0x20]
fxch st(1)
fstp qword [eax + 0x28]
jmp 0x412749
fld qword [0x427588]
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x41294c
fstp st(0)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x4126cc
fld dword [0x427568]
fld st(1)
fmul st(1)
faddp st(1)
jmp 0x4126d2
mov eax, ebp
cdq
idiv dword [esp + 0x50]
mov ecx, edx
jmp 0x412789
fxch st(1)
fucomp st(1)
fnstsw ax
test ah, 0x45
sete al
movzx eax, al
mov dword [esp + 0x17c], eax
fild dword [esp + 0x17c]
fxch st(6)
jmp 0x41281a
fxch st(2)
fucomp st(2)
fnstsw ax
test ah, 0x45
je 0x412a64
fxch st(5)
jmp 0x4127ff
fstp st(2)
fstp st(0)
fld qword [0x427580]
jmp 0x4126d2
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x2c], 1
mov ebx, dword [esp + 0x1c4]
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x412a71
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x60], esi
mov eax, dword [esp + 0xe8]
add eax, 8
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
call fcn.0041471c
mov ebx, dword [esp + 0x1c8]
mov edx, dword [ebx]
test edx, edx
je 0x412a31
mov ebx, dword [esp + 0xe8]
mov eax, dword [ebx + 0x20]
fld qword [esp + 0xe0]
fiadd dword [eax]
fst qword [esp + 0xe0]
fdiv qword [esp + 0x110]
fld1
fld st(0)
fsub st(2)
mov ebx, dword [esp + 0x1c8]
fmul qword [ebx + 8]
fld qword [ebx + 0x10]
fmul st(3)
faddp st(1)
fxch st(2)
fucompp
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x412a0f
fld qword [ebx + 0x28]
fadd qword [ebx + 0x18]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x412a2f
mov ebx, dword [esp + 0x1c8]
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
fst qword [esp]
fstp qword [esp + 0x30]
call edx
fld qword [esp + 0x30]
fstp qword [ebx + 0x28]
jmp 0x412a31
fstp st(0)
mov ebx, dword [esp + 0xe8]
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0xe8], ebx
test ebx, ebx
jne 0x411569
mov ebx, dword [esp + 0x1c8]
mov eax, dword [ebx]
test eax, eax
jne 0x4120bf
xor eax, eax
jmp 0x412062
fstp st(0)
fld1
fchs
fxch st(5)
jmp 0x4127ff
fld qword [ebx + 0x18]
fstp qword [esp + 0x150]
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0x80], ebx
inc ebx
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xd0], eax
test eax, eax
je 0x412dc5
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xec], eax
test eax, eax
je 0x412d29
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xb8], eax
test eax, eax
je 0x413cec
mov dword [esp + 4], 0x40
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xb4], eax
test eax, eax
je 0x413d14
mov dword [esp + 4], 4
mov esi, dword [esp + 0x80]
mov dword [esp], esi
call sub.msvcrt.dll_calloc
mov dword [esp + 0x88], eax
test eax, eax
je 0x413e37
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0xd4], eax
test eax, eax
je 0x4139a1
test esi, esi
jle 0x413930
mov ebx, dword [esp + 0xb0]
mov ebp, dword [ebx + 0x24]
xor ecx, ecx
mov ebx, 0xffffffff
mov edi, 1
mov esi, dword [esp + 0xb0]
mov esi, dword [esi + 0x30]
mov dword [esp + 0x48], esi
jmp 0x412ba5
mov eax, dword [esp + 0x88]
mov dword [eax + edi*4 - 4], 0
mov dword [esp + 0x50], edi
inc edi
inc ebx
add ecx, 0x10
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x80], esi
jle 0x412e03
cmp dword [ebp + edi*4 - 4], 1
jne 0x412b7c
mov dword [esp + 0x50], edi
cmp dword [esp + 0x80], edi
jle 0x412db6
mov edx, edi
shl edx, 4
add edx, dword [esp + 0x48]
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x48]
add esi, ecx
mov edx, ebx
cmp dword [esp + 0x80], ebx
jle 0x412da7
cmp ebx, 0xffffffff
je 0x413e58
mov eax, edx
shl eax, 4
add eax, dword [esp + 0x48]
fld qword [eax]
fld qword [eax + 8]
fld qword [esi]
fsub st(2)
mov eax, dword [esp + 0x58]
fld qword [eax + 8]
fsub st(2)
fmulp st(1)
fxch st(1)
fsubr qword [esi + 8]
fxch st(2)
fsubr qword [eax]
fmulp st(2)
fsubrp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x413cd6
fstp st(0)
fstp st(0)
mov eax, 1
mov edx, dword [esp + 0x88]
mov dword [edx + edi*4 - 4], eax
jmp 0x412b8f
mov ebx, dword [esp + 0xe8]
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0xb0], ebx
mov ebx, dword [ebx + 0x20]
mov dword [esp + 0x50], ebx
mov edx, ebx
dec edx
test edx, edx
jle 0x4125f0
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x50]
shl ebp, 4
add ebp, ebx
xor eax, eax
lea ebx, [esp + 0x180]
mov dword [esp + 0x58], ebx
mov edi, ebx
mov esi, dword [esp + 0x48]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x10]
mov edi, dword [esp + 0x48]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x10]
lea ebx, [esp + 0x180]
mov esi, dword [esp + 0x58]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
inc eax
dec edx
add dword [esp + 0x48], 0x10
sub ebp, 0x10
cmp eax, edx
jl 0x412c83
jmp 0x4125f0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
jmp 0x412003
mov dword [esp + 0xd4], 0
jmp 0x412003
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xb8]
mov dword [edx + eax*4 - 4], ecx
jmp 0x4119f4
lea ecx, [ebx - 1]
mov eax, edi
not eax
cdq
idiv ebx
sub ecx, edx
jmp 0x411c22
fstp st(0)
fstp qword [esp]
call sub.msvcrt.dll_sqrt
jmp 0x411f0c
mov dword [esp + 0xd4], 0
mov dword [esp + 0x88], 0
xor ebx, ebx
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], ebx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x88]
jmp 0x412046
mov eax, ebx
cdq
idiv dword [esp + 0x80]
jmp 0x412be8
mov eax, edi
cdq
idiv dword [esp + 0x80]
jmp 0x412bbf
mov dword [esp + 0xd4], 0
mov dword [esp + 0x88], 0
xor ebx, ebx
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xec], 0
jmp 0x412d57
mov eax, dword [esp + 0xd4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ebx, dword [esp + 0x48]
fld qword [ebx]
fstp qword [esp + 0x60]
fld qword [ebx + 8]
fstp qword [esp + 0x58]
xor ecx, ecx
fldz
mov edi, dword [esp + 0xb0]
jmp 0x412e52
mov eax, dword [esp + 0xd4]
fst qword [eax + ecx*8 + 8]
mov ecx, ebx
cmp dword [esp + 0x80], ebx
je 0x412f00
lea ebx, [ecx + 1]
mov edx, ebx
cmp dword [esp + 0x80], ebx
jg 0x412e6a
mov eax, ebx
cdq
idiv dword [esp + 0x80]
cmp dword [ebp + edx*4], 1
jne 0x412e38
mov eax, dword [edi + 0x34]
fld qword [eax + edx*8]
lea esi, [edx + edx*2]
shl esi, 4
add esi, dword [edi + 0x28]
shl edx, 4
add edx, dword [esp + 0x48]
lea eax, [ecx + ecx*2]
shl eax, 4
add eax, dword [edi + 0x28]
fld qword [eax + 0x20]
fld qword [eax + 0x28]
fld qword [esi + 0x20]
fstp qword [esp + 0x68]
fld qword [esi + 0x28]
fld qword [str.333333]
fmul st(4)
fxch st(4)
fsubr dword [0x427564]
fmulp st(4)
fld qword [edx]
fsub st(3)
fld st(1)
fsub st(3)
fmulp st(1)
fld qword [edx + 8]
fsub st(3)
fld qword [esp + 0x68]
fsub st(5)
fmulp st(1)
fsubp st(1)
fmulp st(4)
fld dword [0x427568]
fmul st(4), st(0)
fxch st(5)
faddp st(4)
fxch st(2)
fsub qword [esp + 0x60]
fxch st(2)
fsub qword [esp + 0x58]
fmulp st(2)
fsub qword [esp + 0x58]
fld qword [esp + 0x68]
fsub qword [esp + 0x60]
fmulp st(1)
fsubp st(1)
fmulp st(2)
faddp st(1)
jmp 0x412e38
fstp st(0)
mov eax, dword [esp + 0xd0]
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0xec]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0xb8]
mov dword [eax], 0
mov eax, dword [esp + 0xec]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], 0
mov dword [esp + 0x78], 1
mov edi, dword [esp + 0xb0]
jmp 0x4130a1
mov dword [esp + 0x70], eax
mov esi, dword [edi + 0x20]
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x50], edx
je 0x413074
mov ecx, dword [esp + 0x50]
inc ecx
mov dword [esp + 0x48], ecx
cmp ecx, esi
jge 0x4132e5
mov eax, dword [esp + 0x48]
test eax, eax
js 0x41331f
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
mov ebx, dword [eax + ebx*4]
mov dword [esp + 0x68], ebx
test ebx, ebx
je 0x413074
jmp 0x41313d
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413074
fstp st(0)
fstp st(0)
nop
inc dword [esp + 0x78]
add dword [esp + 0xbc], 8
add dword [esp + 0x9c], 0x40
add dword [esp + 0x98], 0x10
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x80], eax
jl 0x413972
mov eax, dword [esp + 0x78]
dec eax
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xd0]
mov dword [ecx + edx*4], eax
mov ebx, dword [esp + 0xbc]
fld qword [ebx]
fstp qword [ebx + 8]
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + edx*4 - 4]
mov dword [esp + 0x44], eax
inc eax
mov ecx, dword [esp + 0xb8]
mov dword [ecx + edx*4], eax
sub edx, 2
mov dword [esp + 0x50], edx
inc edx
je 0x413074
sub ebx, 8
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x98]
lea ebx, [ebx + ebx*2 - 0x30]
mov dword [esp + 0xac], ebx
mov esi, dword [esp + 0x98]
sub esi, 0x10
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x78]
neg eax
mov dword [esp + 0xa8], eax
nop
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x78], ebx
jl 0x412f6c
cdq
idiv ebx
mov dword [esp + 0x70], edx
jmp 0x412f70
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x48]
shl ecx, 4
mov dword [esp + 0xa0], ecx
mov eax, ecx
add eax, edx
add edx, dword [esp + 0x7c]
fld qword [edx]
fsub qword [eax]
fld qword [edx + 8]
fsub qword [eax + 8]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fld st(0)
fsqrt
fst qword [esp + 0x90]
fucomp st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x413f28
fstp st(0)
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x70], ecx
je 0x413337
lea ebx, [esi - 1]
mov dword [esp + 0xc0], ebx
jmp 0x4132a2
test ebx, ebx
js 0x4132f3
lea edx, [ecx + 2]
cmp esi, edx
jle 0x4132bf
test edx, edx
js 0x413308
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x88]
cmp ecx, dword [eax + ebx*4]
jne 0x413074
mov ecx, dword [edi + 0x30]
shl edx, 4
add edx, ecx
mov ebp, ebx
shl ebp, 4
add ebp, ecx
mov eax, dword [esp + 0xa0]
add eax, ecx
add ecx, dword [esp + 0x7c]
fld qword [ebp]
fld qword [ebp + 8]
fld qword [edx]
fld qword [edx + 8]
fld qword [eax]
fsub qword [ecx]
fld qword [eax + 8]
fsub qword [ecx + 8]
fld st(3)
fsub st(6)
fstp qword [esp + 0x58]
fld st(2)
fsub st(5)
fst qword [esp + 0x60]
fmul st(2)
fld qword [esp + 0x58]
fmul st(2)
fsubp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x4132cc
fstp st(0)
fstp st(0)
mov eax, 1
cmp dword [esp + 0x68], eax
jne 0x412fbd
fxch st(3)
fsubp st(5)
fxch st(1)
fsubp st(3)
fxch st(3)
fmul st(0)
fxch st(2)
fmul st(0)
faddp st(2)
fld st(1)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x4142fe
fstp st(2)
fxch st(1)
fxch st(2)
fmul qword [esp + 0x58]
fxch st(1)
fmul qword [esp + 0x60]
faddp st(1)
fxch st(1)
fmul qword [esp + 0x90]
fmul qword [0x4275a0]
fucompp
fnstsw ax
test ah, 0x45
je 0x413074
cmp dword [esp + 0x70], ebx
je 0x413337
mov ecx, ebx
lea ebx, [ecx + 1]
cmp esi, ebx
jg 0x4131a4
mov eax, ebx
cdq
idiv esi
mov ebx, edx
lea edx, [ecx + 2]
cmp esi, edx
jg 0x4131b7
mov eax, edx
cdq
idiv esi
jmp 0x4131bf
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x412fd0
mov eax, 0xffffffff
jmp 0x413238
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x48], edx
jmp 0x412f9e
mov eax, ebx
not eax
cdq
idiv esi
mov ebx, dword [esp + 0xc0]
sub ebx, edx
jmp 0x4131ac
mov eax, edx
not eax
cdq
idiv esi
mov ecx, dword [esp + 0xc0]
sub ecx, edx
mov edx, ecx
jmp 0x4131bf
lea ecx, [esi - 1]
mov eax, dword [esp + 0xa8]
cdq
idiv esi
sub ecx, edx
mov dword [esp + 0x48], ecx
jmp 0x412f9e
mov ebx, dword [edi + 0x28]
cmp dword [esp + 0x50], esi
jge 0x413903
mov edx, dword [esp + 0x50]
lea eax, [edx + edx*2]
shl eax, 4
add eax, ebx
fld qword [eax + 0x20]
fstp qword [esp + 0xd8]
fld qword [eax + 0x28]
fstp qword [esp + 0xc8]
mov ecx, dword [edi + 0x30]
mov eax, dword [esp + 0xa0]
add eax, ecx
fld qword [eax]
fld qword [eax + 8]
cmp dword [esp + 0x70], esi
jge 0x41390f
mov edx, dword [esp + 0x70]
mov eax, edx
shl eax, 4
add eax, ecx
fld qword [eax]
fstp qword [esp + 0x100]
fld qword [eax + 8]
fstp qword [esp + 0x68]
lea eax, [edx + edx*2]
shl eax, 4
add eax, ebx
fld qword [eax + 0x20]
fstp qword [esp + 0xf8]
fld qword [eax + 0x28]
fstp qword [esp + 0xf0]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0xd4]
fld qword [eax + edx*8]
mov edx, dword [esp + 0x50]
fsub qword [eax + edx*8]
mov edx, dword [esp + 0x70]
lea eax, [edx + edx*2]
shl eax, 4
add eax, ebx
mov edx, dword [esp + 0xac]
add edx, ebx
fld qword [ecx]
fld qword [ecx + 8]
fld qword [edx + 0x20]
fsub st(2)
fld qword [eax + 0x28]
fsub st(2)
fmulp st(1)
fxch st(1)
fsubr qword [edx + 0x28]
fxch st(2)
fsubr qword [eax + 0x20]
fmulp st(2)
fsubrp st(1)
fmul dword [0x427568]
fsubp st(1)
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x50], edx
jl 0x41341f
mov eax, dword [esp + 0xd4]
fadd qword [eax + esi*8]
fxch st(2)
jmp 0x413421
fxch st(2)
fsub qword [esp + 0xd8]
fst qword [esp + 0x58]
fxch st(1)
fsub qword [esp + 0xc8]
fstp qword [esp + 0x60]
fld qword [esp + 0x100]
fsub qword [esp + 0xd8]
fld qword [esp + 0x68]
fsub qword [esp + 0xc8]
fmul st(2), st(0)
fld qword [esp + 0x60]
fmul st(2)
fsubp st(3)
fld qword [esp + 0xf8]
fsub qword [esp + 0xd8]
fld qword [esp + 0xf0]
fsub qword [esp + 0xc8]
fld qword [esp + 0x58]
fmul st(1)
fld qword [esp + 0x60]
fmul st(3)
fsubp st(1)
fxch st(5)
fucom st(5)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x412fe1
fxch st(1)
fmulp st(4)
fxch st(1)
fmulp st(2)
fxch st(2)
fsubrp st(1)
fld st(1)
fadd st(1)
fsub st(3)
fsubr st(1)
fdivp st(1)
fst qword [esp + 0x90]
fmul st(2)
fmul dword [0x427568]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
cmp ah, 0x40
je 0x412ff4
fxch st(1)
fsubr st(2)
fdivp st(2)
fxch st(1)
fstp qword [esp + 0xc0]
fdivp st(1)
fdiv qword [str.333333]
fsubr dword [0x427564]
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x414391
fstp st(1)
fsubr dword [0x4275a8]
fstp qword [esp + 0xa0]
fld qword [esp + 0x90]
fmul qword [esp + 0xa0]
fld qword [esp + 0x58]
fmul st(1)
fadd qword [esp + 0xd8]
fst qword [esp + 0x58]
fxch st(1)
fmul qword [esp + 0x60]
fadd qword [esp + 0xc8]
fstp qword [esp + 0x60]
fld qword [esp + 0xc0]
fmul qword [esp + 0xa0]
fld qword [esp + 0x100]
fsub qword [esp + 0xf8]
fmul st(1)
fadd qword [esp + 0xf8]
fld qword [esp + 0x68]
fsub qword [esp + 0xf0]
fmulp st(2)
fxch st(1)
fadd qword [esp + 0xf0]
fst qword [esp + 0x68]
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x70], ecx
je 0x413f45
fstp st(0)
fstp st(1)
fld qword [esp + 0x58]
fsub qword [esp + 0xd8]
fstp qword [esp + 0x128]
fld qword [esp + 0x60]
fsub qword [esp + 0xc8]
fstp qword [esp + 0x100]
fld qword [esp + 0x58]
fsubr st(1)
fstp qword [esp + 0x130]
fld qword [esp + 0x68]
fsub qword [esp + 0x60]
fstp qword [esp + 0x138]
fld qword [esp + 0xf8]
fsub st(1)
fstp qword [esp + 0x140]
fld qword [esp + 0xf0]
fsub qword [esp + 0x68]
fstp qword [esp + 0x148]
fldz
fxch st(1)
mov ecx, dword [edi + 0x30]
lea ebx, [esi - 1]
mov dword [esp + 0x178], ebx
mov ebp, dword [esp + 0x48]
fstp qword [esp + 0x168]
fstp qword [esp + 0x120]
jmp 0x4138ec
test ebx, ebx
js 0x41391b
mov edx, ebx
shl edx, 4
lea eax, [ecx + edx]
shl ebp, 4
add ecx, ebp
fld qword [eax]
fsub qword [ecx]
fld qword [eax + 8]
fsub qword [ecx + 8]
fld qword [esp + 0x128]
fmul st(1)
fld qword [esp + 0x100]
fmul st(3)
fsubp st(1)
fld qword [esp + 0x130]
fmul st(2)
fld qword [esp + 0x138]
fmul st(4)
fsubp st(1)
fadd st(0)
fxch st(2)
fmul qword [esp + 0x140]
fxch st(3)
fmul qword [esp + 0x148]
fsubp st(3)
fld st(0)
fsub st(2)
faddp st(3)
fldz
fxch st(3)
fucom st(3)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x412ffe
fld st(1)
fmul dword [0x4275ac]
faddp st(3)
fld st(2)
fmul st(3)
fld st(1)
fmul dword [0x427564]
fmulp st(3)
fsubrp st(2)
fxch st(3)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x413008
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x4142d5
fstp st(1)
fxch st(2)
fadd st(0)
fld st(2)
fsub st(2)
fdiv st(1)
fxch st(2)
fchs
fsubrp st(3)
fdivp st(2)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x413708
fld1
fucomp st(1)
fnstsw ax
test ah, 5
je 0x413e30
fstp st(0)
jmp 0x41370a
fstp st(0)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x413010
fld1
fucomp st(1)
fnstsw ax
test ah, 5
jne 0x413014
fld dword [0x4275b0]
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x413018
fld st(0)
fsubr dword [0x427560]
fld st(0)
fmul st(1)
fld st(1)
fmul st(1)
fxch st(1)
fmul st(3)
fld dword [0x4275b4]
fmul st(1), st(0)
fld st(4)
fmul st(5)
fmul st(4), st(0)
fxch st(4)
fmulp st(1)
fxch st(3)
fmulp st(4)
fld qword [esp + 0xd8]
fmul st(2)
fld qword [esp + 0x58]
fmul st(2)
faddp st(1)
fld qword [esp + 0x168]
fmul st(4)
faddp st(1)
fld qword [esp + 0xf8]
fmul st(5)
faddp st(1)
fxch st(2)
fmul qword [esp + 0xc8]
fxch st(1)
fmul qword [esp + 0x60]
faddp st(1)
fxch st(2)
fmul qword [esp + 0x68]
faddp st(2)
fxch st(2)
fmul qword [esp + 0xf0]
faddp st(1)
mov ecx, dword [edi + 0x30]
lea eax, [ecx + edx]
add ecx, ebp
fld qword [ecx]
fsub qword [eax]
fld qword [ecx + 8]
fsub qword [eax + 8]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x414366
fstp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x41301c
mov ecx, dword [edi + 0x30]
add edx, ecx
add ebp, ecx
fld qword [ebp]
fst qword [esp + 0x48]
fld qword [ebp + 8]
fld qword [edx]
fst qword [esp + 0x108]
fld qword [edx + 8]
fst qword [esp + 0x118]
fxch st(1)
fsub st(3)
fstp qword [esp + 0x158]
fsub st(1)
fstp qword [esp + 0x160]
fxch st(1)
fsubr st(5)
fld st(4)
fsub st(2)
fst qword [esp + 0x18]
fld qword [esp + 0x158]
fmulp st(1)
fld qword [esp + 0x160]
fmul st(2)
fsubp st(1)
fdivrp st(3)
fld st(2)
fabs
fld qword [esp + 0x150]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x413026
fmul qword [esp + 0x158]
fld qword [esp + 0x18]
fmul qword [esp + 0x160]
faddp st(1)
fxch st(3)
fucom st(3)
fnstsw ax
fstp st(3)
test ah, 0x45
je 0x413034
fld qword [esp + 0x48]
fsub qword [esp + 0x108]
fxch st(5)
fsub qword [esp + 0x108]
fmulp st(5)
fld qword [esp + 0x118]
fsubp st(1)
fxch st(3)
fsub qword [esp + 0x118]
fmulp st(3)
fxch st(3)
faddp st(2)
fucompp
fnstsw ax
test ah, 0x45
je 0x413040
fmul st(0)
fadd qword [esp + 0x120]
fst qword [esp + 0x120]
cmp dword [esp + 0x70], ebx
je 0x41435a
fstp st(0)
mov ebp, ebx
lea ebx, [ebp + 1]
cmp esi, ebx
jg 0x41361e
mov eax, ebx
cdq
idiv esi
mov ebx, edx
jmp 0x413626
mov eax, dword [esp + 0x50]
cdq
idiv esi
jmp 0x413348
mov eax, dword [esp + 0x70]
cdq
idiv esi
jmp 0x413383
mov eax, ebx
not eax
cdq
idiv esi
mov ebx, dword [esp + 0x178]
sub ebx, edx
jmp 0x413626
mov eax, dword [esp + 0xd4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0xd0]
mov dword [eax], 0xffffffff
mov eax, dword [esp + 0xec]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0xb8]
mov dword [eax], 0
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0xb8]
mov ebx, dword [eax + ebx*4]
mov dword [esp + 0x50], ebx
mov dword [esp + 4], ebx
mov eax, dword [esp + 0xb0]
add eax, 0x40
mov dword [esp], eax
call fcn.00414620
test eax, eax
je 0x4139a8
xor ebx, ebx
jmp 0x412d57
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov ebp, eax
test eax, eax
je 0x413f21
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_calloc
mov dword [esp + 0x60], eax
test eax, eax
je 0x413f21
dec ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x8c], ebx
test ebx, ebx
js 0x413d38
lea ebx, [ebx + ebx*2]
shl ebx, 4
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x58]
shl ebx, 4
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x58]
shl eax, 3
mov ebx, dword [esp + 0x58]
shl ebx, 2
mov dword [esp + 0x7c], ebx
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x28]
mov dword [esp + 0x9c], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x44]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x48]
mov dword [esp + 0xa0], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x50]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x54]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0xb0]
mov ebx, dword [ebx + 0x58]
mov dword [esp + 0xc0], ebx
mov ebx, edx
dec ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x98], ebp
mov ebp, eax
jmp 0x413bc3
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x7c]
mov dword [esi + ebx], 1
mov edi, dword [esp + 0xa0]
add edi, dword [esp + 0x68]
mov dword [esp + 0x78], edi
mov ebx, edx
shl ebx, 6
add ebx, dword [esp + 0xb4]
lea esi, [ebx + 8]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x78]
add edi, 0x10
lea esi, [ebx + 0x18]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
cmp edx, dword [esp + 0x80]
jge 0x413e49
test edx, edx
jns 0x413b19
mov eax, edx
not eax
cdq
idiv dword [esp + 0x80]
mov eax, dword [esp + 0xc8]
sub eax, edx
mov edx, eax
lea eax, [edx + edx*2]
shl eax, 4
add eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x78]
add edi, 0x20
lea esi, [eax + 0x20]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xac]
add ecx, dword [esp + 0x70]
shl edx, 4
add edx, dword [esp + 0x48]
fld qword [ebx + 0x30]
fld qword [eax + 0x20]
fld qword [eax + 0x28]
fld qword [edx + 8]
fsub st(1)
fmul st(3)
faddp st(1)
fld qword [edx]
fsub st(2)
fmul st(3)
faddp st(2)
fxch st(1)
fstp qword [ecx]
fstp qword [ecx + 8]
fld qword [ebx + 0x38]
mov edx, dword [esp + 0xbc]
fst qword [edx + ebp]
mov ecx, dword [esp + 0xc0]
fstp qword [ecx + ebp]
mov eax, dword [esp + 0x98]
fstp qword [eax + ebp]
fld qword [ebx + 0x28]
mov eax, dword [esp + 0x60]
fstp qword [eax + ebp]
dec dword [esp + 0x8c]
sub dword [esp + 0x68], 0x30
sub dword [esp + 0x70], 0x10
sub ebp, 8
sub dword [esp + 0x7c], 4
mov edx, dword [esp + 0x90]
cmp dword [esp + 0x8c], 0xffffffff
je 0x413d31
lea eax, [edx*4]
mov esi, dword [esp + 0xd0]
mov esi, dword [esi + eax]
mov dword [esp + 0x90], esi
lea ecx, [edx - 1]
cmp esi, ecx
jne 0x413aac
mov ecx, dword [esp + 0xa8]
add ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0xb0]
mov ebx, dword [edi + 0x24]
cmp edx, dword [esp + 0x80]
jge 0x414344
test edx, edx
js 0x414321
mov eax, dword [ebx + eax]
mov dword [ecx], eax
mov eax, dword [esp + 0xa0]
add eax, dword [esp + 0x68]
lea ebx, [edx + edx*2]
shl ebx, 4
add ebx, dword [esp + 0x9c]
mov edi, eax
mov esi, ebx
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x10]
lea esi, [ebx + 0x10]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x20]
lea esi, [ebx + 0x20]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
mov esi, edx
shl esi, 4
add esi, dword [esp + 0x48]
mov edi, dword [esp + 0xac]
add edi, dword [esp + 0x70]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
shl edx, 3
mov ebx, dword [esp + 0xb0]
mov eax, dword [ebx + 0x34]
fld qword [eax + edx]
mov ebx, dword [esp + 0xbc]
fstp qword [ebx + ebp]
mov ebx, dword [esp + 0xb0]
mov eax, dword [ebx + 0x38]
fld qword [eax + edx]
mov ebx, dword [esp + 0xc0]
fstp qword [ebx + ebp]
mov ebx, dword [esp + 0xb0]
mov eax, dword [ebx + 0x3c]
fld qword [eax + edx]
mov eax, dword [ebx + 0x5c]
fstp qword [eax + ebp]
mov eax, dword [esp + 0x60]
mov dword [eax + ebp], 0
mov dword [eax + ebp + 4], 0x3ff00000
mov eax, dword [esp + 0x98]
mov dword [eax + ebp], 0
mov dword [eax + ebp + 4], 0x3ff00000
jmp 0x413b95
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
sete al
movzx eax, al
neg eax
jmp 0x412c2c
mov dword [esp + 0xd4], 0
mov dword [esp + 0x88], 0
xor ebx, ebx
mov dword [esp + 0xb4], 0
jmp 0x412d57
mov dword [esp + 0xd4], 0
mov dword [esp + 0x88], 0
xor ebx, ebx
jmp 0x412d57
mov ebp, dword [esp + 0x98]
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x413d95
mov eax, dword [esp + 0x50]
lea edx, [eax*8 - 8]
xor eax, eax
mov ecx, dword [esp + 0xb0]
mov ebx, dword [ecx + 0x5c]
cmp eax, edx
je 0x413d75
fld qword [ebp + eax]
fld st(0)
mov ecx, dword [esp + 0x60]
fadd qword [ecx + eax + 8]
fdivp st(1)
fstp qword [ebx + eax]
add eax, 8
cmp eax, edx
jne 0x413d5b
mov ecx, dword [esp + 0x58]
shl ecx, 3
fld qword [ebp + ecx]
mov eax, dword [esp + 0x50]
cdq
idiv eax
fld st(0)
mov eax, dword [esp + 0x60]
fadd qword [eax + edx*8]
fdivp st(1)
fstp qword [ebx + ecx]
mov ebx, dword [esp + 0xb0]
mov dword [ebx + 0x4c], 1
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], ebp
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x88]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov ebx, dword [esp + 0xe8]
mov eax, dword [ebx + 0x20]
lea ebx, [eax + 0x40]
mov dword [esp + 0x98], ebx
mov dword [eax + 0x60], ebx
jmp 0x41298c
fstp st(1)
jmp 0x41372c
mov dword [esp + 0xd4], 0
xor ebx, ebx
jmp 0x412d57
mov eax, edx
cdq
idiv dword [esp + 0x80]
jmp 0x413b19
mov edx, dword [esp + 0x80]
dec edx
jmp 0x412be8
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xd0]
mov dword [eax], ecx
mov eax, dword [esp + 0xd4]
mov dword [eax], 0
mov eax, dword [esp + 0x8c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd8], 0
jmp 0x412504
fstp st(0)
fstp st(0)
lea ebx, [ecx*8]
fldz
mov eax, dword [esp + 0x9c]
fstp qword [eax + ebx]
fldz
fld qword [esp + 0x90]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
je 0x413f3c
fld qword [0x427580]
fld qword [0x427588]
fxch st(1)
jmp 0x4126d2
mov dword [esp + 4], 4
mov edi, dword [esp + 0xb0]
mov dword [esp], edi
call sub.msvcrt.dll_calloc
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0x70]
mov dword [ecx + 8], eax
test eax, eax
jne 0x411a12
jmp 0x41207b
mov ebx, ebp
jmp 0x412d57
fstp qword [esp]
call sub.msvcrt.dll_sqrt
fstp qword [esp + 0x90]
jmp 0x413187
fldz
fxch st(1)
jmp 0x41289c
fxch st(2)
fsub qword [esp + 0xd8]
fstp qword [esp + 0x128]
fld qword [esp + 0x60]
fsub qword [esp + 0xc8]
fstp qword [esp + 0x100]
fld qword [esp + 0x58]
fsubr st(1)
fstp qword [esp + 0x130]
fxch st(1)
fsub qword [esp + 0x60]
fstp qword [esp + 0x138]
fld qword [esp + 0xf8]
fsub st(1)
fstp qword [esp + 0x140]
fld qword [esp + 0xf0]
fsub qword [esp + 0x68]
fstp qword [esp + 0x148]
fldz
fxch st(1)
mov ebp, dword [esp + 0x50]
mov ebx, dword [edi + 0x28]
lea ecx, [esi - 1]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x48], esi
fstp qword [esp + 0x118]
fstp qword [esp + 0x108]
mov ecx, ebx
jmp 0x41426a
test ebx, ebx
jns 0x413fea
mov eax, ebx
not eax
cdq
idiv dword [esp + 0x48]
mov ebx, dword [esp + 0x120]
sub ebx, edx
lea esi, [ebx + ebx*2]
shl esi, 4
lea eax, [ecx + esi]
lea ebp, [ebp + ebp*2]
shl ebp, 4
lea edx, [ecx + ebp]
fld qword [eax + 0x20]
fsub qword [edx + 0x20]
fld qword [eax + 0x28]
fsub qword [edx + 0x28]
fld qword [esp + 0x128]
fmul st(1)
fld qword [esp + 0x100]
fmul st(3)
fsubp st(1)
fld qword [esp + 0x130]
fmul st(2)
fld qword [esp + 0x138]
fmul st(4)
fsubp st(1)
fadd st(0)
fxch st(2)
fmul qword [esp + 0x140]
fxch st(3)
fmul qword [esp + 0x148]
fsubp st(3)
fld st(0)
fsub st(2)
faddp st(3)
fld st(0)
fmul dword [0x4275ac]
faddp st(2)
fld st(1)
fmul st(2)
fld st(3)
fmul dword [0x427564]
fmulp st(2)
fsubrp st(1)
fldz
fxch st(3)
fucom st(3)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x413044
fxch st(3)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x41304e
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x4142b2
fstp st(1)
fld st(2)
faddp st(3)
fld st(0)
fsub st(2)
fdiv st(3)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x4140c8
fld1
fucomp st(1)
fnstsw ax
test ah, 5
je 0x4140f6
fstp st(0)
jmp 0x4140ca
fstp st(0)
fxch st(1)
fchs
fsubrp st(1)
fdivrp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jne 0x413056
fld1
fucomp st(1)
fnstsw ax
test ah, 5
jne 0x41305c
jmp 0x4140fc
fstp st(2)
fstp st(0)
fstp st(1)
fld dword [0x4275b0]
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x413060
fld st(0)
fsubr dword [0x427560]
fld st(0)
fmul st(1)
fld st(1)
fmul st(1)
fxch st(1)
fmul st(3)
fld dword [0x4275b4]
fmul st(1), st(0)
fld st(4)
fmul st(5)
fmul st(4), st(0)
fxch st(4)
fmulp st(1)
fxch st(3)
fmulp st(4)
fld qword [esp + 0xd8]
fmul st(2)
fld qword [esp + 0x58]
fmul st(2)
faddp st(1)
fld qword [esp + 0x118]
fmul st(4)
faddp st(1)
fld qword [esp + 0xf8]
fmul st(5)
faddp st(1)
fxch st(2)
fmul qword [esp + 0xc8]
fxch st(1)
fmul qword [esp + 0x60]
faddp st(1)
fxch st(2)
fmul qword [esp + 0x68]
faddp st(2)
fxch st(2)
fmul qword [esp + 0xf0]
faddp st(1)
mov edx, dword [edi + 0x28]
lea eax, [edx + esi]
add edx, ebp
fld qword [edx + 0x20]
fsub qword [eax + 0x20]
fld qword [edx + 0x28]
fsub qword [eax + 0x28]
fxch st(1)
fmul st(0)
fxch st(1)
fmul st(0)
faddp st(1)
fld st(0)
fsqrt
fucom st(0)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
jne 0x41428f
fstp st(1)
fldz
fxch st(1)
fucom st(1)
fnstsw ax
and ah, 0x45
cmp ah, 0x40
je 0x413064
mov ecx, dword [edi + 0x28]
add esi, ecx
add ebp, ecx
fld qword [ebp + 0x20]
fld qword [ebp + 0x28]
fld qword [esi + 0x20]
fsub st(2)
fld qword [esi + 0x28]
fsub st(2)
fxch st(6)
fsub st(2)
fmul st(1)
fxch st(7)
fsub st(3)
fmul st(6)
fsubp st(7)
fxch st(6)
fdiv st(3)
fxch st(1)
mov eax, ebx
shl eax, 4
add eax, dword [edi + 0x30]
fsubr qword [eax + 8]
fmulp st(6)
fxch st(1)
fsubr qword [eax]
fmulp st(4)
fxch st(4)
fsubrp st(3)
fdivp st(2)
mov eax, dword [edi + 0x34]
fld dword [0x427590]
fmul qword [eax + ebx*8]
fmulp st(2)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x414285
fld qword [esp + 0x150]
fsubr st(1)
fucomp st(2)
fnstsw ax
test ah, 0x45
je 0x41306e
fucom st(1)
fnstsw ax
test ah, 0x45
jne 0x41425a
fsubp st(1)
fmul st(0)
fadd qword [esp + 0x108]
fstp qword [esp + 0x108]
jmp 0x41425e
fstp st(0)
fstp st(0)
cmp dword [esp + 0x70], ebx
je 0x4143a0
mov ebp, ebx
lea ebx, [ebp + 1]
cmp dword [esp + 0x48], ebx
jg 0x413fd4
mov eax, ebx
cdq
idiv dword [esp + 0x48]
mov ebx, edx
jmp 0x413fea
fxch st(1)
fchs
fxch st(1)
fchs
jmp 0x414227
fstp st(0)
fstp qword [esp]
fxch st(1)
fstp qword [esp + 0x20]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_sqrt
fld qword [esp + 0x30]
fld qword [esp + 0x20]
fxch st(2)
jmp 0x4141b8
fstp st(0)
fstp qword [esp]
fxch st(1)
fstp qword [esp + 0x20]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_sqrt
fld qword [esp + 0x30]
fld qword [esp + 0x20]
fxch st(2)
jmp 0x4140a0
fstp st(0)
fstp qword [esp]
fxch st(1)
mov dword [esp + 0x3c], edx
fstp qword [esp + 0x20]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_sqrt
fld qword [esp + 0x30]
fld qword [esp + 0x20]
mov edx, dword [esp + 0x3c]
jmp 0x4136d6
fstp st(0)
fxch st(1)
fstp qword [esp]
fstp qword [esp + 0x20]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_sqrt
fld qword [esp + 0x30]
fld qword [esp + 0x20]
fxch st(1)
jmp 0x41326e
mov eax, edx
not eax
cdq
idiv dword [esp + 0x80]
mov eax, dword [esp + 0xc8]
sub eax, edx
mov edx, eax
lea eax, [eax*4]
jmp 0x413c10
mov eax, edx
cdq
idiv dword [esp + 0x80]
lea eax, [edx*4]
jmp 0x413c10
fld qword [esp + 0x168]
jmp 0x413fa7
fstp st(0)
fstp qword [esp]
mov dword [esp + 0x3c], edx
fstp qword [esp + 0x20]
fstp qword [esp + 0x30]
call sub.msvcrt.dll_sqrt
fld qword [esp + 0x30]
fld qword [esp + 0x20]
fxch st(1)
fxch st(2)
mov edx, dword [esp + 0x3c]
jmp 0x4137e6
fstp st(0)
fstp qword [esp]
call sub.msvcrt.dll_sqrt
jmp 0x413506
fld qword [esp + 0x118]
fld qword [esp + 0x108]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + eax*4]
mov edx, eax
inc edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xb8]
cmp dword [ecx + eax*4], edx
jg 0x41442a
je 0x41440c
fstp st(0)
fstp st(0)
jmp 0x4143dc
fstp st(0)
fstp st(0)
nop
dec dword [esp + 0x50]
sub dword [esp + 0x8c], 8
sub dword [esp + 0xac], 0x30
sub dword [esp + 0x7c], 0x10
inc dword [esp + 0xa8]
cmp dword [esp + 0x50], 0xffffffff
jne 0x41311c
jmp 0x413074
fld st(0)
mov ecx, dword [esp + 0x8c]
fadd qword [ecx]
mov ebx, dword [esp + 0xbc]
fld qword [ebx + 8]
fucompp
fnstsw ax
test ah, 0x45
jne 0x4143d7
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xd0]
mov dword [ecx + eax*4], ebx
mov esi, dword [esp + 0x8c]
fld qword [esi]
fadd st(1)
mov ecx, dword [esp + 0xbc]
fstp qword [ecx + 8]
mov ebx, dword [esp + 0xb8]
mov dword [ebx + eax*4], edx
mov esi, dword [esp + 0x9c]
fstp qword [esi + 0x40]
mov eax, dword [esp + 0xb4]
fld qword [esp + 0x58]
mov ecx, dword [esp + 0x98]
fstp qword [eax + ecx*4 + 0x48]
fld qword [esp + 0x60]
fstp qword [eax + ecx*4 + 0x50]
mov eax, dword [esp + 0xb4]
fstp qword [eax + ecx*4 + 0x58]
fld qword [esp + 0x68]
fstp qword [eax + ecx*4 + 0x60]
fld qword [esp + 0x90]
fstp qword [esi + 0x68]
fld qword [esp + 0xc0]
fstp qword [esi + 0x70]
fld qword [esp + 0xa0]
fstp qword [esi + 0x78]
jmp 0x4143dc