Function at 0x1004f620
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 ecx, dword [ebp + 0x1c]
fld qword [0x1007e260]
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 8]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x10], edx
lea ecx, [esp + 0xf0]
mov dword [esp + 0x9c], ecx
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x970]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esi + 8]
lea edx, [esp + 0x170]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xac], edx
mov edx, dword [esi + 4]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x10]
xor ebx, ebx
mov dword [esp + 0xec], ecx
mov ecx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0xd0], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0xb8], edx
cmp ecx, 0x1e
jle 0x1004f6f0
fstp st(0)
sub ecx, 0x1e
fld qword [0x1007e280]
mov eax, 1
imul edi, dword [ebp + 0x14]
shl eax, cl
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fdivp st(1)
fst qword [esp + 0xe0]
cmp edi, 0x100
jle 0x1004f739
lea ecx, [edi*8]
fstp st(0)
push ecx
call sub.MSVCR100.dll_malloc
add esp, 4
mov dword [esp + 0x74], eax
cmp eax, ebx
je 0x1004f85a
fld qword [esp + 0xe0]
xor ebx, ebx
cmp edi, 4
jl 0x1004f784
mov ecx, dword [esp + 0x74]
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 0x1004f75b
cmp ebx, edi
jge 0x1004f79d
mov ecx, dword [esp + 0x74]
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 0x1004f78f
cmp dword [ebp + 0x14], 1
fstp st(0)
jne 0x1004f7f4
mov edx, dword [ebp + 0x28]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x90]
push eax
push edi
push esi
call fcn.1004ec90
lea ecx, [esp + 0x180]
add esp, 0x10
mov esi, eax
cmp edi, ecx
je 0x1004f7dd
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 edi, dword [esp + 0x24]
mov esi, dword [esp + 0x58]
lea ebx, [edi + 3]
imul ebx, esi
cmp ebx, 0x640
jg 0x1004f80f
cmp edi, 0xf
jle 0x1004f87e
mov edx, edi
add edx, ebx
lea eax, [edx*8 + 8]
push eax
call sub.MSVCR100.dll_malloc
add esp, 4
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x1004f874
lea ecx, [esp + 0x970]
test ecx, ecx
je 0x1004f842
push eax
call sub.MSVCR100.dll_free
add esp, 4
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x170]
cmp eax, edx
je 0x1004f85a
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
lea eax, [eax + ebx*8]
mov dword [esp + 0x9c], eax
mov ecx, dword [esp + 0x9c]
lea edx, [edi + 1]
xor eax, eax
test edx, edx
jle 0x1004f8aa
mov edi, dword [esp + 0xbc]
lea ebx, [esi*8]
mov dword [ecx + eax*4], edi
inc eax
add edi, ebx
cmp eax, edx
jl 0x1004f89c
mov edi, dword [esp + 0x24]
xor eax, eax
test edx, edx
jle 0x1004f8c5
lea edi, [ecx + edi*4 + 4]
mov ebx, dword [ecx + eax*4]
mov dword [edi], ebx
inc eax
add edi, 4
cmp eax, edx
jl 0x1004f8b4
mov edi, dword [esp + 0x24]
mov ecx, dword [ecx + edi*4]
lea eax, [ecx + esi*8]
mov edx, esi
and edx, 0xfffffffe
mov dword [esp + 0x6c], eax
lea ecx, [edx + esi*2]
lea edx, [eax + ecx*4]
mov eax, 1
sub eax, dword [ebp + 0x14]
mov ecx, 1
add esi, eax
mov eax, dword [esp + 0x88]
sub ecx, edi
add dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x10]
imul ecx, dword [esp + 0xd0]
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x28]
imul eax, edx
add eax, dword [esp + 0xb8]
lea ebx, [edx + edx]
add eax, ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xa8], 0
test edx, edx
jle 0x10050eb9
lea ecx, [ecx]
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0xa8]
mov edx, 1
dec ecx
shl edx, cl
test dword [ebp + 0x28], edx
je 0x10050ea0
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xec]
lea edi, [eax + ecx]
add eax, dword [esp + 0xb8]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x5c], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], 0
jle 0x1004faaf
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + eax - 1]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x2c]
mov esi, dword [edx + esi*4]
xor edx, edx
mov dword [esp + 0x88], esi
cmp ecx, 4
jl 0x1004fa62
lea edx, [edi + eax*2]
add ecx, 0xfffffffc
add edx, eax
lea eax, [esi + 0x10]
lea esi, [edi + ebx]
shr ecx, 2
inc ecx
mov dword [esp + 0x70], esi
lea esi, [ecx*4]
mov dword [esp + 0x8c], esi
jmp 0x1004f9f4
mov edi, dword [esp + 0x38]
movzx esi, byte [edi]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x28]
add eax, 0x20
fild dword [esp + 0x38]
fstp qword [eax - 0x30]
movzx esi, byte [edi + esi]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x70]
fild dword [esp + 0x38]
fstp qword [eax - 0x28]
movzx esi, byte [esi]
mov dword [esp + 0x38], esi
fild dword [esp + 0x38]
fstp qword [eax - 0x20]
movzx esi, byte [edx]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x28]
add esi, esi
fild dword [esp + 0x38]
add esi, esi
add dword [esp + 0x70], esi
add edi, esi
fstp qword [eax - 0x18]
add edx, esi
dec ecx
mov dword [esp + 0x38], edi
jne 0x1004f9f0
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x8c]
cmp edx, ecx
jge 0x1004fa91
mov esi, edx
imul esi, eax
add esi, edi
lea ecx, [ecx]
movzx ecx, byte [esi]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x88]
inc edx
fild dword [esp + 0x38]
add esi, eax
fstp qword [ecx + edx*8 - 8]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jl 0x1004fa70
mov edx, dword [esp + 0x2c]
add edi, dword [esp + 0xd4]
inc edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x2c], edx
cmp edx, dword [esp + 0x24]
jl 0x1004f9a2
xor esi, esi
mov dword [esp + 0x70], esi
cmp dword [esp + 0x58], esi
jle 0x1004fad1
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov ecx, esi
and ecx, 0x1fffffff
add ecx, ecx
xor eax, eax
rep stosd dword es:[edi], eax
cmp dword [esp + 0xac], 0
mov dword [esp + 0x38], 0
jle 0x10050ea0
jmp 0x1004faf0
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x70]
lea ecx, [edx + eax*4]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x88], eax
xor eax, eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x2c], eax
test edx, edx
jle 0x10050c45
mov edi, dword [esp + 0x6c]
lea ecx, [ecx]
cmp dword [ebp + 0x14], 0
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0
jle 0x10050c36
mov ecx, dword [esp + 0x58]
add ecx, 0xfffffffe
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
lea edx, [eax + edx*8]
mov eax, dword [ebp + 0x14]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x10], edx
cmp eax, 0xe
jle 0x1004fb76
mov eax, 7
jmp 0x1004fb84
cmp eax, 7
jle 0x1004fb84
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
mov esi, dword [esp + 0x5c]
fld qword [edx]
fld qword [edx + 8]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x48]
fld qword [edx + 0x10]
fld qword [edx + 0x18]
mov dword [esp + 0x20], esi
fld qword [edx + 0x20]
lea esi, [edx + 0x10]
fstp qword [esp + 0xa0]
mov dword [esp + 0xc], esi
fld qword [edx + 0x28]
add dword [esp + 0x34], eax
lea esi, [edx + 0x18]
fstp qword [esp + 0xc0]
mov dword [esp + 0x4c], esi
lea esi, [edx + 0x20]
mov dword [esp + 0x50], esi
lea esi, [edx + 0x28]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x88]
fld qword [esi]
fld qword [esi + 8]
fst qword [esp + 0xc8]
fld qword [esi + 0x10]
fst qword [esp + 0x78]
fld qword [esi + 0x18]
fstp qword [esp + 0x80]
fld qword [esi + 0x20]
fstp qword [esp + 0x90]
fld qword [esi + 0x28]
fstp qword [esp + 0xb0]
fld qword [esi + 0x30]
lea esi, [esi + eax*8]
fstp qword [esp + 0xd8]
mov dword [esp + 0x88], esi
cmp eax, 7
jne 0x1004ffc4
mov eax, dword [esp + 0x24]
fstp st(0)
dec eax
cmp dword [esp + 0x2c], eax
jl 0x1004fea3
mov eax, dword [esp + 0x34]
cmp eax, dword [ebp + 0x14]
jl 0x1004fea3
xor esi, esi
test ecx, ecx
js 0x10050c12
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x28]
lea ecx, [edi + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x3c]
sub ecx, edi
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x5c]
add edx, 0x38
sub ecx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], ecx
jmp 0x1004fc99
fld qword [esp + 0xc8]
mov ecx, dword [esp + 0x4c]
fxch st(3)
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(1)
fxch st(3)
movzx eax, byte [eax + ecx]
fxch st(5)
fstp qword [esp + 0x40]
xor ecx, ecx
fxch st(3)
fstp qword [esp + 0x60]
fld qword [esp + 0xa0]
fld qword [esp + 0xc0]
fld qword [edx - 8]
fst qword [esp + 0xa0]
fld qword [edx]
cdq
mov edx, dword [esp + 0x18]
fstp qword [esp + 0xc0]
mov edi, eax
movzx eax, byte [edx]
cdq
or ecx, eax
mov eax, dword [esp + 0xe8]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 0x50]
or edi, edx
mov dword [eax + esi*4 + 4], edi
mov edi, dword [esp + 0x1c]
fld qword [eax + esi*4]
mov eax, dword [esp + 0x3c]
fstp qword [esp + 0xe0]
fild dword [esp + 0xe0]
fstp qword [eax + esi*8]
fild dword [esp + 0xe4]
fstp qword [ecx + edi]
fld qword [esp + 0x60]
fmulp st(7)
fld qword [esp + 0x40]
fmul st(6)
faddp st(7)
fld qword [esp + 0x78]
fmul st(5)
faddp st(7)
fld qword [esp + 0x80]
fmul st(4)
faddp st(7)
fld qword [esp + 0x90]
fmul st(3)
faddp st(7)
fld qword [esp + 0xb0]
fmul st(2)
faddp st(7)
fld qword [esp + 0xd8]
fmul st(1)
faddp st(7)
fxch st(6)
fadd qword [edi - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x1004fd7b
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x1004fdac
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1004fd96
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x1004fdac
fstp st(6)
fxch st(5)
call fcn.1007d380
fld qword [esp + 0xa0]
mov dword [esp + 0x40], eax
fxch st(5)
fld qword [esp + 0x60]
fmul st(5)
fld qword [esp + 0xc8]
fmul st(5)
faddp st(1)
fld qword [esp + 0x78]
fmul st(4)
faddp st(1)
fld qword [esp + 0x80]
fmul st(3)
faddp st(1)
fld qword [esp + 0x90]
fmul st(2)
faddp st(1)
fld qword [esp + 0xb0]
fmulp st(7)
faddp st(6)
fld qword [esp + 0xd8]
fmul qword [esp + 0xc0]
faddp st(6)
fxch st(5)
fadd qword [edi]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x1004fe18
fstp st(0)
mov eax, 0x80000000
jmp 0x1004fe35
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1004fe30
fstp st(0)
mov eax, 0x7fffffff
jmp 0x1004fe35
call fcn.1007d380
mov edx, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
sar edx, 0x18
xor dl, 0x80
mov byte [ecx], dl
mov edx, eax
mov eax, dword [esp + 0x10]
sar edx, 0x18
add ecx, ebx
xor dl, 0x80
mov byte [eax], dl
fst qword [edi - 8]
mov edx, dword [esp + 0x14]
fstp qword [edi]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x58]
add ecx, 0xfffffffe
add eax, ebx
add esi, 2
add edx, 0x10
add edi, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x54], ecx
cmp esi, ecx
jle 0x1004fc82
mov edi, dword [esp + 0x6c]
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(1)
jmp 0x10050c1c
xor esi, esi
test ecx, ecx
js 0x10050c12
fld qword [esp + 0xc0]
mov eax, dword [esp + 0x6c]
lea ecx, [edx + 0x38]
mov edx, dword [esp + 0x54]
jmp 0x1004fed6
fld qword [esp + 0xc8]
fxch st(4)
fxch st(6)
fxch st(3)
fxch st(5)
fxch st(1)
fxch st(4)
fxch st(1)
fxch st(6)
add esi, 2
fstp qword [esp + 0x40]
add ecx, 0x10
fxch st(4)
fstp qword [esp + 0x60]
fld qword [esp + 0xa0]
fld qword [ecx - 0x18]
fst qword [esp + 0xa0]
fld qword [ecx - 0x10]
fstp qword [esp + 0xc0]
fld qword [esp + 0x60]
fmulp st(6)
fld qword [esp + 0x40]
fmul st(3)
faddp st(6)
fld qword [esp + 0x78]
fmul st(5)
faddp st(6)
fld qword [esp + 0x80]
fmul st(4)
faddp st(6)
fld qword [esp + 0x90]
fmul st(2)
faddp st(6)
fld qword [esp + 0xb0]
fmul st(7)
faddp st(6)
fld qword [esp + 0xd8]
fmul st(1)
faddp st(6)
fxch st(5)
fadd qword [eax + esi*8 - 0x10]
fstp qword [eax + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(2)
fld qword [esp + 0xc8]
fmul st(5)
faddp st(1)
fld qword [esp + 0x78]
fmul st(4)
faddp st(1)
fld qword [esp + 0x80]
fmul st(2)
faddp st(1)
fld qword [esp + 0x90]
fmul st(7)
faddp st(1)
fld qword [esp + 0xb0]
fmulp st(6)
faddp st(5)
fld qword [esp + 0xd8]
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(6)
faddp st(1)
fadd qword [eax + esi*8 - 8]
fstp qword [eax + esi*8 - 8]
cmp esi, edx
jle 0x1004fec1
mov edi, dword [esp + 0x6c]
fstp st(4)
mov ecx, dword [esp + 0x54]
fstp st(2)
fstp st(0)
fstp st(1)
fstp st(1)
jmp 0x10050c1c
cmp eax, 6
jne 0x100502e5
mov eax, dword [esp + 0x24]
fstp st(0)
dec eax
cmp dword [esp + 0x2c], eax
jl 0x100501f1
mov eax, dword [ebp + 0x14]
cmp dword [esp + 0x34], eax
jl 0x100501f1
xor esi, esi
test ecx, ecx
js 0x10050c12
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0xc], eax
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
sub eax, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
add edx, 0x30
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], edx
mov ecx, edx
jmp 0x1005004a
fld qword [esp + 0xc8]
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(1)
fxch st(5)
fstp qword [esp + 0x40]
fxch st(3)
fst qword [esp + 0x60]
fld qword [esp + 0xa0]
fld qword [ecx - 8]
fld qword [ecx]
mov ecx, dword [esp + 0x18]
movzx edx, byte [ecx]
fstp qword [esp + 0xa0]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x4c]
fild dword [esp + 0x10]
fstp qword [ecx + esi*8]
movzx eax, byte [eax + edx]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [edi + ecx]
fxch st(2)
fmul st(6)
fld qword [esp + 0x40]
fmul st(6)
faddp st(1)
fld qword [esp + 0x78]
fmul st(5)
faddp st(1)
fld qword [esp + 0x80]
fmul st(4)
faddp st(1)
fld qword [esp + 0x90]
fmul st(2)
faddp st(1)
fld qword [esp + 0xb0]
fmul st(3)
faddp st(1)
fadd qword [edi - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100500ef
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x10050113
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1005010a
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x10050113
call fcn.1007d380
mov dword [esp + 0x40], eax
fld qword [esp + 0x60]
fmul st(5)
fxch st(6)
fmul st(4)
faddp st(6)
fld qword [esp + 0x78]
fmul st(3)
faddp st(6)
fld qword [esp + 0x80]
fmul st(1)
faddp st(6)
fld qword [esp + 0x90]
fmul st(2)
faddp st(6)
fld qword [esp + 0xb0]
fmul qword [esp + 0xa0]
faddp st(6)
fxch st(5)
fadd qword [edi]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x1005016f
fstp st(0)
mov eax, 0x80000000
jmp 0x1005018c
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050187
fstp st(0)
mov eax, 0x7fffffff
jmp 0x1005018c
call fcn.1007d380
mov edx, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
sar edx, 0x18
xor dl, 0x80
mov byte [ecx], dl
mov edx, eax
mov eax, dword [esp + 0xc]
sar edx, 0x18
add ecx, ebx
xor dl, 0x80
mov byte [eax], dl
fst qword [edi - 8]
mov dword [esp + 0x20], ecx
fstp qword [edi]
mov ecx, dword [esp + 0x1c]
add eax, ebx
add esi, 2
add ecx, 0x10
add edi, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
cmp esi, dword [esp + 0x54]
jle 0x10050031
mov edi, dword [esp + 0x6c]
fstp st(2)
mov ecx, dword [esp + 0x54]
fstp st(0)
fstp st(2)
fstp st(1)
jmp 0x10050c1c
xor esi, esi
test ecx, ecx
js 0x10050c12
fld qword [esp + 0xa0]
mov eax, dword [esp + 0x6c]
lea ecx, [edx + 0x30]
mov edx, dword [esp + 0x54]
jmp 0x10050226
fld qword [esp + 0xc8]
fxch st(4)
fxch st(6)
fxch st(3)
fxch st(5)
fxch st(3)
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(6)
add esi, 2
fstp qword [esp + 0x40]
add ecx, 0x10
fxch st(4)
fst qword [esp + 0x60]
fld qword [ecx - 0x18]
fld qword [ecx - 0x10]
fstp qword [esp + 0xa0]
fxch st(1)
fmul st(5)
fld qword [esp + 0x40]
fmul st(3)
faddp st(1)
fld qword [esp + 0x78]
fmul st(5)
faddp st(1)
fld qword [esp + 0x80]
fmul st(4)
faddp st(1)
fld qword [esp + 0x90]
fmul st(7)
faddp st(1)
fld qword [esp + 0xb0]
fmul st(2)
faddp st(1)
fadd qword [eax + esi*8 - 0x10]
fstp qword [eax + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(2)
fxch st(5)
fmul st(4)
faddp st(5)
fld qword [esp + 0x78]
fmul st(3)
faddp st(5)
fld qword [esp + 0x80]
fmul st(6)
faddp st(5)
fld qword [esp + 0x90]
fmul st(1)
faddp st(5)
fld qword [esp + 0xb0]
fld qword [esp + 0xa0]
fmul st(1), st(0)
fxch st(6)
faddp st(1)
fadd qword [eax + esi*8 - 8]
fstp qword [eax + esi*8 - 8]
cmp esi, edx
jle 0x1005020f
mov edi, dword [esp + 0x6c]
fstp st(4)
mov ecx, dword [esp + 0x54]
fstp st(2)
fstp st(0)
fstp st(2)
jmp 0x10050c1a
cmp eax, 5
jne 0x10050585
mov eax, dword [esp + 0x24]
fstp st(0)
dec eax
cmp dword [esp + 0x2c], eax
jl 0x100504da
mov eax, dword [ebp + 0x14]
cmp dword [esp + 0x34], eax
jl 0x100504da
xor esi, esi
test ecx, ecx
js 0x10050c12
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x48]
lea edx, [edi + 8]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
mov eax, ecx
jmp 0x10050353
fxch st(3)
fxch st(5)
fxch st(2)
fxch st(4)
mov ecx, dword [esp + 0x14]
fxch st(4)
fstp qword [esp + 0x60]
fld qword [ecx - 8]
fld qword [ecx]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
fild dword [esp + 0xc]
fstp qword [ecx + esi*8]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [edx + ecx]
fld qword [esp + 0x60]
fmul st(6)
fxch st(7)
fmul st(3)
faddp st(7)
fld qword [esp + 0x78]
fmul st(5)
faddp st(7)
fld qword [esp + 0x80]
fmul st(4)
faddp st(7)
fld qword [esp + 0x90]
fmul st(2)
faddp st(7)
fxch st(6)
fadd qword [edx - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100503df
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x10050407
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x100503fa
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x10050407
call fcn.1007d380
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
fld qword [esp + 0x60]
fmul st(2)
fld st(5)
fmul st(5)
faddp st(1)
fld qword [esp + 0x78]
fmul st(4)
faddp st(1)
fld qword [esp + 0x80]
fmul st(2)
faddp st(1)
fld qword [esp + 0x90]
fmul st(7)
faddp st(1)
fadd qword [edx]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10050454
fstp st(0)
mov dword [esp + 0xc], 0x80000000
jmp 0x1005047c
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1005046f
fstp st(0)
mov dword [esp + 0xc], 0x7fffffff
jmp 0x1005047c
call fcn.1007d380
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
add dword [esp + 0x20], ebx
add dword [esp + 0x14], 0x10
sar eax, 0x18
xor al, 0x80
mov byte [ecx], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
sar ecx, 0x18
xor cl, 0x80
mov byte [eax], cl
fst qword [edx - 8]
mov ecx, dword [esp + 0x54]
fstp qword [edx]
add eax, ebx
add esi, 2
add edx, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
cmp esi, ecx
jle 0x1005034b
fstp st(3)
fstp st(1)
fstp st(1)
fstp st(2)
fstp st(1)
jmp 0x10050c1c
xor esi, esi
test ecx, ecx
js 0x10050c12
mov eax, dword [esp + 0x14]
jmp 0x100504f8
fxch st(3)
fxch st(5)
fxch st(2)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(2)
fxch st(4)
add esi, 2
fst qword [esp + 0x60]
add eax, 0x10
fld qword [eax - 0x18]
fld qword [eax - 0x10]
fxch st(2)
fmul st(6)
fxch st(7)
fmul st(3)
faddp st(7)
fld qword [esp + 0x78]
fmul st(5)
faddp st(7)
fld qword [esp + 0x80]
fmul st(4)
faddp st(7)
fld qword [esp + 0x90]
fmul st(1)
faddp st(7)
fxch st(6)
fadd qword [edi + esi*8 - 0x10]
fstp qword [edi + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(2)
fld st(5)
fmul st(5)
faddp st(1)
fld qword [esp + 0x78]
fmul st(4)
faddp st(1)
fld qword [esp + 0x80]
fmul st(7)
faddp st(1)
fld qword [esp + 0x90]
fmul st(2)
faddp st(1)
fadd qword [edi + esi*8 - 8]
fstp qword [edi + esi*8 - 8]
cmp esi, ecx
jle 0x100504ea
fstp st(3)
fstp st(1)
fstp st(3)
fstp st(0)
fstp st(1)
jmp 0x10050c1c
fstp st(3)
cmp eax, 4
jne 0x100507fb
mov eax, dword [esp + 0x24]
dec eax
cmp dword [esp + 0x2c], eax
jl 0x10050776
mov edx, dword [ebp + 0x14]
cmp dword [esp + 0x34], edx
jl 0x10050776
xor esi, esi
test ecx, ecx
js 0x10050bfc
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x28]
lea edx, [edi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
jmp 0x100505f5
fxch st(3)
fxch st(5)
fxch st(3)
fxch st(4)
mov ecx, dword [esp + 0x14]
fxch st(4)
fstp qword [esp + 0x60]
fld qword [ecx - 8]
fld qword [ecx]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
fild dword [esp + 0xc]
fstp qword [ecx + esi*8]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [ecx + edx]
fld qword [esp + 0x60]
fmul st(6)
fxch st(7)
fmul st(3)
faddp st(7)
fld st(3)
fmul st(5)
faddp st(7)
fld qword [esp + 0x80]
fmul st(2)
faddp st(7)
fxch st(6)
fadd qword [edx - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10050674
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x100506a6
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x1005068f
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x100506a6
fstp st(3)
fxch st(2)
call fcn.1007d380
fld qword [esp + 0x78]
mov edx, dword [esp + 0x1c]
fxch st(2)
mov dword [esp + 0x40], eax
fld qword [esp + 0x60]
fmul st(2)
fld st(5)
fmul st(5)
faddp st(1)
fld st(3)
fmul st(2)
faddp st(1)
fld qword [esp + 0x80]
fmul st(7)
faddp st(1)
fadd qword [edx]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100506e6
fstp st(0)
mov dword [esp + 0xc], 0x80000000
jmp 0x10050718
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050701
fstp st(0)
mov dword [esp + 0xc], 0x7fffffff
jmp 0x10050718
fstp st(3)
fxch st(2)
call fcn.1007d380
fld qword [esp + 0x78]
mov edx, dword [esp + 0x1c]
fxch st(2)
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
add dword [esp + 0x20], ebx
add dword [esp + 0x14], 0x10
sar eax, 0x18
xor al, 0x80
mov byte [ecx], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
sar ecx, 0x18
xor cl, 0x80
mov byte [eax], cl
fst qword [edx - 8]
mov ecx, dword [esp + 0x54]
fstp qword [edx]
add eax, ebx
add esi, 2
add edx, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
cmp esi, ecx
jle 0x100505ed
fstp st(2)
fstp st(2)
fstp st(0)
fstp st(2)
fstp st(1)
jmp 0x10050c1c
xor esi, esi
test ecx, ecx
js 0x10050bfc
mov eax, dword [esp + 0x50]
jmp 0x1005078c
fxch st(3)
fxch st(5)
fxch st(4)
fxch st(4)
add esi, 2
fst qword [esp + 0x60]
add eax, 0x10
fld qword [eax - 0x18]
fld qword [eax - 0x10]
fxch st(2)
fmul st(6)
fxch st(7)
fmul st(3)
faddp st(7)
fld st(3)
fmul st(5)
faddp st(7)
fld qword [esp + 0x80]
fmul st(1)
faddp st(7)
fxch st(6)
fadd qword [edi + esi*8 - 0x10]
fstp qword [edi + esi*8 - 0x10]
fld qword [esp + 0x60]
fmul st(2)
fld st(5)
fmul st(5)
faddp st(1)
fld st(3)
fmul st(7)
faddp st(1)
fld qword [esp + 0x80]
fmul st(2)
faddp st(1)
fadd qword [edi + esi*8 - 8]
fstp qword [edi + esi*8 - 8]
cmp esi, ecx
jle 0x10050786
fstp st(2)
fstp st(2)
fstp st(3)
fstp st(2)
fstp st(1)
jmp 0x10050c1c
cmp eax, 3
fstp st(3)
mov eax, dword [esp + 0x24]
jne 0x10050a28
dec eax
cmp dword [esp + 0x2c], eax
jl 0x100509c6
mov edx, dword [ebp + 0x14]
cmp dword [esp + 0x34], edx
jl 0x100509c6
xor esi, esi
test ecx, ecx
js 0x10050c08
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x28]
lea edx, [edi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
jmp 0x10050869
fxch st(3)
fxch st(4)
fxch st(3)
mov ecx, dword [esp + 0x14]
fld qword [ecx - 8]
fld qword [ecx]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
fild dword [esp + 0xc]
fstp qword [ecx + esi*8]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [edx + ecx]
fld st(5)
fmul st(5)
fxch st(7)
fmul st(3)
faddp st(7)
fld st(3)
fmul st(2)
faddp st(7)
fxch st(6)
fadd qword [edx - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100508d5
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x10050907
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x100508f0
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x10050907
fstp st(3)
fxch st(2)
call fcn.1007d380
fld qword [esp + 0x78]
mov edx, dword [esp + 0x1c]
fxch st(2)
mov dword [esp + 0x40], eax
fxch st(4)
fmul st(1)
fld st(3)
fmul st(5)
faddp st(1)
fld st(2)
fmul st(6)
faddp st(1)
fadd qword [edx]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x1005093a
fstp st(0)
mov dword [esp + 0xc], 0x80000000
jmp 0x1005096c
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050955
fstp st(0)
mov dword [esp + 0xc], 0x7fffffff
jmp 0x1005096c
fstp st(2)
fxch st(1)
call fcn.1007d380
fld qword [esp + 0x78]
mov edx, dword [esp + 0x1c]
fxch st(1)
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
add dword [esp + 0x20], ebx
add dword [esp + 0x14], 0x10
sar eax, 0x18
xor al, 0x80
mov byte [ecx], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
sar ecx, 0x18
xor cl, 0x80
mov byte [eax], cl
fst qword [edx - 8]
mov ecx, dword [esp + 0x54]
fstp qword [edx]
add eax, ebx
add esi, 2
add edx, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
cmp esi, ecx
jle 0x10050863
fstp st(1)
fstp st(2)
fstp st(2)
jmp 0x10050c1a
xor esi, esi
test ecx, ecx
js 0x10050c08
mov eax, dword [esp + 0x4c]
jmp 0x100509dc
fxch st(3)
fxch st(4)
fxch st(3)
fld qword [eax - 8]
add esi, 2
fld qword [eax]
add eax, 0x10
fld st(5)
fmul st(5)
fxch st(7)
fmul st(3)
faddp st(7)
fld st(3)
fmul st(2)
faddp st(7)
fxch st(6)
fadd qword [edi + esi*8 - 0x10]
fstp qword [edi + esi*8 - 0x10]
fxch st(4)
fmul st(1)
fld st(3)
fmul st(5)
faddp st(1)
fld st(2)
fmul st(6)
faddp st(1)
fadd qword [edi + esi*8 - 8]
fstp qword [edi + esi*8 - 8]
cmp esi, ecx
jle 0x100509d6
fstp st(1)
fstp st(2)
fstp st(2)
jmp 0x10050c1a
dec eax
fstp st(1)
fstp st(2)
cmp dword [esp + 0x2c], eax
jl 0x10050bb7
mov edx, dword [ebp + 0x14]
cmp dword [esp + 0x34], edx
jl 0x10050bb7
xor esi, esi
test ecx, ecx
js 0x100509bf
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x28]
lea edx, [edi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fld qword [ecx - 8]
fld qword [ecx]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
fild dword [esp + 0xc]
fstp qword [ecx + esi*8]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [eax + ecx]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fstp qword [edx + ecx]
fld st(1)
fmul st(3)
fxch st(5)
fmul st(4)
faddp st(5)
fxch st(4)
fadd qword [edx - 8]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10050ae9
fstp st(0)
mov dword [esp + 0x40], 0x80000000
jmp 0x10050b11
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050b04
fstp st(0)
mov dword [esp + 0x40], 0x7fffffff
jmp 0x10050b11
call fcn.1007d380
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
fmul st(2)
fld st(1)
fmul st(4)
faddp st(1)
fadd qword [edx]
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10050b3c
fstp st(0)
mov dword [esp + 0xc], 0x80000000
jmp 0x10050b64
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050b57
fstp st(0)
mov dword [esp + 0xc], 0x7fffffff
jmp 0x10050b64
call fcn.1007d380
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x40]
fldz
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], ebx
add dword [esp + 0x20], ebx
add dword [esp + 0x14], 0x10
sar eax, 0x18
xor al, 0x80
mov byte [ecx], al
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
sar ecx, 0x18
xor cl, 0x80
mov byte [eax], cl
fst qword [edx - 8]
mov ecx, dword [esp + 0x54]
fstp qword [edx]
add eax, ebx
add esi, 2
add edx, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
cmp esi, ecx
jle 0x10050a83
fstp st(2)
jmp 0x10050c1a
xor esi, esi
test ecx, ecx
js 0x100509bf
mov eax, dword [esp + 0xc]
fld qword [eax - 8]
add esi, 2
fld qword [eax]
add eax, 0x10
fld st(1)
fmul st(3)
fxch st(5)
fmul st(4)
faddp st(5)
fxch st(4)
fadd qword [edi + esi*8 - 0x10]
fstp qword [edi + esi*8 - 0x10]
fmul st(2)
fld st(1)
fmul st(4)
faddp st(1)
fadd qword [edi + esi*8 - 8]
fstp qword [edi + esi*8 - 8]
cmp esi, ecx
jle 0x10050bc5
fstp st(2)
jmp 0x10050c1a
fstp st(2)
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(1)
jmp 0x10050c1c
fstp st(1)
fstp st(3)
fstp st(1)
fstp st(1)
jmp 0x10050c1c
fstp st(5)
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
mov edx, dword [ebp + 0x14]
fstp st(0)
cmp dword [esp + 0x34], edx
jl 0x1004fb54
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x24]
jl 0x1004fb30
cmp esi, dword [esp + 0x58]
jge 0x10050d65
mov edi, dword [ebp + 0x14]
mov eax, dword [esp + 0x74]
fldz
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x24], ecx
jle 0x10050ced
mov edx, dword [esp + 0x8c]
mov ecx, dword [edx + ecx*4]
lea edx, [esi*8]
add ecx, edx
xor edx, edx
mov dword [esp + 0x30], ecx
cmp edi, 4
jl 0x10050cc7
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 0x10050c97
mov ecx, dword [esp + 0x30]
mov edi, dword [ebp + 0x14]
cmp edx, edi
jge 0x10050cda
fld qword [ecx + edx*8]
inc edx
fmul qword [eax]
add eax, 8
faddp st(1)
cmp edx, edi
jl 0x10050ccb
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x24]
jl 0x10050c68
fsub qword [0x1007e258]
fld qword [0x1007e220]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x10050d0b
fstp st(0)
mov eax, 0x80000000
jmp 0x10050d28
fld qword [0x1007e228]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x10050d23
fstp st(0)
mov eax, 0x7fffffff
jmp 0x10050d28
call fcn.1007d380
mov ecx, dword [esp + 0x20]
sar eax, 0x18
xor al, 0x80
mov byte [ecx], al
mov eax, dword [esp + 0x18]
movzx edx, byte [eax]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x3c]
inc esi
fild dword [esp + 0x30]
fstp qword [edx + esi*8 - 8]
mov edx, dword [esp + 0x28]
add eax, edx
add ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
cmp esi, dword [esp + 0x58]
jl 0x10050c52
mov ecx, dword [ebp + 0x14]
dec ecx
xor edi, edi
cmp ecx, 4
jl 0x10050e17
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
lea eax, [edi + edx*2]
add eax, edx
mov dword [esp + 0x14], eax
lea eax, [ebx + edi]
add ecx, 0xfffffffc
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
shr ecx, 2
inc ecx
lea eax, [eax + edi*8]
lea edi, [ecx*4]
mov dword [esp + 0x2c], edi
jmp 0x10050db4
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
movzx edi, byte [edi]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x34]
add eax, 0x20
fild dword [esp + 0x30]
fstp qword [eax - 0x20]
movzx edi, byte [edi + edx]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x10]
add edx, edx
fild dword [esp + 0x30]
add edx, edx
add dword [esp + 0x34], edx
add dword [esp + 0x10], edx
fstp qword [eax - 0x18]
movzx edi, byte [edi]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x14]
add dword [esp + 0x14], edx
dec ecx
fild dword [esp + 0x30]
fstp qword [eax - 0x10]
movzx edi, byte [edi]
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
fstp qword [eax - 8]
jne 0x10050db0
mov edi, dword [esp + 0x2c]
mov eax, dword [ebp + 0x14]
dec eax
mov dword [esp + 0x30], eax
cmp edi, eax
jge 0x10050e5a
mov ecx, dword [esp + 0x58]
mov eax, edi
imul eax, dword [esp + 0x28]
add eax, dword [esp + 0x18]
lea edx, [edi + ecx]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + edx*8]
mov ecx, dword [esp + 0x30]
sub ecx, edi
movzx edi, byte [eax]
add eax, dword [esp + 0x28]
mov dword [esp + 0x30], edi
add edx, 8
dec ecx
fild dword [esp + 0x30]
fstp qword [edx - 8]
jne 0x10050e42
mov eax, dword [esp + 0xd0]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0xd4]
add dword [esp + 0x5c], edx
inc eax
inc ecx
mov dword [esp + 0x70], eax
cmp eax, ecx
jl 0x10050e8a
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0xac]
jl 0x1004faf0
mov eax, dword [esp + 0xa8]
inc eax
mov dword [esp + 0xa8], eax
cmp eax, dword [esp + 0x28]
jl 0x1004f940
mov eax, dword [esp + 0xbc]
lea ecx, [esp + 0x970]
cmp eax, ecx
je 0x10050ed4
push eax
call sub.MSVCR100.dll_free
add esp, 4
mov eax, dword [esp + 0x74]
lea edx, [esp + 0x170]
cmp eax, edx
je 0x10050eec
push eax
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