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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x3b6c
call fcn.1007d430
mov eax, dword [0x1008a2c0]
xor eax, esp
mov dword [esp + 0x3b68], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x1c]
fld qword [0x1007e250]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], eax
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0x170]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x10]
shr eax, 1
lea edx, [esp + 0xf0]
mov dword [esp + 0xdc], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0xac], edx
lea edx, [esp + 0x970]
shr eax, 1
mov dword [esp + 0xc0], edx
mov edx, dword [esi + 8]
mov dword [esp + 0xec], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x2c]
xor ebx, ebx
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x54], edx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x1c], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xe8], eax
cmp ecx, 0x1e
jle 0x100557b7
fstp st(0)
sub ecx, 0x1e
fld qword [0x1007e278]
mov edx, 1
imul edi, dword [ebp + 0x14]
shl edx, cl
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fdivp st(1)
fst qword [esp + 0xd0]
cmp edi, 0x100
jle 0x10055800
lea eax, [edi*8]
fstp st(0)
push eax
call sub.MSVCR100.dll_malloc
add esp, 4
mov dword [esp + 0x6c], eax
cmp eax, ebx
je 0x10055928
fld qword [esp + 0xd0]
xor ebx, ebx
cmp edi, 4
jl 0x1005584b
mov ecx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x10]
lea edx, [edi - 4]
shr edx, 2
add ecx, 0x10
add eax, 8
inc edx
lea ebx, [edx*4]
fild dword [eax - 8]
add eax, 0x10
add ecx, 0x20
dec edx
fmul st(1)
fstp qword [ecx - 0x30]
fild dword [eax - 0x14]
fmul st(1)
fstp qword [ecx - 0x28]
fild dword [eax - 0x10]
fmul st(1)
fstp qword [ecx - 0x20]
fild dword [eax - 0xc]
fmul st(1)
fstp qword [ecx - 0x18]
jne 0x10055822
cmp ebx, edi
jge 0x10055864
mov ecx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x10]
fild dword [eax + ebx*4]
inc ebx
fmul st(1)
fstp qword [ecx + ebx*8 - 8]
cmp ebx, edi
jl 0x10055856
mov eax, dword [ebp + 0x14]
fstp st(0)
cmp eax, 1
jne 0x100558be
mov ecx, dword [ebp + 0x30]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x24]
mov edi, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x78]
push edi
push esi
call fcn.100549b0
lea edx, [esp + 0x188]
add esp, 0x18
mov esi, eax
cmp edi, edx
je 0x100558a7
push edi
call sub.MSVCR100.dll_free
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3b68]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x54]
lea edi, [ecx + eax - 1]
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + 3]
imul esi, edi
cmp esi, 0x640
jg 0x100558dd
cmp ecx, 0xf
jle 0x10055950
mov edx, ecx
add edx, esi
lea eax, [edx*8 + 8]
push eax
call sub.MSVCR100.dll_malloc
add esp, 4
mov dword [esp + 0xc0], eax
test eax, eax
jne 0x10055942
lea ecx, [esp + 0x970]
test ecx, ecx
je 0x10055910
push eax
call sub.MSVCR100.dll_free
add esp, 4
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x170]
cmp eax, edx
je 0x10055928
push eax
call sub.MSVCR100.dll_free
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x3b68]
xor ecx, esp
call fcn.1007d356
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
lea eax, [eax + esi*8]
mov dword [esp + 0xac], eax
mov edx, dword [esp + 0xac]
inc ecx
xor eax, eax
test ecx, ecx
jle 0x1005597a
mov esi, dword [esp + 0xc0]
lea ebx, [edi*8]
lea esp, [esp]
mov dword [edx + eax*4], esi
inc eax
add esi, ebx
cmp eax, ecx
jl 0x10055970
xor eax, eax
test ecx, ecx
jle 0x10055995
mov esi, dword [esp + 0x1c]
lea esi, [edx + esi*4 + 4]
mov ebx, dword [edx + eax*4]
mov dword [esi], ebx
inc eax
add esi, 4
cmp eax, ecx
jl 0x10055988
mov ecx, dword [esp + 0x1c]
mov ebx, dword [edx + ecx*4]
lea eax, [edi*8]
add ebx, eax
add eax, ebx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x34]
add eax, dword [ebp + 0x20]
mov dword [esp + 0xbc], 0
sub edi, eax
cmp dword [esp + 0x18], 0
mov dword [esp + 0x4c], edi
jle 0x100571bd
fld qword [0x1007e258]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0xbc]
mov edx, 1
dec ecx
shl edx, cl
test dword [ebp + 0x30], edx
je 0x100571a2
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xe8]
lea esi, [ecx + eax*2]
lea eax, [edx + eax*2]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
cmp dword [esp + 0x1c], eax
jle 0x10055c7f
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xac]
mov edi, dword [edx + eax*4]
xor eax, eax
mov dword [esp + 0x10], edi
cmp ecx, 4
jl 0x10055a96
lea eax, [ecx - 4]
shr eax, 2
inc eax
mov dword [esp + 0x24], eax
add eax, eax
lea edx, [edi + 0x10]
add eax, eax
movzx ecx, word [esi]
mov dword [esp + 0x14], ecx
add edx, 0x20
dec dword [esp + 0x24]
fild dword [esp + 0x14]
fstp qword [edx - 0x30]
movzx ecx, word [esi]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp qword [edx - 0x28]
movzx ecx, word [esi]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp qword [edx - 0x20]
movzx ecx, word [esi]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fstp qword [edx - 0x18]
jne 0x10055a51
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jge 0x10055aae
movzx edx, word [esi]
mov dword [esp + 0x14], edx
inc eax
fild dword [esp + 0x14]
fstp qword [edi + eax*8 - 8]
cmp eax, ecx
jl 0x10055a9a
xor edx, edx
cmp dword [esp + 0x4c], 4
jl 0x10055b69
mov edx, dword [esp + 0x18]
lea eax, [edi + ecx*8]
mov ecx, dword [esp + 0x18]
lea edi, [ecx + ecx*2]
lea edi, [esi + edi*2]
mov dword [esp + 0x44], edi
lea edi, [esi + ecx*4]
add ecx, ecx
add ecx, esi
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x4c]
add edx, edx
add ecx, 0xfffffffc
add edx, edx
shr ecx, 2
add edx, edx
inc ecx
mov dword [esp + 0x48], edi
lea edi, [ecx*4]
mov dword [esp + 0x58], esi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x58]
movzx edi, word [edi]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x50]
add dword [esp + 0x58], edx
fild dword [esp + 0x14]
add dword [esp + 0x50], edx
add eax, 0x20
fstp qword [eax - 0x20]
movzx edi, word [edi]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x48]
add dword [esp + 0x48], edx
fild dword [esp + 0x14]
fstp qword [eax - 0x18]
movzx edi, word [edi]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x44]
add dword [esp + 0x44], edx
dec ecx
fild dword [esp + 0x14]
fstp qword [eax - 0x10]
movzx edi, word [edi]
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
fstp qword [eax - 8]
jne 0x10055aff
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x4c]
jge 0x10055bb8
mov eax, edx
imul eax, dword [esp + 0x18]
lea eax, [esi + eax*2]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
add ecx, edx
lea ecx, [edi + ecx*8]
sub eax, edx
jmp 0x10055b8e
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
movzx edx, word [edx]
mov dword [esp + 0x14], edx
add ecx, 8
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
fstp qword [ecx - 8]
mov ecx, dword [esp + 0x18]
add ecx, ecx
add dword [esp + 0x58], ecx
dec eax
jne 0x10055b8a
mov ecx, dword [esp + 0x34]
cmp dword [ebp + 0x20], 4
mov dword [esp + 0x20], 0
jl 0x10055c0a
mov eax, dword [ebp + 0x20]
add ecx, dword [esp + 0x4c]
add eax, 0xfffffffc
shr eax, 2
lea edi, [edi + ecx*8]
inc eax
lea ecx, [eax*4]
mov edx, edi
mov dword [esp + 0x20], ecx
fld qword [edi - 8]
add edx, 0x20
dec eax
fstp qword [edx - 0x20]
fld qword [edi - 8]
fstp qword [edx - 0x18]
fld qword [edi - 8]
fstp qword [edx - 0x10]
fld qword [edi - 8]
fstp qword [edx - 8]
jne 0x10055be4
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
cmp edx, dword [ebp + 0x20]
jge 0x10055c43
mov eax, dword [esp + 0x4c]
add eax, ecx
add eax, edx
lea edx, [edi + eax*8]
mov eax, dword [ebp + 0x20]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x4c]
add edx, ecx
fld qword [edi + edx*8 - 8]
mov edx, dword [esp + 0x24]
fstp qword [edx]
add edx, 8
dec eax
mov dword [esp + 0x24], edx
jne 0x10055c29
mov eax, dword [esp + 0x40]
cmp eax, dword [ebp + 0x24]
jl 0x10055c6c
mov edx, dword [esp + 0x1c]
sub edx, dword [ebp + 0x28]
mov edi, dword [esp + 0xc4]
lea edx, [edx + edi - 2]
cmp eax, edx
jge 0x10055c6c
mov edx, dword [esp + 0xdc]
lea esi, [esi + edx*2]
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x1c]
jl 0x10055a2a
mov dword [esp + 0x44], esi
xor esi, esi
mov dword [esp + 0x58], esi
cmp dword [esp + 0x54], esi
jle 0x10055c9f
mov esi, dword [esp + 0x54]
mov ecx, esi
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x14], 0
jle 0x100571a2
mov eax, dword [esp + 0xc4]
sub eax, dword [ebp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x58]
lea eax, [ecx + edx*4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], 0
test ecx, ecx
jle 0x10056e04
cmp dword [ebp + 0x14], 0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], 0
jle 0x10056df1
mov ecx, dword [esp + 0x54]
add ecx, 0xfffffffe
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
lea edi, [eax + esi*8]
mov eax, dword [ebp + 0x14]
mov edx, eax
sub edx, esi
mov dword [esp + 0x20], edx
cmp edx, 0xe
jle 0x10055d4b
mov dword [esp + 0x20], 7
jmp 0x10055d5e
cmp edx, 7
jle 0x10055d62
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x20]
fld qword [edi]
add esi, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], esi
cmp edx, 7
jne 0x10056128
mov edx, dword [esp + 0x50]
fld qword [edi + 8]
fld qword [edi + 0x10]
fld qword [edi + 0x18]
fld qword [edi + 0x20]
fld qword [edi + 0x28]
fstp qword [esp + 0x88]
fld qword [edx]
fstp qword [esp + 0xb0]
fld qword [edx + 8]
fstp qword [esp + 0xa0]
fld qword [edx + 0x10]
fstp qword [esp + 0x78]
fld qword [edx + 0x18]
fstp qword [esp + 0x70]
fld qword [edx + 0x20]
fstp qword [esp + 0x90]
fld qword [edx + 0x28]
fstp qword [esp + 0xc8]
fld qword [edx + 0x30]
mov edx, dword [esp + 0x1c]
dec edx
fstp qword [esp + 0xd0]
cmp dword [esp + 0x40], edx
jl 0x10056025
cmp esi, eax
jl 0x10056025
xor esi, esi
test ecx, ecx
js 0x10056f22
mov eax, dword [esp + 0x34]
fstp st(5)
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x38
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x5c], eax
jmp 0x10055e41
mov eax, dword [esp + 0x5c]
fstp st(0)
fxch st(4)
fxch st(1)
fxch st(3)
movzx eax, word [eax + edx]
fxch st(2)
fst qword [esp + 0x60]
cdq
fld qword [esp + 0x88]
fld qword [edi - 8]
mov edx, dword [esp + 0xc]
fld qword [edi]
mov edi, eax
movzx eax, word [edx]
fstp qword [esp + 0x88]
cdq
xor ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fxch st(2)
fmul qword [esp + 0xa0]
fxch st(5)
fmul qword [esp + 0xb0]
faddp st(5)
fld qword [esp + 0x78]
fld st(0)
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(5)
faddp st(6)
fld qword [esp + 0x90]
fmul st(7)
faddp st(6)
fld qword [esp + 0xc8]
fmul st(2)
faddp st(6)
fld qword [esp + 0xd0]
fmul st(3)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10055f08
fstp st(0)
mov edi, 0x80000000
jmp 0x10055f27
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10055f20
fstp st(0)
mov edi, 0x7fffffff
jmp 0x10055f27
call fcn.1007d380
mov edi, eax
fld qword [esp + 0x60]
fmul qword [esp + 0xb0]
fld qword [esp + 0xa0]
fmul st(4)
faddp st(1)
fxch st(5)
fmul st(4)
faddp st(5)
fld qword [esp + 0x70]
fmul st(6)
faddp st(5)
fld qword [esp + 0x90]
fmul st(1)
faddp st(5)
fld qword [esp + 0xc8]
fmul st(2)
faddp st(5)
fld qword [esp + 0xd0]
fmul qword [esp + 0x88]
faddp st(5)
fxch st(4)
fadd qword [ebx + esi*8 + 8]
fld qword [0x1007e258]
fsub st(1), st(0)
fld qword [0x1007e220]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x10055f97
fstp st(1)
mov eax, 0x80000000
jmp 0x10055fb6
fld qword [0x1007e228]
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x10055faf
fstp st(1)
mov eax, 0x7fffffff
jmp 0x10055fb6
fxch st(1)
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x28]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x30]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], edi
cmp esi, ecx
jle 0x10055e35
fstp st(2)
fstp st(2)
fstp st(3)
fstp st(1)
jmp 0x10056dd3
xor esi, esi
test ecx, ecx
js 0x10056f22
fstp st(5)
lea edx, [edi + 0x38]
fld qword [esp + 0x88]
jmp 0x10056049
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
fxch st(3)
add esi, 2
fst qword [esp + 0x60]
add edx, 0x10
fld qword [edx - 0x18]
fld qword [edx - 0x10]
fstp qword [esp + 0x88]
fxch st(1)
fmul qword [esp + 0xa0]
fxch st(5)
fmul qword [esp + 0xb0]
faddp st(5)
fld qword [esp + 0x78]
fld st(0)
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(3)
faddp st(6)
fld qword [esp + 0x90]
fmul st(7)
faddp st(6)
fld qword [esp + 0xc8]
fmul st(5)
faddp st(6)
fld qword [esp + 0xd0]
fmul st(2)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul qword [esp + 0xb0]
fld qword [esp + 0xa0]
fmul st(4)
faddp st(1)
fxch st(5)
fmul st(2)
faddp st(5)
fld qword [esp + 0x70]
fmul st(6)
faddp st(5)
fld qword [esp + 0x90]
fmul st(4)
faddp st(5)
fld qword [esp + 0xc8]
fmul st(1)
faddp st(5)
fld qword [esp + 0xd0]
fld qword [esp + 0x88]
fmul st(1), st(0)
fxch st(6)
faddp st(1)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x1005603d
fstp st(2)
fstp st(0)
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
fld qword [0x1007e258]
jmp 0x10056dd5
cmp edx, 6
jne 0x1005647b
mov edx, dword [esp + 0x50]
fld qword [edi + 8]
fld qword [edi + 0x10]
fld qword [edi + 0x18]
fld qword [edi + 0x20]
fld qword [edx]
fst qword [esp + 0xb0]
fld qword [edx + 8]
fstp qword [esp + 0xa0]
fld qword [edx + 0x10]
fstp qword [esp + 0x78]
fld qword [edx + 0x18]
fstp qword [esp + 0x70]
fld qword [edx + 0x20]
fstp qword [esp + 0x90]
fld qword [edx + 0x28]
mov edx, dword [esp + 0x1c]
dec edx
fstp qword [esp + 0xc8]
cmp dword [esp + 0x40], edx
jl 0x100563a7
cmp esi, eax
jl 0x100563a7
xor esi, esi
test ecx, ecx
js 0x10056f2d
mov eax, dword [esp + 0x34]
fstp st(6)
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x30
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], eax
jmp 0x100561e7
mov eax, dword [esp + 0x5c]
fstp st(0)
fld qword [esp + 0xb0]
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(2)
fxch st(1)
movzx eax, word [edx + eax]
fxch st(4)
fstp qword [esp + 0x88]
cdq
fxch st(2)
mov edx, dword [esp + 0xc]
fst qword [esp + 0x60]
fld qword [edi - 8]
xor ecx, ecx
fld qword [edi]
mov edi, eax
movzx eax, word [edx]
cdq
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fxch st(2)
fmul qword [esp + 0xa0]
fld qword [esp + 0x88]
fmulp st(7)
faddp st(6)
fld qword [esp + 0x78]
fmul st(3)
faddp st(6)
fld qword [esp + 0x70]
fmul st(4)
faddp st(6)
fld qword [esp + 0x90]
fmul st(5)
faddp st(6)
fld qword [esp + 0xc8]
fmul st(1)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8]
fld qword [0x1007e258]
fsub st(1), st(0)
fld qword [0x1007e220]
fcomp st(2)
fnstsw ax
test ah, 1
jne 0x1005629e
fstp st(1)
mov edi, 0x80000000
jmp 0x100562bf
fld qword [0x1007e228]
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x100562b6
fstp st(1)
mov edi, 0x7fffffff
jmp 0x100562bf
fxch st(1)
call fcn.1007d380
mov edi, eax
fld qword [esp + 0x60]
fmul qword [esp + 0xb0]
fld qword [esp + 0xa0]
fmul st(4)
faddp st(1)
fld qword [esp + 0x78]
fmul st(5)
faddp st(1)
fld qword [esp + 0x70]
fmul st(6)
faddp st(1)
fld qword [esp + 0x90]
fmul st(7)
faddp st(1)
fld qword [esp + 0xc8]
fmul st(3)
faddp st(1)
fadd qword [ebx + esi*8 + 8]
fsub st(1)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056319
fstp st(0)
mov eax, 0x80000000
jmp 0x10056336
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056331
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056336
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x28]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0x100561d0
fstp st(2)
fstp st(2)
fstp st(2)
fstp st(2)
fstp st(1)
jmp 0x10056dd5
xor esi, esi
test ecx, ecx
js 0x10056f2d
fstp st(6)
lea edx, [edi + 0x30]
jmp 0x100563c0
fxch st(2)
fxch st(4)
fxch st(2)
fxch st(1)
fxch st(4)
add esi, 2
fstp qword [esp + 0x88]
add edx, 0x10
fxch st(2)
fst qword [esp + 0x60]
fld qword [edx - 0x18]
fld qword [edx - 0x10]
fxch st(2)
fmul qword [esp + 0xa0]
fld qword [esp + 0x88]
fmul st(7)
faddp st(1)
fld qword [esp + 0x78]
fmul st(4)
faddp st(1)
fld qword [esp + 0x70]
fmul st(5)
faddp st(1)
fld qword [esp + 0x90]
fmul st(6)
faddp st(1)
fld qword [esp + 0xc8]
fmul st(2)
faddp st(1)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(6)
fld qword [esp + 0xa0]
fmul st(4)
faddp st(1)
fld qword [esp + 0x78]
fmul st(5)
faddp st(1)
fld qword [esp + 0x70]
fmul st(6)
faddp st(1)
fld qword [esp + 0x90]
fmul st(2)
faddp st(1)
fld qword [esp + 0xc8]
fmul st(3)
faddp st(1)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x100563b8
fstp st(5)
fstp st(1)
fstp st(1)
fstp st(1)
fstp st(1)
fstp st(0)
fld qword [0x1007e258]
jmp 0x10056dd5
cmp edx, 5
jne 0x10056793
mov edx, dword [esp + 0x50]
fld qword [edi + 8]
fld qword [edi + 0x10]
fld qword [edi + 0x18]
fld qword [edx]
fst qword [esp + 0xb0]
fld qword [edx + 8]
fst qword [esp + 0xa0]
fld qword [edx + 0x10]
fstp qword [esp + 0x78]
fld qword [edx + 0x18]
fstp qword [esp + 0x70]
fld qword [edx + 0x20]
mov edx, dword [esp + 0x1c]
dec edx
fstp qword [esp + 0x90]
cmp dword [esp + 0x40], edx
jl 0x100566d1
cmp esi, eax
jl 0x100566d1
xor esi, esi
test ecx, ecx
js 0x10056f20
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x28
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], eax
jmp 0x10056528
fld qword [esp + 0xb0]
mov eax, dword [esp + 0x5c]
fxch st(3)
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
movzx eax, word [edx + eax]
fxch st(5)
fstp qword [esp + 0x88]
cdq
fxch st(3)
mov edx, dword [esp + 0xc]
fstp qword [esp + 0x60]
fld qword [edi - 8]
xor ecx, ecx
fld qword [edi]
mov edi, eax
movzx eax, word [edx]
cdq
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fld qword [esp + 0x60]
fmulp st(6)
fld qword [esp + 0x88]
fmul st(5)
faddp st(6)
fld qword [esp + 0x78]
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(3)
faddp st(6)
fld qword [esp + 0x90]
fmul st(2)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100565cb
fstp st(0)
mov edi, 0x80000000
jmp 0x100565f7
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x100565e3
fstp st(0)
mov edi, 0x7fffffff
jmp 0x100565f7
fstp st(4)
fxch st(3)
call fcn.1007d380
fld qword [esp + 0xb0]
mov edi, eax
fxch st(3)
fld qword [esp + 0x60]
fmulp st(4)
fld qword [esp + 0xa0]
fld st(0)
fmul st(4)
faddp st(5)
fld qword [esp + 0x78]
fmul st(3)
faddp st(5)
fld qword [esp + 0x70]
fmul st(2)
faddp st(5)
fld qword [esp + 0x90]
fmul st(6)
faddp st(5)
fxch st(4)
fadd qword [ebx + esi*8 + 8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056645
fstp st(0)
mov eax, 0x80000000
jmp 0x10056662
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1005665d
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056662
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x28]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0x1005650f
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(1)
jmp 0x10056dd3
xor esi, esi
test ecx, ecx
js 0x10056f20
lea edx, [edi + 0x28]
jmp 0x100566f7
fld qword [esp + 0xb0]
fxch st(3)
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(5)
add esi, 2
fstp qword [esp + 0x88]
add edx, 0x10
fxch st(3)
fst qword [esp + 0x60]
fld qword [edx - 0x18]
fld qword [edx - 0x10]
fxch st(2)
fmulp st(6)
fld qword [esp + 0x88]
fmul st(5)
faddp st(6)
fld qword [esp + 0x78]
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(3)
faddp st(6)
fld qword [esp + 0x90]
fmul st(1)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fld qword [esp + 0x60]
fmulp st(4)
fld qword [esp + 0xa0]
fld st(0)
fmul st(4)
faddp st(5)
fld qword [esp + 0x78]
fmul st(3)
faddp st(5)
fld qword [esp + 0x70]
fmul st(6)
faddp st(5)
fld qword [esp + 0x90]
fmul st(2)
faddp st(5)
fxch st(4)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x100566e0
fstp st(2)
fstp st(0)
fstp st(2)
fstp st(1)
jmp 0x10056dd3
cmp edx, 4
jne 0x10056a07
mov edx, dword [esp + 0x50]
fld qword [edi + 8]
fld qword [edi + 0x10]
fld qword [edx]
fld qword [edx + 8]
fld qword [edx + 0x10]
fstp qword [esp + 0x78]
fld qword [edx + 0x18]
mov edx, dword [esp + 0x1c]
dec edx
fstp qword [esp + 0x70]
cmp dword [esp + 0x40], edx
jl 0x10056987
cmp esi, eax
jl 0x10056987
xor esi, esi
test ecx, ecx
js 0x10056f22
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x20
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], eax
jmp 0x10056818
mov eax, dword [esp + 0x5c]
fxch st(2)
fxch st(4)
fxch st(2)
fxch st(3)
movzx eax, word [edx + eax]
fxch st(3)
fstp qword [esp + 0x60]
cdq
fld qword [edi - 8]
fld qword [edi]
mov edx, dword [esp + 0xc]
mov edi, eax
movzx eax, word [edx]
cdq
xor ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fld qword [esp + 0x60]
fmul st(5)
fxch st(6)
fmul st(3)
faddp st(6)
fld qword [esp + 0x78]
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(2)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100568a2
fstp st(0)
mov edi, 0x80000000
jmp 0x100568c1
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x100568ba
fstp st(0)
mov edi, 0x7fffffff
jmp 0x100568c1
call fcn.1007d380
mov edi, eax
fld qword [esp + 0x60]
fmul st(2)
fld st(4)
fmul st(4)
faddp st(1)
fld qword [esp + 0x78]
fmul st(2)
faddp st(1)
fld qword [esp + 0x70]
fmul st(6)
faddp st(1)
fadd qword [ebx + esi*8 + 8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100568fb
fstp st(0)
mov eax, 0x80000000
jmp 0x10056918
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056913
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056918
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x28]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0x1005680c
fstp st(2)
fstp st(1)
fstp st(2)
fstp st(1)
jmp 0x10056dd3
xor esi, esi
test ecx, ecx
js 0x10056f22
lea edx, [edi + 0x20]
jmp 0x1005699c
fxch st(2)
fxch st(4)
fxch st(3)
fxch st(3)
add esi, 2
fst qword [esp + 0x60]
add edx, 0x10
fld qword [edx - 0x18]
fld qword [edx - 0x10]
fxch st(2)
fmul st(5)
fxch st(6)
fmul st(3)
faddp st(6)
fld qword [esp + 0x78]
fmul st(4)
faddp st(6)
fld qword [esp + 0x70]
fmul st(1)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(2)
fld st(4)
fmul st(4)
faddp st(1)
fld qword [esp + 0x78]
fmul st(6)
faddp st(1)
fld qword [esp + 0x70]
fmul st(2)
faddp st(1)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x10056996
fstp st(2)
fstp st(3)
fstp st(0)
fstp st(1)
jmp 0x10056dd3
cmp edx, 3
mov edx, dword [esp + 0x50]
jne 0x10056c3d
fld qword [edi + 8]
fld qword [edx]
fld qword [edx + 8]
fld qword [edx + 0x10]
mov edx, dword [esp + 0x1c]
dec edx
cmp dword [esp + 0x40], edx
jl 0x10056bd5
cmp esi, eax
jl 0x10056bd5
xor esi, esi
test ecx, ecx
js 0x10056f22
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x18
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], eax
jmp 0x10056a7a
mov eax, dword [esp + 0x5c]
fxch st(4)
fxch st(3)
movzx eax, word [eax + edx]
fxch st(3)
fstp qword [esp + 0x60]
cdq
fld qword [edi - 8]
fld qword [edi]
mov edx, dword [esp + 0xc]
mov edi, eax
movzx eax, word [edx]
cdq
xor ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fld qword [esp + 0x60]
fmul st(3)
fxch st(6)
fmul st(4)
faddp st(6)
fld st(4)
fmul st(2)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056afa
fstp st(0)
mov edi, 0x80000000
jmp 0x10056b19
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056b12
fstp st(0)
mov edi, 0x7fffffff
jmp 0x10056b19
call fcn.1007d380
mov edi, eax
fld qword [esp + 0x60]
fmul st(3)
fld st(2)
fmul st(2)
faddp st(1)
fld st(4)
fmul st(6)
faddp st(1)
fadd qword [ebx + esi*8 + 8]
fsub st(6)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056b49
fstp st(0)
mov eax, 0x80000000
jmp 0x10056b66
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056b61
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056b66
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x28]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0x10056a72
fstp st(0)
fstp st(3)
fstp st(0)
fstp st(1)
jmp 0x10056dd3
xor esi, esi
test ecx, ecx
js 0x10056f22
lea edx, [edi + 0x18]
jmp 0x10056be6
fxch st(3)
fxch st(3)
add esi, 2
fst qword [esp + 0x60]
add edx, 0x10
fld qword [edx - 0x18]
fld qword [edx - 0x10]
fxch st(2)
fmul st(3)
fxch st(6)
fmul st(4)
faddp st(6)
fld st(4)
fmul st(1)
faddp st(6)
fxch st(5)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(3)
fld st(2)
fmul st(6)
faddp st(1)
fld st(4)
fmul st(2)
faddp st(1)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x10056be4
fstp st(4)
fstp st(3)
fstp st(0)
fstp st(1)
jmp 0x10056dd3
fld qword [edx]
fld qword [edx + 8]
mov edx, dword [esp + 0x1c]
dec edx
cmp dword [esp + 0x40], edx
jl 0x10056edb
cmp esi, eax
jl 0x10056edb
xor esi, esi
test ecx, ecx
js 0x10056dcf
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add edx, edx
add edx, dword [esp + 0x3c]
add edi, 0x10
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x5c], eax
jmp 0x10056c99
mov eax, dword [esp + 0x5c]
movzx eax, word [edx + eax]
fld qword [edi - 8]
fld qword [edi]
cdq
mov edx, dword [esp + 0xc]
mov edi, eax
movzx eax, word [edx]
cdq
xor ecx, ecx
or ecx, eax
mov eax, dword [esp + 0x9c]
mov dword [eax + esi*4], ecx
or edi, edx
mov dword [eax + esi*4 + 4], edi
fld qword [eax + esi*4]
mov eax, dword [esp + 0x10]
fstp qword [esp + 0x80]
fild dword [esp + 0x80]
fstp qword [eax]
fild dword [esp + 0x84]
fstp qword [eax + 8]
fld st(1)
fmul st(3)
fxch st(5)
fmul st(4)
faddp st(5)
fxch st(4)
fadd qword [ebx + esi*8]
fsub st(5)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056d0b
fstp st(0)
mov edi, 0x80000000
jmp 0x10056d2a
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056d23
fstp st(0)
mov edi, 0x7fffffff
jmp 0x10056d2a
call fcn.1007d380
mov edi, eax
fmul st(2)
fld st(1)
fmul st(4)
faddp st(1)
fadd qword [ebx + esi*8 + 8]
fsub st(4)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056d50
fstp st(0)
mov eax, 0x80000000
jmp 0x10056d6d
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056d68
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056d6d
call fcn.1007d380
mov ecx, dword [esp + 0x38]
fldz
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], 0x10
sar edi, 0x10
sar eax, 0x10
xor edi, 0x8000
mov word [ecx], di
mov edi, dword [esp + 0x28]
xor eax, 0x8000
mov word [edx], ax
fst qword [ebx + esi*8]
mov eax, dword [esp + 0x18]
fstp qword [ebx + esi*8 + 8]
add eax, eax
add eax, eax
add dword [esp + 0xc], eax
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
add esi, 2
add edi, 0x10
add ecx, 0xfffffffe
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp esi, ecx
jle 0x10056c95
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
lea eax, [eax + edx*8]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x50], eax
cmp dword [esp + 0x24], edx
jl 0x10055d26
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x1c]
jl 0x10055cfe
cmp esi, dword [esp + 0x54]
jge 0x10056fa3
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov edi, dword [ebp + 0x14]
add eax, esi
lea edx, [ecx + eax*8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x6c]
fldz
xor edx, edx
mov dword [esp + 0x40], edx
cmp dword [esp + 0x1c], edx
jle 0x10056ebe
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + edx*4]
lea edx, [esi*8]
add ecx, edx
xor edx, edx
mov dword [esp + 0x2c], ecx
cmp edi, 4
jl 0x10056e98
add edi, 0xfffffffc
shr edi, 2
add ecx, 0x10
inc edi
lea edx, [edi*4]
fld qword [ecx - 8]
add eax, 0x20
fmul qword [eax - 0x18]
add ecx, 0x20
dec edi
fld qword [ecx - 0x30]
fmul qword [eax - 0x20]
faddp st(2)
faddp st(1)
fld qword [eax - 0x10]
fmul qword [ecx - 0x20]
faddp st(1)
fld qword [ecx - 0x18]
fmul qword [eax - 8]
faddp st(1)
jne 0x10056e68
mov ecx, dword [esp + 0x2c]
mov edi, dword [ebp + 0x14]
cmp edx, edi
jge 0x10056eab
fld qword [ecx + edx*8]
inc edx
fmul qword [eax]
add eax, 8
faddp st(1)
cmp edx, edi
jl 0x10056e9c
mov edx, dword [esp + 0x40]
inc edx
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x1c]
jl 0x10056e3c
mov ecx, dword [esp + 0xc]
fsub st(1)
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10056f3a
fstp st(0)
mov eax, 0x80000000
jmp 0x10056f5e
xor esi, esi
test ecx, ecx
js 0x10056dcf
lea edx, [edi + 0x10]
fld qword [edx - 8]
add esi, 2
fld qword [edx]
add edx, 0x10
fld st(1)
fmul st(3)
fxch st(5)
fmul st(4)
faddp st(5)
fxch st(4)
fadd qword [ebx + esi*8 - 0x10]
fstp qword [ebx + esi*8 - 0x10]
fmul st(2)
fld st(1)
fmul st(4)
faddp st(1)
fadd qword [ebx + esi*8 - 8]
fstp qword [ebx + esi*8 - 8]
cmp esi, ecx
jle 0x10056ee8
jmp 0x10056dcf
fstp st(1)
fstp st(4)
fstp st(2)
fstp st(0)
jmp 0x10056dd1
fstp st(0)
fstp st(4)
fstp st(2)
fstp st(0)
jmp 0x10056dd1
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10056f52
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10056f5e
call fcn.1007d380
mov edi, dword [ebp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x38]
sar eax, 0x10
xor eax, 0x8000
mov word [edx], ax
movzx eax, word [ecx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x24], 8
fild dword [esp + 0x2c]
inc esi
fstp qword [eax]
mov eax, dword [esp + 0x18]
lea ecx, [ecx + eax*2]
add eax, eax
add edx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x38], edx
cmp esi, dword [esp + 0x54]
jl 0x10056e26
jmp 0x10056fa7
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
cmp esi, edi
jge 0x10057090
sub edi, esi
cmp edi, 4
jl 0x10057056
lea edi, [edx + esi]
lea edi, [eax + edi*8]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x4c]
sub edi, esi
sub edi, 4
shr edi, 2
inc edi
mov dword [esp + 0x68], edi
lea esi, [esi + edi*4]
movzx edi, word [ecx]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
fild dword [esp + 0x2c]
fstp qword [edi]
mov edi, dword [esp + 0x18]
lea ecx, [ecx + edi*2]
movzx edi, word [ecx]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
fild dword [esp + 0x2c]
fstp qword [edi + 8]
mov edi, dword [esp + 0x18]
lea ecx, [ecx + edi*2]
movzx edi, word [ecx]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
fild dword [esp + 0x2c]
fstp qword [edi + 0x10]
mov edi, dword [esp + 0x18]
lea ecx, [ecx + edi*2]
movzx edi, word [ecx]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x20]
add dword [esp + 0x20], 0x20
dec dword [esp + 0x68]
fild dword [esp + 0x2c]
fstp qword [edi + 0x18]
mov edi, dword [esp + 0x18]
lea ecx, [ecx + edi*2]
jne 0x10056fe4
mov dword [esp + 0xc], ecx
cmp esi, dword [esp + 0x4c]
jge 0x10057090
lea edi, [edx + esi]
lea edi, [eax + edi*8]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x4c]
sub edi, esi
movzx esi, word [ecx]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x24]
add dword [esp + 0x24], 8
dec edi
fild dword [esp + 0x2c]
fstp qword [esi]
mov esi, dword [esp + 0x18]
lea ecx, [ecx + esi*2]
jne 0x1005706c
mov dword [esp + 0xc], ecx
xor edi, edi
cmp edx, 4
jl 0x100570c6
lea esi, [edx - 4]
shr esi, 2
inc esi
lea ecx, [eax + 0x10]
lea edi, [esi*4]
fld qword [eax + edx*8]
add ecx, 0x20
dec esi
fstp qword [ecx - 0x30]
fld qword [eax + edx*8]
fstp qword [ecx - 0x28]
fld qword [eax + edx*8]
fstp qword [ecx - 0x20]
fld qword [eax + edx*8]
fstp qword [ecx - 0x18]
jne 0x100570a8
cmp edi, edx
jge 0x100570d6
fld qword [eax + edx*8]
inc edi
fstp qword [eax + edi*8 - 8]
cmp edi, edx
jl 0x100570ca
mov ecx, dword [ebp + 0x20]
xor esi, esi
cmp ecx, 4
jl 0x1005712b
mov esi, dword [ebp + 0x20]
mov ecx, dword [esp + 0x4c]
add esi, 0xfffffffc
shr esi, 2
inc esi
add ecx, edx
mov dword [esp + 0x68], esi
lea edi, [eax + ecx*8]
add esi, esi
mov dword [esp + 0x2c], edi
mov ecx, edi
add esi, esi
jmp 0x10057107
mov edi, dword [esp + 0x2c]
fld qword [edi - 8]
add ecx, 0x20
dec dword [esp + 0x68]
fstp qword [ecx - 0x20]
fld qword [edi - 8]
fstp qword [ecx - 0x18]
fld qword [edi - 8]
fstp qword [ecx - 0x10]
fld qword [edi - 8]
fstp qword [ecx - 8]
jne 0x10057103
mov ecx, dword [ebp + 0x20]
cmp esi, ecx
jge 0x1005714a
add edx, dword [esp + 0x4c]
sub ecx, esi
lea edi, [edx + esi]
lea edi, [eax + edi*8]
add esi, ecx
fld qword [eax + edx*8 - 8]
add edi, 8
dec ecx
fstp qword [edi - 8]
jne 0x1005713d
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0xe4]
jge 0x10057169
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xdc]
lea eax, [eax + ecx*2]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0x58]
add eax, eax
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
inc ecx
inc eax
mov dword [esp + 0x58], ecx
cmp ecx, eax
jl 0x10057190
mov dword [esp + 0x58], 0
inc edx
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0xc4]
jl 0x10055cc9
mov eax, dword [esp + 0xbc]
inc eax
mov dword [esp + 0xbc], eax
cmp eax, dword [esp + 0x18]
jl 0x100559d7
fstp st(0)
lea ecx, [esp + 0x970]
cmp dword [esp + 0xc0], ecx
je 0x100571dd
mov edx, dword [esp + 0xc0]
push edx
call sub.MSVCR100.dll_free
add esp, 4
lea eax, [esp + 0x170]
cmp dword [esp + 0x6c], eax
je 0x100571f7
mov ecx, dword [esp + 0x6c]
push ecx
call sub.MSVCR100.dll_free
add esp, 4
mov ecx, dword [esp + 0x3b74]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.1007d356
mov esp, ebp
pop ebp
ret