Function at 0x489090
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
lea ecx, [esi - 0x40]
mov byte [edi + 0xc], 1
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
mov dword [esp + 0xf4], ecx
call edx
cmp byte [esi + 0x65], 0
jne 0x4900af
cmp byte [esi + 0x67], 0
jne 0x490070
cmp byte [esi + 0x16], 0
jne 0x490070
cmp byte [esi + 0x15], 0
jne 0x490070
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
test al, al
jne 0x490070
fldz
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
fst qword [esp + 0xd0]
fst qword [esp + 0xd8]
sub esp, 0x10
fst qword [esp + 0xf0]
lea eax, [esp + 0xe0]
fstp qword [esp + 0xf8]
fld qword [ebp + 0x24]
fstp qword [esp + 8]
fld dword [ebp + 0x30]
fstp dword [esp + 4]
fld dword [ebp + 0x2c]
fstp dword [esp]
push eax
push ecx
lea eax, [ebp + 0x10]
lea ecx, [ebp + 0xc]
call fcn.005562e0
test al, al
je 0x4900af
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
push 0
push 0x87e524
push 0x87e2d8
push 0
push edi
mov ebx, eax
call fcn.007705f3
add esp, 0x14
test ebx, ebx
je 0x49005b
mov edx, dword [ebx]
mov eax, dword [edx + 0x2c]
mov ecx, ebx
call eax
cmp dword [ebp + 0x20], 0
mov edi, dword [ebx + 0x4c]
mov eax, ebx
jne 0x48e558
call fcn.0045a0e0
test edi, edi
jne 0x48baae
mov edx, dword [ebx]
mov edi, eax
mov eax, dword [ebp + 0x14]
imul edi, dword [eax + 4]
add edi, dword [eax]
mov eax, dword [edx + 0x40]
add edi, edi
mov ecx, ebx
add edi, edi
call eax
add eax, edi
fld qword [ebp + 0x24]
mov dword [esp + 0x6c], eax
call fcn.007701e0
fstp qword [esp + 0xc0]
fld qword [ebp + 0x24]
call fcn.0076fe20
fst qword [esp + 0xa8]
fld qword [esp + 0xc0]
fld qword [0x82de30]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fmulp st(1)
mov edi, eax
mov dword [esp + 0x74], edi
call fcn.0076f850
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx]
mov ebx, eax
mov eax, dword [edx + 0x80]
mov dword [esp + 0x44], ebx
call eax
test al, al
je 0x4900af
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x24]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x20
sub ecx, dword [eax + 0x10]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x18
sub ecx, dword [eax + 0x14]
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov edx, dword [esi + 0x94]
mov ecx, 0x10
sub ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x8c]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x98], edx
mov dword [esp + 0xbc], ecx
cmp eax, 0x10
jne 0x48abd6
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0x80]
fistp qword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
fldcw word [esp + 0x70]
imul edx, eax
shr edx, 1
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
shr eax, 1
lea edx, [ecx + edx*2]
mov dword [esp + 0x94], eax
mov eax, esi
mov dword [esp + 0x3c], edx
call fcn.00434970
fld qword [esp + 0xe8]
fcomp qword [0x82dc20]
test al, al
je 0x48a68a
cmp byte [0x88b5b8], 0
je 0x48a19d
mov eax, dword [esp + 0x98]
cmp eax, 0x7e0
jne 0x48981b
fnstsw ax
mov dword [esp + 0xb0], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x94]
lea ecx, [eax + eax]
mov dword [esp + 0x64], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov dword [esp + 0x28], edx
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
xor ecx, ecx
sar edx, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x38], eax
jg 0x489483
test edx, edx
jl 0x4897e2
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48946d
mov ecx, eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x4894e6
mov dword [esp + 0x28], eax
jmp 0x4894e6
cmp edi, 1
jl 0x4894c8
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x4897e2
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x4894ab
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x4894e6
mov dword [esp + 0x28], eax
jmp 0x4894e6
test esi, esi
jl 0x4897e2
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x4897e2
cmp ebx, 0xffffffff
jg 0x489526
cmp dword [esp + 0x38], 0
jl 0x4897e2
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, ecx
jle 0x489511
mov ecx, eax
mov eax, dword [esp + 0x2c]
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x489594
mov dword [esp + 0x28], eax
jmp 0x489594
cmp ebx, 1
jl 0x489571
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x38], eax
jge 0x4897e2
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv ebx
cmp eax, ecx
jle 0x489552
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x489594
mov dword [esp + 0x28], eax
jmp 0x489594
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x4897e2
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp eax, edx
jge 0x4897e2
mov eax, ecx
imul eax, edi
mov edx, ecx
imul edx, ebx
add dword [esp + 0x2c], edx
add esi, eax
mov eax, dword [esp + 0x3c]
lea edx, [eax + ecx*2]
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x80], edx
jg 0x4897e2
sub eax, ecx
inc eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x2c]
mov edx, esi
mov ecx, eax
sar ecx, 0x10
imul ecx, dword [esp + 0x80]
sar edx, 0x10
add ecx, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, esi
mov esi, dword [ecx + 4]
mov dword [esp + 0x48], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea ecx, [ecx + esi*4]
mov esi, dword [ecx]
mov dword [esp + 0x58], esi
and eax, 0xfffe
inc eax
and edx, 0xfffe
inc edx
mov dword [esp + 0x38], edx
mov edi, 0x10000
sub edi, edx
mov edx, edi
imul edi, eax
mov esi, 0x10000
sub esi, eax
imul eax, dword [esp + 0x38]
imul edx, esi
imul esi, dword [esp + 0x38]
shr esi, 0x10
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ebx
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
imul esi, ebx
mov ebx, dword [esp + 0x58]
shr esi, 0x10
mov dword [esp + 0x34], esi
shr edi, 0x10
mov esi, ebx
shr esi, 0x18
imul edi, esi
shr eax, 0x10
mov esi, ecx
shr esi, 0x18
imul eax, esi
shr eax, 0x10
mov esi, eax
mov dword [esp + 0x60], esi
mov eax, ecx
and eax, 0xffff00ff
imul eax, esi
shr edi, 0x10
mov esi, ebx
and esi, 0xffff00ff
imul esi, edi
add eax, esi
mov esi, dword [esp + 0x48]
and esi, 0xffff00ff
imul esi, dword [esp + 0x34]
add eax, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x84], edi
and esi, 0xffff00ff
shr edx, 0x10
imul esi, edx
mov edi, ecx
and edi, 0xff00
imul edi, dword [esp + 0x60]
and ebx, 0xff00
imul ebx, dword [esp + 0x84]
add eax, esi
mov esi, dword [esp + 0x48]
add edi, ebx
and esi, 0xff00
imul esi, dword [esp + 0x34]
add edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, esi
and ebx, 0xff00
imul ebx, edx
add edi, ebx
xor eax, edi
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x34]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x60]
and edi, 0xff00ff
imul edi, dword [esp + 0x84]
add ecx, edi
mov edi, dword [esp + 0x48]
and edi, 0xff00ff
imul edi, ebx
add ecx, edi
mov edi, dword [esp + 0x50]
and esi, 0xff00ff
imul esi, edx
add ecx, esi
movzx esi, word [edi]
and eax, 0xff0000
xor eax, ecx
mov ecx, 0x100
sub ecx, dword [esp + 0x60]
shr eax, 8
sub ecx, dword [esp + 0x84]
add edi, 2
sub ecx, ebx
sub ecx, edx
mov edx, esi
shl edx, 0x10
or edx, esi
and edx, 0x7e0f81f
sar ecx, 3
imul ecx, edx
mov esi, dword [esp + 0x68]
mov edx, eax
mov ebx, dword [esp + 0x44]
add dword [esp + 0x2c], ebx
shr ecx, 5
and edx, 0xfc00
shl edx, 0xb
and ecx, 0x7e0f81f
add ecx, edx
mov edx, eax
shr eax, 8
shr edx, 3
and eax, 0xf800
and edx, 0x1f
add ecx, edx
add ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov word [edi - 2], ax
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x74]
add esi, edi
sub dword [esp + 0xb8], 1
mov dword [esp + 0x68], esi
jne 0x4895d6
mov ecx, dword [esp + 0x64]
add dword [esp + 0x3c], ecx
mov eax, 1
add dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
add dword [esp + 0x9c], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x4893ef
jmp 0x48e528
cmp eax, 0x3e0
fnstsw ax
jne 0x489ccf
mov dword [esp + 0xb0], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov edx, dword [esp + 0x94]
mov dword [esp + 0x70], eax
lea eax, [edx + edx]
mov dword [esp + 0x64], eax
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov dword [esp + 0x28], edx
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
xor ecx, ecx
sar edx, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x38], eax
jg 0x489937
test edx, edx
jl 0x489c96
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x489921
mov ecx, eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48999a
mov dword [esp + 0x28], eax
jmp 0x48999a
cmp edi, 1
jl 0x48997c
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x489c96
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48995f
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48999a
mov dword [esp + 0x28], eax
jmp 0x48999a
test esi, esi
jl 0x489c96
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x489c96
cmp ebx, 0xffffffff
jg 0x4899da
cmp dword [esp + 0x38], 0
jl 0x489c96
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, ecx
jle 0x4899c5
mov ecx, eax
mov eax, dword [esp + 0x2c]
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x489a48
mov dword [esp + 0x28], eax
jmp 0x489a48
cmp ebx, 1
jl 0x489a25
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x38], eax
jge 0x489c96
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv ebx
cmp eax, ecx
jle 0x489a06
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x489a48
mov dword [esp + 0x28], eax
jmp 0x489a48
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x489c96
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp eax, edx
jge 0x489c96
mov eax, ecx
imul eax, edi
mov edx, ecx
imul edx, ebx
add dword [esp + 0x2c], edx
add esi, eax
mov eax, dword [esp + 0x3c]
lea edx, [eax + ecx*2]
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x80], edx
jg 0x489c96
sub eax, ecx
inc eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x2c]
mov edx, esi
mov ecx, eax
sar ecx, 0x10
imul ecx, dword [esp + 0x80]
sar edx, 0x10
add ecx, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, esi
mov esi, dword [ecx + 4]
mov dword [esp + 0x48], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea ecx, [ecx + esi*4]
mov esi, dword [ecx]
mov dword [esp + 0x58], esi
and eax, 0xfffe
inc eax
and edx, 0xfffe
inc edx
mov dword [esp + 0x38], edx
mov edi, 0x10000
sub edi, edx
mov edx, edi
imul edi, eax
mov esi, 0x10000
sub esi, eax
imul eax, dword [esp + 0x38]
imul edx, esi
imul esi, dword [esp + 0x38]
shr esi, 0x10
mov ecx, dword [ecx + 4]
mov dword [esp + 0x5c], ebx
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
imul esi, ebx
mov ebx, dword [esp + 0x58]
shr esi, 0x10
mov dword [esp + 0x34], esi
shr edi, 0x10
mov esi, ebx
shr esi, 0x18
imul edi, esi
shr eax, 0x10
mov esi, ecx
shr esi, 0x18
imul eax, esi
shr eax, 0x10
mov esi, eax
mov dword [esp + 0x60], esi
mov eax, ecx
and eax, 0xffff00ff
imul eax, esi
shr edi, 0x10
mov esi, ebx
and esi, 0xffff00ff
imul esi, edi
add eax, esi
mov esi, dword [esp + 0x48]
and esi, 0xffff00ff
imul esi, dword [esp + 0x34]
add eax, esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x84], edi
and esi, 0xffff00ff
shr edx, 0x10
imul esi, edx
mov edi, ecx
and edi, 0xff00
imul edi, dword [esp + 0x60]
and ebx, 0xff00
imul ebx, dword [esp + 0x84]
add eax, esi
mov esi, dword [esp + 0x48]
add edi, ebx
and esi, 0xff00
imul esi, dword [esp + 0x34]
add edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, esi
and ebx, 0xff00
imul ebx, edx
add edi, ebx
xor eax, edi
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x34]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x60]
and edi, 0xff00ff
imul edi, dword [esp + 0x84]
add ecx, edi
mov edi, dword [esp + 0x48]
and edi, 0xff00ff
imul edi, ebx
add ecx, edi
mov edi, dword [esp + 0x50]
and esi, 0xff00ff
imul esi, edx
add ecx, esi
movzx esi, word [edi]
and eax, 0xff0000
xor eax, ecx
mov ecx, 0x100
sub ecx, dword [esp + 0x60]
shr eax, 8
sub ecx, dword [esp + 0x84]
add edi, 2
sub ecx, ebx
sub ecx, edx
mov edx, esi
shl edx, 0x10
or edx, esi
and edx, 0x3e07c1f
sar ecx, 3
imul ecx, edx
mov esi, dword [esp + 0x68]
mov edx, eax
mov ebx, dword [esp + 0x44]
add dword [esp + 0x2c], ebx
shr ecx, 5
shr edx, 3
and edx, 0x1f
and ecx, 0x3e07c1f
add ecx, edx
mov edx, eax
and eax, 0xf800
shr edx, 9
shl eax, 0xa
and edx, 0x7c00
add ecx, edx
add ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov word [edi - 2], ax
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x74]
add esi, edi
sub dword [esp + 0xb8], 1
mov dword [esp + 0x68], esi
jne 0x489a8a
mov ecx, dword [esp + 0x64]
add dword [esp + 0x3c], ecx
mov eax, 1
add dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
add dword [esp + 0x9c], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x4898a3
jmp 0x48e528
mov dword [esp + 0x50], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov edx, dword [esp + 0x94]
mov dword [esp + 0x70], eax
lea eax, [edx + edx]
mov dword [esp + 0x64], eax
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x28], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], edx
jg 0x489ddd
test eax, eax
jl 0x48a16d
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x489dc7
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x489e43
mov dword [esp + 0x28], eax
jmp 0x489e43
cmp edi, 1
jl 0x489e24
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48a16d
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x489e07
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x489e43
mov dword [esp + 0x28], eax
jmp 0x489e43
test esi, esi
jl 0x48a16d
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48a16d
cmp ebx, 0xffffffff
jg 0x489e83
cmp dword [esp + 0x38], 0
jl 0x48a16d
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x489e70
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x489eed
mov dword [esp + 0x28], eax
jmp 0x489eed
cmp ebx, 1
jl 0x489ece
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x38], eax
jge 0x48a16d
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x489eb1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x489eed
mov dword [esp + 0x28], eax
jmp 0x489eed
test ecx, ecx
jl 0x48a16d
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48a16d
mov eax, dword [esp + 0x40]
mov edx, eax
imul edx, edi
add esi, edx
mov edx, eax
imul edx, ebx
add ecx, edx
mov edx, dword [esp + 0x3c]
lea edx, [edx + eax*2]
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x7c], ecx
jg 0x48a16d
sub edx, eax
inc edx
mov dword [esp + 0x54], edx
mov eax, ecx
mov edx, esi
sar eax, 0x10
imul eax, dword [esp + 0x80]
sar edx, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov edi, esi
mov dword [esp + 0x94], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
lea eax, [eax + edx*4]
mov edx, dword [eax]
and ecx, 0xfffe
mov dword [esp + 0x48], edx
inc ecx
and edi, 0xfffe
inc edi
mov dword [esp + 0x38], edi
mov edx, 0x10000
sub edx, edi
mov edi, edx
imul edx, ecx
mov esi, 0x10000
sub esi, ecx
imul ecx, dword [esp + 0x38]
imul edi, esi
imul esi, dword [esp + 0x38]
shr esi, 0x10
mov dword [esp + 0x34], ebx
mov eax, dword [eax + 4]
shr ebx, 0x18
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x94]
shr ebx, 0x18
imul esi, ebx
shr esi, 0x10
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x48]
shr esi, 0x18
shr edx, 0x10
imul edx, esi
shr ecx, 0x10
mov esi, eax
shr esi, 0x18
imul ecx, esi
mov esi, dword [esp + 0x30]
movzx esi, word [esi]
movzx esi, si
mov dword [esp + 0x28], esi
shr ecx, 0x10
mov dword [esp + 0x38], ecx
movzx esi, al
imul esi, ecx
shr edx, 0x10
mov ebx, 0x100
sub ebx, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, edx
sub ebx, edx
sub ebx, dword [esp + 0x40]
add esi, ecx
movzx ecx, byte [esp + 0x34]
mov dword [esp + 0x5c], edx
movzx edx, byte [esp + 0x94]
imul edx, dword [esp + 0x40]
shr edi, 0x10
imul ecx, edi
add esi, edx
mov edx, dword [esp + 0x28]
add esi, ecx
mov ecx, dword [esp + 0xcc]
shr esi, cl
mov ecx, dword [esp + 0xb8]
sub ebx, edi
mov dword [esp + 0x58], ebx
shl esi, cl
mov ecx, dword [esp + 0xbc]
and edx, ecx
imul edx, ebx
shr edx, 8
and edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff0000
imul ecx, dword [esp + 0x5c]
add esi, edx
mov edx, eax
and edx, 0xff0000
imul edx, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff0000
imul ecx, dword [esp + 0x40]
add edx, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff0000
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, cl
mov ecx, dword [esp + 0x9c]
and eax, 0xff00
imul eax, dword [esp + 0x38]
shl edx, cl
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x2c]
imul ecx, ebx
shr ecx, 8
and ecx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, dword [esp + 0x5c]
add eax, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff00
imul ecx, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x74]
or esi, edx
mov edx, dword [esp + 0x98]
shl eax, cl
mov ecx, dword [esp + 0x28]
and ecx, edx
imul ecx, ebx
mov ebx, dword [esp + 0x44]
shr ecx, 8
and ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x7c]
or esi, eax
mov eax, dword [esp + 0x30]
mov word [eax], si
mov esi, dword [esp + 0x8c]
add eax, 2
add esi, edi
add ecx, ebx
sub dword [esp + 0x54], 1
mov dword [esp + 0x30], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x7c], ecx
jne 0x489f35
mov edx, dword [esp + 0x64]
add dword [esp + 0x3c], edx
mov eax, 1
add dword [esp + 0x50], eax
fild dword [esp + 0x50]
add dword [esp + 0x68], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x489d44
jmp 0x48e528
fnstsw ax
mov dword [esp + 0x5c], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x94]
lea ecx, [eax + eax]
mov dword [esp + 0x64], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x28], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], edx
jg 0x48a2ad
test eax, eax
jl 0x48a65a
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48a297
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48a313
mov dword [esp + 0x28], eax
jmp 0x48a313
cmp edi, 1
jl 0x48a2f4
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48a65a
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48a2d7
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48a313
mov dword [esp + 0x28], eax
jmp 0x48a313
test esi, esi
jl 0x48a65a
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48a65a
cmp ebx, 0xffffffff
jg 0x48a353
cmp dword [esp + 0x54], 0
jl 0x48a65a
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48a340
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x48a3bd
mov dword [esp + 0x28], eax
jmp 0x48a3bd
cmp ebx, 1
jl 0x48a39e
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x54], eax
jge 0x48a65a
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48a381
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x48a3bd
mov dword [esp + 0x28], eax
jmp 0x48a3bd
test ecx, ecx
jl 0x48a65a
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48a65a
mov eax, dword [esp + 0x40]
mov edx, eax
imul edx, edi
add esi, edx
mov edx, eax
imul edx, ebx
add ecx, edx
mov edx, dword [esp + 0x3c]
lea edx, [edx + eax*2]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x38], ecx
jg 0x48a65a
sub edx, eax
inc edx
mov dword [esp + 0x28], edx
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0x80]
mov edx, esi
sar edx, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, esi
mov esi, dword [eax + 4]
mov dword [esp + 0x94], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea eax, [eax + esi*4]
mov esi, dword [eax]
and ecx, 0xfffe
inc ecx
mov dword [esp + 0x48], esi
and edx, 0xfffe
inc edx
mov dword [esp + 0xa0], edx
mov eax, dword [eax + 4]
mov esi, 0x10000
sub esi, ecx
mov edi, 0x10000
sub edi, edx
imul edx, esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x90], edi
imul edi, esi
mov esi, dword [esp + 0x94]
shr ebx, 0x18
shr esi, 0x18
shr edx, 0x10
imul edx, esi
mov esi, ecx
imul ecx, dword [esp + 0xa0]
imul esi, dword [esp + 0x90]
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr ecx, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x40]
movzx ebx, word [ebx]
mov dword [esp + 0x90], ebx
shr ecx, 0x10
shr edx, 0x10
shr esi, 0x10
mov ebx, 0x100
sub ebx, ecx
sub ebx, esi
sub ebx, edx
shr edi, 0x10
sub ebx, edi
mov dword [esp + 0x34], ebx
movzx ebx, word [esp + 0x90]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x54], ecx
movzx ebx, al
imul ebx, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, esi
add ebx, ecx
movzx ecx, byte [esp + 0x94]
imul ecx, edx
mov dword [esp + 0x7c], edx
movzx edx, byte [esp + 0x50]
imul edx, edi
add ebx, ecx
mov ecx, dword [esp + 0xcc]
add ebx, edx
shr ebx, cl
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x78], esi
shl ebx, cl
mov ecx, dword [esp + 0x68]
and ecx, dword [esp + 0xbc]
mov edx, eax
imul ecx, dword [esp + 0x34]
shr ecx, 8
and ecx, dword [esp + 0xbc]
and edx, 0xff0000
add ebx, ecx
imul edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
and ecx, 0xff0000
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff0000
imul ecx, dword [esp + 0x7c]
add edx, ecx
mov ecx, dword [esp + 0x50]
and ecx, 0xff0000
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, cl
mov ecx, dword [esp + 0x9c]
and eax, 0xff00
imul eax, dword [esp + 0x54]
shl edx, cl
mov ecx, dword [esp + 0x68]
and ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x34]
shr ecx, 8
and ecx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff00
imul ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x50]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x74]
shl eax, cl
mov ecx, dword [esp + 0x68]
or ebx, edx
mov edx, dword [esp + 0x98]
and ecx, edx
imul ecx, dword [esp + 0x34]
shr ecx, 8
and ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x38]
or ebx, eax
mov eax, dword [esp + 0x40]
mov word [eax], bx
mov ebx, dword [esp + 0x44]
add eax, 2
add esi, edi
add ecx, ebx
sub dword [esp + 0x28], 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x38], ecx
jne 0x48a405
mov edx, dword [esp + 0x64]
add dword [esp + 0x3c], edx
mov eax, 1
add dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48a214
jmp 0x48e528
mov eax, dword [esi + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [esi]
inc eax
mov dword [esp + 0x88], eax
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
inc eax
mov dword [esp + 0x4c], eax
fnstsw ax
inc esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0x38], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x94]
lea edx, [ecx + ecx]
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], edx
jg 0x48a7be
test eax, eax
jl 0x48aba6
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48a7a8
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48a824
mov dword [esp + 0x28], eax
jmp 0x48a824
cmp edi, 1
jl 0x48a805
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48aba6
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48a7e8
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48a824
mov dword [esp + 0x28], eax
jmp 0x48a824
test esi, esi
jl 0x48aba6
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48aba6
cmp ebx, 0xffffffff
jg 0x48a864
cmp dword [esp + 0x54], 0
jl 0x48aba6
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48a851
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x48a8ce
mov dword [esp + 0x28], eax
jmp 0x48a8ce
cmp ebx, 1
jl 0x48a8af
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x54], eax
jge 0x48aba6
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48a892
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x48a8ce
mov dword [esp + 0x28], eax
jmp 0x48a8ce
test ecx, ecx
jl 0x48aba6
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48aba6
mov eax, dword [esp + 0x40]
mov edx, eax
imul edx, edi
add esi, edx
mov edx, eax
imul edx, ebx
add ecx, edx
mov edx, dword [esp + 0x3c]
lea edx, [edx + eax*2]
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x30], ecx
jg 0x48aba6
sub edx, eax
inc edx
mov dword [esp + 0x28], edx
mov eax, ecx
mov edx, esi
sar eax, 0x10
imul eax, dword [esp + 0x80]
sar edx, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, esi
mov esi, dword [eax + 4]
mov dword [esp + 0x40], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea eax, [eax + esi*4]
mov esi, dword [eax]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x68]
movzx esi, word [esi]
and ecx, 0xfffe
mov dword [esp + 0x78], esi
inc ecx
and edx, 0xfffe
inc edx
mov dword [esp + 0xa0], edx
mov eax, dword [eax + 4]
mov esi, 0x10000
sub esi, ecx
mov edi, 0x10000
sub edi, edx
imul edx, esi
mov dword [esp + 0x90], edi
imul edi, esi
mov esi, dword [esp + 0x40]
shr esi, 0x18
shr edx, 0x10
imul edx, esi
mov esi, ecx
imul ecx, dword [esp + 0xa0]
imul esi, dword [esp + 0x90]
mov dword [esp + 0x5c], ebx
shr ebx, 0x18
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x94]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
shr ecx, 0x10
imul ecx, dword [esp + 0x48]
shr esi, 0x10
imul esi, dword [esp + 0x48]
shr edx, 0x10
imul edx, dword [esp + 0x48]
shr edi, 0x10
imul edi, dword [esp + 0x48]
sar ecx, 8
sar esi, 8
mov ebx, 0x100
sub ebx, ecx
sub ebx, esi
sar edx, 8
sub ebx, edx
sar edi, 8
sub ebx, edi
mov dword [esp + 0x50], ebx
movzx ebx, word [esp + 0x78]
mov dword [esp + 0x58], ebx
movzx ebx, al
imul ebx, ecx
mov dword [esp + 0x54], ecx
movzx ecx, byte [esp + 0x94]
imul ecx, esi
add ebx, ecx
movzx ecx, byte [esp + 0x40]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x90], esi
imul ecx, edx
add ebx, ecx
movzx edx, byte [esp + 0x5c]
imul edx, edi
mov ecx, dword [esp + 0xcc]
add ebx, edx
shr ebx, 8
imul ebx, dword [esp + 0xb4]
shr ebx, cl
mov ecx, dword [esp + 0xb8]
mov edx, eax
and edx, 0xff0000
shl ebx, cl
imul edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
and ecx, dword [esp + 0xbc]
and eax, 0xff00
imul ecx, dword [esp + 0x50]
imul eax, dword [esp + 0x54]
shr ecx, 8
and ecx, dword [esp + 0xbc]
add ebx, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff0000
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff0000
imul ecx, dword [esp + 0x7c]
add edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0xff0000
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, 8
imul edx, dword [esp + 0x88]
shr edx, cl
mov ecx, dword [esp + 0x9c]
shl edx, cl
mov ecx, dword [esp + 0x58]
and ecx, dword [esp + 0x2c]
imul ecx, dword [esp + 0x50]
shr ecx, 8
and ecx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x94]
and ecx, 0xff00
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff00
imul ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, 8
imul eax, dword [esp + 0x4c]
shr eax, cl
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x74]
shl eax, cl
mov ecx, dword [esp + 0x58]
or ebx, edx
mov edx, dword [esp + 0x98]
and ecx, edx
imul ecx, dword [esp + 0x50]
shr ecx, 8
and ecx, edx
add eax, ecx
or ebx, eax
mov eax, dword [esp + 0x68]
mov word [eax], bx
add eax, 2
add esi, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
add ecx, ebx
sub dword [esp + 0x28], 1
mov dword [esp + 0x30], ecx
jne 0x48a916
mov edx, dword [esp + 0x64]
add dword [esp + 0x3c], edx
mov eax, 1
add dword [esp + 0x38], eax
fild dword [esp + 0x38]
add dword [esp + 0x34], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48a725
jmp 0x48e528
cmp eax, 0x20
jne 0x48e532
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0x4c]
fistp qword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
fldcw word [esp + 0x70]
imul edx, eax
shr edx, 2
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
shr eax, 2
lea edx, [ecx + edx*4]
mov dword [esp + 0x38], eax
mov eax, esi
mov dword [esp + 0x64], edx
call fcn.00434970
mov dword [esp + 0x34], 0
fld qword [esp + 0xe8]
fcomp qword [0x82dc20]
test al, al
je 0x48b5a3
cmp byte [0x88b5b8], 0
fnstsw ax
je 0x48b104
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax*4]
mov dword [esp + 0x94], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x28], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], edx
jg 0x48ad72
test eax, eax
jl 0x48b0d1
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48ad5c
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48add8
mov dword [esp + 0x28], eax
jmp 0x48add8
cmp edi, 1
jl 0x48adb9
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48b0d1
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48ad9c
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48add8
mov dword [esp + 0x28], eax
jmp 0x48add8
test esi, esi
jl 0x48b0d1
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48b0d1
cmp ebx, 0xffffffff
jg 0x48ae18
cmp dword [esp + 0x54], 0
jl 0x48b0d1
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48ae05
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x48ae82
mov dword [esp + 0x28], eax
jmp 0x48ae82
cmp ebx, 1
jl 0x48ae63
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x54], eax
jge 0x48b0d1
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48ae46
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x48ae82
mov dword [esp + 0x28], eax
jmp 0x48ae82
test ecx, ecx
jl 0x48b0d1
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48b0d1
mov eax, dword [esp + 0x40]
mov edx, edi
imul edx, eax
add esi, edx
mov edx, ebx
imul edx, eax
add ecx, edx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*4]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x84], ecx
jg 0x48b0d1
sub edx, eax
inc edx
mov dword [esp + 0x9c], edx
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0x4c]
mov edx, esi
sar edx, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov edi, esi
lea eax, [eax + edx*4]
mov edx, dword [eax]
mov dword [esp + 0x48], edx
and ecx, 0xfffe
inc ecx
and edi, 0xfffe
inc edi
mov eax, dword [eax + 4]
mov dword [esp + 0x54], edi
mov edx, 0x10000
sub edx, edi
mov edi, edx
imul edx, ecx
mov dword [esp + 0x5c], ebx
mov esi, 0x10000
sub esi, ecx
imul ecx, dword [esp + 0x54]
imul edi, esi
imul esi, dword [esp + 0x54]
shr ebx, 0x18
shr esi, 0x10
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x60]
shr ebx, 0x18
imul esi, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x50]
mov ebx, dword [ebx]
shr ecx, 0x10
shr edx, 0x10
mov dword [esp + 0x58], ebx
shr esi, 0x10
mov dword [esp + 0x38], esi
mov ebx, 0x100
sub ebx, ecx
sub ebx, edx
sub ebx, esi
mov dword [esp + 0x54], ecx
movzx esi, al
imul esi, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, edx
mov dword [esp + 0x7c], edx
movzx edx, byte [esp + 0x60]
imul edx, dword [esp + 0x38]
add esi, ecx
movzx ecx, byte [esp + 0x5c]
add esi, edx
mov edx, dword [esp + 0x58]
shr edi, 0x10
imul ecx, edi
sub ebx, edi
and edx, 0xffff00ff
imul edx, ebx
add esi, ecx
and esi, 0xff00
mov dword [esp + 0x88], ebx
add esi, edx
mov ecx, eax
mov edx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, dword [esp + 0x54]
and edx, 0xff00
imul edx, dword [esp + 0x7c]
add ecx, edx
mov edx, dword [esp + 0x60]
and edx, 0xff00
imul edx, dword [esp + 0x38]
add ecx, edx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x58]
and edx, 0xff00
imul edx, edi
add ecx, edx
mov edx, dword [esp + 0x88]
and ecx, 0xffff0000
and ebx, 0xff00
imul ebx, edx
add ecx, ebx
xor esi, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x7c]
and eax, 0xff00ff
imul eax, dword [esp + 0x54]
add eax, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0xff00ff
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x44]
and ecx, 0xff00ff
imul ecx, edx
and eax, 0xff00ff00
add eax, ecx
mov ecx, dword [esp + 0x84]
and esi, 0xff0000
xor esi, eax
mov eax, dword [esp + 0x50]
shr esi, 8
mov dword [eax], esi
mov esi, dword [esp + 0x8c]
add eax, 4
add esi, edi
add ecx, ebx
sub dword [esp + 0x9c], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x84], ecx
jne 0x48aecd
mov eax, 1
add dword [esp + 0x34], eax
fild dword [esp + 0x34]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x94]
add dword [esp + 0x64], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48acdf
jmp 0x48e528
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x38]
lea edx, [ecx*4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x94], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], edx
jg 0x48b202
test eax, eax
jl 0x48b570
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48b1ec
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48b268
mov dword [esp + 0x28], eax
jmp 0x48b268
cmp edi, 1
jl 0x48b249
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48b570
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48b22c
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48b268
mov dword [esp + 0x28], eax
jmp 0x48b268
test esi, esi
jl 0x48b570
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48b570
cmp ebx, 0xffffffff
jg 0x48b2a8
cmp dword [esp + 0x54], 0
jl 0x48b570
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48b295
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x48b312
mov dword [esp + 0x28], eax
jmp 0x48b312
cmp ebx, 1
jl 0x48b2f3
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x54], eax
jge 0x48b570
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48b2d6
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x48b312
mov dword [esp + 0x28], eax
jmp 0x48b312
test ecx, ecx
jl 0x48b570
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48b570
mov eax, dword [esp + 0x40]
mov edx, eax
imul edx, edi
add esi, edx
mov edx, eax
imul edx, ebx
add ecx, edx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*4]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], ecx
jg 0x48b570
sub edx, eax
inc edx
mov dword [esp + 0x28], edx
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0x4c]
mov edx, esi
sar edx, 0x10
add eax, edx
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + eax*4]
lea eax, [edx + eax*4]
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov edi, esi
lea eax, [eax + edx*4]
mov edx, dword [eax]
and ecx, 0xfffe
inc ecx
mov dword [esp + 0x48], edx
and edi, 0xfffe
inc edi
mov eax, dword [eax + 4]
mov dword [esp + 0x54], edi
mov edx, 0x10000
sub edx, edi
mov edi, edx
imul edx, ecx
mov dword [esp + 0x5c], ebx
mov esi, 0x10000
sub esi, ecx
imul ecx, dword [esp + 0x54]
imul edi, esi
imul esi, dword [esp + 0x54]
shr ebx, 0x18
shr esi, 0x10
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x40]
shr ebx, 0x18
imul esi, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x50]
mov ebx, dword [ebx]
shr ecx, 0x10
mov dword [esp + 0x58], ebx
shr esi, 0x10
shr edx, 0x10
mov dword [esp + 0x38], esi
mov ebx, 0x100
sub ebx, ecx
sub ebx, edx
sub ebx, esi
mov dword [esp + 0x54], ecx
movzx esi, al
imul esi, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, edx
add esi, ecx
movzx ecx, byte [esp + 0x5c]
mov dword [esp + 0x7c], edx
movzx edx, byte [esp + 0x40]
imul edx, dword [esp + 0x38]
shr edi, 0x10
imul ecx, edi
add esi, edx
mov edx, dword [esp + 0x58]
add esi, ecx
mov ecx, dword [esp + 0xcc]
shr esi, cl
mov ecx, dword [esp + 0xb8]
sub ebx, edi
mov dword [esp + 0x8c], ebx
shl esi, cl
mov ecx, dword [esp + 0xbc]
and edx, ecx
imul edx, ebx
shr edx, 8
and edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff0000
imul ecx, dword [esp + 0x7c]
add esi, edx
mov edx, eax
and edx, 0xff0000
imul edx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff0000
imul ecx, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0xff0000
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, cl
mov ecx, dword [esp + 0x9c]
and eax, 0xff00
imul eax, dword [esp + 0x54]
shl edx, cl
mov ecx, dword [esp + 0x58]
and ecx, dword [esp + 0x2c]
imul ecx, ebx
shr ecx, 8
and ecx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff00
imul ecx, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x5c]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x74]
or esi, edx
mov edx, dword [esp + 0x98]
shl eax, cl
mov ecx, dword [esp + 0x58]
and ecx, edx
imul ecx, ebx
mov ebx, dword [esp + 0x44]
shr ecx, 8
and ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x3c]
or esi, eax
mov eax, dword [esp + 0x50]
mov dword [eax], esi
mov esi, dword [esp + 0x30]
add eax, 4
add esi, edi
add ecx, ebx
sub dword [esp + 0x28], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], ecx
jne 0x48b354
mov edx, dword [esp + 0x94]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x34], eax
fild dword [esp + 0x34]
add dword [esp + 0x68], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48b16f
jmp 0x48e528
mov eax, dword [esi + 0xc]
mov dword [esp + 0x5c], eax
mov eax, dword [esi]
inc eax
mov dword [esp + 0xb4], eax
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
inc eax
mov dword [esp + 0x80], eax
fnstsw ax
inc esi
mov dword [esp + 0x88], esi
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x38]
lea edx, [ecx*4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x94], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp edi, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], edx
jg 0x48b6ca
test eax, eax
jl 0x48ba7b
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv edi
test eax, eax
jl 0x48b6b4
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48b730
mov dword [esp + 0x28], eax
jmp 0x48b730
cmp edi, 1
jl 0x48b711
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48ba7b
mov eax, 0x10000
sub eax, esi
cdq
idiv edi
test eax, eax
jle 0x48b6f4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv edi
cmp eax, dword [esp + 0x28]
jge 0x48b730
mov dword [esp + 0x28], eax
jmp 0x48b730
test esi, esi
jl 0x48ba7b
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48ba7b
cmp ebx, 0xffffffff
jg 0x48b770
cmp dword [esp + 0x54], 0
jl 0x48ba7b
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48b75d
mov dword [esp + 0x40], eax
mov eax, ecx
cdq
idiv ebx
neg eax
cmp eax, dword [esp + 0x28]
jge 0x48b7da
mov dword [esp + 0x28], eax
jmp 0x48b7da
cmp ebx, 1
jl 0x48b7bb
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0x54], eax
jge 0x48ba7b
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x40]
jle 0x48b79e
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x28]
jge 0x48b7da
mov dword [esp + 0x28], eax
jmp 0x48b7da
test ecx, ecx
jl 0x48ba7b
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48ba7b
mov eax, dword [esp + 0x40]
mov edx, eax
imul edx, edi
add esi, edx
mov edx, eax
imul edx, ebx
add ecx, edx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*4]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x28]
cmp eax, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x3c], ecx
jg 0x48ba7b
sub edx, eax
inc edx
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x50]
mov edx, dword [edx]
mov eax, ecx
mov edi, esi
sar eax, 0x10
imul eax, dword [esp + 0x4c]
sar edi, 0x10
add eax, edi
mov edi, dword [esp + 0x6c]
mov ebx, dword [edi + eax*4]
lea eax, [edi + eax*4]
mov edi, esi
mov esi, dword [eax + 4]
mov dword [esp + 0x40], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea eax, [eax + esi*4]
mov esi, dword [eax]
mov dword [esp + 0x48], esi
and edi, 0xfffe
and ecx, 0xfffe
mov dword [esp + 0x58], edx
inc edi
inc ecx
mov dword [esp + 0x54], edi
mov edx, 0x10000
sub edx, edi
mov edi, edx
imul edx, ecx
mov esi, 0x10000
sub esi, ecx
imul ecx, dword [esp + 0x54]
imul edi, esi
imul esi, dword [esp + 0x54]
mov dword [esp + 0x38], ebx
shr ebx, 0x18
shr esi, 0x10
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x40]
shr ebx, 0x18
imul esi, ebx
mov eax, dword [eax + 4]
shr esi, 0x10
imul esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x5c]
sar esi, 8
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x48]
shr edx, 0x10
shr esi, 0x18
imul edx, esi
shr ecx, 0x10
mov esi, eax
shr esi, 0x18
imul ecx, esi
shr ecx, 0x10
imul ecx, ebx
shr edx, 0x10
imul edx, ebx
sar ecx, 8
movzx esi, al
imul esi, ecx
sar edx, 8
mov dword [esp + 0x54], ecx
mov ebx, 0x100
sub ebx, ecx
movzx ecx, byte [esp + 0x48]
sub ebx, edx
imul ecx, edx
sub ebx, dword [esp + 0x28]
shr edi, 0x10
imul edi, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
movzx edx, byte [esp + 0x40]
imul edx, dword [esp + 0x28]
sar edi, 8
sub ebx, edi
add esi, ecx
movzx ecx, byte [esp + 0x38]
mov dword [esp + 0x8c], ebx
add esi, edx
imul ecx, edi
add esi, ecx
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x58]
shr esi, 8
imul esi, dword [esp + 0x88]
shr esi, cl
mov ecx, dword [esp + 0xb8]
shl esi, cl
mov ecx, dword [esp + 0xbc]
and edx, ecx
imul edx, ebx
shr edx, 8
and edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff0000
imul ecx, dword [esp + 0x7c]
add esi, edx
mov edx, eax
and edx, 0xff0000
imul edx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff0000
imul ecx, dword [esp + 0x28]
add edx, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xff0000
imul ecx, edi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, 8
imul edx, dword [esp + 0xb4]
shr edx, cl
mov ecx, dword [esp + 0x9c]
and eax, 0xff00
imul eax, dword [esp + 0x54]
shl edx, cl
mov ecx, dword [esp + 0x58]
and ecx, dword [esp + 0x2c]
imul ecx, ebx
shr ecx, 8
and ecx, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x40]
and ecx, 0xff00
imul ecx, dword [esp + 0x28]
add eax, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, 8
imul eax, dword [esp + 0x80]
shr eax, cl
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x74]
or esi, edx
mov edx, dword [esp + 0x98]
shl eax, cl
mov ecx, dword [esp + 0x58]
and ecx, edx
imul ecx, ebx
mov ebx, dword [esp + 0x44]
shr ecx, 8
and ecx, edx
mov edx, dword [esp + 0x50]
add eax, ecx
mov ecx, dword [esp + 0x3c]
or esi, eax
mov dword [edx], esi
mov esi, dword [esp + 0x30]
add edx, 4
add esi, edi
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], esi
add ecx, ebx
sub dword [esp + 0x78], 1
mov dword [esp + 0x3c], ecx
jne 0x48b820
mov edx, dword [esp + 0x94]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x34], eax
fild dword [esp + 0x34]
add dword [esp + 0x68], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48b637
jmp 0x48e528
mov ecx, dword [ebp + 0x14]
fld qword [ebp + 0x24]
imul eax, dword [ecx + 4]
add eax, dword [ebx + 0x50]
add eax, dword [ecx]
mov dword [esp + 0xbc], eax
call fcn.007701e0
fstp qword [esp + 0xc0]
fld qword [ebp + 0x24]
call fcn.0076fe20
fst qword [esp + 0xa8]
fld qword [esp + 0xc0]
fld qword [0x82de30]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fmulp st(1)
mov ebx, eax
mov dword [esp + 0x40], ebx
call fcn.0076f850
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x80]
call edx
test al, al
je 0x4900af
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c]
call edx
mov eax, dword [eax + 0x1c]
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov dword [esp + 0x9c], eax
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x24]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x20
sub ecx, dword [eax + 0x10]
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x18
sub ecx, dword [eax + 0x14]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov edx, dword [esi + 0x94]
mov ecx, 0x10
sub ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x8c]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x28], edx
mov dword [esp + 0x98], ecx
cmp eax, 0x10
jne 0x48d55e
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0x4c]
fistp qword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
fldcw word [esp + 0x70]
imul edx, eax
shr edx, 1
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
shr eax, 1
lea edx, [ecx + edx*2]
mov dword [esp + 0x60], eax
mov eax, esi
mov dword [esp + 0x64], edx
call fcn.00434970
fld qword [esp + 0xe8]
fcomp qword [0x82dc20]
test al, al
je 0x48d000
cmp byte [0x88b5b8], 0
je 0x48cb17
mov eax, dword [esp + 0x28]
cmp eax, 0x7e0
jne 0x48c141
fnstsw ax
mov dword [esp + 0x50], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax]
mov dword [esp + 0x6c], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
sar edx, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x78], eax
jg 0x48bd62
test edx, edx
jl 0x48c111
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48bd59
mov dword [esp + 0x28], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48bd9a
cmp ebx, 1
jl 0x48bda9
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x48c111
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48bd8c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48bdc7
mov ecx, eax
mov dword [esp + 0x48], ecx
jmp 0x48bdc7
test esi, esi
jl 0x48c111
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x48c111
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48be13
cmp dword [esp + 0x78], 0
jl 0x48c111
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jle 0x48bdfc
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
neg eax
cmp eax, ecx
jge 0x48be87
mov ecx, eax
jmp 0x48be87
cmp eax, 1
jl 0x48be64
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0x78], eax
jge 0x48c111
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jle 0x48be41
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, ecx
jge 0x48be87
mov ecx, eax
jmp 0x48be87
cmp dword [esp + 0x2c], 0
jl 0x48c111
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp dword [esp + 0x2c], eax
jge 0x48c111
mov eax, dword [esp + 0x28]
mov edx, eax
imul eax, dword [esp + 0x3c]
add dword [esp + 0x2c], eax
imul edx, ebx
mov eax, dword [esp + 0x28]
add esi, edx
cmp eax, ecx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*2]
mov dword [esp + 0x7c], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x4c], edx
jg 0x48c111
sub ecx, eax
inc ecx
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x2c]
mov edx, eax
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov ecx, esi
sar ecx, 0x10
add ecx, edx
movzx edx, byte [ecx]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x84], edx
movzx edx, byte [ecx + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add ecx, edx
movzx edx, byte [ecx]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x48], edx
and eax, 0xfffe
inc eax
and esi, 0xfffe
inc esi
mov edx, 0x10000
sub edx, esi
mov dword [esp + 0xb4], edx
mov ebx, 0x10000
sub ebx, eax
imul edx, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x84]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov dword [esp + 0x80], esi
imul esi, dword [esp + 0x88]
movzx ecx, byte [ecx + 1]
mov ebx, dword [esp + 0x48]
mov ecx, dword [edi + ecx*4]
shr edx, 0x10
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x60]
shr edx, 0x18
shr esi, 0x10
imul esi, edx
mov edx, eax
imul eax, dword [esp + 0x80]
imul edx, dword [esp + 0xb4]
shr ebx, 0x18
shr eax, 0x10
shr edx, 0x10
imul edx, ebx
mov ebx, ecx
shr ebx, 0x18
imul eax, ebx
shr eax, 0x10
mov ebx, eax
mov dword [esp + 0x38], ebx
mov eax, ecx
and eax, 0xffff00ff
imul eax, ebx
mov ebx, dword [esp + 0x48]
and ebx, 0xffff00ff
shr edx, 0x10
imul ebx, edx
add eax, ebx
mov ebx, dword [esp + 0x60]
shr esi, 0x10
and ebx, 0xffff00ff
imul ebx, esi
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x84]
and esi, 0xffff00ff
imul esi, dword [esp + 0x78]
add eax, ebx
mov ebx, ecx
and ebx, 0xff00
add eax, esi
imul ebx, dword [esp + 0x38]
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0x48]
and esi, 0xff00
imul esi, edx
mov edx, dword [esp + 0x60]
and edx, 0xff00
imul edx, dword [esp + 0x5c]
add ebx, esi
mov esi, dword [esp + 0x78]
add ebx, edx
mov edx, dword [esp + 0x84]
and edx, 0xff00
imul edx, esi
add ebx, edx
mov edx, dword [esp + 0x48]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x38]
and edx, 0xff00ff
imul edx, dword [esp + 0x54]
add ecx, edx
mov edx, dword [esp + 0x60]
and edx, 0xff00ff
imul edx, dword [esp + 0x5c]
add ecx, edx
mov edx, dword [esp + 0x84]
and edx, 0xff00ff
imul edx, esi
add ecx, edx
mov edx, dword [esp + 0x7c]
xor eax, ebx
movzx ebx, word [edx]
and eax, 0xff0000
xor eax, ecx
mov ecx, 0x100
sub ecx, dword [esp + 0x38]
shr eax, 8
sub ecx, dword [esp + 0x54]
add edx, 2
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
sub ecx, esi
sar ecx, 3
mov esi, ebx
shl esi, 0x10
or esi, ebx
and esi, 0x7e0f81f
imul ecx, esi
mov ebx, dword [esp + 0x40]
mov esi, eax
and esi, 0xfc00
shr ecx, 5
shl esi, 0xb
and ecx, 0x7e0f81f
add ecx, esi
mov esi, eax
shr esi, 3
shr eax, 8
and esi, 0x1f
add ecx, esi
mov esi, dword [esp + 0x8c]
and eax, 0xf800
add ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x2c], ecx
mov word [edx - 2], ax
add esi, ebx
sub dword [esp + 0x68], 1
mov dword [esp + 0x8c], esi
jne 0x48beca
mov edx, dword [esp + 0x6c]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x50], eax
fild dword [esp + 0x50]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48bcdc
jmp 0x48e528
cmp eax, 0x3e0
fnstsw ax
jne 0x48c61f
mov dword [esp + 0x50], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax]
mov dword [esp + 0x6c], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
sar edx, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x78], eax
jg 0x48c240
test edx, edx
jl 0x48c5ef
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48c237
mov dword [esp + 0x28], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48c278
cmp ebx, 1
jl 0x48c287
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x48c5ef
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48c26a
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48c2a5
mov ecx, eax
mov dword [esp + 0x48], ecx
jmp 0x48c2a5
test esi, esi
jl 0x48c5ef
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x48c5ef
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48c2f1
cmp dword [esp + 0x78], 0
jl 0x48c5ef
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jle 0x48c2da
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
neg eax
cmp eax, ecx
jge 0x48c365
mov ecx, eax
jmp 0x48c365
cmp eax, 1
jl 0x48c342
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0x78], eax
jge 0x48c5ef
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jle 0x48c31f
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, ecx
jge 0x48c365
mov ecx, eax
jmp 0x48c365
cmp dword [esp + 0x2c], 0
jl 0x48c5ef
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp dword [esp + 0x2c], eax
jge 0x48c5ef
mov eax, dword [esp + 0x28]
mov edx, eax
imul eax, dword [esp + 0x3c]
add dword [esp + 0x2c], eax
imul edx, ebx
mov eax, dword [esp + 0x28]
add esi, edx
cmp eax, ecx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*2]
mov dword [esp + 0x7c], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x4c], edx
jg 0x48c5ef
sub ecx, eax
inc ecx
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x2c]
mov edx, eax
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov ecx, esi
sar ecx, 0x10
add ecx, edx
movzx edx, byte [ecx]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x84], edx
movzx edx, byte [ecx + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add ecx, edx
movzx edx, byte [ecx]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x48], edx
and eax, 0xfffe
inc eax
and esi, 0xfffe
inc esi
mov edx, 0x10000
sub edx, esi
mov dword [esp + 0xb4], edx
mov ebx, 0x10000
sub ebx, eax
imul edx, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x84]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov dword [esp + 0x80], esi
imul esi, dword [esp + 0x88]
movzx ecx, byte [ecx + 1]
mov ebx, dword [esp + 0x48]
mov ecx, dword [edi + ecx*4]
shr edx, 0x10
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x60]
shr edx, 0x18
shr esi, 0x10
imul esi, edx
mov edx, eax
imul eax, dword [esp + 0x80]
imul edx, dword [esp + 0xb4]
shr ebx, 0x18
shr eax, 0x10
shr edx, 0x10
imul edx, ebx
mov ebx, ecx
shr ebx, 0x18
imul eax, ebx
shr eax, 0x10
mov ebx, eax
mov dword [esp + 0x38], ebx
mov eax, ecx
and eax, 0xffff00ff
imul eax, ebx
mov ebx, dword [esp + 0x48]
and ebx, 0xffff00ff
shr edx, 0x10
imul ebx, edx
add eax, ebx
mov ebx, dword [esp + 0x60]
shr esi, 0x10
and ebx, 0xffff00ff
imul ebx, esi
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x84]
and esi, 0xffff00ff
imul esi, dword [esp + 0x78]
add eax, ebx
mov ebx, ecx
and ebx, 0xff00
add eax, esi
imul ebx, dword [esp + 0x38]
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0x48]
and esi, 0xff00
imul esi, edx
mov edx, dword [esp + 0x60]
and edx, 0xff00
imul edx, dword [esp + 0x5c]
add ebx, esi
mov esi, dword [esp + 0x78]
add ebx, edx
mov edx, dword [esp + 0x84]
and edx, 0xff00
imul edx, esi
add ebx, edx
mov edx, dword [esp + 0x48]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x38]
and edx, 0xff00ff
imul edx, dword [esp + 0x54]
add ecx, edx
mov edx, dword [esp + 0x60]
and edx, 0xff00ff
imul edx, dword [esp + 0x5c]
add ecx, edx
mov edx, dword [esp + 0x84]
and edx, 0xff00ff
imul edx, esi
add ecx, edx
mov edx, dword [esp + 0x7c]
xor eax, ebx
movzx ebx, word [edx]
and eax, 0xff0000
xor eax, ecx
mov ecx, 0x100
sub ecx, dword [esp + 0x38]
shr eax, 8
sub ecx, dword [esp + 0x54]
add edx, 2
sub ecx, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
sub ecx, esi
sar ecx, 3
mov esi, ebx
shl esi, 0x10
or esi, ebx
and esi, 0x3e07c1f
imul ecx, esi
mov ebx, dword [esp + 0x40]
mov esi, eax
shr esi, 3
shr ecx, 5
and esi, 0x1f
and ecx, 0x3e07c1f
add ecx, esi
mov esi, eax
shr esi, 9
and eax, 0xf800
and esi, 0x7c00
add ecx, esi
mov esi, dword [esp + 0x8c]
shl eax, 0xa
add ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x2c], ecx
mov word [edx - 2], ax
add esi, ebx
sub dword [esp + 0x68], 1
mov dword [esp + 0x8c], esi
jne 0x48c3a8
mov edx, dword [esp + 0x6c]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x50], eax
fild dword [esp + 0x50]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48c1ba
jmp 0x48e528
mov dword [esp + 0x34], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax]
mov dword [esp + 0x6c], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x2c], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0x78], edx
jg 0x48c71e
test eax, eax
jl 0x48cae7
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48c708
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
cmp eax, dword [esp + 0x2c]
jge 0x48c784
mov dword [esp + 0x2c], eax
jmp 0x48c784
cmp ebx, 1
jl 0x48c765
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48cae7
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48c748
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x2c]
jge 0x48c784
mov dword [esp + 0x2c], eax
jmp 0x48c784
test esi, esi
jl 0x48cae7
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48cae7
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48c7cc
cmp dword [esp + 0x78], 0
jl 0x48cae7
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48c7b7
mov dword [esp + 0x44], eax
mov eax, ecx
cdq
idiv dword [esp + 0x3c]
neg eax
cmp eax, dword [esp + 0x2c]
jge 0x48c837
mov dword [esp + 0x2c], eax
jmp 0x48c837
cmp eax, 1
jl 0x48c819
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0x78], eax
jge 0x48cae7
mov eax, 0x10000
sub eax, ecx
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48c7f8
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x2c]
jge 0x48c837
mov dword [esp + 0x2c], eax
jmp 0x48c837
test ecx, ecx
jl 0x48cae7
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp ecx, eax
jge 0x48cae7
mov eax, dword [esp + 0x44]
mov edx, eax
imul eax, dword [esp + 0x3c]
imul edx, ebx
add esi, edx
mov edx, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*2]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
cmp eax, edx
mov dword [esp + 0x54], esi
mov dword [esp + 0x74], ecx
jg 0x48cae7
sub edx, eax
inc edx
mov dword [esp + 0x7c], edx
mov edx, ecx
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov eax, esi
sar eax, 0x10
add eax, edx
mov edx, esi
movzx esi, byte [eax]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x2c], esi
movzx esi, byte [eax + 1]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x44], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
add eax, esi
movzx esi, byte [eax]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x60], esi
and ecx, 0xfffe
inc ecx
and edx, 0xfffe
inc edx
mov esi, 0x10000
sub esi, edx
mov dword [esp + 0xb4], esi
mov ebx, 0x10000
sub ebx, ecx
imul esi, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x2c]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x80], edx
imul edx, dword [esp + 0x88]
mov eax, dword [edi + eax*4]
shr esi, 0x10
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x44]
shr esi, 0x18
shr edx, 0x10
imul edx, esi
mov esi, ecx
imul ecx, dword [esp + 0x80]
imul esi, dword [esp + 0xb4]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x50]
movzx ebx, word [ebx]
mov dword [esp + 0x88], ebx
shr ecx, 0x10
shr esi, 0x10
mov ebx, 0x100
sub ebx, ecx
sub ebx, esi
shr edx, 0x10
mov dword [esp + 0x38], ecx
movzx ecx, word [esp + 0x88]
sub ebx, edx
sub ebx, dword [esp + 0x30]
mov dword [esp + 0x5c], ecx
movzx ecx, byte [esp + 0x60]
mov dword [esp + 0x58], ebx
imul ecx, esi
movzx ebx, al
imul ebx, dword [esp + 0x38]
add ebx, ecx
movzx ecx, byte [esp + 0x44]
imul ecx, edx
mov dword [esp + 0x78], edx
mov dword [esp + 0xb4], esi
add ebx, ecx
movzx edx, byte [esp + 0x2c]
imul edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xb0]
add ebx, edx
shr ebx, cl
mov ecx, dword [esp + 0xb8]
mov edx, eax
and edx, 0xff00
shl ebx, cl
imul edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x98]
and eax, 0xff0000
imul ecx, dword [esp + 0x58]
imul eax, dword [esp + 0x38]
shr ecx, 8
and ecx, dword [esp + 0x98]
add ebx, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff00
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff00
imul ecx, dword [esp + 0x78]
add edx, ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0xff00
imul ecx, dword [esp + 0x30]
add edx, ecx
mov ecx, dword [esp + 0xcc]
shr edx, cl
mov ecx, dword [esp + 0x48]
shl edx, cl
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x58]
shr ecx, 8
and ecx, dword [esp + 0x28]
add edx, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff0000
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff0000
imul ecx, dword [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0xff0000
imul ecx, dword [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x54]
or ebx, edx
mov edx, dword [esp + 0x94]
shl eax, cl
mov ecx, dword [esp + 0x5c]
and ecx, edx
imul ecx, dword [esp + 0x58]
shr ecx, 8
and ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x3c]
or ebx, eax
mov eax, dword [esp + 0x50]
mov word [eax], bx
mov ebx, dword [esp + 0x40]
add eax, 2
add esi, ebx
sub dword [esp + 0x7c], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x74], ecx
jne 0x48c87d
mov edx, dword [esp + 0x6c]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x34], eax
fild dword [esp + 0x34]
add dword [esp + 0x68], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48c68b
jmp 0x48e528
fnstsw ax
mov dword [esp + 0x68], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax]
mov dword [esp + 0x6c], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x2c], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0x78], edx
jg 0x48cc18
test eax, eax
jl 0x48cfd0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48cc02
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
cmp eax, dword [esp + 0x2c]
jge 0x48cc7e
mov dword [esp + 0x2c], eax
jmp 0x48cc7e
cmp ebx, 1
jl 0x48cc5f
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48cfd0
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48cc42
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x2c]
jge 0x48cc7e
mov dword [esp + 0x2c], eax
jmp 0x48cc7e
test esi, esi
jl 0x48cfd0
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48cfd0
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48ccc6
cmp dword [esp + 0x78], 0
jl 0x48cfd0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48ccb1
mov dword [esp + 0x44], eax
mov eax, ecx
cdq
idiv dword [esp + 0x3c]
neg eax
cmp eax, dword [esp + 0x2c]
jge 0x48cd31
mov dword [esp + 0x2c], eax
jmp 0x48cd31
cmp eax, 1
jl 0x48cd13
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0x78], eax
jge 0x48cfd0
mov eax, 0x10000
sub eax, ecx
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48ccf2
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x2c]
jge 0x48cd31
mov dword [esp + 0x2c], eax
jmp 0x48cd31
test ecx, ecx
jl 0x48cfd0
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp ecx, eax
jge 0x48cfd0
mov eax, dword [esp + 0x44]
mov edx, eax
imul eax, dword [esp + 0x3c]
imul edx, ebx
add esi, edx
mov edx, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*2]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
cmp eax, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x74], ecx
jg 0x48cfd0
sub edx, eax
inc edx
mov dword [esp + 0xa0], edx
mov edx, ecx
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov eax, esi
sar eax, 0x10
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x34], edx
movzx edx, byte [eax + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov ebx, esi
and ebx, 0xfffe
inc ebx
and ecx, 0xfffe
inc ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x44], edx
mov edx, 0x10000
sub edx, ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x88], edx
shr ebx, 0x18
mov esi, 0x10000
sub esi, ecx
imul edx, esi
imul esi, dword [esp + 0x78]
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x2c]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x44]
mov eax, dword [edi + eax*4]
shr esi, 0x10
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x88]
imul esi, ecx
imul ecx, dword [esp + 0x78]
shr ebx, 0x18
shr ecx, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
shr ecx, 0x10
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x58]
movzx ecx, word [ecx]
shr esi, 0x10
mov ebx, 0x100
sub ebx, dword [esp + 0x60]
movzx ecx, cx
sub ebx, esi
sub ebx, dword [esp + 0x30]
shr edx, 0x10
sub ebx, edx
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0x44]
mov dword [esp + 0x5c], ebx
imul ecx, esi
movzx ebx, al
imul ebx, dword [esp + 0x60]
add ebx, ecx
movzx ecx, byte [esp + 0x2c]
imul ecx, dword [esp + 0x30]
add ebx, ecx
movzx ecx, byte [esp + 0x34]
mov dword [esp + 0x7c], edx
imul ecx, edx
mov dword [esp + 0x54], esi
add ebx, ecx
mov ecx, dword [esp + 0xb0]
shr ebx, cl
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x38]
shl ebx, cl
mov ecx, dword [esp + 0x98]
and edx, ecx
imul edx, dword [esp + 0x5c]
shr edx, 8
and edx, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff00
imul ecx, esi
add ebx, edx
mov edx, eax
and edx, 0xff00
imul edx, dword [esp + 0x60]
add edx, ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0xff00
imul ecx, dword [esp + 0x30]
add edx, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff00
imul ecx, dword [esp + 0x7c]
add edx, ecx
mov ecx, dword [esp + 0xcc]
shr edx, cl
mov ecx, dword [esp + 0x48]
and eax, 0xff0000
imul eax, dword [esp + 0x60]
shl edx, cl
mov ecx, dword [esp + 0x38]
and ecx, dword [esp + 0x28]
imul ecx, dword [esp + 0x5c]
shr ecx, 8
and ecx, dword [esp + 0x28]
add edx, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff0000
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x2c]
and ecx, 0xff0000
imul ecx, dword [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff0000
imul ecx, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x8c]
or ebx, edx
mov edx, dword [esp + 0x94]
shl eax, cl
mov ecx, dword [esp + 0x38]
and ecx, edx
imul ecx, dword [esp + 0x5c]
shr ecx, 8
and ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x3c]
or ebx, eax
mov eax, dword [esp + 0x58]
mov word [eax], bx
mov ebx, dword [esp + 0x40]
add eax, 2
add esi, ebx
sub dword [esp + 0xa0], 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], esi
mov dword [esp + 0x74], ecx
jne 0x48cd7d
mov edx, dword [esp + 0x6c]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x50], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48cb85
jmp 0x48e528
mov eax, dword [esi + 0xc]
mov dword [esp + 0x78], eax
mov eax, dword [esi]
inc eax
mov dword [esp + 0x80], eax
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
inc eax
mov dword [esp + 0xb4], eax
fnstsw ax
inc esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x68], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x60]
lea edx, [ecx + ecx]
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
sar edx, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa0], eax
jg 0x48d11e
test edx, edx
jl 0x48d52e
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48d115
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48d156
cmp ebx, 1
jl 0x48d165
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x48d52e
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48d148
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48d183
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x48d183
test esi, esi
jl 0x48d52e
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x48d52e
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48d1d2
cmp dword [esp + 0xa0], 0
jl 0x48d52e
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48d1bb
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
neg eax
cmp eax, ecx
jge 0x48d24c
mov ecx, eax
jmp 0x48d24c
cmp eax, 1
jl 0x48d228
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48d52e
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48d207
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, ecx
jge 0x48d24c
mov ecx, eax
jmp 0x48d24c
cmp dword [esp + 0x2c], 0
jl 0x48d52e
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp dword [esp + 0x2c], edx
jge 0x48d52e
mov eax, dword [esp + 0x44]
mov edx, ebx
imul edx, eax
add esi, edx
mov edx, dword [esp + 0x3c]
imul edx, eax
add dword [esp + 0x2c], edx
cmp eax, ecx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*2]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x4c], edx
jg 0x48d52e
sub ecx, eax
inc ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x2c]
mov edx, eax
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov ecx, esi
sar ecx, 0x10
add ecx, edx
mov edx, esi
movzx esi, byte [ecx]
mov ebx, dword [edi + esi*4]
movzx esi, byte [ecx + 1]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x44], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
add ecx, esi
movzx esi, byte [ecx]
movzx ecx, byte [ecx + 1]
mov ecx, dword [edi + ecx*4]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x58]
movzx ecx, word [ecx]
mov dword [esp + 0x60], esi
and edx, 0xfffe
mov dword [esp + 0x88], ecx
inc edx
and eax, 0xfffe
mov dword [esp + 0xa0], edx
inc eax
mov esi, 0x10000
sub esi, edx
mov edx, esi
imul esi, eax
mov ecx, 0x10000
sub ecx, eax
imul eax, dword [esp + 0xa0]
imul edx, ecx
imul ecx, dword [esp + 0xa0]
mov dword [esp + 0x38], ebx
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x44]
shr ecx, 0x10
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x78]
shr ecx, 0x10
imul ecx, ebx
shr esi, 0x10
sar ecx, 8
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x60]
shr ecx, 0x18
imul esi, ecx
shr esi, 0x10
imul esi, ebx
sar esi, 8
mov ecx, esi
mov esi, dword [esp + 0x34]
shr esi, 0x18
shr eax, 0x10
imul eax, esi
shr eax, 0x10
imul eax, ebx
movzx ebx, word [esp + 0x88]
shr edx, 0x10
imul edx, dword [esp + 0x78]
sar eax, 8
mov esi, 0x100
sub esi, eax
sub esi, ecx
sub esi, dword [esp + 0x74]
sar edx, 8
sub esi, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x34]
and ebx, 0xff00
imul ebx, eax
mov eax, dword [esp + 0x60]
and eax, 0xff00
imul eax, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff00
imul ecx, dword [esp + 0x74]
add ebx, eax
mov eax, dword [esp + 0x38]
add ebx, ecx
and eax, 0xff00
imul eax, edx
add ebx, eax
mov ecx, dword [esp + 0xcc]
shr ebx, 8
imul ebx, dword [esp + 0xb4]
shr ebx, cl
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
and eax, 0xff0000
shl ebx, cl
imul eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x28]
and ecx, dword [esp + 0x5c]
imul ecx, esi
shr ecx, 8
and ecx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff0000
imul ecx, dword [esp + 0x54]
add eax, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff0000
imul ecx, dword [esp + 0x74]
add eax, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xff0000
imul ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, 8
imul eax, dword [esp + 0x80]
shr eax, cl
mov ecx, dword [esp + 0x9c]
shl eax, cl
mov ecx, dword [esp + 0x94]
and ecx, dword [esp + 0x5c]
imul ecx, esi
movzx esi, byte [esp + 0x34]
imul esi, dword [esp + 0xa0]
shr ecx, 8
and ecx, dword [esp + 0x94]
add eax, ecx
movzx ecx, byte [esp + 0x44]
imul ecx, dword [esp + 0x74]
or ebx, eax
movzx eax, byte [esp + 0x60]
imul eax, dword [esp + 0x54]
add esi, eax
movzx eax, byte [esp + 0x38]
add esi, ecx
imul eax, edx
mov ecx, dword [esp + 0xb0]
add esi, eax
mov eax, dword [esp + 0x98]
shr esi, 8
imul esi, dword [esp + 0x90]
shr esi, cl
mov ecx, dword [esp + 0xb8]
shl esi, cl
mov ecx, eax
and ecx, dword [esp + 0x5c]
imul ecx, dword [esp + 0x7c]
shr ecx, 8
and ecx, eax
mov eax, dword [esp + 0x58]
add esi, ecx
or ebx, esi
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x2c], edx
mov word [eax], bx
mov ebx, dword [esp + 0x40]
add eax, 2
add esi, ebx
sub dword [esp + 0x30], 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], esi
jne 0x48d28d
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x64], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48d095
jmp 0x48e528
cmp eax, 0x20
jne 0x48e532
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0x4c]
fistp qword [esp + 0xf8]
mov edx, dword [esp + 0xf8]
fldcw word [esp + 0x70]
imul edx, eax
shr edx, 2
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
shr eax, 2
lea edx, [ecx + edx*4]
mov dword [esp + 0x38], eax
mov eax, esi
mov dword [esp + 0x64], edx
call fcn.00434970
fld qword [esp + 0xe8]
fcomp qword [0x82dc20]
test al, al
je 0x48dfc9
cmp byte [0x88b5b8], 0
fnstsw ax
je 0x48dae1
mov dword [esp + 0xb0], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax*4]
mov dword [esp + 0x60], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov dword [esp + 0x6c], edx
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0xa0], edx
jg 0x48d703
test eax, eax
jl 0x48daa8
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48d6ed
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jge 0x48d769
mov dword [esp + 0x6c], eax
jmp 0x48d769
cmp ebx, 1
jl 0x48d74a
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48daa8
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48d72d
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jge 0x48d769
mov dword [esp + 0x6c], eax
jmp 0x48d769
test esi, esi
jl 0x48daa8
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48daa8
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48d7b4
cmp dword [esp + 0xa0], 0
jl 0x48daa8
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48d79f
mov dword [esp + 0x44], eax
mov eax, ecx
cdq
idiv dword [esp + 0x3c]
neg eax
cmp eax, dword [esp + 0x6c]
jge 0x48d822
mov dword [esp + 0x6c], eax
jmp 0x48d822
cmp eax, 1
jl 0x48d804
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48daa8
mov eax, 0x10000
sub eax, ecx
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48d7e3
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x6c]
jge 0x48d822
mov dword [esp + 0x6c], eax
jmp 0x48d822
test ecx, ecx
jl 0x48daa8
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp ecx, eax
jge 0x48daa8
mov eax, dword [esp + 0x44]
mov edx, eax
imul eax, dword [esp + 0x3c]
imul edx, ebx
add esi, edx
mov edx, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*4]
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x6c]
cmp eax, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ecx
jg 0x48daa8
sub edx, eax
inc edx
mov dword [esp + 0x54], edx
mov edx, ecx
sar edx, 0x10
imul edx, dword [esp + 0x4c]
add edx, dword [esp + 0xbc]
mov eax, esi
sar eax, 0x10
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x84], edx
movzx edx, byte [eax + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov ebx, esi
and ebx, 0xfffe
inc ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x34], edx
and ecx, 0xfffe
inc ecx
mov edx, 0x10000
sub edx, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x88], edx
shr ebx, 0x18
mov esi, 0x10000
sub esi, ecx
imul edx, esi
imul esi, dword [esp + 0xa0]
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x34]
mov eax, dword [edi + eax*4]
shr esi, 0x10
mov dword [esp + 0x5c], esi
mov esi, ecx
imul ecx, dword [esp + 0xa0]
imul esi, dword [esp + 0x88]
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x68]
mov ebx, dword [ebx]
mov dword [esp + 0x50], ebx
shr ecx, 0x10
shr esi, 0x10
shr edx, 0x10
mov dword [esp + 0x38], ecx
mov ebx, 0x100
sub ebx, ecx
mov ecx, dword [esp + 0x5c]
sub ebx, esi
sub ebx, ecx
sub ebx, edx
mov dword [esp + 0x58], edx
movzx edx, byte [esp + 0x34]
mov dword [esp + 0xa0], ebx
imul edx, esi
movzx ebx, al
imul ebx, dword [esp + 0x38]
add ebx, edx
movzx edx, byte [esp + 0x48]
imul edx, ecx
movzx ecx, byte [esp + 0x84]
add ebx, edx
imul ecx, dword [esp + 0x58]
mov dword [esp + 0x88], esi
mov edx, dword [esp + 0x50]
add ebx, ecx
and edx, 0xffff00ff
imul edx, dword [esp + 0xa0]
and ebx, 0xff00
add ebx, edx
mov edx, dword [esp + 0x34]
mov ecx, eax
and ecx, 0xff00
imul ecx, dword [esp + 0x38]
and edx, 0xff00
imul edx, esi
add ecx, edx
mov edx, dword [esp + 0x48]
and edx, 0xff00
imul edx, dword [esp + 0x5c]
add ecx, edx
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x50]
and edx, 0xff00
imul edx, dword [esp + 0x58]
add ecx, edx
mov edx, dword [esp + 0xa0]
and ecx, 0xffff0000
and esi, 0xff00
imul esi, edx
add ecx, esi
xor ebx, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x88]
and eax, 0xff00ff
imul eax, dword [esp + 0x38]
add eax, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x5c]
add eax, ecx
mov ecx, dword [esp + 0x84]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x50]
and ecx, 0xff00ff
imul ecx, edx
and eax, 0xff00ff00
add eax, ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x3c]
and ebx, 0xff0000
xor ebx, eax
mov eax, dword [esp + 0x68]
shr ebx, 8
mov dword [eax], ebx
mov ebx, dword [esp + 0x40]
add eax, 4
add esi, ebx
sub dword [esp + 0x54], 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], ecx
jne 0x48d868
mov eax, 1
add dword [esp + 0xb0], eax
fild dword [esp + 0xb0]
add dword [esp + 0x9c], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x64], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48d66a
jmp 0x48e528
mov dword [esp + 0x6c], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x38]
lea edx, [ecx*4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edx, esi
mov dword [esp + 0x2c], eax
sar eax, 0x10
sar edx, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa0], eax
jg 0x48dbda
test edx, edx
jl 0x48df99
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48dbd1
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48dc12
cmp ebx, 1
jl 0x48dc21
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
dec eax
cmp edx, eax
jge 0x48df99
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48dc04
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48dc3f
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x48dc3f
test esi, esi
jl 0x48df99
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x48df99
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48dc8e
cmp dword [esp + 0xa0], 0
jl 0x48df99
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48dc77
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
neg eax
cmp eax, ecx
jge 0x48dd05
mov ecx, eax
jmp 0x48dd05
cmp eax, 1
jl 0x48dce2
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48df99
mov eax, 0x10000
sub eax, dword [esp + 0x2c]
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48dcbf
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, ecx
jge 0x48dd05
mov ecx, eax
jmp 0x48dd05
cmp dword [esp + 0x2c], 0
jl 0x48df99
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp dword [esp + 0x2c], eax
jge 0x48df99
mov eax, dword [esp + 0x44]
mov edx, eax
imul eax, dword [esp + 0x3c]
add dword [esp + 0x2c], eax
imul edx, ebx
mov eax, dword [esp + 0x44]
add esi, edx
cmp eax, ecx
mov edx, dword [esp + 0x64]
lea edx, [edx + eax*4]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], edx
jg 0x48df99
sub ecx, eax
inc ecx
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x2c]
mov ecx, eax
sar ecx, 0x10
imul ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0xbc]
mov edx, esi
sar edx, 0x10
add edx, ecx
mov ecx, esi
movzx esi, byte [edx]
mov ebx, dword [edi + esi*4]
movzx esi, byte [edx + 1]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x74], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
add edx, esi
movzx esi, byte [edx]
mov esi, dword [edi + esi*4]
movzx edx, byte [edx + 1]
mov edx, dword [edi + edx*4]
and eax, 0xfffe
inc eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], edx
and ecx, 0xfffe
inc ecx
mov dword [esp + 0xb4], ecx
mov esi, 0x10000
sub esi, eax
mov edx, 0x10000
sub edx, ecx
imul ecx, esi
mov dword [esp + 0x88], edx
imul edx, esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x38], ebx
shr esi, 0x18
shr ebx, 0x18
shr ecx, 0x10
imul ecx, esi
mov esi, eax
imul eax, dword [esp + 0xb4]
imul esi, dword [esp + 0x88]
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x44]
shr ebx, 0x18
shr eax, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, dword [esp + 0x34]
shr ebx, 0x18
imul eax, ebx
mov ebx, dword [esp + 0x50]
mov ebx, dword [ebx]
mov dword [esp + 0x5c], ebx
shr eax, 0x10
shr esi, 0x10
mov ebx, 0x100
sub ebx, eax
sub ebx, esi
shr ecx, 0x10
sub ebx, ecx
shr edx, 0x10
sub ebx, edx
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xa0], eax
and ebx, 0xff00
imul ebx, eax
mov eax, dword [esp + 0x44]
and eax, 0xff00
imul eax, esi
add ebx, eax
mov eax, dword [esp + 0x74]
and eax, 0xff00
imul eax, ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], esi
add ebx, eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
and eax, dword [esp + 0x28]
and ecx, 0xff00
imul eax, dword [esp + 0x58]
imul ecx, edx
add ebx, ecx
mov ecx, dword [esp + 0xcc]
shr ebx, cl
mov ecx, dword [esp + 0x48]
shr eax, 8
and eax, dword [esp + 0x28]
shl ebx, cl
mov ecx, dword [esp + 0x44]
and ecx, 0xff0000
imul ecx, esi
add ebx, eax
mov eax, dword [esp + 0x34]
and eax, 0xff0000
imul eax, dword [esp + 0xa0]
add eax, ecx
mov ecx, dword [esp + 0x74]
and ecx, 0xff0000
imul ecx, dword [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xff0000
imul ecx, edx
add eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x9c]
movzx esi, byte [esp + 0x34]
shl eax, cl
imul esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x5c]
and ecx, dword [esp + 0x94]
imul ecx, dword [esp + 0x58]
shr ecx, 8
and ecx, dword [esp + 0x94]
add eax, ecx
movzx ecx, byte [esp + 0x74]
imul ecx, dword [esp + 0x78]
or ebx, eax
movzx eax, byte [esp + 0x44]
imul eax, dword [esp + 0x88]
add esi, eax
movzx eax, byte [esp + 0x38]
imul eax, edx
add esi, ecx
mov ecx, dword [esp + 0xb0]
add esi, eax
mov eax, dword [esp + 0x5c]
shr esi, cl
mov ecx, dword [esp + 0xb8]
shl esi, cl
mov ecx, dword [esp + 0x98]
and eax, ecx
imul eax, dword [esp + 0x58]
shr eax, 8
and eax, ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x2c], ecx
add esi, eax
mov eax, dword [esp + 0x50]
or ebx, esi
mov esi, dword [esp + 0x54]
mov dword [eax], ebx
mov ebx, dword [esp + 0x40]
add eax, 4
add esi, ebx
sub dword [esp + 0x7c], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
jne 0x48dd45
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
add dword [esp + 0x68], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48db51
jmp 0x48e528
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esi]
inc eax
mov dword [esp + 0xb4], eax
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
inc eax
mov dword [esp + 0x90], eax
fnstsw ax
inc esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x68], 0
test ah, 0x41
jne 0x48e530
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xc0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xa8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov ecx, dword [esp + 0x38]
lea edx, [ecx*4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x60], edx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xa8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov eax, esi
mov edx, ecx
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x44], 0
mov dword [esp + 0xa0], edx
jg 0x48e0f8
test eax, eax
jl 0x48e4fd
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48e0e2
mov dword [esp + 0x44], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jge 0x48e15e
mov dword [esp + 0x6c], eax
jmp 0x48e15e
cmp ebx, 1
jl 0x48e13f
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48e4fd
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48e122
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jge 0x48e15e
mov dword [esp + 0x6c], eax
jmp 0x48e15e
test esi, esi
jl 0x48e4fd
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48e4fd
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
jg 0x48e1a9
cmp dword [esp + 0xa0], 0
jl 0x48e4fd
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48e194
mov dword [esp + 0x44], eax
mov eax, ecx
cdq
idiv dword [esp + 0x3c]
neg eax
cmp eax, dword [esp + 0x6c]
jge 0x48e21a
mov dword [esp + 0x6c], eax
jmp 0x48e21a
cmp eax, 1
jl 0x48e1fb
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], eax
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48e4fd
mov eax, 0x10000
sub eax, ecx
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x44]
jle 0x48e1dc
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv dword [esp + 0x3c]
cmp eax, dword [esp + 0x6c]
jge 0x48e21a
mov dword [esp + 0x6c], eax
jmp 0x48e21a
test ecx, ecx
jl 0x48e4fd
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp ecx, edx
jge 0x48e4fd
mov eax, dword [esp + 0x44]
mov edx, eax
imul eax, dword [esp + 0x3c]
imul edx, ebx
add esi, edx
mov edx, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*4]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x6c]
cmp eax, edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x74], ecx
jg 0x48e4fd
sub edx, eax
inc edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x58]
mov ebx, ecx
sar ebx, 0x10
imul ebx, dword [esp + 0x4c]
add ebx, dword [esp + 0xbc]
mov eax, esi
mov edx, dword [edx]
sar eax, 0x10
add eax, ebx
mov ebx, esi
movzx esi, byte [eax]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x30], esi
movzx esi, byte [eax + 1]
mov esi, dword [edi + esi*4]
mov dword [esp + 0x6c], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
add eax, esi
movzx esi, byte [eax]
mov esi, dword [edi + esi*4]
and ebx, 0xfffe
inc ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x44], esi
and ecx, 0xfffe
inc ecx
mov esi, 0x10000
sub esi, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x88], esi
mov edx, 0x10000
sub edx, ecx
imul esi, edx
imul edx, dword [esp + 0xa0]
shr ebx, 0x18
shr edx, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, dword [esp + 0x6c]
shr ebx, 0x18
imul edx, ebx
shr edx, 0x10
imul edx, dword [esp + 0x34]
movzx eax, byte [eax + 1]
mov ebx, dword [esp + 0x44]
mov eax, dword [edi + eax*4]
sar edx, 8
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x88]
imul edx, ecx
imul ecx, dword [esp + 0xa0]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
shr ecx, 0x10
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
shr ecx, 0x10
imul ecx, dword [esp + 0x34]
shr edx, 0x10
imul edx, dword [esp + 0x34]
shr esi, 0x10
imul esi, dword [esp + 0x34]
sar ecx, 8
sar edx, 8
mov ebx, 0x100
sub ebx, ecx
sub ebx, edx
sub ebx, dword [esp + 0x2c]
sar esi, 8
sub ebx, esi
mov dword [esp + 0x5c], ebx
mov ebx, eax
and ebx, 0xff0000
mov dword [esp + 0xa0], ecx
imul ebx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x54], esi
mov dword [esp + 0x78], edx
and ecx, 0xff0000
imul ecx, edx
add ebx, ecx
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x30]
and ecx, 0xff0000
imul ecx, esi
and edx, 0xff0000
imul edx, dword [esp + 0x2c]
add ebx, edx
add ebx, ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x38]
shr ebx, 8
imul ebx, dword [esp + 0xb4]
shr ebx, cl
mov ecx, dword [esp + 0x9c]
shl ebx, cl
mov ecx, dword [esp + 0x94]
and edx, ecx
imul edx, dword [esp + 0x5c]
shr edx, 8
and edx, ecx
movzx ecx, byte [esp + 0x44]
imul ecx, dword [esp + 0x78]
add ebx, edx
movzx edx, al
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx ecx, byte [esp + 0x6c]
imul ecx, dword [esp + 0x2c]
add edx, ecx
movzx ecx, byte [esp + 0x30]
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0xb0]
shr edx, 8
imul edx, dword [esp + 0x80]
shr edx, cl
mov ecx, dword [esp + 0xb8]
and eax, 0xff00
imul eax, dword [esp + 0xa0]
shl edx, cl
mov ecx, dword [esp + 0x38]
and ecx, dword [esp + 0x98]
imul ecx, dword [esp + 0x5c]
shr ecx, 8
and ecx, dword [esp + 0x98]
add edx, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff00
imul ecx, dword [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x6c]
and ecx, 0xff00
imul ecx, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x30]
and ecx, 0xff00
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0xcc]
shr eax, 8
imul eax, dword [esp + 0x90]
shr eax, cl
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x7c]
or ebx, edx
mov edx, dword [esp + 0x28]
shl eax, cl
mov ecx, dword [esp + 0x38]
and ecx, edx
imul ecx, dword [esp + 0x5c]
shr ecx, 8
and ecx, edx
mov edx, dword [esp + 0x58]
add eax, ecx
or ebx, eax
mov dword [edx], ebx
add edx, 4
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x40]
add ecx, dword [esp + 0x3c]
add esi, ebx
sub dword [esp + 0x8c], 1
mov dword [esp + 0x7c], esi
mov dword [esp + 0x74], ecx
jne 0x48e267
mov edx, dword [esp + 0x60]
add dword [esp + 0x64], edx
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x50], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48e062
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0xf4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x84]
call edx
mov esi, dword [esp + 0xf4]
call fcn.0047b1d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
mov dword [esp + 0xb0], edi
call fcn.0045a0e0
test edi, edi
jne 0x48f263
mov edi, eax
mov eax, dword [ebp + 0x14]
imul edi, dword [eax + 4]
add edi, dword [eax]
mov eax, dword [ebx]
mov edx, dword [eax + 0x40]
add edi, edi
mov ecx, ebx
add edi, edi
call edx
add eax, edi
fld qword [ebp + 0x24]
mov dword [esp + 0xb0], eax
call fcn.007701e0
fstp qword [esp + 0xa0]
fld qword [ebp + 0x24]
call fcn.0076fe20
fst qword [esp + 0xf8]
fld qword [esp + 0xa0]
fld qword [0x82de30]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fmulp st(1)
mov ebx, eax
mov dword [esp + 0x90], ebx
call fcn.0076f850
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x80]
call edx
test al, al
je 0x4900af
mov ecx, dword [esi + 0x60]
mov eax, dword [ecx]
mov edx, dword [eax + 0x4c]
call edx
mov eax, dword [eax + 0x28]
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov dword [esp + 0x94], eax
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x20
sub ecx, dword [eax + 0x10]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x18
sub ecx, dword [eax + 0x14]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov edx, dword [esi + 0x94]
mov ecx, 0x10
sub ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x98]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0x90]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x44], edx
cmp eax, 0x10
jne 0x48ec91
fld qword [esp + 0xd0]
mov edi, dword [esi + 0x78]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
fldcw word [esp + 0x4c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x68], 0
fistp qword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
imul edx, edi
fldcw word [esp + 0x70]
fld qword [esp + 0xe8]
shr edx, 1
fcomp qword [0x82dc20]
add edx, ecx
lea ecx, [eax + edx*2]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi]
shr edi, 1
mov dword [esp + 0x88], edi
mov edi, dword [esi + 0xc]
imul ecx, edi
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
sar edx, 7
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0xb4], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
sar edx, 7
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x80], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0xc0], eax
fnstsw ax
test ah, 0x41
jne 0x490048
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld st(0)
fld qword [esp + 0xa0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xf8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov edx, dword [esp + 0x88]
mov dword [esp + 0x70], eax
lea eax, [edx + edx]
mov dword [esp + 0xa8], eax
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fld qword [esp + 0xf8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edi, eax
mov eax, esi
mov edx, edi
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa0], edx
jg 0x48e8a4
test eax, eax
jl 0x48ec5e
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48e89b
mov dword [esp + 0x40], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48e8dc
cmp ebx, 1
jl 0x48e8eb
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48ec5e
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48e8ce
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48e90a
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x48e90a
test esi, esi
jl 0x48ec5e
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48ec5e
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jg 0x48e955
cmp dword [esp + 0xa0], 0
jl 0x48ec5e
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, edi
sub eax, 0x27fff
cdq
idiv dword [esp + 0x64]
cmp eax, dword [esp + 0x40]
jle 0x48e940
mov dword [esp + 0x40], eax
mov eax, edi
cdq
idiv dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
neg eax
cmp eax, ecx
jge 0x48e9c3
mov ecx, eax
jmp 0x48e9c3
cmp eax, 1
jl 0x48e9a4
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48ec5e
mov eax, 0x10000
sub eax, edi
cdq
idiv dword [esp + 0x64]
cmp eax, dword [esp + 0x40]
jle 0x48e984
mov dword [esp + 0x40], eax
mov edx, ecx
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, edi
sub eax, 0x17fff
cdq
idiv dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jge 0x48e9c3
mov ecx, eax
jmp 0x48e9c3
test edi, edi
jl 0x48ec5e
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp edi, edx
jge 0x48ec5e
mov eax, dword [esp + 0x40]
mov edx, eax
imul eax, dword [esp + 0x64]
imul edx, ebx
add esi, edx
mov edx, dword [esp + 0x50]
add edi, eax
mov eax, dword [esp + 0x40]
cmp eax, ecx
lea edx, [edx + eax*2]
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x4c], edx
jg 0x48ec5e
sub ecx, eax
inc ecx
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xb0]
mov eax, edi
sar eax, 0x10
imul eax, dword [esp + 0x4c]
mov ecx, esi
sar ecx, 0x10
add eax, ecx
lea edx, [edx + eax*4]
mov ecx, esi
mov esi, dword [edx + 4]
mov dword [esp + 0x60], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
and ecx, 0xfffe
inc ecx
mov eax, edi
mov edi, dword [edx]
lea edx, [edx + esi*4]
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x48], esi
and eax, 0xfffe
inc eax
mov dword [esp + 0x34], edx
mov ebx, 0x10000
sub ebx, ecx
mov edx, ebx
mov esi, 0x10000
sub esi, eax
imul edx, esi
mov dword [esp + 0x38], edi
shr edi, 0x18
shr edx, 0x10
imul edx, edi
mov edi, ecx
imul edi, esi
mov esi, dword [esp + 0x60]
shr esi, 0x18
shr edi, 0x10
imul edi, esi
mov esi, eax
imul eax, ecx
mov ecx, dword [esp + 0x34]
imul esi, ebx
mov ebx, dword [esp + 0x48]
shr ecx, 0x18
shr eax, 0x10
imul eax, ecx
shr ebx, 0x18
shr esi, 0x10
imul esi, ebx
shr eax, 0x10
mov ebx, eax
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax]
movzx eax, cx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0xa0], ebx
and ecx, 0xff0000
imul ecx, ebx
mov ebx, dword [esp + 0x48]
and ebx, 0xff0000
shr esi, 0x10
imul ebx, esi
add ecx, ebx
mov ebx, dword [esp + 0x60]
and ebx, 0xff0000
shr edi, 0x10
imul ebx, edi
add ecx, ebx
mov ebx, dword [esp + 0x38]
and ebx, 0xff0000
shr edx, 0x10
imul ebx, edx
add ecx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x98], esi
mov dword [esp + 0x78], eax
shr ebx, cl
imul ebx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xcc]
and ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0x84]
shr eax, cl
mov ecx, dword [esp + 0x94]
shr ebx, 8
add ebx, eax
mov bx, word [ecx + ebx*4]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x34]
shl bx, cl
mov ecx, dword [esp + 0x48]
and eax, 0xff00
imul eax, dword [esp + 0xa0]
and ecx, 0xff00
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xff00
imul ecx, edx
add eax, ecx
imul eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x44]
and esi, dword [esp + 0x78]
add ecx, 8
shr eax, cl
mov ecx, dword [esp + 0x9c]
shr esi, cl
mov ecx, dword [esp + 0x74]
add eax, esi
movzx eax, word [ecx + eax*4]
mov ecx, dword [esp + 0x9c]
shl ax, cl
movzx ecx, byte [esp + 0x48]
imul ecx, dword [esp + 0x98]
or bx, ax
movzx eax, byte [esp + 0x34]
imul eax, dword [esp + 0xa0]
add eax, ecx
movzx ecx, byte [esp + 0x60]
imul ecx, edi
add eax, ecx
movzx ecx, byte [esp + 0x38]
imul ecx, edx
mov edx, dword [esp + 0x28]
and edx, dword [esp + 0x78]
add eax, ecx
imul eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x54]
add edi, dword [esp + 0x64]
add ecx, 8
shr eax, cl
mov ecx, dword [esp + 0x2c]
shr edx, cl
mov dword [esp + 0x7c], edi
add eax, edx
mov edx, dword [esp + 0x3c]
movzx eax, word [edx + eax*4]
shl ax, cl
or bx, ax
mov eax, dword [esp + 0x5c]
mov word [eax], bx
mov ebx, dword [esp + 0x90]
add eax, 2
add esi, ebx
sub dword [esp + 0x8c], 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], esi
jne 0x48ea08
mov ecx, dword [esp + 0xa8]
add dword [esp + 0x50], ecx
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48e81b
jmp 0x490040
cmp eax, 0x20
jne 0x49004a
fld qword [esp + 0xd0]
mov edi, dword [esi + 0x78]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
fldcw word [esp + 0xa8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], 0
fistp qword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
imul edx, edi
fldcw word [esp + 0x70]
fld qword [esp + 0xe8]
shr edx, 2
fcomp qword [0x82dc20]
add edx, ecx
lea ecx, [eax + edx*4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi]
shr edi, 2
mov dword [esp + 0xc0], edi
mov edi, dword [esi + 0xc]
imul ecx, edi
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
sar edx, 7
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
sar edx, 7
imul ecx, edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0xb4], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x80], eax
fnstsw ax
test ah, 0x41
jne 0x490048
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld st(0)
fld qword [esp + 0xa0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xf8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x70], eax
lea eax, [edx*4]
mov dword [esp + 0x40], eax
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld qword [esp + 0xf8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov ecx, dword [esp + 0x70]
mov edi, eax
mov eax, esi
mov edx, edi
sar edx, 0x10
sar eax, 0x10
cmp ebx, 0xffffffff
mov dword [esp + 0x98], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0xa0], edx
jg 0x48ee81
test eax, eax
jl 0x48f233
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48ee78
mov dword [esp + 0x98], eax
mov eax, 0x7fff
sub eax, esi
jmp 0x48eebc
cmp ebx, 1
jl 0x48eecb
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x30], edx
dec edx
cmp eax, edx
jge 0x48f233
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48eeae
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
cmp eax, ecx
jge 0x48eeea
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x48eeea
test esi, esi
jl 0x48f233
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
shl edx, 0x10
sub edx, 0x10000
cmp esi, edx
jge 0x48f233
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
jg 0x48ef3b
cmp dword [esp + 0xa0], 0
jl 0x48f233
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, edi
sub eax, 0x27fff
cdq
idiv dword [esp + 0x64]
cmp eax, dword [esp + 0x98]
jle 0x48ef26
mov dword [esp + 0x98], eax
mov eax, edi
cdq
idiv dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
neg eax
cmp eax, ecx
jge 0x48efaf
mov ecx, eax
jmp 0x48efaf
cmp eax, 1
jl 0x48ef90
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48f233
mov eax, 0x10000
sub eax, edi
cdq
idiv dword [esp + 0x64]
cmp eax, dword [esp + 0x98]
jle 0x48ef70
mov dword [esp + 0x98], eax
mov edx, ecx
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, edi
sub eax, 0x17fff
cdq
idiv dword [esp + 0x64]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
jge 0x48efaf
mov ecx, eax
jmp 0x48efaf
test edi, edi
jl 0x48f233
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0xc]
shl edx, 0x10
sub edx, 0x10000
cmp edi, edx
jge 0x48f233
mov eax, dword [esp + 0x98]
mov edx, ebx
imul edx, eax
add esi, edx
mov edx, dword [esp + 0x64]
imul edx, eax
add edi, edx
cmp eax, ecx
mov edx, dword [esp + 0x58]
lea edx, [edx + eax*4]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0xa8], edx
jg 0x48f233
sub ecx, eax
inc ecx
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0xb0]
mov eax, edi
sar eax, 0x10
imul eax, dword [esp + 0xa8]
mov ecx, esi
sar ecx, 0x10
add eax, ecx
mov ebx, dword [edx + eax*4]
lea edx, [edx + eax*4]
mov ecx, esi
mov esi, dword [edx + 4]
mov dword [esp + 0x48], esi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x2c]
lea edx, [edx + esi*4]
mov esi, dword [edx]
mov edx, dword [edx + 4]
and ecx, 0xfffe
inc ecx
mov dword [esp + 0x34], esi
mov eax, edi
and eax, 0xfffe
inc eax
mov dword [esp + 0xa0], edx
mov esi, 0x10000
sub esi, ecx
mov edx, esi
imul esi, eax
mov edi, 0x10000
sub edi, eax
imul eax, ecx
imul edx, edi
imul edi, ecx
mov dword [esp + 0x38], ebx
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x34]
shr eax, 0x10
shr esi, 0x10
shr ebx, 0x18
imul esi, ebx
mov ebx, dword [esp + 0xa0]
mov ecx, ebx
shr ecx, 0x18
imul eax, ecx
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], ecx
mov ecx, ebx
and ecx, 0xff0000
imul ecx, eax
mov eax, dword [esp + 0x34]
and eax, 0xff0000
shr esi, 0x10
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x48]
and eax, 0xff0000
shr edi, 0x10
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x38]
and eax, 0xff0000
shr edx, 0x10
imul eax, edx
add ecx, eax
mov eax, ecx
mov ecx, dword [esp + 0xb8]
shr eax, cl
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0xcc]
imul eax, dword [esp + 0x4c]
shr eax, 8
and esi, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
shr esi, cl
mov ecx, dword [esp + 0x94]
and ebx, 0xff00
imul ebx, dword [esp + 0x78]
add eax, esi
mov esi, dword [ecx + eax*4]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
and eax, 0xff00
imul eax, dword [esp + 0x54]
add ebx, eax
mov eax, dword [esp + 0x38]
shl esi, cl
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, edi
add ebx, ecx
and eax, 0xff00
imul eax, edx
mov ecx, dword [esp + 0xbc]
add ebx, eax
imul ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x44]
add ecx, 8
shr ebx, cl
mov ecx, dword [esp + 0x60]
and eax, dword [ecx]
mov ecx, dword [esp + 0x9c]
shr eax, cl
add ebx, eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + ebx*4]
movzx ebx, byte [esp + 0xa0]
imul ebx, dword [esp + 0x78]
shl eax, cl
movzx ecx, byte [esp + 0x34]
imul ecx, dword [esp + 0x54]
add ebx, ecx
movzx ecx, byte [esp + 0x38]
or esi, eax
imul ecx, edx
movzx eax, byte [esp + 0x48]
mov edx, dword [esp + 0x28]
imul eax, edi
add ebx, eax
mov eax, dword [esp + 0x60]
and edx, dword [eax]
add ebx, ecx
imul ebx, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x8c]
add edi, dword [esp + 0x64]
add ecx, 8
shr ebx, cl
mov ecx, dword [esp + 0x2c]
shr edx, cl
add eax, 4
mov dword [esp + 0x60], eax
mov dword [esp + 0x8c], edi
add ebx, edx
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + ebx*4]
mov ebx, dword [esp + 0x90]
shl edx, cl
or esi, edx
mov dword [eax - 4], esi
mov esi, dword [esp + 0x7c]
add esi, ebx
sub dword [esp + 0x68], 1
mov dword [esp + 0x7c], esi
jne 0x48eff8
mov eax, 1
add dword [esp + 0x50], eax
fild dword [esp + 0x50]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48edec
jmp 0x490040
mov ecx, dword [ebp + 0x14]
fld qword [ebp + 0x24]
imul eax, dword [ecx + 4]
add eax, dword [ebx + 0x50]
add eax, dword [ecx]
mov dword [esp + 0x8c], eax
call fcn.007701e0
fstp qword [esp + 0xa0]
fld qword [ebp + 0x24]
call fcn.0076fe20
fst qword [esp + 0xf8]
fld qword [esp + 0xa0]
fld qword [0x82de30]
fmul st(1), st(0)
fxch st(1)
call fcn.0076f850
fmulp st(1)
mov dword [esp + 0x3c], eax
call fcn.0076f850
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx]
mov ebx, eax
mov eax, dword [edx + 0x80]
mov dword [esp + 0x64], ebx
call eax
test al, al
je 0x4900af
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x80], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x84], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x20
sub ecx, dword [eax + 0x10]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, 0x18
sub ecx, dword [eax + 0x14]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov edx, dword [esi + 0x94]
mov ecx, 0x10
sub ecx, dword [eax + 0x18]
mov eax, dword [esi + 0x98]
mov dword [esp + 0xbc], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x90]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x28], edx
cmp eax, 0x10
jne 0x48f9ff
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0xa8]
mov dword [esp + 0x68], 0
fistp qword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
imul edx, eax
fldcw word [esp + 0x70]
fld qword [esp + 0xe8]
shr eax, 1
fcomp qword [0x82dc20]
shr edx, 1
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0xc]
lea edx, [ecx + edx*2]
mov ecx, dword [esi]
imul ecx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x50], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [esp + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0xb4], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x88], eax
fnstsw ax
test ah, 0x41
jne 0x490048
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld st(0)
fld qword [esp + 0xa0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xf8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc0]
lea ecx, [eax + eax]
mov dword [esp + 0x30], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld qword [esp + 0xf8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov eax, esi
sar eax, 0x10
mov dword [esp + 0x90], eax
mov eax, ecx
sar eax, 0x10
cmp dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x6c], 0
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], eax
jg 0x48f5df
cmp dword [esp + 0x90], 0
jl 0x48f9cf
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x3c]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48f5b7
mov dword [esp + 0x6c], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x64]
cmp eax, edx
jge 0x48f65b
mov edx, eax
mov dword [esp + 0x98], edx
jmp 0x48f65b
cmp dword [esp + 0x3c], 1
jl 0x48f63d
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
dec eax
cmp dword [esp + 0x90], eax
jge 0x48f9cf
mov ebx, dword [esp + 0x3c]
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48f610
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x64]
cmp eax, edx
jge 0x48f65b
mov edx, eax
mov dword [esp + 0x98], eax
jmp 0x48f65b
test esi, esi
jl 0x48f9cf
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x48f9cf
cmp ebx, 0xffffffff
jg 0x48f6a1
cmp dword [esp + 0xa0], 0
jl 0x48f9cf
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jle 0x48f68b
mov dword [esp + 0x6c], eax
mov eax, ecx
cdq
idiv ebx
mov edx, dword [esp + 0x98]
neg eax
cmp eax, edx
jge 0x48f70e
mov edx, eax
jmp 0x48f70e
cmp ebx, 1
jl 0x48f6f0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x48f9cf
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jle 0x48f6ce
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
mov edx, dword [esp + 0x98]
cmp eax, edx
jge 0x48f70e
mov edx, eax
jmp 0x48f70e
test ecx, ecx
jl 0x48f9cf
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp ecx, eax
jge 0x48f9cf
mov eax, dword [esp + 0x6c]
imul eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x50]
add esi, eax
mov eax, dword [esp + 0x6c]
imul eax, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x6c]
cmp eax, edx
lea ebx, [ebx + eax*2]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x2c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0xa8], ebx
jg 0x48f9cb
sub edx, eax
inc edx
mov dword [esp + 0x7c], edx
mov edx, ecx
sar edx, 0x10
imul edx, dword [esp + 0xa8]
add edx, dword [esp + 0x8c]
mov eax, esi
sar eax, 0x10
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x48], edx
movzx edx, byte [eax + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add edx, eax
movzx eax, byte [edx]
movzx edx, byte [edx + 1]
mov edx, dword [edi + edx*4]
mov eax, dword [edi + eax*4]
mov dword [esp + 0x60], edx
mov ebx, esi
and ebx, 0xfffe
inc ebx
mov dword [esp + 0x90], ebx
and ecx, 0xfffe
inc ecx
mov edx, 0x10000
sub edx, ebx
mov ebx, dword [esp + 0x48]
mov edi, edx
imul edx, ecx
shr ebx, 0x18
mov esi, 0x10000
sub esi, ecx
imul ecx, dword [esp + 0x90]
imul edi, esi
imul esi, dword [esp + 0x90]
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x34]
shr ebx, 0x18
shr edx, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, eax
shr ebx, 0x18
imul edx, ebx
mov ebx, dword [esp + 0x60]
shr ebx, 0x18
shr ecx, 0x10
imul ecx, ebx
mov ebx, dword [esp + 0x5c]
movzx ebx, word [ebx]
shr edx, 0x10
mov dword [esp + 0x38], ebx
mov dword [esp + 0xa0], edx
mov ebx, eax
and ebx, 0xff0000
imul ebx, edx
mov edx, dword [esp + 0x34]
and edx, 0xff0000
shr esi, 0x10
imul edx, esi
add ebx, edx
mov edx, dword [esp + 0x48]
and edx, 0xff0000
shr edi, 0x10
imul edx, edi
add ebx, edx
mov edx, dword [esp + 0x60]
shr ecx, 0x10
and edx, 0xff0000
imul edx, ecx
add ebx, edx
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xb8]
shr ebx, cl
mov dword [esp + 0xc0], esi
imul ebx, dword [esp + 0x4c]
shr ebx, 8
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x84]
shr edx, cl
mov ecx, dword [esp + 0x94]
add ebx, edx
mov bx, word [ecx + ebx*4]
mov ecx, dword [esp + 0x84]
shl bx, cl
movzx ecx, byte [esp + 0x34]
imul ecx, esi
movzx edx, al
imul edx, dword [esp + 0xa0]
add edx, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, edi
add edx, ecx
movzx ecx, byte [esp + 0x60]
imul ecx, dword [esp + 0x90]
add edx, ecx
imul edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
and esi, dword [esp + 0xbc]
add ecx, 8
shr edx, cl
mov ecx, dword [esp + 0x9c]
shr esi, cl
mov ecx, dword [esp + 0x44]
and eax, 0xff00
imul eax, dword [esp + 0xa0]
add edx, esi
mov dx, word [ecx + edx*4]
mov ecx, dword [esp + 0x9c]
shl dx, cl
mov ecx, dword [esp + 0x34]
and ecx, 0xff00
imul ecx, dword [esp + 0xc0]
add eax, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff00
imul ecx, dword [esp + 0x90]
add eax, ecx
imul eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
add esi, dword [esp + 0x3c]
or bx, dx
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x28]
add ecx, 8
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xb0]
shr edx, cl
mov dword [esp + 0x78], esi
add eax, edx
mov edx, dword [esp + 0x80]
mov ax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [esp + 0x54]
or bx, ax
mov eax, dword [esp + 0x5c]
mov word [eax], bx
mov ebx, dword [esp + 0x64]
add eax, 2
add ecx, ebx
sub dword [esp + 0x7c], 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ecx
jne 0x48f757
jmp 0x48f9cf
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x50], ecx
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48f51b
jmp 0x490040
cmp eax, 0x20
jne 0x49004a
fld qword [esp + 0xd0]
call fcn.0076f850
fld qword [esp + 0xd8]
mov ecx, eax
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
fld st(0)
or eax, 0xc00
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 0x30], ecx
fldcw word [esp + 0xa8]
mov dword [esp + 0x68], 0
fistp qword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
imul edx, eax
fldcw word [esp + 0x70]
fld qword [esp + 0xe8]
shr eax, 2
fcomp qword [0x82dc20]
shr edx, 2
add edx, ecx
mov ecx, dword [esi + 0x7c]
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0xc0], eax
mov eax, dword [esi + 0xc]
lea edx, [ecx + edx*4]
mov ecx, dword [esi]
imul ecx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x50], edx
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [esp + 0x90]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0xb4], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x88], eax
fnstsw ax
test ah, 0x41
jne 0x490048
fild dword [esp + 0x30]
fsub dword [ebp + 0x2c]
fsub dword [ebp + 0xc]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld st(0)
fld qword [esp + 0xa0]
fmul st(1), st(0)
fxch st(2)
fmul qword [esp + 0xf8]
fld qword [esp + 0xe0]
fsub qword [0x7a8008]
call fcn.0076f850
fxch st(3)
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc0]
lea ecx, [eax*4]
mov dword [esp + 0x30], ecx
call fcn.0076f850
fld dword [ebp + 0x30]
fld qword [0x82de30]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fsub st(2)
fsub dword [ebp + 0x10]
fstp dword [esp + 0xa8]
fld dword [esp + 0xa8]
fld qword [esp + 0xf8]
fmul st(1)
fsubr st(4)
fadd dword [ebp + 0x2c]
fmul st(2)
call fcn.0076f850
fmul st(4)
mov esi, eax
fadd st(5)
fadd st(2)
fmul st(1)
call fcn.0076f850
mov edx, dword [esp + 0x70]
mov ecx, eax
mov eax, esi
sar eax, 0x10
mov dword [esp + 0x90], eax
mov eax, ecx
sar eax, 0x10
cmp dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x6c], 0
mov dword [esp + 0x98], edx
mov dword [esp + 0xa0], eax
jg 0x48fc2f
cmp dword [esp + 0x90], 0
jl 0x490015
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
mov ebx, dword [esp + 0x3c]
shl eax, 0x10
sub eax, esi
sub eax, 0x27fff
cdq
idiv ebx
test eax, eax
jl 0x48fc07
mov dword [esp + 0x6c], eax
mov eax, 0x7fff
sub eax, esi
cdq
idiv ebx
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x64]
cmp eax, edx
jge 0x48fcab
mov edx, eax
mov dword [esp + 0x98], edx
jmp 0x48fcab
cmp dword [esp + 0x3c], 1
jl 0x48fc8d
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
dec eax
cmp dword [esp + 0x90], eax
jge 0x490015
mov ebx, dword [esp + 0x3c]
mov eax, 0x10000
sub eax, esi
cdq
idiv ebx
test eax, eax
jle 0x48fc60
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
shl eax, 0x10
sub eax, esi
sub eax, 0x17fff
cdq
idiv ebx
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x64]
cmp eax, edx
jge 0x48fcab
mov edx, eax
mov dword [esp + 0x98], eax
jmp 0x48fcab
test esi, esi
jl 0x490015
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
shl eax, 0x10
sub eax, 0x10000
cmp esi, eax
jge 0x490015
cmp ebx, 0xffffffff
jg 0x48fcf1
cmp dword [esp + 0xa0], 0
jl 0x490015
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x27fff
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jle 0x48fcdb
mov dword [esp + 0x6c], eax
mov eax, ecx
cdq
idiv ebx
mov edx, dword [esp + 0x98]
neg eax
cmp eax, edx
jge 0x48fd5e
mov edx, eax
jmp 0x48fd5e
cmp ebx, 1
jl 0x48fd40
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
dec eax
cmp dword [esp + 0xa0], eax
jge 0x490015
mov eax, 0x10000
sub eax, ecx
cdq
idiv ebx
cmp eax, dword [esp + 0x6c]
jle 0x48fd1e
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
shl eax, 0x10
sub eax, ecx
sub eax, 0x17fff
cdq
idiv ebx
mov edx, dword [esp + 0x98]
cmp eax, edx
jge 0x48fd5e
mov edx, eax
jmp 0x48fd5e
test ecx, ecx
jl 0x490015
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
shl eax, 0x10
sub eax, 0x10000
cmp ecx, eax
jge 0x490015
mov eax, dword [esp + 0x6c]
imul eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x50]
add esi, eax
mov eax, dword [esp + 0x6c]
imul eax, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x6c]
cmp eax, edx
lea ebx, [ebx + eax*4]
mov dword [esp + 0x5c], ebx
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x2c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0xa8], ebx
jg 0x490011
sub edx, eax
inc edx
mov dword [esp + 0x7c], edx
mov edx, ecx
sar edx, 0x10
imul edx, dword [esp + 0xa8]
add edx, dword [esp + 0x8c]
mov eax, esi
sar eax, 0x10
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x60], edx
movzx edx, byte [eax + 1]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x2c]
add eax, edx
movzx edx, byte [eax]
mov edx, dword [edi + edx*4]
movzx eax, byte [eax + 1]
mov eax, dword [edi + eax*4]
and ecx, 0xfffe
inc ecx
mov ebx, esi
and ebx, 0xfffe
inc ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x34], edx
mov esi, 0x10000
sub esi, ebx
mov ebx, dword [esp + 0x60]
mov edi, esi
imul esi, ecx
shr ebx, 0x18
mov edx, 0x10000
sub edx, ecx
imul ecx, dword [esp + 0x90]
imul edi, edx
imul edx, dword [esp + 0x90]
shr edi, 0x10
imul edi, ebx
mov ebx, dword [esp + 0x48]
shr ebx, 0x18
shr edx, 0x10
imul edx, ebx
mov ebx, dword [esp + 0x34]
shr ebx, 0x18
shr ecx, 0x10
shr esi, 0x10
imul esi, ebx
mov ebx, eax
shr ebx, 0x18
imul ecx, ebx
mov ebx, dword [esp + 0x5c]
mov ebx, dword [ebx]
mov dword [esp + 0x38], ebx
shr ecx, 0x10
mov dword [esp + 0x90], ecx
mov ebx, eax
and ebx, 0xff0000
imul ebx, ecx
mov ecx, dword [esp + 0x34]
and ecx, 0xff0000
shr esi, 0x10
imul ecx, esi
add ebx, ecx
mov ecx, dword [esp + 0x48]
shr edx, 0x10
and ecx, 0xff0000
imul ecx, edx
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0x60]
shr edi, 0x10
and edx, 0xff0000
imul edx, edi
add ebx, ecx
mov ecx, dword [esp + 0xb8]
add ebx, edx
shr ebx, cl
mov dword [esp + 0xc0], esi
imul ebx, dword [esp + 0x4c]
shr ebx, 8
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x84]
shr edx, cl
mov ecx, dword [esp + 0x94]
add ebx, edx
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x84]
shl ebx, cl
movzx ecx, byte [esp + 0x34]
imul ecx, esi
movzx edx, al
imul edx, dword [esp + 0x90]
add edx, ecx
movzx ecx, byte [esp + 0x48]
imul ecx, dword [esp + 0xa0]
add edx, ecx
movzx ecx, byte [esp + 0x60]
imul ecx, edi
add edx, ecx
imul edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
and esi, dword [esp + 0xbc]
add ecx, 8
shr edx, cl
mov ecx, dword [esp + 0x9c]
shr esi, cl
mov ecx, dword [esp + 0x44]
and eax, 0xff00
imul eax, dword [esp + 0x90]
add edx, esi
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x9c]
shl edx, cl
mov ecx, dword [esp + 0x34]
and ecx, 0xff00
imul ecx, dword [esp + 0xc0]
add eax, ecx
mov ecx, dword [esp + 0x48]
and ecx, 0xff00
imul ecx, dword [esp + 0xa0]
add eax, ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xff00
imul ecx, edi
add eax, ecx
imul eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
add esi, dword [esp + 0x3c]
or ebx, edx
mov edx, dword [esp + 0x38]
and edx, dword [esp + 0x28]
add ecx, 8
shr eax, cl
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xb0]
shr edx, cl
mov dword [esp + 0x78], esi
add eax, edx
mov edx, dword [esp + 0x80]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [esp + 0x54]
or ebx, eax
mov eax, dword [esp + 0x5c]
mov dword [eax], ebx
mov ebx, dword [esp + 0x64]
add eax, 4
add ecx, ebx
sub dword [esp + 0x7c], 1
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ecx
jne 0x48fda7
jmp 0x490015
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x50], ecx
mov eax, 1
add dword [esp + 0x68], eax
fild dword [esp + 0x68]
add dword [esp + 0x58], eax
fcomp qword [esp + 0xe8]
fnstsw ax
test ah, 5
jnp 0x48fb6b
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(1)
fstp st(0)
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x84]
call eax
mov esi, dword [esp + 0xf4]
call fcn.0047b1d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c
fld dword [ebp + 0x30]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
sub esp, 0x10
fstp dword [esp + 0xc]
fld dword [ebp + 0x2c]
fstp dword [esp + 8]
fld qword [ebp + 0x24]
fstp qword [esp]
push ecx
mov ecx, dword [ebp + 0x14]
fld dword [ebp + 0x10]
push edx
push eax
push ecx
sub esp, 8
fstp dword [esp + 4]
mov ecx, esi
fld dword [ebp + 0xc]
fstp dword [esp]
push edi
call fcn.00556890
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c