Function at 0x5d2e70
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x6cf0
call fcn.004010e0
mov eax, dword [ebp + 8]
mov eax, dword [0x5c50b0]
xor eax, ebp
mov dword [esp + 0x6ce8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x4ecc], eax
mov dword [esp + 0x4ec8], 0x62e4
mov dword [esp + 0x4ec4], 0x94a3
mov dword [esp + 0x4ec0], 0x73c6
mov eax, dword [esp + 0x4ec4]
mov dword [esp + 0x4ec8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ee8], xmm0
movsd xmm0, qword [esp + 0x5ee8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ee0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4784], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4784]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x478c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4788], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4788]
mov dl, al
mov eax, dword [esp + 0x478c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3109
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4778], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4778]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x477c], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x477c]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4780], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4780]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3104
mov dword [esp + 0x5edc], 0
cmp dword [esp + 0x5edc], 4
jae 0x5d30ff
movsd xmm0, qword [esp + 0x5ee0]
cvtsi2sd xmm1, dword [esp + 0x5edc]
addsd xmm0, xmm1
movsd qword [esp + 0x4770], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4770]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d306c
jp 0x5d306c
movsd xmm0, qword [esp + 0x5ee0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ee0], xmm0
jmp 0x5d2f09
movsd xmm0, qword [esp + 0x5ee0]
cvtsi2sd xmm1, dword [esp + 0x5edc]
addsd xmm0, xmm1
movsd qword [esp + 0x4768], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4768]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d30fa
jp 0x5d30fa
mov eax, dword [esp + 0x5edc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ee0]
addsd xmm0, xmm1
movsd qword [esp + 0x5ee0], xmm0
movsd xmm0, qword [esp + 0x5ee0]
cvtsi2sd xmm1, dword [esp + 0x5edc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ef4], eax
jmp 0x5d31c4
jmp 0x5d310e
jmp 0x5d2f09
jmp 0x5d310e
jmp 0x5d310e
movsd xmm0, qword [esp + 0x5ee0]
movsd qword [esp + 0x4758], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4750], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4750]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4764], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4754], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4754]
movsd xmm0, qword [esp + 0x4758]
mov dl, al
mov eax, dword [esp + 0x4764]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ef4], eax
mov eax, dword [esp + 0x5ef4]
mov dword [esp + 0x474c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4740], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4740]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4748], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4744], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4744]
mov dl, al
mov eax, dword [esp + 0x4748]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x474c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d3ccc
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4724], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4724]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4728], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4728]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x472c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x472c]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x473c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4730], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4730]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4738], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4734], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4734]
mov dl, al
mov eax, dword [esp + 0x4738]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x473c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d3ccc
mov dword [esp + 0x4ec0], 0x3d2a
mov dword [esp + 0x4ebc], 0x3751
mov dword [esp + 0x4eb8], 0x3e8f
mov dword [esp + 0x4eb4], 0xa6b0
mov eax, dword [esp + 0x4eb8]
mov dword [esp + 0x4ebc], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ed0], xmm0
movsd xmm0, qword [esp + 0x5ed0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ec8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4718], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4718]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4720], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x471c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x471c]
mov dl, al
mov eax, dword [esp + 0x4720]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d35bd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x470c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x470c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4710], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4710]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4714], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4714]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d35b8
mov dword [esp + 0x5ec4], 0
cmp dword [esp + 0x5ec4], 4
jae 0x5d35b3
movsd xmm0, qword [esp + 0x5ec8]
cvtsi2sd xmm1, dword [esp + 0x5ec4]
addsd xmm0, xmm1
movsd qword [esp + 0x4700], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4700]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d3520
jp 0x5d3520
movsd xmm0, qword [esp + 0x5ec8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ec8], xmm0
jmp 0x5d33bd
movsd xmm0, qword [esp + 0x5ec8]
cvtsi2sd xmm1, dword [esp + 0x5ec4]
addsd xmm0, xmm1
movsd qword [esp + 0x46f8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x46f8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d35ae
jp 0x5d35ae
mov eax, dword [esp + 0x5ec4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ec8]
addsd xmm0, xmm1
movsd qword [esp + 0x5ec8], xmm0
movsd xmm0, qword [esp + 0x5ec8]
cvtsi2sd xmm1, dword [esp + 0x5ec4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ed8], eax
jmp 0x5d3678
jmp 0x5d35c2
jmp 0x5d33bd
jmp 0x5d35c2
jmp 0x5d35c2
movsd xmm0, qword [esp + 0x5ec8]
movsd qword [esp + 0x46e8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x46e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x46e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46f4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x46e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x46e4]
movsd xmm0, qword [esp + 0x46e8]
mov dl, al
mov eax, dword [esp + 0x46f4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ed8], eax
mov eax, dword [esp + 0x5ed8]
mov dword [esp + 0x46dc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x46d0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x46d0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46d8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x46d4], eax
call fcn.005ceb20
mov edx, dword [esp + 0x46d4]
mov cl, al
mov eax, dword [esp + 0x46d8]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x46dc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d3cc7
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x46b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x46b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x46b8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x46bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x46bc]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x46cc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x46c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x46c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x46c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x46c4]
mov dl, al
mov eax, dword [esp + 0x46c8]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x46cc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d3cc7
mov dword [esp + 0x4eb4], 0x5f6d
mov dword [esp + 0x4eb0], 0xa5f7
mov dword [esp + 0x4eac], 0x2c70
mov dword [esp + 0x4ea8], 0x9c2a
mov eax, dword [esp + 0x4eac]
mov dword [esp + 0x4eb0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5eb8], xmm0
movsd xmm0, qword [esp + 0x5eb8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5eb0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x46a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x46a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46b0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x46ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x46ac]
mov dl, al
mov eax, dword [esp + 0x46b0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3a75
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x469c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x469c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x46a0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x46a0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x46a4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x46a4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3a70
mov dword [esp + 0x5eac], 0
cmp dword [esp + 0x5eac], 4
jae 0x5d3a6b
movsd xmm0, qword [esp + 0x5eb0]
cvtsi2sd xmm1, dword [esp + 0x5eac]
addsd xmm0, xmm1
movsd qword [esp + 0x4690], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4690]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d39d8
jp 0x5d39d8
movsd xmm0, qword [esp + 0x5eb0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5eb0], xmm0
jmp 0x5d3875
movsd xmm0, qword [esp + 0x5eb0]
cvtsi2sd xmm1, dword [esp + 0x5eac]
addsd xmm0, xmm1
movsd qword [esp + 0x4688], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4688]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d3a66
jp 0x5d3a66
mov eax, dword [esp + 0x5eac]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5eb0]
addsd xmm0, xmm1
movsd qword [esp + 0x5eb0], xmm0
movsd xmm0, qword [esp + 0x5eb0]
cvtsi2sd xmm1, dword [esp + 0x5eac]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ec0], eax
jmp 0x5d3b30
jmp 0x5d3a7a
jmp 0x5d3875
jmp 0x5d3a7a
jmp 0x5d3a7a
movsd xmm0, qword [esp + 0x5eb0]
movsd qword [esp + 0x4678], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4670], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4670]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4684], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4674], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4674]
movsd xmm0, qword [esp + 0x4678]
mov dl, al
mov eax, dword [esp + 0x4684]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ec0], eax
mov eax, dword [esp + 0x5ec0]
mov dword [esp + 0x466c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4660], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4660]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4668], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4664], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4664]
mov dl, al
mov eax, dword [esp + 0x4668]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x466c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d3cc2
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4644], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4644]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4648], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4648]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x464c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x464c]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x465c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4650], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4650]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4658], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4654], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4654]
mov dl, al
mov eax, dword [esp + 0x4658]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x465c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d3cc2
mov dword [esp + 0x4ea8], 0x3c01
jmp 0x5d3cc7
jmp 0x5d3ccc
mov eax, dword [esp + 0x4ecc]
mov ecx, dword [eax + 0x3c]
add eax, ecx
mov dword [esp + 0x4ea4], eax
mov eax, dword [esp + 0x4ecc]
mov ecx, dword [eax + 0x3c]
lea eax, [eax + ecx + 0xf8]
mov dword [esp + 0x4ea0], eax
mov dword [esp + 0x4e9c], 0x79e0
mov dword [esp + 0x4e98], 0x9d32
mov dword [esp + 0x4e94], 0x79ba
mov eax, dword [esp + 0x4e98]
mov dword [esp + 0x4e9c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ea0], xmm0
movsd xmm0, qword [esp + 0x5ea0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e98], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4638], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4638]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4640], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x463c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x463c]
mov dl, al
mov eax, dword [esp + 0x4640]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3f62
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x462c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x462c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4630], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4630]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4634], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4634]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d3f5d
mov dword [esp + 0x5e94], 0
cmp dword [esp + 0x5e94], 4
jae 0x5d3f58
movsd xmm0, qword [esp + 0x5e98]
cvtsi2sd xmm1, dword [esp + 0x5e94]
addsd xmm0, xmm1
movsd qword [esp + 0x4620], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4620]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d3ec5
jp 0x5d3ec5
movsd xmm0, qword [esp + 0x5e98]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e98], xmm0
jmp 0x5d3d62
movsd xmm0, qword [esp + 0x5e98]
cvtsi2sd xmm1, dword [esp + 0x5e94]
addsd xmm0, xmm1
movsd qword [esp + 0x4618], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4618]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d3f53
jp 0x5d3f53
mov eax, dword [esp + 0x5e94]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e98]
addsd xmm0, xmm1
movsd qword [esp + 0x5e98], xmm0
movsd xmm0, qword [esp + 0x5e98]
cvtsi2sd xmm1, dword [esp + 0x5e94]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ea8], eax
jmp 0x5d401d
jmp 0x5d3f67
jmp 0x5d3d62
jmp 0x5d3f67
jmp 0x5d3f67
movsd xmm0, qword [esp + 0x5e98]
movsd qword [esp + 0x4608], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4600], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4600]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4614], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4604], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4604]
movsd xmm0, qword [esp + 0x4608]
mov dl, al
mov eax, dword [esp + 0x4614]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ea8], eax
mov eax, dword [esp + 0x5ea8]
mov dword [esp + 0x45fc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x45f0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x45f0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45f8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x45f4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x45f4]
mov dl, al
mov eax, dword [esp + 0x45f8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x45fc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d41ae
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x45d4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x45d4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45d8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x45d8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x45dc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x45dc]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x45ec], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x45e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x45e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45e8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x45e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x45e4]
mov dl, al
mov eax, dword [esp + 0x45e8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x45ec]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d41ae
mov dword [esp + 0x4e94], 0x73d7
mov al, 1
cmp dword [esp + 0x4ecc], 0
mov byte [esp + 0x45d3], al
je 0x5d41ee
mov al, 1
cmp dword [esp + 0x4ea4], 0
mov byte [esp + 0x45d3], al
je 0x5d41ee
cmp dword [esp + 0x4ea0], 0
sete al
mov byte [esp + 0x45d3], al
mov al, byte [esp + 0x45d3]
movzx eax, al
and eax, 1
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5e88], xmm0
movsd xmm0, qword [esp + 0x5e88]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e80], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x45c4], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x45c4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45cc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x45c8], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x45c8]
mov dl, al
mov eax, dword [esp + 0x45cc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d4437
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x45b8], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x45b8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45bc], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x45bc]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x45c0], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x45c0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d4432
mov dword [esp + 0x5e7c], 0
cmp dword [esp + 0x5e7c], 4
jae 0x5d442d
movsd xmm0, qword [esp + 0x5e80]
cvtsi2sd xmm1, dword [esp + 0x5e7c]
addsd xmm0, xmm1
movsd qword [esp + 0x45b0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x45b0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d439a
jp 0x5d439a
movsd xmm0, qword [esp + 0x5e80]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e80], xmm0
jmp 0x5d4237
movsd xmm0, qword [esp + 0x5e80]
cvtsi2sd xmm1, dword [esp + 0x5e7c]
addsd xmm0, xmm1
movsd qword [esp + 0x45a8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x45a8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d4428
jp 0x5d4428
mov eax, dword [esp + 0x5e7c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e80]
addsd xmm0, xmm1
movsd qword [esp + 0x5e80], xmm0
movsd xmm0, qword [esp + 0x5e80]
cvtsi2sd xmm1, dword [esp + 0x5e7c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e90], eax
jmp 0x5d44f2
jmp 0x5d443c
jmp 0x5d4237
jmp 0x5d443c
jmp 0x5d443c
movsd xmm0, qword [esp + 0x5e80]
movsd qword [esp + 0x4598], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4590], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4590]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x45a4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4594], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4594]
movsd xmm0, qword [esp + 0x4598]
mov dl, al
mov eax, dword [esp + 0x45a4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e90], eax
mov eax, dword [esp + 0x5e90]
mov dword [esp + 0x458c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4580], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4580]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4588], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4584], eax
call fcn.005ceb20
mov edx, dword [esp + 0x4584]
mov cl, al
mov eax, dword [esp + 0x4588]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x458c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d46a8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4564], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4564]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4568], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4568]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x456c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x456c]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x457c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4570], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4570]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4578], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4574], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4574]
mov dl, al
mov eax, dword [esp + 0x4578]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x457c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d46a8
mov dword [esp + 0x4e90], 0
cmp dword [esp + 0x4e90], 0x17
jae 0x5d46a3
mov byte [esp + 0x4ed3], 0
jmp 0x606deb
jmp 0x5d46a8
mov dword [esp + 0x4e8c], 0x3b07
mov dword [esp + 0x4e88], 0x5af6
mov dword [esp + 0x4e84], 0x4e90
mov eax, dword [esp + 0x4e88]
mov dword [esp + 0x4e8c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5e58], xmm0
movsd xmm0, qword [esp + 0x5e58]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e50], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4558], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4558]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4560], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x455c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x455c]
mov dl, al
mov eax, dword [esp + 0x4560]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d4913
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x454c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x454c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4550], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4550]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4554], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4554]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d490e
mov dword [esp + 0x5e4c], 0
cmp dword [esp + 0x5e4c], 4
jae 0x5d4909
movsd xmm0, qword [esp + 0x5e50]
cvtsi2sd xmm1, dword [esp + 0x5e4c]
addsd xmm0, xmm1
movsd qword [esp + 0x4540], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4540]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d4876
jp 0x5d4876
movsd xmm0, qword [esp + 0x5e50]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e50], xmm0
jmp 0x5d4713
movsd xmm0, qword [esp + 0x5e50]
cvtsi2sd xmm1, dword [esp + 0x5e4c]
addsd xmm0, xmm1
movsd qword [esp + 0x4538], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4538]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d4904
jp 0x5d4904
mov eax, dword [esp + 0x5e4c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e50]
addsd xmm0, xmm1
movsd qword [esp + 0x5e50], xmm0
movsd xmm0, qword [esp + 0x5e50]
cvtsi2sd xmm1, dword [esp + 0x5e4c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e60], eax
jmp 0x5d49ce
jmp 0x5d4918
jmp 0x5d4713
jmp 0x5d4918
jmp 0x5d4918
movsd xmm0, qword [esp + 0x5e50]
movsd qword [esp + 0x4528], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4520], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4520]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4534], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4524], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4524]
movsd xmm0, qword [esp + 0x4528]
mov dl, al
mov eax, dword [esp + 0x4534]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e60], eax
mov eax, dword [esp + 0x5e60]
mov dword [esp + 0x451c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4510], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4510]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4518], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4514], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4514]
mov dl, al
mov eax, dword [esp + 0x4518]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x451c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d501a
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x44f4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x44f4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x44f8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x44f8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x44fc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x44fc]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x450c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4500], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4500]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4508], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4504], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4504]
mov dl, al
mov eax, dword [esp + 0x4508]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x450c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d501a
mov dword [esp + 0x4e84], 0x5580
mov dword [esp + 0x4e80], 0x2728
mov dword [esp + 0x4e7c], 0x84eb
mov dword [esp + 0x4e78], 0x33fc
mov eax, dword [esp + 0x4e7c]
mov dword [esp + 0x4e80], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5e40], xmm0
movsd xmm0, qword [esp + 0x5e40]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e38], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x44e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x44e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x44f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x44ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x44ec]
mov dl, al
mov eax, dword [esp + 0x44f0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d4dc9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x44dc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x44dc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x44e0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x44e0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x44e4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x44e4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d4dc4
mov dword [esp + 0x5e34], 0
cmp dword [esp + 0x5e34], 4
jae 0x5d4dbf
movsd xmm0, qword [esp + 0x5e38]
cvtsi2sd xmm1, dword [esp + 0x5e34]
addsd xmm0, xmm1
movsd qword [esp + 0x44d0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x44d0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d4d2c
jp 0x5d4d2c
movsd xmm0, qword [esp + 0x5e38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e38], xmm0
jmp 0x5d4bc9
movsd xmm0, qword [esp + 0x5e38]
cvtsi2sd xmm1, dword [esp + 0x5e34]
addsd xmm0, xmm1
movsd qword [esp + 0x44c8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x44c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d4dba
jp 0x5d4dba
mov eax, dword [esp + 0x5e34]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e38]
addsd xmm0, xmm1
movsd qword [esp + 0x5e38], xmm0
movsd xmm0, qword [esp + 0x5e38]
cvtsi2sd xmm1, dword [esp + 0x5e34]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e48], eax
jmp 0x5d4e84
jmp 0x5d4dce
jmp 0x5d4bc9
jmp 0x5d4dce
jmp 0x5d4dce
movsd xmm0, qword [esp + 0x5e38]
movsd qword [esp + 0x44b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x44b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x44b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x44c4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x44b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x44b4]
movsd xmm0, qword [esp + 0x44b8]
mov dl, al
mov eax, dword [esp + 0x44c4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e48], eax
mov eax, dword [esp + 0x5e48]
mov dword [esp + 0x44ac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x44a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x44a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x44a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x44a4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x44a4]
mov dl, al
mov eax, dword [esp + 0x44a8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x44ac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d5015
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4484], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4484]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4488], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4488]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x448c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x448c]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x449c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4490], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4490]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4498], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4494], eax
call fcn.005ceb20
mov edx, dword [esp + 0x4494]
mov cl, al
mov eax, dword [esp + 0x4498]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x449c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d5015
mov dword [esp + 0x4e78], 0x306d
jmp 0x5d501a
mov dword [esp + 0x4e74], 0x42bc
mov dword [esp + 0x4e70], 0x8681
mov dword [esp + 0x4e6c], 0x8c94
mov eax, dword [esp + 0x4e70]
mov dword [esp + 0x4e74], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5e28], xmm0
movsd xmm0, qword [esp + 0x5e28]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e20], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4478], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4478]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4480], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x447c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x447c]
mov dl, al
mov eax, dword [esp + 0x4480]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5285
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x446c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x446c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4470], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4470]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4474], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4474]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5280
mov dword [esp + 0x5e1c], 0
cmp dword [esp + 0x5e1c], 4
jae 0x5d527b
movsd xmm0, qword [esp + 0x5e20]
cvtsi2sd xmm1, dword [esp + 0x5e1c]
addsd xmm0, xmm1
movsd qword [esp + 0x4460], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4460]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d51e8
jp 0x5d51e8
movsd xmm0, qword [esp + 0x5e20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e20], xmm0
jmp 0x5d5085
movsd xmm0, qword [esp + 0x5e20]
cvtsi2sd xmm1, dword [esp + 0x5e1c]
addsd xmm0, xmm1
movsd qword [esp + 0x4458], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4458]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d5276
jp 0x5d5276
mov eax, dword [esp + 0x5e1c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e20]
addsd xmm0, xmm1
movsd qword [esp + 0x5e20], xmm0
movsd xmm0, qword [esp + 0x5e20]
cvtsi2sd xmm1, dword [esp + 0x5e1c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e30], eax
jmp 0x5d5340
jmp 0x5d528a
jmp 0x5d5085
jmp 0x5d528a
jmp 0x5d528a
movsd xmm0, qword [esp + 0x5e20]
movsd qword [esp + 0x4448], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4440], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4440]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4454], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4444], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4444]
movsd xmm0, qword [esp + 0x4448]
mov dl, al
mov eax, dword [esp + 0x4454]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e30], eax
mov eax, dword [esp + 0x5e30]
mov dword [esp + 0x443c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4430], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4430]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4438], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4434], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4434]
mov dl, al
mov eax, dword [esp + 0x4438]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x443c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d5988
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4414], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4414]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4418], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4418]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x441c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x441c]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x442c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4420], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4420]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4428], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4424], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4424]
mov dl, al
mov eax, dword [esp + 0x4428]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x442c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d5988
mov dword [esp + 0x4e6c], 0x3fac
mov dword [esp + 0x4e68], 0x6576
mov dword [esp + 0x4e64], 0x3c51
mov dword [esp + 0x4e60], 0x7bfd
mov eax, dword [esp + 0x4e64]
mov dword [esp + 0x4e68], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5e10], xmm0
movsd xmm0, qword [esp + 0x5e10]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5e08], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4408], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4408]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4410], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x440c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x440c]
mov dl, al
mov eax, dword [esp + 0x4410]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5738
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x43fc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x43fc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4400], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4400]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4404], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4404]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5733
mov dword [esp + 0x5e04], 0
cmp dword [esp + 0x5e04], 4
jae 0x5d572e
movsd xmm0, qword [esp + 0x5e08]
cvtsi2sd xmm1, dword [esp + 0x5e04]
addsd xmm0, xmm1
movsd qword [esp + 0x43f0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x43f0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d569b
jp 0x5d569b
movsd xmm0, qword [esp + 0x5e08]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5e08], xmm0
jmp 0x5d5538
movsd xmm0, qword [esp + 0x5e08]
cvtsi2sd xmm1, dword [esp + 0x5e04]
addsd xmm0, xmm1
movsd qword [esp + 0x43e8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x43e8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d5729
jp 0x5d5729
mov eax, dword [esp + 0x5e04]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5e08]
addsd xmm0, xmm1
movsd qword [esp + 0x5e08], xmm0
movsd xmm0, qword [esp + 0x5e08]
cvtsi2sd xmm1, dword [esp + 0x5e04]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e18], eax
jmp 0x5d57f3
jmp 0x5d573d
jmp 0x5d5538
jmp 0x5d573d
jmp 0x5d573d
movsd xmm0, qword [esp + 0x5e08]
movsd qword [esp + 0x43d8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x43d0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x43d0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x43e4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x43d4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x43d4]
movsd xmm0, qword [esp + 0x43d8]
mov dl, al
mov eax, dword [esp + 0x43e4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e18], eax
mov eax, dword [esp + 0x5e18]
mov dword [esp + 0x43cc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x43c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x43c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x43c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x43c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x43c4]
mov dl, al
mov eax, dword [esp + 0x43c8]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x43cc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d5983
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x43a4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x43a4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x43a8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x43a8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x43ac], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x43ac]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x43bc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x43b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x43b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x43b8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x43b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x43b4]
mov dl, al
mov eax, dword [esp + 0x43b8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x43bc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d5983
mov dword [esp + 0x4e60], 0x3e71
jmp 0x5d5988
mov eax, dword [0x5c4b3c]
call eax
test eax, eax
movsd xmm0, qword [0x4802b0]
xorps xmm1, xmm1
movsd qword [esp + 0x4390], xmm1
movsd qword [esp + 0x4398], xmm0
je 0x5d59c6
movsd xmm0, qword [esp + 0x4390]
movsd qword [esp + 0x4398], xmm0
movsd xmm0, qword [esp + 0x4398]
movsd qword [esp + 0x5df8], xmm0
movsd xmm0, qword [esp + 0x5df8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5df0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4384], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4384]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x438c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4388], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4388]
mov dl, al
mov eax, dword [esp + 0x438c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5c07
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4378], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4378]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x437c], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x437c]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4380], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4380]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d5c02
mov dword [esp + 0x5dec], 0
cmp dword [esp + 0x5dec], 4
jae 0x5d5bfd
movsd xmm0, qword [esp + 0x5df0]
cvtsi2sd xmm1, dword [esp + 0x5dec]
addsd xmm0, xmm1
movsd qword [esp + 0x4370], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4370]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d5b6a
jp 0x5d5b6a
movsd xmm0, qword [esp + 0x5df0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5df0], xmm0
jmp 0x5d5a07
movsd xmm0, qword [esp + 0x5df0]
cvtsi2sd xmm1, dword [esp + 0x5dec]
addsd xmm0, xmm1
movsd qword [esp + 0x4368], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4368]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d5bf8
jp 0x5d5bf8
mov eax, dword [esp + 0x5dec]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5df0]
addsd xmm0, xmm1
movsd qword [esp + 0x5df0], xmm0
movsd xmm0, qword [esp + 0x5df0]
cvtsi2sd xmm1, dword [esp + 0x5dec]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e00], eax
jmp 0x5d5cc2
jmp 0x5d5c0c
jmp 0x5d5a07
jmp 0x5d5c0c
jmp 0x5d5c0c
movsd xmm0, qword [esp + 0x5df0]
movsd qword [esp + 0x4358], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4350], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4350]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4364], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4354], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4354]
movsd xmm0, qword [esp + 0x4358]
mov dl, al
mov eax, dword [esp + 0x4364]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5e00], eax
mov eax, dword [esp + 0x5e00]
mov dword [esp + 0x434c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4340], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4340]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4348], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4344], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4344]
mov dl, al
mov eax, dword [esp + 0x4348]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x434c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d5ef3
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4324], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4324]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4328], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4328]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x432c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x432c]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x433c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4330], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4330]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4338], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4334], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4334]
mov dl, al
mov eax, dword [esp + 0x4338]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x433c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d5ef3
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov dword [esp + 0x6ab4], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov dword [esp + 0x6ab8], eax
mov eax, dword [sym.imp.USER32.dll_DestroyAcceleratorTable]
mov dword [esp + 0x6abc], eax
mov eax, dword [sym.imp.USER32.dll_ShutdownBlockReasonCreate]
mov dword [esp + 0x6ac0], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeaps]
mov dword [esp + 0x6ac4], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetNumberFormatEx]
mov dword [esp + 0x6ac8], eax
mov eax, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStructW]
mov dword [esp + 0x6acc], eax
mov eax, dword [sym.imp.KERNEL32.dll_DebugActiveProcessStop]
mov dword [esp + 0x6ad0], eax
lea eax, [0x47ec99]
mov dword [esp + 0x6ad4], eax
mov eax, dword [sym.imp.KERNEL32.dll_InitOnceInitialize]
mov dword [esp + 0x6ad8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeaps]
mov dword [esp + 0x6adc], eax
mov eax, dword [sym.imp.USER32.dll_CopyImage]
mov dword [esp + 0x6ae0], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov dword [esp + 0x6ae4], eax
mov dword [esp], 0x1d90
call dword [0x5c4b5c]
mov dword [esp + 0x4e50], 0x2df7
mov dword [esp + 0x4e4c], 0x64d9
mov dword [esp + 0x4e48], 0x72d1
mov eax, dword [esp + 0x4e4c]
mov dword [esp + 0x4e50], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5de0], xmm0
movsd xmm0, qword [esp + 0x5de0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5dd8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4318], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4318]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4320], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x431c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x431c]
mov dl, al
mov eax, dword [esp + 0x4320]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d615e
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x430c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x430c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4310], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4310]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4314], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4314]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6159
mov dword [esp + 0x5dd4], 0
cmp dword [esp + 0x5dd4], 4
jae 0x5d6154
movsd xmm0, qword [esp + 0x5dd8]
cvtsi2sd xmm1, dword [esp + 0x5dd4]
addsd xmm0, xmm1
movsd qword [esp + 0x4300], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4300]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d60c1
jp 0x5d60c1
movsd xmm0, qword [esp + 0x5dd8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5dd8], xmm0
jmp 0x5d5f5e
movsd xmm0, qword [esp + 0x5dd8]
cvtsi2sd xmm1, dword [esp + 0x5dd4]
addsd xmm0, xmm1
movsd qword [esp + 0x42f8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x42f8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d614f
jp 0x5d614f
mov eax, dword [esp + 0x5dd4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5dd8]
addsd xmm0, xmm1
movsd qword [esp + 0x5dd8], xmm0
movsd xmm0, qword [esp + 0x5dd8]
cvtsi2sd xmm1, dword [esp + 0x5dd4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5de8], eax
jmp 0x5d6219
jmp 0x5d6163
jmp 0x5d5f5e
jmp 0x5d6163
jmp 0x5d6163
movsd xmm0, qword [esp + 0x5dd8]
movsd qword [esp + 0x42e8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x42e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x42e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42f4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x42e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x42e4]
movsd xmm0, qword [esp + 0x42e8]
mov dl, al
mov eax, dword [esp + 0x42f4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5de8], eax
mov eax, dword [esp + 0x5de8]
mov dword [esp + 0x42dc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x42d0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x42d0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42d8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x42d4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x42d4]
mov dl, al
mov eax, dword [esp + 0x42d8]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x42dc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d6865
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x42b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x42b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x42b8]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x42bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x42bc]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x42cc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x42c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x42c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x42c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x42c4]
mov dl, al
mov eax, dword [esp + 0x42c8]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x42cc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d6865
mov dword [esp + 0x4e48], 0x6502
mov dword [esp + 0x4e44], 0x93dd
mov dword [esp + 0x4e40], 0x79b2
mov dword [esp + 0x4e3c], 0x56f9
mov eax, dword [esp + 0x4e40]
mov dword [esp + 0x4e44], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5dc8], xmm0
movsd xmm0, qword [esp + 0x5dc8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5dc0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x42a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x42a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42b0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x42ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x42ac]
mov dl, al
mov eax, dword [esp + 0x42b0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6616
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x429c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x429c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x42a0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x42a0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x42a4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x42a4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6611
mov dword [esp + 0x5dbc], 0
cmp dword [esp + 0x5dbc], 4
jae 0x5d660c
movsd xmm0, qword [esp + 0x5dc0]
cvtsi2sd xmm1, dword [esp + 0x5dbc]
addsd xmm0, xmm1
movsd qword [esp + 0x4290], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4290]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6579
jp 0x5d6579
movsd xmm0, qword [esp + 0x5dc0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5dc0], xmm0
jmp 0x5d6416
movsd xmm0, qword [esp + 0x5dc0]
cvtsi2sd xmm1, dword [esp + 0x5dbc]
addsd xmm0, xmm1
movsd qword [esp + 0x4288], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4288]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6607
jp 0x5d6607
mov eax, dword [esp + 0x5dbc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5dc0]
addsd xmm0, xmm1
movsd qword [esp + 0x5dc0], xmm0
movsd xmm0, qword [esp + 0x5dc0]
cvtsi2sd xmm1, dword [esp + 0x5dbc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5dd0], eax
jmp 0x5d66d1
jmp 0x5d661b
jmp 0x5d6416
jmp 0x5d661b
jmp 0x5d661b
movsd xmm0, qword [esp + 0x5dc0]
movsd qword [esp + 0x4278], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4270], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4270]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4284], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4274], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4274]
movsd xmm0, qword [esp + 0x4278]
mov dl, al
mov eax, dword [esp + 0x4284]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5dd0], eax
mov eax, dword [esp + 0x5dd0]
mov dword [esp + 0x426c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4260], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4260]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4268], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4264], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4264]
mov dl, al
mov eax, dword [esp + 0x4268]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x426c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d6860
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4244], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4244]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4248], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4248]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x424c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x424c]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x425c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4250], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4250]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4258], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4254], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4254]
mov dl, al
mov eax, dword [esp + 0x4258]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x425c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d6860
mov dword [esp + 0x4e3c], 0x2d7f
jmp 0x5d6865
mov edx, dword [esp + 0x4ea0]
mov ecx, dword [esp + 0x4ea4]
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.005cf060
mov byte [esp + 0x4e3b], al
mov dword [esp + 0x4e34], 0x6623
mov dword [esp + 0x4e30], 0x2840
mov dword [esp + 0x4e2c], 0x5ddb
mov eax, dword [esp + 0x4e30]
mov dword [esp + 0x4e34], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5db0], xmm0
movsd xmm0, qword [esp + 0x5db0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5da8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4238], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4238]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4240], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x423c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x423c]
mov dl, al
mov eax, dword [esp + 0x4240]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6af1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x422c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x422c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4230], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4230]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4234], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4234]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6aec
mov dword [esp + 0x5da4], 0
cmp dword [esp + 0x5da4], 4
jae 0x5d6ae7
movsd xmm0, qword [esp + 0x5da8]
cvtsi2sd xmm1, dword [esp + 0x5da4]
addsd xmm0, xmm1
movsd qword [esp + 0x4220], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4220]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6a54
jp 0x5d6a54
movsd xmm0, qword [esp + 0x5da8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5da8], xmm0
jmp 0x5d68f1
movsd xmm0, qword [esp + 0x5da8]
cvtsi2sd xmm1, dword [esp + 0x5da4]
addsd xmm0, xmm1
movsd qword [esp + 0x4218], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4218]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6ae2
jp 0x5d6ae2
mov eax, dword [esp + 0x5da4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5da8]
addsd xmm0, xmm1
movsd qword [esp + 0x5da8], xmm0
movsd xmm0, qword [esp + 0x5da8]
cvtsi2sd xmm1, dword [esp + 0x5da4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5db8], eax
jmp 0x5d6bac
jmp 0x5d6af6
jmp 0x5d68f1
jmp 0x5d6af6
jmp 0x5d6af6
movsd xmm0, qword [esp + 0x5da8]
movsd qword [esp + 0x4208], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4200], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4200]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4214], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4204], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4204]
movsd xmm0, qword [esp + 0x4208]
mov dl, al
mov eax, dword [esp + 0x4214]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5db8], eax
mov eax, dword [esp + 0x5db8]
mov dword [esp + 0x41fc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x41f0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x41f0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41f8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x41f4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x41f4]
mov dl, al
mov eax, dword [esp + 0x41f8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x41fc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d6d40
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x41d4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x41d4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41d8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x41d8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [esp + 0x41dc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x41dc]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x41ec], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x41e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x41e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41e8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x41e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x41e4]
mov dl, al
mov eax, dword [esp + 0x41e8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x41ec]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d6d40
mov dword [esp + 0x4e2c], 0x9922
mov eax, dword [ebp + 8]
mov dword [esp + 0x4e28], eax
mov dword [esp + 0x4e24], 0x9b99
mov dword [esp + 0x4e20], 0x5f09
mov dword [esp + 0x4e1c], 0x2d10
mov eax, dword [esp + 0x4e20]
mov dword [esp + 0x4e24], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d98], xmm0
movsd xmm0, qword [esp + 0x5d98]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d90], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x41c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x41c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x41cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x41cc]
mov dl, al
mov eax, dword [esp + 0x41d0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6fb5
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x41bc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x41bc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41c0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x41c0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x41c4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x41c4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d6fb0
mov dword [esp + 0x5d8c], 0
cmp dword [esp + 0x5d8c], 4
jae 0x5d6fab
movsd xmm0, qword [esp + 0x5d90]
cvtsi2sd xmm1, dword [esp + 0x5d8c]
addsd xmm0, xmm1
movsd qword [esp + 0x41b0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x41b0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6f18
jp 0x5d6f18
movsd xmm0, qword [esp + 0x5d90]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d90], xmm0
jmp 0x5d6db5
movsd xmm0, qword [esp + 0x5d90]
cvtsi2sd xmm1, dword [esp + 0x5d8c]
addsd xmm0, xmm1
movsd qword [esp + 0x41a8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x41a8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d6fa6
jp 0x5d6fa6
mov eax, dword [esp + 0x5d8c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d90]
addsd xmm0, xmm1
movsd qword [esp + 0x5d90], xmm0
movsd xmm0, qword [esp + 0x5d90]
cvtsi2sd xmm1, dword [esp + 0x5d8c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5da0], eax
jmp 0x5d7070
jmp 0x5d6fba
jmp 0x5d6db5
jmp 0x5d6fba
jmp 0x5d6fba
movsd xmm0, qword [esp + 0x5d90]
movsd qword [esp + 0x4198], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4190], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4190]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x41a4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4194], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4194]
movsd xmm0, qword [esp + 0x4198]
mov dl, al
mov eax, dword [esp + 0x41a4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5da0], eax
mov eax, dword [esp + 0x5da0]
mov dword [esp + 0x418c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4180], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4180]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4188], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4184], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4184]
mov dl, al
mov eax, dword [esp + 0x4188]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x418c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d7b76
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4164], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4164]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4168], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4168]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x416c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x416c]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x417c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4170], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4170]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4178], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4174], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4174]
mov dl, al
mov eax, dword [esp + 0x4178]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x417c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d7b76
mov dword [esp + 0x4e1c], 0xa5a5
mov dword [esp + 0x4e18], 0x4e1c
mov dword [esp + 0x4e14], 0x5b7d
mov dword [esp + 0x4e10], 0x834f
mov eax, dword [esp + 0x4e14]
mov dword [esp + 0x4e18], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d80], xmm0
movsd xmm0, qword [esp + 0x5d80]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d78], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4158], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4158]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4160], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x415c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x415c]
mov dl, al
mov eax, dword [esp + 0x4160]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d7466
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x414c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x414c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4150], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4150]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4154], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4154]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d7461
mov dword [esp + 0x5d74], 0
cmp dword [esp + 0x5d74], 4
jae 0x5d745c
movsd xmm0, qword [esp + 0x5d78]
cvtsi2sd xmm1, dword [esp + 0x5d74]
addsd xmm0, xmm1
movsd qword [esp + 0x4140], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4140]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d73c9
jp 0x5d73c9
movsd xmm0, qword [esp + 0x5d78]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d78], xmm0
jmp 0x5d7266
movsd xmm0, qword [esp + 0x5d78]
cvtsi2sd xmm1, dword [esp + 0x5d74]
addsd xmm0, xmm1
movsd qword [esp + 0x4138], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4138]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d7457
jp 0x5d7457
mov eax, dword [esp + 0x5d74]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d78]
addsd xmm0, xmm1
movsd qword [esp + 0x5d78], xmm0
movsd xmm0, qword [esp + 0x5d78]
cvtsi2sd xmm1, dword [esp + 0x5d74]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d88], eax
jmp 0x5d7521
jmp 0x5d746b
jmp 0x5d7266
jmp 0x5d746b
jmp 0x5d746b
movsd xmm0, qword [esp + 0x5d78]
movsd qword [esp + 0x4128], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4120], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4120]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4134], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4124], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4124]
movsd xmm0, qword [esp + 0x4128]
mov dl, al
mov eax, dword [esp + 0x4134]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d88], eax
mov eax, dword [esp + 0x5d88]
mov dword [esp + 0x411c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4110], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4110]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4118], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4114], eax
call fcn.005ceb20
mov edx, dword [esp + 0x4114]
mov cl, al
mov eax, dword [esp + 0x4118]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x411c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d7b71
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x40f4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x40f4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x40f8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x40f8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x40fc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x40fc]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x410c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4100], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4100]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4108], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4104], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4104]
mov dl, al
mov eax, dword [esp + 0x4108]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x410c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d7b71
mov dword [esp + 0x4e10], 0x696b
mov dword [esp + 0x4e0c], 0x37b3
mov dword [esp + 0x4e08], 0x7bac
mov dword [esp + 0x4e04], 0x92b6
mov eax, dword [esp + 0x4e08]
mov dword [esp + 0x4e0c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d68], xmm0
movsd xmm0, qword [esp + 0x5d68]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d60], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x40e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x40e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x40f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x40ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x40ec]
mov dl, al
mov eax, dword [esp + 0x40f0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d791f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x40dc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x40dc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x40e0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x40e0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x40e4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x40e4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d791a
mov dword [esp + 0x5d5c], 0
cmp dword [esp + 0x5d5c], 4
jae 0x5d7915
movsd xmm0, qword [esp + 0x5d60]
cvtsi2sd xmm1, dword [esp + 0x5d5c]
addsd xmm0, xmm1
movsd qword [esp + 0x40d0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x40d0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d7882
jp 0x5d7882
movsd xmm0, qword [esp + 0x5d60]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d60], xmm0
jmp 0x5d771f
movsd xmm0, qword [esp + 0x5d60]
cvtsi2sd xmm1, dword [esp + 0x5d5c]
addsd xmm0, xmm1
movsd qword [esp + 0x40c8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x40c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d7910
jp 0x5d7910
mov eax, dword [esp + 0x5d5c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d60]
addsd xmm0, xmm1
movsd qword [esp + 0x5d60], xmm0
movsd xmm0, qword [esp + 0x5d60]
cvtsi2sd xmm1, dword [esp + 0x5d5c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d70], eax
jmp 0x5d79da
jmp 0x5d7924
jmp 0x5d771f
jmp 0x5d7924
jmp 0x5d7924
movsd xmm0, qword [esp + 0x5d60]
movsd qword [esp + 0x40b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x40b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x40b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x40c4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x40b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x40b4]
movsd xmm0, qword [esp + 0x40b8]
mov dl, al
mov eax, dword [esp + 0x40c4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d70], eax
mov eax, dword [esp + 0x5d70]
mov dword [esp + 0x40ac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x40a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x40a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x40a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x40a4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x40a4]
mov dl, al
mov eax, dword [esp + 0x40a8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x40ac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d7b6c
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4084], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4084]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4088], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4088]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x408c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x408c]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x409c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4090], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4090]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4098], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4094], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4094]
mov dl, al
mov eax, dword [esp + 0x4098]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x409c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d7b6c
mov dword [esp + 0x4e04], 0x96e5
jmp 0x5d7b71
jmp 0x5d7b76
mov dword [esp + 0x4e00], 0x3b89
mov dword [esp + 0x4dfc], 0xa08e
mov dword [esp + 0x4df8], 0xa5ad
mov eax, dword [esp + 0x4dfc]
mov dword [esp + 0x4e00], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d50], xmm0
movsd xmm0, qword [esp + 0x5d50]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d48], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4078], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4078]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4080], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x407c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x407c]
mov dl, al
mov eax, dword [esp + 0x4080]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d7de1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x406c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x406c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4070], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4070]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4074], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4074]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d7ddc
mov dword [esp + 0x5d44], 0
cmp dword [esp + 0x5d44], 4
jae 0x5d7dd7
movsd xmm0, qword [esp + 0x5d48]
cvtsi2sd xmm1, dword [esp + 0x5d44]
addsd xmm0, xmm1
movsd qword [esp + 0x4060], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x4060]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d7d44
jp 0x5d7d44
movsd xmm0, qword [esp + 0x5d48]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d48], xmm0
jmp 0x5d7be1
movsd xmm0, qword [esp + 0x5d48]
cvtsi2sd xmm1, dword [esp + 0x5d44]
addsd xmm0, xmm1
movsd qword [esp + 0x4058], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x4058]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d7dd2
jp 0x5d7dd2
mov eax, dword [esp + 0x5d44]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d48]
addsd xmm0, xmm1
movsd qword [esp + 0x5d48], xmm0
movsd xmm0, qword [esp + 0x5d48]
cvtsi2sd xmm1, dword [esp + 0x5d44]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d58], eax
jmp 0x5d7e9c
jmp 0x5d7de6
jmp 0x5d7be1
jmp 0x5d7de6
jmp 0x5d7de6
movsd xmm0, qword [esp + 0x5d48]
movsd qword [esp + 0x4048], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4040], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4040]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4054], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4044], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4044]
movsd xmm0, qword [esp + 0x4048]
mov dl, al
mov eax, dword [esp + 0x4054]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d58], eax
mov eax, dword [esp + 0x5d58]
mov dword [esp + 0x403c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4030], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4030]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4038], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4034], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4034]
mov dl, al
mov eax, dword [esp + 0x4038]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x403c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d84ea
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x4014], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x4014]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4018], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4018]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x401c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x401c]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x402c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4020], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4020]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4028], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x4024], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x4024]
mov dl, al
mov eax, dword [esp + 0x4028]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x402c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d84ea
mov dword [esp + 0x4df8], 0x60ba
mov dword [esp + 0x4df4], 0x32b1
mov dword [esp + 0x4df0], 0x6014
mov dword [esp + 0x4dec], 0x8f72
mov eax, dword [esp + 0x4df0]
mov dword [esp + 0x4df4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d38], xmm0
movsd xmm0, qword [esp + 0x5d38]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d30], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x4008], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x4008]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4010], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x400c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x400c]
mov dl, al
mov eax, dword [esp + 0x4010]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d8298
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3ffc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3ffc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x4000], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x4000]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x4004], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x4004]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d8293
mov dword [esp + 0x5d2c], 0
cmp dword [esp + 0x5d2c], 4
jae 0x5d828e
movsd xmm0, qword [esp + 0x5d30]
cvtsi2sd xmm1, dword [esp + 0x5d2c]
addsd xmm0, xmm1
movsd qword [esp + 0x3ff0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3ff0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d81fb
jp 0x5d81fb
movsd xmm0, qword [esp + 0x5d30]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d30], xmm0
jmp 0x5d8098
movsd xmm0, qword [esp + 0x5d30]
cvtsi2sd xmm1, dword [esp + 0x5d2c]
addsd xmm0, xmm1
movsd qword [esp + 0x3fe8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3fe8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d8289
jp 0x5d8289
mov eax, dword [esp + 0x5d2c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d30]
addsd xmm0, xmm1
movsd qword [esp + 0x5d30], xmm0
movsd xmm0, qword [esp + 0x5d30]
cvtsi2sd xmm1, dword [esp + 0x5d2c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d40], eax
jmp 0x5d8353
jmp 0x5d829d
jmp 0x5d8098
jmp 0x5d829d
jmp 0x5d829d
movsd xmm0, qword [esp + 0x5d30]
movsd qword [esp + 0x3fd8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3fd0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3fd0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3fe4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3fd4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3fd4]
movsd xmm0, qword [esp + 0x3fd8]
mov dl, al
mov eax, dword [esp + 0x3fe4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d40], eax
mov eax, dword [esp + 0x5d40]
mov dword [esp + 0x3fcc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3fc0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3fc0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3fc8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3fc4], eax
call fcn.005ceb20
mov edx, dword [esp + 0x3fc4]
mov cl, al
mov eax, dword [esp + 0x3fc8]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3fcc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d84e5
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3fa4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3fa4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3fa8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3fa8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x3fac], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3fac]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x3fbc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3fb0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3fb0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3fb8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3fb4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3fb4]
mov dl, al
mov eax, dword [esp + 0x3fb8]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3fbc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d84e5
mov dword [esp + 0x4dec], 0xa475
jmp 0x5d84ea
xorps xmm0, xmm0
movups xmmword [esp + 0x65e0], xmm0
movups xmmword [esp + 0x65d0], xmm0
movups xmmword [esp + 0x65c0], xmm0
movups xmmword [esp + 0x65b0], xmm0
mov dword [esp + 0x65f0], 0
mov dword [esp + 0x4de8], 0x27bb
mov dword [esp + 0x4de4], 0x7141
mov dword [esp + 0x4de0], 0x8419
mov eax, dword [esp + 0x4de4]
mov dword [esp + 0x4de8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d20], xmm0
movsd xmm0, qword [esp + 0x5d20]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d18], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3f98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3f98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3fa0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3f9c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3f9c]
mov dl, al
mov eax, dword [esp + 0x3fa0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d8783
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3f8c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3f8c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f90], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3f90]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3f94], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3f94]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d877e
mov dword [esp + 0x5d14], 0
cmp dword [esp + 0x5d14], 4
jae 0x5d8779
movsd xmm0, qword [esp + 0x5d18]
cvtsi2sd xmm1, dword [esp + 0x5d14]
addsd xmm0, xmm1
movsd qword [esp + 0x3f80], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3f80]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d86e6
jp 0x5d86e6
movsd xmm0, qword [esp + 0x5d18]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d18], xmm0
jmp 0x5d8583
movsd xmm0, qword [esp + 0x5d18]
cvtsi2sd xmm1, dword [esp + 0x5d14]
addsd xmm0, xmm1
movsd qword [esp + 0x3f78], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3f78]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d8774
jp 0x5d8774
mov eax, dword [esp + 0x5d14]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d18]
addsd xmm0, xmm1
movsd qword [esp + 0x5d18], xmm0
movsd xmm0, qword [esp + 0x5d18]
cvtsi2sd xmm1, dword [esp + 0x5d14]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d28], eax
jmp 0x5d883e
jmp 0x5d8788
jmp 0x5d8583
jmp 0x5d8788
jmp 0x5d8788
movsd xmm0, qword [esp + 0x5d18]
movsd qword [esp + 0x3f68], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3f60], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3f60]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f74], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3f64], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3f64]
movsd xmm0, qword [esp + 0x3f68]
mov dl, al
mov eax, dword [esp + 0x3f74]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d28], eax
mov eax, dword [esp + 0x5d28]
mov dword [esp + 0x3f5c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3f50], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3f50]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f58], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3f54], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3f54]
mov dl, al
mov eax, dword [esp + 0x3f58]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3f5c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d8e89
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3f34], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3f34]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f38], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3f38]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x3f3c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3f3c]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x3f4c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3f40], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3f40]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f48], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3f44], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3f44]
mov dl, al
mov eax, dword [esp + 0x3f48]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3f4c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d8e89
mov dword [esp + 0x4de0], 0xa2c2
mov dword [esp + 0x4ddc], 0xa03d
mov dword [esp + 0x4dd8], 0x93a2
mov dword [esp + 0x4dd4], 0x4818
mov eax, dword [esp + 0x4dd8]
mov dword [esp + 0x4ddc], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5d08], xmm0
movsd xmm0, qword [esp + 0x5d08]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5d00], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3f28], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3f28]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f30], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3f2c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3f2c]
mov dl, al
mov eax, dword [esp + 0x3f30]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d8c38
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3f1c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3f1c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f20], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3f20]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3f24], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3f24]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d8c33
mov dword [esp + 0x5cfc], 0
cmp dword [esp + 0x5cfc], 4
jae 0x5d8c2e
movsd xmm0, qword [esp + 0x5d00]
cvtsi2sd xmm1, dword [esp + 0x5cfc]
addsd xmm0, xmm1
movsd qword [esp + 0x3f10], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3f10]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d8b9b
jp 0x5d8b9b
movsd xmm0, qword [esp + 0x5d00]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5d00], xmm0
jmp 0x5d8a38
movsd xmm0, qword [esp + 0x5d00]
cvtsi2sd xmm1, dword [esp + 0x5cfc]
addsd xmm0, xmm1
movsd qword [esp + 0x3f08], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3f08]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d8c29
jp 0x5d8c29
mov eax, dword [esp + 0x5cfc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5d00]
addsd xmm0, xmm1
movsd qword [esp + 0x5d00], xmm0
movsd xmm0, qword [esp + 0x5d00]
cvtsi2sd xmm1, dword [esp + 0x5cfc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d10], eax
jmp 0x5d8cf3
jmp 0x5d8c3d
jmp 0x5d8a38
jmp 0x5d8c3d
jmp 0x5d8c3d
movsd xmm0, qword [esp + 0x5d00]
movsd qword [esp + 0x3ef8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ef0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ef0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3f04], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ef4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ef4]
movsd xmm0, qword [esp + 0x3ef8]
mov dl, al
mov eax, dword [esp + 0x3f04]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5d10], eax
mov eax, dword [esp + 0x5d10]
mov dword [esp + 0x3eec], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ee0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ee0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ee8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ee4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ee4]
mov dl, al
mov eax, dword [esp + 0x3ee8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3eec]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d8e84
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3ec4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3ec4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ec8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3ec8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3ecc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3ecc]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x3edc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ed0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ed0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ed8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ed4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ed4]
mov dl, al
mov eax, dword [esp + 0x3ed8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3edc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d8e84
mov dword [esp + 0x4dd4], 0x28f7
jmp 0x5d8e89
mov dword [esp + 0x65b0], 0x44
mov eax, dword [fcn.00428dc0]
mov ecx, esp
lea edx, [esp + 0x65a0]
mov dword [ecx], edx
mov dword [ecx + 8], 0x10
mov dword [ecx + 4], 0
call eax
mov dword [esp + 0x4dd0], 0x714a
mov dword [esp + 0x4dcc], 0x8cc7
mov dword [esp + 0x4dc8], 0x524f
mov eax, dword [esp + 0x4dcc]
mov dword [esp + 0x4dd0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5cf0], xmm0
movsd xmm0, qword [esp + 0x5cf0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ce8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3eb8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3eb8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ec0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ebc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ebc]
mov dl, al
mov eax, dword [esp + 0x3ec0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d911f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3eac], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3eac]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3eb0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3eb0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3eb4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3eb4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d911a
mov dword [esp + 0x5ce4], 0
cmp dword [esp + 0x5ce4], 4
jae 0x5d9115
movsd xmm0, qword [esp + 0x5ce8]
cvtsi2sd xmm1, dword [esp + 0x5ce4]
addsd xmm0, xmm1
movsd qword [esp + 0x3ea0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3ea0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9082
jp 0x5d9082
movsd xmm0, qword [esp + 0x5ce8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ce8], xmm0
jmp 0x5d8f1f
movsd xmm0, qword [esp + 0x5ce8]
cvtsi2sd xmm1, dword [esp + 0x5ce4]
addsd xmm0, xmm1
movsd qword [esp + 0x3e98], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3e98]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9110
jp 0x5d9110
mov eax, dword [esp + 0x5ce4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ce8]
addsd xmm0, xmm1
movsd qword [esp + 0x5ce8], xmm0
movsd xmm0, qword [esp + 0x5ce8]
cvtsi2sd xmm1, dword [esp + 0x5ce4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cf8], eax
jmp 0x5d91da
jmp 0x5d9124
jmp 0x5d8f1f
jmp 0x5d9124
jmp 0x5d9124
movsd xmm0, qword [esp + 0x5ce8]
movsd qword [esp + 0x3e88], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e80], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e80]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e94], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e84], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e84]
movsd xmm0, qword [esp + 0x3e88]
mov dl, al
mov eax, dword [esp + 0x3e94]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cf8], eax
mov eax, dword [esp + 0x5cf8]
mov dword [esp + 0x3e7c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e70], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e70]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e78], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e74], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e74]
mov dl, al
mov eax, dword [esp + 0x3e78]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3e7c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d9821
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3e54], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3e54]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e58], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3e58]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x3e5c], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x3e5c]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x3e6c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e60], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e60]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e68], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e64], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e64]
mov dl, al
mov eax, dword [esp + 0x3e68]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3e6c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d9821
mov dword [esp + 0x4dc8], 0x39aa
mov dword [esp + 0x4dc4], 0x42f2
mov dword [esp + 0x4dc0], 0x2889
mov dword [esp + 0x4dbc], 0x472a
mov eax, dword [esp + 0x4dc0]
mov dword [esp + 0x4dc4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5cd8], xmm0
movsd xmm0, qword [esp + 0x5cd8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5cd0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e48], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e50], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e4c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e4c]
mov dl, al
mov eax, dword [esp + 0x3e50]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d95d4
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3e3c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3e3c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e40], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3e40]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3e44], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3e44]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d95cf
mov dword [esp + 0x5ccc], 0
cmp dword [esp + 0x5ccc], 4
jae 0x5d95ca
movsd xmm0, qword [esp + 0x5cd0]
cvtsi2sd xmm1, dword [esp + 0x5ccc]
addsd xmm0, xmm1
movsd qword [esp + 0x3e30], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3e30]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9537
jp 0x5d9537
movsd xmm0, qword [esp + 0x5cd0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5cd0], xmm0
jmp 0x5d93d4
movsd xmm0, qword [esp + 0x5cd0]
cvtsi2sd xmm1, dword [esp + 0x5ccc]
addsd xmm0, xmm1
movsd qword [esp + 0x3e28], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3e28]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d95c5
jp 0x5d95c5
mov eax, dword [esp + 0x5ccc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5cd0]
addsd xmm0, xmm1
movsd qword [esp + 0x5cd0], xmm0
movsd xmm0, qword [esp + 0x5cd0]
cvtsi2sd xmm1, dword [esp + 0x5ccc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ce0], eax
jmp 0x5d968f
jmp 0x5d95d9
jmp 0x5d93d4
jmp 0x5d95d9
jmp 0x5d95d9
movsd xmm0, qword [esp + 0x5cd0]
movsd qword [esp + 0x3e18], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e10], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e10]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e24], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e14], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e14]
movsd xmm0, qword [esp + 0x3e18]
mov dl, al
mov eax, dword [esp + 0x3e24]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ce0], eax
mov eax, dword [esp + 0x5ce0]
mov dword [esp + 0x3e0c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3e00], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3e00]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3e08], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3e04], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3e04]
mov dl, al
mov eax, dword [esp + 0x3e08]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3e0c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5d981c
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3de4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3de4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3de8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3de8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x3dec], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3dec]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x3dfc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3df0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3df0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3df8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3df4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3df4]
mov dl, al
mov eax, dword [esp + 0x3df8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3dfc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5d981c
mov dword [esp + 0x4dbc], 0x53c5
jmp 0x5d9821
mov eax, dword [sym.imp.SHELL32.dll_SHLoadNonloadedIconOverlayIdentifiers]
mov dword [esp + 0x6a98], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetVolumeMountPointW]
mov dword [esp + 0x6a9c], eax
mov eax, dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [esp + 0x6aa0], eax
mov eax, dword [sym.imp.ADVAPI32.dll_NotifyBootConfigStatus]
mov dword [esp + 0x6aa4], eax
mov eax, dword [sym.imp.GDI32.dll_FillRgn]
mov dword [esp + 0x6aa8], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowRgn]
mov dword [esp + 0x6aac], eax
mov eax, dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov dword [esp + 0x6ab0], eax
mov dword [esp + 0x4db8], 0x9410
mov dword [esp + 0x4db4], 0x78db
mov dword [esp + 0x4db0], 0x9686
mov eax, dword [esp + 0x4db4]
mov dword [esp + 0x4db8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5cc0], xmm0
movsd xmm0, qword [esp + 0x5cc0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5cb8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3dd8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3dd8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3de0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ddc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ddc]
mov dl, al
mov eax, dword [esp + 0x3de0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d9ae0
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3dcc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3dcc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3dd0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3dd0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3dd4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3dd4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d9adb
mov dword [esp + 0x5cb4], 0
cmp dword [esp + 0x5cb4], 4
jae 0x5d9ad6
movsd xmm0, qword [esp + 0x5cb8]
cvtsi2sd xmm1, dword [esp + 0x5cb4]
addsd xmm0, xmm1
movsd qword [esp + 0x3dc0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3dc0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9a43
jp 0x5d9a43
movsd xmm0, qword [esp + 0x5cb8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5cb8], xmm0
jmp 0x5d98e0
movsd xmm0, qword [esp + 0x5cb8]
cvtsi2sd xmm1, dword [esp + 0x5cb4]
addsd xmm0, xmm1
movsd qword [esp + 0x3db8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3db8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9ad1
jp 0x5d9ad1
mov eax, dword [esp + 0x5cb4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5cb8]
addsd xmm0, xmm1
movsd qword [esp + 0x5cb8], xmm0
movsd xmm0, qword [esp + 0x5cb8]
cvtsi2sd xmm1, dword [esp + 0x5cb4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cc8], eax
jmp 0x5d9b9b
jmp 0x5d9ae5
jmp 0x5d98e0
jmp 0x5d9ae5
jmp 0x5d9ae5
movsd xmm0, qword [esp + 0x5cb8]
movsd qword [esp + 0x3da8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3da0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3da0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3db4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3da4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3da4]
movsd xmm0, qword [esp + 0x3da8]
mov dl, al
mov eax, dword [esp + 0x3db4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cc8], eax
mov eax, dword [esp + 0x5cc8]
mov dword [esp + 0x3d9c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d90], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d90]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d98], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d94], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3d94]
mov dl, al
mov eax, dword [esp + 0x3d98]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3d9c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5da6a4
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3d74], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3d74]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d78], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3d78]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3d7c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3d7c]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x3d8c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d80], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d80]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d88], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d84], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3d84]
mov dl, al
mov eax, dword [esp + 0x3d88]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3d8c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5da6a4
mov dword [esp + 0x4db0], 0x42d3
mov dword [esp + 0x4dac], 0x336e
mov dword [esp + 0x4da8], 0x53e2
mov dword [esp + 0x4da4], 0x54df
mov eax, dword [esp + 0x4da8]
mov dword [esp + 0x4dac], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ca8], xmm0
movsd xmm0, qword [esp + 0x5ca8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ca0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d68], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d68]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d70], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d6c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3d6c]
mov dl, al
mov eax, dword [esp + 0x3d70]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d9f96
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3d5c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3d5c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d60], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3d60]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3d64], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3d64]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5d9f91
mov dword [esp + 0x5c9c], 0
cmp dword [esp + 0x5c9c], 4
jae 0x5d9f8c
movsd xmm0, qword [esp + 0x5ca0]
cvtsi2sd xmm1, dword [esp + 0x5c9c]
addsd xmm0, xmm1
movsd qword [esp + 0x3d50], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3d50]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9ef9
jp 0x5d9ef9
movsd xmm0, qword [esp + 0x5ca0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ca0], xmm0
jmp 0x5d9d96
movsd xmm0, qword [esp + 0x5ca0]
cvtsi2sd xmm1, dword [esp + 0x5c9c]
addsd xmm0, xmm1
movsd qword [esp + 0x3d48], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3d48]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5d9f87
jp 0x5d9f87
mov eax, dword [esp + 0x5c9c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ca0]
addsd xmm0, xmm1
movsd qword [esp + 0x5ca0], xmm0
movsd xmm0, qword [esp + 0x5ca0]
cvtsi2sd xmm1, dword [esp + 0x5c9c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cb0], eax
jmp 0x5da051
jmp 0x5d9f9b
jmp 0x5d9d96
jmp 0x5d9f9b
jmp 0x5d9f9b
movsd xmm0, qword [esp + 0x5ca0]
movsd qword [esp + 0x3d38], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d30], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d30]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d44], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d34], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3d34]
movsd xmm0, qword [esp + 0x3d38]
mov dl, al
mov eax, dword [esp + 0x3d44]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5cb0], eax
mov eax, dword [esp + 0x5cb0]
mov dword [esp + 0x3d2c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d20], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d20]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d28], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d24], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3d24]
mov dl, al
mov eax, dword [esp + 0x3d28]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3d2c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5da69f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3d04], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3d04]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d08], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3d08]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x3d0c], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x3d0c]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x3d1c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3d10], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3d10]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d18], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3d14], eax
call fcn.005ceb20
mov edx, dword [esp + 0x3d14]
mov cl, al
mov eax, dword [esp + 0x3d18]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3d1c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5da69f
mov dword [esp + 0x4da4], 0x690b
mov dword [esp + 0x4da0], 0x3f05
mov dword [esp + 0x4d9c], 0x2c08
mov dword [esp + 0x4d98], 0x76ba
mov eax, dword [esp + 0x4d9c]
mov dword [esp + 0x4da0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5c90], xmm0
movsd xmm0, qword [esp + 0x5c90]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5c88], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3cf8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3cf8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3d00], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3cfc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3cfc]
mov dl, al
mov eax, dword [esp + 0x3d00]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5da452
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3cec], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3cec]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3cf0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3cf0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3cf4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3cf4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5da44d
mov dword [esp + 0x5c84], 0
cmp dword [esp + 0x5c84], 4
jae 0x5da448
movsd xmm0, qword [esp + 0x5c88]
cvtsi2sd xmm1, dword [esp + 0x5c84]
addsd xmm0, xmm1
movsd qword [esp + 0x3ce0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3ce0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5da3b5
jp 0x5da3b5
movsd xmm0, qword [esp + 0x5c88]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5c88], xmm0
jmp 0x5da252
movsd xmm0, qword [esp + 0x5c88]
cvtsi2sd xmm1, dword [esp + 0x5c84]
addsd xmm0, xmm1
movsd qword [esp + 0x3cd8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3cd8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5da443
jp 0x5da443
mov eax, dword [esp + 0x5c84]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5c88]
addsd xmm0, xmm1
movsd qword [esp + 0x5c88], xmm0
movsd xmm0, qword [esp + 0x5c88]
cvtsi2sd xmm1, dword [esp + 0x5c84]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c98], eax
jmp 0x5da50d
jmp 0x5da457
jmp 0x5da252
jmp 0x5da457
jmp 0x5da457
movsd xmm0, qword [esp + 0x5c88]
movsd qword [esp + 0x3cc8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3cc0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3cc0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3cd4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3cc4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3cc4]
movsd xmm0, qword [esp + 0x3cc8]
mov dl, al
mov eax, dword [esp + 0x3cd4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c98], eax
mov eax, dword [esp + 0x5c98]
mov dword [esp + 0x3cbc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3cb0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3cb0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3cb8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3cb4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3cb4]
mov dl, al
mov eax, dword [esp + 0x3cb8]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3cbc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5da69a
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3c94], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3c94]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c98], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3c98]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x3c9c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3c9c]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x3cac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ca0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ca0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ca8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3ca4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3ca4]
mov dl, al
mov eax, dword [esp + 0x3ca8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3cac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5da69a
mov dword [esp + 0x4d98], 0x7362
jmp 0x5da69f
jmp 0x5da6a4
mov dword [esp + 0x5f28], str.C:WindowsMicrosoft.NETFramework_v4.0.30319_aspnet_state.exe
lea ecx, [esp + 0x6a19]
mov dword [esp + 0x5f24], ecx
mov eax, dword [esp + 0x5f24]
mov dword [esp + 0x3c5c], eax
mov byte [eax], 0
mov edx, dword [esp + 0x5f28]
mov dl, byte [edx]
mov byte [esp + 0x638b], dl
mov dword [esp + 0x6384], eax
movzx eax, byte [esp + 0x638b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mov edx, 0x2040811
mov dword [esp + 0x3c58], edx
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 1], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 1]
mov byte [esp + 0x6383], bl
mov dword [esp + 0x637c], eax
movzx eax, byte [esp + 0x6383]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 2], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 2]
mov byte [esp + 0x637b], bl
mov dword [esp + 0x6374], eax
movzx eax, byte [esp + 0x637b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 3], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 3]
mov byte [esp + 0x6373], bl
mov dword [esp + 0x636c], eax
movzx eax, byte [esp + 0x6373]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 4], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 4]
mov byte [esp + 0x636b], bl
mov dword [esp + 0x6364], eax
movzx eax, byte [esp + 0x636b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 5], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 5]
mov byte [esp + 0x6363], bl
mov dword [esp + 0x635c], eax
movzx eax, byte [esp + 0x6363]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 6], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 6]
mov byte [esp + 0x635b], bl
mov dword [esp + 0x6354], eax
movzx eax, byte [esp + 0x635b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 7], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 7]
mov byte [esp + 0x6353], bl
mov dword [esp + 0x634c], eax
movzx eax, byte [esp + 0x6353]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 8], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 8]
mov byte [esp + 0x634b], bl
mov dword [esp + 0x6344], eax
movzx eax, byte [esp + 0x634b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 9], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 9]
mov byte [esp + 0x6343], bl
mov dword [esp + 0x633c], eax
movzx eax, byte [esp + 0x6343]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xa], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xa]
mov byte [esp + 0x633b], bl
mov dword [esp + 0x6334], eax
movzx eax, byte [esp + 0x633b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xb], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xb]
mov byte [esp + 0x6333], bl
mov dword [esp + 0x632c], eax
movzx eax, byte [esp + 0x6333]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xc], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xc]
mov byte [esp + 0x632b], bl
mov dword [esp + 0x6324], eax
movzx eax, byte [esp + 0x632b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xd], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xd]
mov byte [esp + 0x6323], bl
mov dword [esp + 0x631c], eax
movzx eax, byte [esp + 0x6323]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xe], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xe]
mov byte [esp + 0x631b], bl
mov dword [esp + 0x6314], eax
movzx eax, byte [esp + 0x631b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0xf], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0xf]
mov byte [esp + 0x6313], bl
mov dword [esp + 0x630c], eax
movzx eax, byte [esp + 0x6313]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x10], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x10]
mov byte [esp + 0x630b], bl
mov dword [esp + 0x6304], eax
movzx eax, byte [esp + 0x630b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x11], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x11]
mov byte [esp + 0x6303], bl
mov dword [esp + 0x62fc], eax
movzx eax, byte [esp + 0x6303]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x12], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x12]
mov byte [esp + 0x62fb], bl
mov dword [esp + 0x62f4], eax
movzx eax, byte [esp + 0x62fb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x13], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x13]
mov byte [esp + 0x62f3], bl
mov dword [esp + 0x62ec], eax
movzx eax, byte [esp + 0x62f3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x14], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x14]
mov byte [esp + 0x62eb], bl
mov dword [esp + 0x62e4], eax
movzx eax, byte [esp + 0x62eb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x15], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x15]
mov byte [esp + 0x62e3], bl
mov dword [esp + 0x62dc], eax
movzx eax, byte [esp + 0x62e3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x16], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x16]
mov byte [esp + 0x62db], bl
mov dword [esp + 0x62d4], eax
movzx eax, byte [esp + 0x62db]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x17], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x17]
mov byte [esp + 0x62d3], bl
mov dword [esp + 0x62cc], eax
movzx eax, byte [esp + 0x62d3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x18], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x18]
mov byte [esp + 0x62cb], bl
mov dword [esp + 0x62c4], eax
movzx eax, byte [esp + 0x62cb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x19], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x19]
mov byte [esp + 0x62c3], bl
mov dword [esp + 0x62bc], eax
movzx eax, byte [esp + 0x62c3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1a]
mov byte [esp + 0x62bb], bl
mov dword [esp + 0x62b4], eax
movzx eax, byte [esp + 0x62bb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1b]
mov byte [esp + 0x62b3], bl
mov dword [esp + 0x62ac], eax
movzx eax, byte [esp + 0x62b3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1c]
mov byte [esp + 0x62ab], bl
mov dword [esp + 0x62a4], eax
movzx eax, byte [esp + 0x62ab]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1d]
mov byte [esp + 0x62a3], bl
mov dword [esp + 0x629c], eax
movzx eax, byte [esp + 0x62a3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1e]
mov byte [esp + 0x629b], bl
mov dword [esp + 0x6294], eax
movzx eax, byte [esp + 0x629b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x1f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x1f]
mov byte [esp + 0x6293], bl
mov dword [esp + 0x628c], eax
movzx eax, byte [esp + 0x6293]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x20], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x20]
mov byte [esp + 0x628b], bl
mov dword [esp + 0x6284], eax
movzx eax, byte [esp + 0x628b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x21], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x21]
mov byte [esp + 0x6283], bl
mov dword [esp + 0x627c], eax
movzx eax, byte [esp + 0x6283]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x22], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x22]
mov byte [esp + 0x627b], bl
mov dword [esp + 0x6274], eax
movzx eax, byte [esp + 0x627b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x23], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x23]
mov byte [esp + 0x6273], bl
mov dword [esp + 0x626c], eax
movzx eax, byte [esp + 0x6273]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x24], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x24]
mov byte [esp + 0x626b], bl
mov dword [esp + 0x6264], eax
movzx eax, byte [esp + 0x626b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x25], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x25]
mov byte [esp + 0x6263], bl
mov dword [esp + 0x625c], eax
movzx eax, byte [esp + 0x6263]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x26], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x26]
mov byte [esp + 0x625b], bl
mov dword [esp + 0x6254], eax
movzx eax, byte [esp + 0x625b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x27], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x27]
mov byte [esp + 0x6253], bl
mov dword [esp + 0x624c], eax
movzx eax, byte [esp + 0x6253]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x28], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x28]
mov byte [esp + 0x624b], bl
mov dword [esp + 0x6244], eax
movzx eax, byte [esp + 0x624b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x29], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x29]
mov byte [esp + 0x6243], bl
mov dword [esp + 0x623c], eax
movzx eax, byte [esp + 0x6243]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2a]
mov byte [esp + 0x623b], bl
mov dword [esp + 0x6234], eax
movzx eax, byte [esp + 0x623b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2b]
mov byte [esp + 0x6233], bl
mov dword [esp + 0x622c], eax
movzx eax, byte [esp + 0x6233]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2c]
mov byte [esp + 0x622b], bl
mov dword [esp + 0x6224], eax
movzx eax, byte [esp + 0x622b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2d]
mov byte [esp + 0x6223], bl
mov dword [esp + 0x621c], eax
movzx eax, byte [esp + 0x6223]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2e]
mov byte [esp + 0x621b], bl
mov dword [esp + 0x6214], eax
movzx eax, byte [esp + 0x621b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x2f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x2f]
mov byte [esp + 0x6213], bl
mov dword [esp + 0x620c], eax
movzx eax, byte [esp + 0x6213]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x30], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x30]
mov byte [esp + 0x620b], bl
mov dword [esp + 0x6204], eax
movzx eax, byte [esp + 0x620b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x31], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x31]
mov byte [esp + 0x6203], bl
mov dword [esp + 0x61fc], eax
movzx eax, byte [esp + 0x6203]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x32], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x32]
mov byte [esp + 0x61fb], bl
mov dword [esp + 0x61f4], eax
movzx eax, byte [esp + 0x61fb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x33], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x33]
mov byte [esp + 0x61f3], bl
mov dword [esp + 0x61ec], eax
movzx eax, byte [esp + 0x61f3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x34], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x34]
mov byte [esp + 0x61eb], bl
mov dword [esp + 0x61e4], eax
movzx eax, byte [esp + 0x61eb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x35], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x35]
mov byte [esp + 0x61e3], bl
mov dword [esp + 0x61dc], eax
movzx eax, byte [esp + 0x61e3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x36], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x36]
mov byte [esp + 0x61db], bl
mov dword [esp + 0x61d4], eax
movzx eax, byte [esp + 0x61db]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x37], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x37]
mov byte [esp + 0x61d3], bl
mov dword [esp + 0x61cc], eax
movzx eax, byte [esp + 0x61d3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x38], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x38]
mov byte [esp + 0x61cb], bl
mov dword [esp + 0x61c4], eax
movzx eax, byte [esp + 0x61cb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x39], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x39]
mov byte [esp + 0x61c3], bl
mov dword [esp + 0x61bc], eax
movzx eax, byte [esp + 0x61c3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3a]
mov byte [esp + 0x61bb], bl
mov dword [esp + 0x61b4], eax
movzx eax, byte [esp + 0x61bb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3b]
mov byte [esp + 0x61b3], bl
mov dword [esp + 0x61ac], eax
movzx eax, byte [esp + 0x61b3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3c]
mov byte [esp + 0x61ab], bl
mov dword [esp + 0x61a4], eax
movzx eax, byte [esp + 0x61ab]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3d]
mov byte [esp + 0x61a3], bl
mov dword [esp + 0x619c], eax
movzx eax, byte [esp + 0x61a3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3e]
mov byte [esp + 0x619b], bl
mov dword [esp + 0x6194], eax
movzx eax, byte [esp + 0x619b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x3f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x3f]
mov byte [esp + 0x6193], bl
mov dword [esp + 0x618c], eax
movzx eax, byte [esp + 0x6193]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x40], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x40]
mov byte [esp + 0x618b], bl
mov dword [esp + 0x6184], eax
movzx eax, byte [esp + 0x618b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x41], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x41]
mov byte [esp + 0x6183], bl
mov dword [esp + 0x617c], eax
movzx eax, byte [esp + 0x6183]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x42], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x42]
mov byte [esp + 0x617b], bl
mov dword [esp + 0x6174], eax
movzx eax, byte [esp + 0x617b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x43], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x43]
mov byte [esp + 0x6173], bl
mov dword [esp + 0x616c], eax
movzx eax, byte [esp + 0x6173]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x44], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x44]
mov byte [esp + 0x616b], bl
mov dword [esp + 0x6164], eax
movzx eax, byte [esp + 0x616b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x45], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x45]
mov byte [esp + 0x6163], bl
mov dword [esp + 0x615c], eax
movzx eax, byte [esp + 0x6163]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x46], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x46]
mov byte [esp + 0x615b], bl
mov dword [esp + 0x6154], eax
movzx eax, byte [esp + 0x615b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x47], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x47]
mov byte [esp + 0x6153], bl
mov dword [esp + 0x614c], eax
movzx eax, byte [esp + 0x6153]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x48], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x48]
mov byte [esp + 0x614b], bl
mov dword [esp + 0x6144], eax
movzx eax, byte [esp + 0x614b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x49], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x49]
mov byte [esp + 0x6143], bl
mov dword [esp + 0x613c], eax
movzx eax, byte [esp + 0x6143]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4a]
mov byte [esp + 0x613b], bl
mov dword [esp + 0x6134], eax
movzx eax, byte [esp + 0x613b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4b]
mov byte [esp + 0x6133], bl
mov dword [esp + 0x612c], eax
movzx eax, byte [esp + 0x6133]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4c]
mov byte [esp + 0x612b], bl
mov dword [esp + 0x6124], eax
movzx eax, byte [esp + 0x612b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4d]
mov byte [esp + 0x6123], bl
mov dword [esp + 0x611c], eax
movzx eax, byte [esp + 0x6123]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4e]
mov byte [esp + 0x611b], bl
mov dword [esp + 0x6114], eax
movzx eax, byte [esp + 0x611b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x4f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x4f]
mov byte [esp + 0x6113], bl
mov dword [esp + 0x610c], eax
movzx eax, byte [esp + 0x6113]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x50], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x50]
mov byte [esp + 0x610b], bl
mov dword [esp + 0x6104], eax
movzx eax, byte [esp + 0x610b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x51], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x51]
mov byte [esp + 0x6103], bl
mov dword [esp + 0x60fc], eax
movzx eax, byte [esp + 0x6103]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x52], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x52]
mov byte [esp + 0x60fb], bl
mov dword [esp + 0x60f4], eax
movzx eax, byte [esp + 0x60fb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x53], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x53]
mov byte [esp + 0x60f3], bl
mov dword [esp + 0x60ec], eax
movzx eax, byte [esp + 0x60f3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x54], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x54]
mov byte [esp + 0x60eb], bl
mov dword [esp + 0x60e4], eax
movzx eax, byte [esp + 0x60eb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x55], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x55]
mov byte [esp + 0x60e3], bl
mov dword [esp + 0x60dc], eax
movzx eax, byte [esp + 0x60e3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x56], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x56]
mov byte [esp + 0x60db], bl
mov dword [esp + 0x60d4], eax
movzx eax, byte [esp + 0x60db]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x57], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x57]
mov byte [esp + 0x60d3], bl
mov dword [esp + 0x60cc], eax
movzx eax, byte [esp + 0x60d3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x58], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x58]
mov byte [esp + 0x60cb], bl
mov dword [esp + 0x60c4], eax
movzx eax, byte [esp + 0x60cb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x59], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x59]
mov byte [esp + 0x60c3], bl
mov dword [esp + 0x60bc], eax
movzx eax, byte [esp + 0x60c3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5a]
mov byte [esp + 0x60bb], bl
mov dword [esp + 0x60b4], eax
movzx eax, byte [esp + 0x60bb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5b]
mov byte [esp + 0x60b3], bl
mov dword [esp + 0x60ac], eax
movzx eax, byte [esp + 0x60b3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5c]
mov byte [esp + 0x60ab], bl
mov dword [esp + 0x60a4], eax
movzx eax, byte [esp + 0x60ab]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5d]
mov byte [esp + 0x60a3], bl
mov dword [esp + 0x609c], eax
movzx eax, byte [esp + 0x60a3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5e]
mov byte [esp + 0x609b], bl
mov dword [esp + 0x6094], eax
movzx eax, byte [esp + 0x609b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x5f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x5f]
mov byte [esp + 0x6093], bl
mov dword [esp + 0x608c], eax
movzx eax, byte [esp + 0x6093]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x60], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x60]
mov byte [esp + 0x608b], bl
mov dword [esp + 0x6084], eax
movzx eax, byte [esp + 0x608b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x61], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x61]
mov byte [esp + 0x6083], bl
mov dword [esp + 0x607c], eax
movzx eax, byte [esp + 0x6083]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x62], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x62]
mov byte [esp + 0x607b], bl
mov dword [esp + 0x6074], eax
movzx eax, byte [esp + 0x607b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x63], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x63]
mov byte [esp + 0x6073], bl
mov dword [esp + 0x606c], eax
movzx eax, byte [esp + 0x6073]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x64], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x64]
mov byte [esp + 0x606b], bl
mov dword [esp + 0x6064], eax
movzx eax, byte [esp + 0x606b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x65], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x65]
mov byte [esp + 0x6063], bl
mov dword [esp + 0x605c], eax
movzx eax, byte [esp + 0x6063]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x66], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x66]
mov byte [esp + 0x605b], bl
mov dword [esp + 0x6054], eax
movzx eax, byte [esp + 0x605b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x67], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x67]
mov byte [esp + 0x6053], bl
mov dword [esp + 0x604c], eax
movzx eax, byte [esp + 0x6053]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x68], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x68]
mov byte [esp + 0x604b], bl
mov dword [esp + 0x6044], eax
movzx eax, byte [esp + 0x604b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x69], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x69]
mov byte [esp + 0x6043], bl
mov dword [esp + 0x603c], eax
movzx eax, byte [esp + 0x6043]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6a]
mov byte [esp + 0x603b], bl
mov dword [esp + 0x6034], eax
movzx eax, byte [esp + 0x603b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6b]
mov byte [esp + 0x6033], bl
mov dword [esp + 0x602c], eax
movzx eax, byte [esp + 0x6033]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6c]
mov byte [esp + 0x602b], bl
mov dword [esp + 0x6024], eax
movzx eax, byte [esp + 0x602b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6d]
mov byte [esp + 0x6023], bl
mov dword [esp + 0x601c], eax
movzx eax, byte [esp + 0x6023]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6e], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6e]
mov byte [esp + 0x601b], bl
mov dword [esp + 0x6014], eax
movzx eax, byte [esp + 0x601b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x6f], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x6f]
mov byte [esp + 0x6013], bl
mov dword [esp + 0x600c], eax
movzx eax, byte [esp + 0x6013]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x70], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x70]
mov byte [esp + 0x600b], bl
mov dword [esp + 0x6004], eax
movzx eax, byte [esp + 0x600b]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x71], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x71]
mov byte [esp + 0x6003], bl
mov dword [esp + 0x5ffc], eax
movzx eax, byte [esp + 0x6003]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x72], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x72]
mov byte [esp + 0x5ffb], bl
mov dword [esp + 0x5ff4], eax
movzx eax, byte [esp + 0x5ffb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x73], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x73]
mov byte [esp + 0x5ff3], bl
mov dword [esp + 0x5fec], eax
movzx eax, byte [esp + 0x5ff3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x74], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x74]
mov byte [esp + 0x5feb], bl
mov dword [esp + 0x5fe4], eax
movzx eax, byte [esp + 0x5feb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x75], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x75]
mov byte [esp + 0x5fe3], bl
mov dword [esp + 0x5fdc], eax
movzx eax, byte [esp + 0x5fe3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x76], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x76]
mov byte [esp + 0x5fdb], bl
mov dword [esp + 0x5fd4], eax
movzx eax, byte [esp + 0x5fdb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x77], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x77]
mov byte [esp + 0x5fd3], bl
mov dword [esp + 0x5fcc], eax
movzx eax, byte [esp + 0x5fd3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x78], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x78]
mov byte [esp + 0x5fcb], bl
mov dword [esp + 0x5fc4], eax
movzx eax, byte [esp + 0x5fcb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x79], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x79]
mov byte [esp + 0x5fc3], bl
mov dword [esp + 0x5fbc], eax
movzx eax, byte [esp + 0x5fc3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x7a], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x7a]
mov byte [esp + 0x5fbb], bl
mov dword [esp + 0x5fb4], eax
movzx eax, byte [esp + 0x5fbb]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x7b], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x7b]
mov byte [esp + 0x5fb3], bl
mov dword [esp + 0x5fac], eax
movzx eax, byte [esp + 0x5fb3]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x7c], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x7c]
mov byte [esp + 0x5fab], bl
mov dword [esp + 0x5fa4], eax
movzx eax, byte [esp + 0x5fab]
imul esi, eax, 0x35
mov eax, esi
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov edi, edx
mov edx, dword [esp + 0x3c58]
mov ebx, edi
shl ebx, 7
sub edi, ebx
lea ebx, [esi + edi + 0x5e]
mov byte [eax + 0x7d], bl
mov esi, dword [esp + 0x5f28]
mov bl, byte [esi + 0x7d]
mov byte [esp + 0x5fa3], bl
mov dword [esp + 0x5f9c], eax
movzx eax, byte [esp + 0x5fa3]
imul eax, eax, 0x35
mov dword [esp + 0x3c60], eax
add eax, 0x5e
mul edx
mov eax, dword [esp + 0x3c5c]
mov esi, edx
mov edx, dword [esp + 0x3c60]
mov edi, esi
shl edi, 7
sub esi, edi
lea edx, [edx + esi + 0x5e]
mov byte [eax + 0x7e], dl
call fcn.00606e20
lea ecx, [esp + 0x65a0]
mov dword [esp + 0x5f20], ecx
lea ecx, [esp + 0x65b0]
mov dword [esp + 0x5f1c], ecx
mov dword [esp + 0x5f18], 0
mov dword [esp + 0x5f14], 0
mov dword [esp + 0x5f10], 4
mov dword [esp + 0x5f0c], 1
mov dword [esp + 0x5f08], 0
mov dword [esp + 0x5f04], 0
mov dword [esp + 0x5f00], 0
mov dword [esp + 0x5efc], eax
mov eax, esp
mov dword [eax + 0xc], 0x58
mov dword [eax + 8], 0x3a963686
mov dword [eax + 4], 0xf
mov dword [eax], 0
call fcn.005cd4e0
mov dword [esp + 0x5ef8], eax
mov eax, dword [esp + 0x5ef8]
mov dword [esp + 0x3c7c], eax
mov eax, dword [esp + 0x5f20]
mov ecx, dword [esp + 0x5f1c]
mov dword [esp + 0x3c68], ecx
mov ecx, dword [esp + 0x5f18]
mov dword [esp + 0x3c6c], ecx
mov ecx, dword [esp + 0x5f14]
mov dword [esp + 0x3c70], ecx
mov ecx, dword [esp + 0x5f10]
mov dword [esp + 0x3c74], ecx
mov ecx, dword [esp + 0x5f0c]
mov dword [esp + 0x3c78], ecx
mov ebx, dword [esp + 0x5f08]
mov edi, dword [esp + 0x5f04]
mov esi, dword [esp + 0x5f00]
mov edx, dword [esp + 0x5efc]
mov ecx, esp
mov dword [esp + 0x3c64], ecx
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x3c68]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x3c6c]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x3c70]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x3c74]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x3c78]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x3c7c]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
sub esp, 0x28
test eax, eax
setne byte [esp + 0x4d97]
mov al, byte [esp + 0x4d97]
test al, 1
xorps xmm0, xmm0
movsd xmm1, qword [0x4802b0]
movsd qword [esp + 0x3c80], xmm1
movsd qword [esp + 0x3c88], xmm0
jne 0x5dcc00
movsd xmm0, qword [esp + 0x3c80]
movsd qword [esp + 0x3c88], xmm0
movsd xmm0, qword [esp + 0x3c88]
movsd qword [esp + 0x5c78], xmm0
movsd xmm0, qword [esp + 0x5c78]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5c70], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3c4c], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3c4c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c54], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3c50], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3c50]
mov dl, al
mov eax, dword [esp + 0x3c54]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dce41
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3c40], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3c40]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c44], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3c44]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3c48], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3c48]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dce3c
mov dword [esp + 0x5c6c], 0
cmp dword [esp + 0x5c6c], 4
jae 0x5dce37
movsd xmm0, qword [esp + 0x5c70]
cvtsi2sd xmm1, dword [esp + 0x5c6c]
addsd xmm0, xmm1
movsd qword [esp + 0x3c38], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3c38]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dcda4
jp 0x5dcda4
movsd xmm0, qword [esp + 0x5c70]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5c70], xmm0
jmp 0x5dcc41
movsd xmm0, qword [esp + 0x5c70]
cvtsi2sd xmm1, dword [esp + 0x5c6c]
addsd xmm0, xmm1
movsd qword [esp + 0x3c30], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3c30]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dce32
jp 0x5dce32
mov eax, dword [esp + 0x5c6c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5c70]
addsd xmm0, xmm1
movsd qword [esp + 0x5c70], xmm0
movsd xmm0, qword [esp + 0x5c70]
cvtsi2sd xmm1, dword [esp + 0x5c6c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c80], eax
jmp 0x5dcefc
jmp 0x5dce46
jmp 0x5dcc41
jmp 0x5dce46
jmp 0x5dce46
movsd xmm0, qword [esp + 0x5c70]
movsd qword [esp + 0x3c20], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3c18], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3c18]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c2c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3c1c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3c1c]
movsd xmm0, qword [esp + 0x3c20]
mov dl, al
mov eax, dword [esp + 0x3c2c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c80], eax
mov eax, dword [esp + 0x5c80]
mov dword [esp + 0x3c14], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3c08], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3c08]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c10], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3c0c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3c0c]
mov dl, al
mov eax, dword [esp + 0x3c10]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3c14]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5dd0a9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3bec], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3bec]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3bf0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3bf0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3bf4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3bf4]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x3c04], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3bf8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3bf8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3c00], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3bfc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3bfc]
mov dl, al
mov eax, dword [esp + 0x3c00]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3c04]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5dd0a9
mov dword [esp + 0x4d90], 0
cmp dword [esp + 0x4d90], 0x20
jae 0x5dd0a4
mov byte [esp + 0x4ed3], 0
jmp 0x606deb
jmp 0x5dd0a9
mov dword [esp + 0x4d8c], 0x8234
mov dword [esp + 0x4d88], 0xa515
mov dword [esp + 0x4d84], 0x5ad4
mov eax, dword [esp + 0x4d88]
mov dword [esp + 0x4d8c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5c48], xmm0
movsd xmm0, qword [esp + 0x5c48]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5c40], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3be0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3be0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3be8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3be4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3be4]
mov dl, al
mov eax, dword [esp + 0x3be8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dd314
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3bd4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3bd4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3bd8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3bd8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3bdc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3bdc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dd30f
mov dword [esp + 0x5c3c], 0
cmp dword [esp + 0x5c3c], 4
jae 0x5dd30a
movsd xmm0, qword [esp + 0x5c40]
cvtsi2sd xmm1, dword [esp + 0x5c3c]
addsd xmm0, xmm1
movsd qword [esp + 0x3bc8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3bc8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dd277
jp 0x5dd277
movsd xmm0, qword [esp + 0x5c40]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5c40], xmm0
jmp 0x5dd114
movsd xmm0, qword [esp + 0x5c40]
cvtsi2sd xmm1, dword [esp + 0x5c3c]
addsd xmm0, xmm1
movsd qword [esp + 0x3bc0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3bc0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dd305
jp 0x5dd305
mov eax, dword [esp + 0x5c3c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5c40]
addsd xmm0, xmm1
movsd qword [esp + 0x5c40], xmm0
movsd xmm0, qword [esp + 0x5c40]
cvtsi2sd xmm1, dword [esp + 0x5c3c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c50], eax
jmp 0x5dd3cf
jmp 0x5dd319
jmp 0x5dd114
jmp 0x5dd319
jmp 0x5dd319
movsd xmm0, qword [esp + 0x5c40]
movsd qword [esp + 0x3bb0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ba8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ba8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3bbc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3bac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3bac]
movsd xmm0, qword [esp + 0x3bb0]
mov dl, al
mov eax, dword [esp + 0x3bbc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c50], eax
mov eax, dword [esp + 0x5c50]
mov dword [esp + 0x3ba4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ba0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b9c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b9c]
mov dl, al
mov eax, dword [esp + 0x3ba0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3ba4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5dda1d
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3b7c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3b7c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b80], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3b80]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x3b84], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3b84]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x3b94], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b88], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b88]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b90], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b8c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b8c]
mov dl, al
mov eax, dword [esp + 0x3b90]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3b94]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5dda1d
mov dword [esp + 0x4d84], 0x5422
mov dword [esp + 0x4d80], 0x63fa
mov dword [esp + 0x4d7c], 0x997b
mov dword [esp + 0x4d78], 0x860a
mov eax, dword [esp + 0x4d7c]
mov dword [esp + 0x4d80], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5c30], xmm0
movsd xmm0, qword [esp + 0x5c30]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5c28], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b70], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b70]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b78], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b74], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b74]
mov dl, al
mov eax, dword [esp + 0x3b78]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dd7c9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3b64], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3b64]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b68], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3b68]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3b6c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3b6c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dd7c4
mov dword [esp + 0x5c24], 0
cmp dword [esp + 0x5c24], 4
jae 0x5dd7bf
movsd xmm0, qword [esp + 0x5c28]
cvtsi2sd xmm1, dword [esp + 0x5c24]
addsd xmm0, xmm1
movsd qword [esp + 0x3b58], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3b58]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dd72c
jp 0x5dd72c
movsd xmm0, qword [esp + 0x5c28]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5c28], xmm0
jmp 0x5dd5c9
movsd xmm0, qword [esp + 0x5c28]
cvtsi2sd xmm1, dword [esp + 0x5c24]
addsd xmm0, xmm1
movsd qword [esp + 0x3b50], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3b50]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dd7ba
jp 0x5dd7ba
mov eax, dword [esp + 0x5c24]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5c28]
addsd xmm0, xmm1
movsd qword [esp + 0x5c28], xmm0
movsd xmm0, qword [esp + 0x5c28]
cvtsi2sd xmm1, dword [esp + 0x5c24]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c38], eax
jmp 0x5dd884
jmp 0x5dd7ce
jmp 0x5dd5c9
jmp 0x5dd7ce
jmp 0x5dd7ce
movsd xmm0, qword [esp + 0x5c28]
movsd qword [esp + 0x3b40], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b38], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b38]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b4c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b3c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b3c]
movsd xmm0, qword [esp + 0x3b40]
mov dl, al
mov eax, dword [esp + 0x3b4c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c38], eax
mov eax, dword [esp + 0x5c38]
mov dword [esp + 0x3b34], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b28], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b28]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b30], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b2c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b2c]
mov dl, al
mov eax, dword [esp + 0x3b30]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3b34]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5dda18
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3b0c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3b0c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b10], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3b10]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [esp + 0x3b14], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3b14]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x3b24], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b18], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b18]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b20], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b1c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b1c]
mov dl, al
mov eax, dword [esp + 0x3b20]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3b24]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5dda18
mov dword [esp + 0x4d78], 0x7898
jmp 0x5dda1d
mov dword [esp + 0x4d74], 0xa27e
mov dword [esp + 0x4d70], 0x72b0
mov dword [esp + 0x4d6c], 0x6dbd
mov eax, dword [esp + 0x4d70]
mov dword [esp + 0x4d74], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5c18], xmm0
movsd xmm0, qword [esp + 0x5c18]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5c10], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3b00], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3b00]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3b08], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3b04], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3b04]
mov dl, al
mov eax, dword [esp + 0x3b08]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ddc88
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3af4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3af4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3af8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3af8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3afc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3afc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ddc83
mov dword [esp + 0x5c0c], 0
cmp dword [esp + 0x5c0c], 4
jae 0x5ddc7e
movsd xmm0, qword [esp + 0x5c10]
cvtsi2sd xmm1, dword [esp + 0x5c0c]
addsd xmm0, xmm1
movsd qword [esp + 0x3ae8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3ae8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ddbeb
jp 0x5ddbeb
movsd xmm0, qword [esp + 0x5c10]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5c10], xmm0
jmp 0x5dda88
movsd xmm0, qword [esp + 0x5c10]
cvtsi2sd xmm1, dword [esp + 0x5c0c]
addsd xmm0, xmm1
movsd qword [esp + 0x3ae0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3ae0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ddc79
jp 0x5ddc79
mov eax, dword [esp + 0x5c0c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5c10]
addsd xmm0, xmm1
movsd qword [esp + 0x5c10], xmm0
movsd xmm0, qword [esp + 0x5c10]
cvtsi2sd xmm1, dword [esp + 0x5c0c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c20], eax
jmp 0x5ddd43
jmp 0x5ddc8d
jmp 0x5dda88
jmp 0x5ddc8d
jmp 0x5ddc8d
movsd xmm0, qword [esp + 0x5c10]
movsd qword [esp + 0x3ad0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ac8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ac8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3adc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3acc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3acc]
movsd xmm0, qword [esp + 0x3ad0]
mov dl, al
mov eax, dword [esp + 0x3adc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c20], eax
mov eax, dword [esp + 0x5c20]
mov dword [esp + 0x3ac4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3ab8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3ab8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ac0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3abc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3abc]
mov dl, al
mov eax, dword [esp + 0x3ac0]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3ac4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5de393
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3a9c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3a9c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3aa0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3aa0]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x3aa4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3aa4]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x3ab4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3aa8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3aa8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3ab0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3aac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3aac]
mov dl, al
mov eax, dword [esp + 0x3ab0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3ab4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5de393
mov dword [esp + 0x4d6c], 0x92d9
mov dword [esp + 0x4d68], 0x98b0
mov dword [esp + 0x4d64], 0x2895
mov dword [esp + 0x4d60], 0x36a4
mov eax, dword [esp + 0x4d64]
mov dword [esp + 0x4d68], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5c00], xmm0
movsd xmm0, qword [esp + 0x5c00]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5bf8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3a90], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3a90]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a98], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3a94], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3a94]
mov dl, al
mov eax, dword [esp + 0x3a98]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5de140
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3a84], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3a84]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a88], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3a88]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3a8c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3a8c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5de13b
mov dword [esp + 0x5bf4], 0
cmp dword [esp + 0x5bf4], 4
jae 0x5de136
movsd xmm0, qword [esp + 0x5bf8]
cvtsi2sd xmm1, dword [esp + 0x5bf4]
addsd xmm0, xmm1
movsd qword [esp + 0x3a78], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3a78]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5de0a3
jp 0x5de0a3
movsd xmm0, qword [esp + 0x5bf8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5bf8], xmm0
jmp 0x5ddf40
movsd xmm0, qword [esp + 0x5bf8]
cvtsi2sd xmm1, dword [esp + 0x5bf4]
addsd xmm0, xmm1
movsd qword [esp + 0x3a70], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3a70]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5de131
jp 0x5de131
mov eax, dword [esp + 0x5bf4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5bf8]
addsd xmm0, xmm1
movsd qword [esp + 0x5bf8], xmm0
movsd xmm0, qword [esp + 0x5bf8]
cvtsi2sd xmm1, dword [esp + 0x5bf4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c08], eax
jmp 0x5de1fb
jmp 0x5de145
jmp 0x5ddf40
jmp 0x5de145
jmp 0x5de145
movsd xmm0, qword [esp + 0x5bf8]
movsd qword [esp + 0x3a60], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3a58], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3a58]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a6c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3a5c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3a5c]
movsd xmm0, qword [esp + 0x3a60]
mov dl, al
mov eax, dword [esp + 0x3a6c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5c08], eax
mov eax, dword [esp + 0x5c08]
mov dword [esp + 0x3a54], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3a48], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3a48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a50], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3a4c], eax
call fcn.005ceb20
mov edx, dword [esp + 0x3a4c]
mov cl, al
mov eax, dword [esp + 0x3a50]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3a54]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5de38e
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3a2c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3a2c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a30], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3a30]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x3a34], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3a34]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x3a44], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3a38], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3a38]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a40], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3a3c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3a3c]
mov dl, al
mov eax, dword [esp + 0x3a40]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3a44]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5de38e
mov dword [esp + 0x4d60], 0x9c30
jmp 0x5de393
movzx eax, byte [esp + 0x4e3b]
and eax, 1
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5be8], xmm0
movsd xmm0, qword [esp + 0x5be8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5be0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3a20], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3a20]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a28], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3a24], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3a24]
mov dl, al
mov eax, dword [esp + 0x3a28]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5de5da
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3a14], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3a14]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3a18], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3a18]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3a1c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3a1c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5de5d5
mov dword [esp + 0x5bdc], 0
cmp dword [esp + 0x5bdc], 4
jae 0x5de5d0
movsd xmm0, qword [esp + 0x5be0]
cvtsi2sd xmm1, dword [esp + 0x5bdc]
addsd xmm0, xmm1
movsd qword [esp + 0x3a08], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3a08]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5de53d
jp 0x5de53d
movsd xmm0, qword [esp + 0x5be0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5be0], xmm0
jmp 0x5de3da
movsd xmm0, qword [esp + 0x5be0]
cvtsi2sd xmm1, dword [esp + 0x5bdc]
addsd xmm0, xmm1
movsd qword [esp + 0x3a00], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3a00]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5de5cb
jp 0x5de5cb
mov eax, dword [esp + 0x5bdc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5be0]
addsd xmm0, xmm1
movsd qword [esp + 0x5be0], xmm0
movsd xmm0, qword [esp + 0x5be0]
cvtsi2sd xmm1, dword [esp + 0x5bdc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bf0], eax
jmp 0x5de695
jmp 0x5de5df
jmp 0x5de3da
jmp 0x5de5df
jmp 0x5de5df
movsd xmm0, qword [esp + 0x5be0]
movsd qword [esp + 0x39f0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x39e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x39e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39fc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x39ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x39ec]
movsd xmm0, qword [esp + 0x39f0]
mov dl, al
mov eax, dword [esp + 0x39fc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bf0], eax
mov eax, dword [esp + 0x5bf0]
mov dword [esp + 0x39e4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x39d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x39d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39e0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x39dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x39dc]
mov dl, al
mov eax, dword [esp + 0x39e0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x39e4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5df6b0
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x39bc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x39bc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39c0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x39c0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [esp + 0x39c4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x39c4]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x39d4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x39c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x39c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x39cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x39cc]
mov dl, al
mov eax, dword [esp + 0x39d0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x39d4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5df6b0
mov dword [esp + 0x4d5c], 0x358c
mov dword [esp + 0x4d58], 0x9ea0
mov dword [esp + 0x4d54], 0x5ebd
mov eax, dword [esp + 0x4d58]
mov dword [esp + 0x4d5c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5bd0], xmm0
movsd xmm0, qword [esp + 0x5bd0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5bc8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x39b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x39b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39b8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x39b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x39b4]
mov dl, al
mov eax, dword [esp + 0x39b8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dea87
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x39a4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x39a4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x39a8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x39a8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x39ac], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x39ac]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5dea82
mov dword [esp + 0x5bc4], 0
cmp dword [esp + 0x5bc4], 4
jae 0x5dea7d
movsd xmm0, qword [esp + 0x5bc8]
cvtsi2sd xmm1, dword [esp + 0x5bc4]
addsd xmm0, xmm1
movsd qword [esp + 0x3998], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3998]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5de9ea
jp 0x5de9ea
movsd xmm0, qword [esp + 0x5bc8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5bc8], xmm0
jmp 0x5de887
movsd xmm0, qword [esp + 0x5bc8]
cvtsi2sd xmm1, dword [esp + 0x5bc4]
addsd xmm0, xmm1
movsd qword [esp + 0x3990], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3990]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5dea78
jp 0x5dea78
mov eax, dword [esp + 0x5bc4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5bc8]
addsd xmm0, xmm1
movsd qword [esp + 0x5bc8], xmm0
movsd xmm0, qword [esp + 0x5bc8]
cvtsi2sd xmm1, dword [esp + 0x5bc4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bd8], eax
jmp 0x5deb42
jmp 0x5dea8c
jmp 0x5de887
jmp 0x5dea8c
jmp 0x5dea8c
movsd xmm0, qword [esp + 0x5bc8]
movsd qword [esp + 0x3980], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3978], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3978]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x398c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x397c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x397c]
movsd xmm0, qword [esp + 0x3980]
mov dl, al
mov eax, dword [esp + 0x398c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bd8], eax
mov eax, dword [esp + 0x5bd8]
mov dword [esp + 0x3974], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3968], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3968]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3970], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x396c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x396c]
mov dl, al
mov eax, dword [esp + 0x3970]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3974]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5decd0
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x394c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x394c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3950], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3950]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3954], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3954]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x3964], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3958], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3958]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3960], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x395c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x395c]
mov dl, al
mov eax, dword [esp + 0x3960]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3964]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5decd0
mov dword [esp + 0x4d54], 0x7506
mov eax, dword [esp + 0x65a0]
lea ecx, [esp + 0x659c]
mov dword [esp + 0x5f34], ecx
mov dword [esp + 0x5f30], eax
mov eax, esp
mov dword [eax + 0xc], 0x173
mov dword [eax + 8], 0xe8d11b2d
mov dword [eax + 4], 0xf
mov dword [eax], 0
call fcn.005cd4e0
mov dword [esp + 0x5f2c], eax
mov eax, dword [esp + 0x5f2c]
mov esi, dword [esp + 0x5f34]
mov edx, dword [esp + 0x5f30]
mov ecx, esp
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
sub esp, 8
mov dword [esp + 0x4d50], 0x7129
mov dword [esp + 0x4d4c], 0x4240
mov dword [esp + 0x4d48], 0x84c2
mov eax, dword [esp + 0x4d4c]
mov dword [esp + 0x4d50], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5bb8], xmm0
movsd xmm0, qword [esp + 0x5bb8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5bb0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3940], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3940]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3948], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3944], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3944]
mov dl, al
mov eax, dword [esp + 0x3948]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5defa1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3934], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3934]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3938], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3938]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x393c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x393c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5def9c
mov dword [esp + 0x5bac], 0
cmp dword [esp + 0x5bac], 4
jae 0x5def97
movsd xmm0, qword [esp + 0x5bb0]
cvtsi2sd xmm1, dword [esp + 0x5bac]
addsd xmm0, xmm1
movsd qword [esp + 0x3928], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3928]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5def04
jp 0x5def04
movsd xmm0, qword [esp + 0x5bb0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5bb0], xmm0
jmp 0x5deda1
movsd xmm0, qword [esp + 0x5bb0]
cvtsi2sd xmm1, dword [esp + 0x5bac]
addsd xmm0, xmm1
movsd qword [esp + 0x3920], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3920]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5def92
jp 0x5def92
mov eax, dword [esp + 0x5bac]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5bb0]
addsd xmm0, xmm1
movsd qword [esp + 0x5bb0], xmm0
movsd xmm0, qword [esp + 0x5bb0]
cvtsi2sd xmm1, dword [esp + 0x5bac]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bc0], eax
jmp 0x5df05c
jmp 0x5defa6
jmp 0x5deda1
jmp 0x5defa6
jmp 0x5defa6
movsd xmm0, qword [esp + 0x5bb0]
movsd qword [esp + 0x3910], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3908], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3908]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x391c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x390c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x390c]
movsd xmm0, qword [esp + 0x3910]
mov dl, al
mov eax, dword [esp + 0x391c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5bc0], eax
mov eax, dword [esp + 0x5bc0]
mov dword [esp + 0x3904], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x38f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x38f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3900], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x38fc], eax
call fcn.005ceb20
mov edx, dword [esp + 0x38fc]
mov cl, al
mov eax, dword [esp + 0x3900]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3904]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5df6ab
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x38dc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x38dc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x38e0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x38e0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x38e4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x38e4]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x38f4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x38e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x38e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x38f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x38ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x38ec]
mov dl, al
mov eax, dword [esp + 0x38f0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x38f4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5df6ab
mov dword [esp + 0x4d48], 0x5358
mov dword [esp + 0x4d44], 0x4e27
mov dword [esp + 0x4d40], 0x9a0d
mov dword [esp + 0x4d3c], 0x65d6
mov eax, dword [esp + 0x4d40]
mov dword [esp + 0x4d44], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ba0], xmm0
movsd xmm0, qword [esp + 0x5ba0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b98], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x38d0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x38d0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x38d8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x38d4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x38d4]
mov dl, al
mov eax, dword [esp + 0x38d8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5df459
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x38c4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x38c4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x38c8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x38c8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x38cc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x38cc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5df454
mov dword [esp + 0x5b94], 0
cmp dword [esp + 0x5b94], 4
jae 0x5df44f
movsd xmm0, qword [esp + 0x5b98]
cvtsi2sd xmm1, dword [esp + 0x5b94]
addsd xmm0, xmm1
movsd qword [esp + 0x38b8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x38b8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5df3bc
jp 0x5df3bc
movsd xmm0, qword [esp + 0x5b98]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b98], xmm0
jmp 0x5df259
movsd xmm0, qword [esp + 0x5b98]
cvtsi2sd xmm1, dword [esp + 0x5b94]
addsd xmm0, xmm1
movsd qword [esp + 0x38b0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x38b0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5df44a
jp 0x5df44a
mov eax, dword [esp + 0x5b94]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b98]
addsd xmm0, xmm1
movsd qword [esp + 0x5b98], xmm0
movsd xmm0, qword [esp + 0x5b98]
cvtsi2sd xmm1, dword [esp + 0x5b94]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ba8], eax
jmp 0x5df514
jmp 0x5df45e
jmp 0x5df259
jmp 0x5df45e
jmp 0x5df45e
movsd xmm0, qword [esp + 0x5b98]
movsd qword [esp + 0x38a0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3898], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3898]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x38ac], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x389c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x389c]
movsd xmm0, qword [esp + 0x38a0]
mov dl, al
mov eax, dword [esp + 0x38ac]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ba8], eax
mov eax, dword [esp + 0x5ba8]
mov dword [esp + 0x3894], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3888], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3888]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3890], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x388c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x388c]
mov dl, al
mov eax, dword [esp + 0x3890]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3894]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5df6a6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x386c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x386c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3870], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3870]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x3874], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3874]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x3884], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3878], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3878]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3880], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x387c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x387c]
mov dl, al
mov eax, dword [esp + 0x3880]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3884]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5df6a6
mov dword [esp + 0x4d3c], 0x983a
jmp 0x5df6ab
jmp 0x5df6b0
mov dword [esp + 0x4d38], 0x84c5
mov dword [esp + 0x4d34], 0x818d
mov dword [esp + 0x4d30], 0x4e19
mov eax, dword [esp + 0x4d34]
mov dword [esp + 0x4d38], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5b88], xmm0
movsd xmm0, qword [esp + 0x5b88]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b80], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3860], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3860]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3868], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3864], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3864]
mov dl, al
mov eax, dword [esp + 0x3868]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5df91b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3854], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3854]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3858], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3858]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x385c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x385c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5df916
mov dword [esp + 0x5b7c], 0
cmp dword [esp + 0x5b7c], 4
jae 0x5df911
movsd xmm0, qword [esp + 0x5b80]
cvtsi2sd xmm1, dword [esp + 0x5b7c]
addsd xmm0, xmm1
movsd qword [esp + 0x3848], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3848]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5df87e
jp 0x5df87e
movsd xmm0, qword [esp + 0x5b80]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b80], xmm0
jmp 0x5df71b
movsd xmm0, qword [esp + 0x5b80]
cvtsi2sd xmm1, dword [esp + 0x5b7c]
addsd xmm0, xmm1
movsd qword [esp + 0x3840], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3840]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5df90c
jp 0x5df90c
mov eax, dword [esp + 0x5b7c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b80]
addsd xmm0, xmm1
movsd qword [esp + 0x5b80], xmm0
movsd xmm0, qword [esp + 0x5b80]
cvtsi2sd xmm1, dword [esp + 0x5b7c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b90], eax
jmp 0x5df9d6
jmp 0x5df920
jmp 0x5df71b
jmp 0x5df920
jmp 0x5df920
movsd xmm0, qword [esp + 0x5b80]
movsd qword [esp + 0x3830], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3828], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3828]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x383c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x382c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x382c]
movsd xmm0, qword [esp + 0x3830]
mov dl, al
mov eax, dword [esp + 0x383c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b90], eax
mov eax, dword [esp + 0x5b90]
mov dword [esp + 0x3824], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3818], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3818]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3820], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x381c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x381c]
mov dl, al
mov eax, dword [esp + 0x3820]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3824]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5dfb67
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x37fc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x37fc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3800], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3800]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3804], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3804]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x3814], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3808], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3808]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3810], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x380c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x380c]
mov dl, al
mov eax, dword [esp + 0x3810]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3814]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5dfb67
mov dword [esp + 0x4d30], 0x80bc
mov dword [esp + 0x5f3c], str.kernel32.dll
lea ecx, [esp + 0x69fe]
mov dword [esp + 0x5f38], ecx
mov eax, dword [esp + 0x5f38]
mov dword [esp + 0x37f8], eax
mov byte [eax], 0
mov edx, dword [esp + 0x5f3c]
mov dl, byte [edx]
mov byte [esp + 0x645b], dl
mov dword [esp + 0x6454], eax
movzx edi, byte [esp + 0x645b]
lea eax, [edi + edi + 0x4c]
mov edx, 0x2040811
mov dword [esp + 0x37f4], edx
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 1], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 1]
mov byte [esp + 0x6453], bl
mov dword [esp + 0x644c], eax
movzx edi, byte [esp + 0x6453]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 2], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 2]
mov byte [esp + 0x644b], bl
mov dword [esp + 0x6444], eax
movzx edi, byte [esp + 0x644b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 3], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 3]
mov byte [esp + 0x6443], bl
mov dword [esp + 0x643c], eax
movzx edi, byte [esp + 0x6443]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 4], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 4]
mov byte [esp + 0x643b], bl
mov dword [esp + 0x6434], eax
movzx edi, byte [esp + 0x643b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 5], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 5]
mov byte [esp + 0x6433], bl
mov dword [esp + 0x642c], eax
movzx edi, byte [esp + 0x6433]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 6], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 6]
mov byte [esp + 0x642b], bl
mov dword [esp + 0x6424], eax
movzx edi, byte [esp + 0x642b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 7], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 7]
mov byte [esp + 0x6423], bl
mov dword [esp + 0x641c], eax
movzx edi, byte [esp + 0x6423]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 8], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 8]
mov byte [esp + 0x641b], bl
mov dword [esp + 0x6414], eax
movzx edi, byte [esp + 0x641b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 9], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 9]
mov byte [esp + 0x6413], bl
mov dword [esp + 0x640c], eax
movzx edi, byte [esp + 0x6413]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xa], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xa]
mov byte [esp + 0x640b], bl
mov dword [esp + 0x6404], eax
movzx edi, byte [esp + 0x640b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xb], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xb]
mov byte [esp + 0x6403], bl
mov dword [esp + 0x63fc], eax
movzx edi, byte [esp + 0x6403]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xc], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xc]
mov byte [esp + 0x63fb], bl
mov dword [esp + 0x63f4], eax
movzx edi, byte [esp + 0x63fb]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xd], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xd]
mov byte [esp + 0x63f3], bl
mov dword [esp + 0x63ec], eax
movzx edi, byte [esp + 0x63f3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xe], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xe]
mov byte [esp + 0x63eb], bl
mov dword [esp + 0x63e4], eax
movzx edi, byte [esp + 0x63eb]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0xf], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0xf]
mov byte [esp + 0x63e3], bl
mov dword [esp + 0x63dc], eax
movzx edi, byte [esp + 0x63e3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x10], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x10]
mov byte [esp + 0x63db], bl
mov dword [esp + 0x63d4], eax
movzx edi, byte [esp + 0x63db]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x11], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x11]
mov byte [esp + 0x63d3], bl
mov dword [esp + 0x63cc], eax
movzx edi, byte [esp + 0x63d3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x12], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x12]
mov byte [esp + 0x63cb], bl
mov dword [esp + 0x63c4], eax
movzx edi, byte [esp + 0x63cb]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x13], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x13]
mov byte [esp + 0x63c3], bl
mov dword [esp + 0x63bc], eax
movzx edi, byte [esp + 0x63c3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x14], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x14]
mov byte [esp + 0x63bb], bl
mov dword [esp + 0x63b4], eax
movzx edi, byte [esp + 0x63bb]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x15], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x15]
mov byte [esp + 0x63b3], bl
mov dword [esp + 0x63ac], eax
movzx edi, byte [esp + 0x63b3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x16], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x16]
mov byte [esp + 0x63ab], bl
mov dword [esp + 0x63a4], eax
movzx edi, byte [esp + 0x63ab]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x17], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x17]
mov byte [esp + 0x63a3], bl
mov dword [esp + 0x639c], eax
movzx edi, byte [esp + 0x63a3]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x18], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x18]
mov byte [esp + 0x639b], bl
mov dword [esp + 0x6394], eax
movzx edi, byte [esp + 0x639b]
lea eax, [edi + edi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov esi, edx
mov edx, dword [esp + 0x37f4]
mov ebx, esi
shl ebx, 7
sub esi, ebx
lea ebx, [esi + edi*2 + 0x4c]
mov byte [eax + 0x19], bl
mov esi, dword [esp + 0x5f3c]
mov bl, byte [esi + 0x19]
mov byte [esp + 0x6393], bl
mov dword [esp + 0x638c], eax
movzx esi, byte [esp + 0x6393]
lea eax, [esi + esi + 0x4c]
mul edx
mov eax, dword [esp + 0x37f8]
mov edi, edx
shl edi, 7
sub edx, edi
lea edx, [edx + esi*2 + 0x4c]
mov byte [eax + 0x1a], dl
call fcn.00606eb0
mov dword [esp + 0x4d2c], eax
mov dword [esp + 0x4d28], 0x9baa
mov dword [esp + 0x4d24], 0x36f7
mov dword [esp + 0x4d20], 0x97a8
mov eax, dword [esp + 0x4d24]
mov dword [esp + 0x4d28], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5b70], xmm0
movsd xmm0, qword [esp + 0x5b70]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b68], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x37e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x37e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x37f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x37ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x37ec]
mov dl, al
mov eax, dword [esp + 0x37f0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e04f2
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x37dc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x37dc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x37e0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x37e0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x37e4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x37e4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e04ed
mov dword [esp + 0x5b64], 0
cmp dword [esp + 0x5b64], 4
jae 0x5e04e8
movsd xmm0, qword [esp + 0x5b68]
cvtsi2sd xmm1, dword [esp + 0x5b64]
addsd xmm0, xmm1
movsd qword [esp + 0x37d0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x37d0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e0455
jp 0x5e0455
movsd xmm0, qword [esp + 0x5b68]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b68], xmm0
jmp 0x5e02f2
movsd xmm0, qword [esp + 0x5b68]
cvtsi2sd xmm1, dword [esp + 0x5b64]
addsd xmm0, xmm1
movsd qword [esp + 0x37c8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x37c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e04e3
jp 0x5e04e3
mov eax, dword [esp + 0x5b64]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b68]
addsd xmm0, xmm1
movsd qword [esp + 0x5b68], xmm0
movsd xmm0, qword [esp + 0x5b68]
cvtsi2sd xmm1, dword [esp + 0x5b64]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b78], eax
jmp 0x5e05ad
jmp 0x5e04f7
jmp 0x5e02f2
jmp 0x5e04f7
jmp 0x5e04f7
movsd xmm0, qword [esp + 0x5b68]
movsd qword [esp + 0x37b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x37b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x37b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x37c4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x37b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x37b4]
movsd xmm0, qword [esp + 0x37b8]
mov dl, al
mov eax, dword [esp + 0x37c4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b78], eax
mov eax, dword [esp + 0x5b78]
mov dword [esp + 0x37ac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x37a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x37a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x37a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x37a4], eax
call fcn.005ceb20
mov edx, dword [esp + 0x37a4]
mov cl, al
mov eax, dword [esp + 0x37a8]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x37ac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e0bfd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3784], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3784]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3788], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3788]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x378c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x378c]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x379c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3790], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3790]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3798], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3794], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3794]
mov dl, al
mov eax, dword [esp + 0x3798]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x379c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e0bfd
mov dword [esp + 0x4d20], 0x9e7b
mov dword [esp + 0x4d1c], 0x5913
mov dword [esp + 0x4d18], 0x97ea
mov dword [esp + 0x4d14], 0x27d3
mov eax, dword [esp + 0x4d18]
mov dword [esp + 0x4d1c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5b58], xmm0
movsd xmm0, qword [esp + 0x5b58]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b50], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3778], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3778]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3780], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x377c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x377c]
mov dl, al
mov eax, dword [esp + 0x3780]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e09ab
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x376c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x376c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3770], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3770]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3774], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3774]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e09a6
mov dword [esp + 0x5b4c], 0
cmp dword [esp + 0x5b4c], 4
jae 0x5e09a1
movsd xmm0, qword [esp + 0x5b50]
cvtsi2sd xmm1, dword [esp + 0x5b4c]
addsd xmm0, xmm1
movsd qword [esp + 0x3760], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3760]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e090e
jp 0x5e090e
movsd xmm0, qword [esp + 0x5b50]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b50], xmm0
jmp 0x5e07ab
movsd xmm0, qword [esp + 0x5b50]
cvtsi2sd xmm1, dword [esp + 0x5b4c]
addsd xmm0, xmm1
movsd qword [esp + 0x3758], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3758]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e099c
jp 0x5e099c
mov eax, dword [esp + 0x5b4c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b50]
addsd xmm0, xmm1
movsd qword [esp + 0x5b50], xmm0
movsd xmm0, qword [esp + 0x5b50]
cvtsi2sd xmm1, dword [esp + 0x5b4c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b60], eax
jmp 0x5e0a66
jmp 0x5e09b0
jmp 0x5e07ab
jmp 0x5e09b0
jmp 0x5e09b0
movsd xmm0, qword [esp + 0x5b50]
movsd qword [esp + 0x3748], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3740], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3740]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3754], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3744], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3744]
movsd xmm0, qword [esp + 0x3748]
mov dl, al
mov eax, dword [esp + 0x3754]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b60], eax
mov eax, dword [esp + 0x5b60]
mov dword [esp + 0x373c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3730], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3730]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3738], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3734], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3734]
mov dl, al
mov eax, dword [esp + 0x3738]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x373c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e0bf8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3714], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3714]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3718], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3718]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [esp + 0x371c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x371c]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x372c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3720], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3720]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3728], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3724], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3724]
mov dl, al
mov eax, dword [esp + 0x3728]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x372c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e0bf8
mov dword [esp + 0x4d14], 0x993b
jmp 0x5e0bfd
mov eax, dword [0x5c4ba0]
mov edx, dword [esp + 0x4d2c]
mov ecx, esp
mov dword [ecx], edx
call eax
sub esp, 4
mov dword [esp + 0x4d10], eax
mov eax, dword [esp + 0x4d10]
test eax, eax
movsd xmm0, qword [0x4802b0]
xorps xmm1, xmm1
movsd qword [esp + 0x3700], xmm1
movsd qword [esp + 0x3708], xmm0
je 0x5e0c57
movsd xmm0, qword [esp + 0x3700]
movsd qword [esp + 0x3708], xmm0
movsd xmm0, qword [esp + 0x3708]
movsd qword [esp + 0x5b40], xmm0
movsd xmm0, qword [esp + 0x5b40]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b38], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x36f4], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x36f4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x36fc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x36f8], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x36f8]
mov dl, al
mov eax, dword [esp + 0x36fc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e0e98
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x36e8], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x36e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x36ec], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x36ec]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x36f0], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x36f0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e0e93
mov dword [esp + 0x5b34], 0
cmp dword [esp + 0x5b34], 4
jae 0x5e0e8e
movsd xmm0, qword [esp + 0x5b38]
cvtsi2sd xmm1, dword [esp + 0x5b34]
addsd xmm0, xmm1
movsd qword [esp + 0x36e0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x36e0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e0dfb
jp 0x5e0dfb
movsd xmm0, qword [esp + 0x5b38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b38], xmm0
jmp 0x5e0c98
movsd xmm0, qword [esp + 0x5b38]
cvtsi2sd xmm1, dword [esp + 0x5b34]
addsd xmm0, xmm1
movsd qword [esp + 0x36d8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x36d8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e0e89
jp 0x5e0e89
mov eax, dword [esp + 0x5b34]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b38]
addsd xmm0, xmm1
movsd qword [esp + 0x5b38], xmm0
movsd xmm0, qword [esp + 0x5b38]
cvtsi2sd xmm1, dword [esp + 0x5b34]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b48], eax
jmp 0x5e0f53
jmp 0x5e0e9d
jmp 0x5e0c98
jmp 0x5e0e9d
jmp 0x5e0e9d
movsd xmm0, qword [esp + 0x5b38]
movsd qword [esp + 0x36c8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x36c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x36c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x36d4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x36c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x36c4]
movsd xmm0, qword [esp + 0x36c8]
mov dl, al
mov eax, dword [esp + 0x36d4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b48], eax
mov eax, dword [esp + 0x5b48]
mov dword [esp + 0x36bc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x36b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x36b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x36b8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x36b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x36b4]
mov dl, al
mov eax, dword [esp + 0x36b8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x36bc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e1104
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3694], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3694]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3698], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3698]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x369c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x369c]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x36ac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x36a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x36a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x36a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x36a4], eax
call fcn.005ceb20
mov edx, dword [esp + 0x36a4]
mov cl, al
mov eax, dword [esp + 0x36a8]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x36ac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e1104
mov dword [esp + 0x4d0c], 0
cmp dword [esp + 0x4d0c], 0x3e
jae 0x5e10ff
mov byte [esp + 0x4ed3], 0
jmp 0x606deb
jmp 0x5e1104
mov dword [esp + 0x4d08], 0x4343
mov dword [esp + 0x4d04], 0x70ff
mov dword [esp + 0x4d00], 0x7035
mov eax, dword [esp + 0x4d04]
mov dword [esp + 0x4d08], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5b10], xmm0
movsd xmm0, qword [esp + 0x5b10]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5b08], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3688], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3688]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3690], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x368c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x368c]
mov dl, al
mov eax, dword [esp + 0x3690]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e136f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x367c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x367c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3680], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3680]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3684], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3684]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e136a
mov dword [esp + 0x5b04], 0
cmp dword [esp + 0x5b04], 4
jae 0x5e1365
movsd xmm0, qword [esp + 0x5b08]
cvtsi2sd xmm1, dword [esp + 0x5b04]
addsd xmm0, xmm1
movsd qword [esp + 0x3670], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3670]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e12d2
jp 0x5e12d2
movsd xmm0, qword [esp + 0x5b08]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5b08], xmm0
jmp 0x5e116f
movsd xmm0, qword [esp + 0x5b08]
cvtsi2sd xmm1, dword [esp + 0x5b04]
addsd xmm0, xmm1
movsd qword [esp + 0x3668], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3668]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e1360
jp 0x5e1360
mov eax, dword [esp + 0x5b04]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5b08]
addsd xmm0, xmm1
movsd qword [esp + 0x5b08], xmm0
movsd xmm0, qword [esp + 0x5b08]
cvtsi2sd xmm1, dword [esp + 0x5b04]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b18], eax
jmp 0x5e142a
jmp 0x5e1374
jmp 0x5e116f
jmp 0x5e1374
jmp 0x5e1374
movsd xmm0, qword [esp + 0x5b08]
movsd qword [esp + 0x3658], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3650], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3650]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3664], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3654], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3654]
movsd xmm0, qword [esp + 0x3658]
mov dl, al
mov eax, dword [esp + 0x3664]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b18], eax
mov eax, dword [esp + 0x5b18]
mov dword [esp + 0x364c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3640], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3640]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3648], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3644], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3644]
mov dl, al
mov eax, dword [esp + 0x3648]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x364c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e1a78
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3624], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3624]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3628], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3628]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x362c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x362c]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x363c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3630], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3630]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3638], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3634], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3634]
mov dl, al
mov eax, dword [esp + 0x3638]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x363c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e1a78
mov dword [esp + 0x4d00], 0x3585
mov dword [esp + 0x4cfc], 0x9675
mov dword [esp + 0x4cf8], 0x99d6
mov dword [esp + 0x4cf4], 0x5374
mov eax, dword [esp + 0x4cf8]
mov dword [esp + 0x4cfc], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5af8], xmm0
movsd xmm0, qword [esp + 0x5af8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5af0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3618], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3618]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3620], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x361c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x361c]
mov dl, al
mov eax, dword [esp + 0x3620]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e1827
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x360c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x360c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3610], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3610]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3614], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3614]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e1822
mov dword [esp + 0x5aec], 0
cmp dword [esp + 0x5aec], 4
jae 0x5e181d
movsd xmm0, qword [esp + 0x5af0]
cvtsi2sd xmm1, dword [esp + 0x5aec]
addsd xmm0, xmm1
movsd qword [esp + 0x3600], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3600]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e178a
jp 0x5e178a
movsd xmm0, qword [esp + 0x5af0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5af0], xmm0
jmp 0x5e1627
movsd xmm0, qword [esp + 0x5af0]
cvtsi2sd xmm1, dword [esp + 0x5aec]
addsd xmm0, xmm1
movsd qword [esp + 0x35f8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x35f8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e1818
jp 0x5e1818
mov eax, dword [esp + 0x5aec]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5af0]
addsd xmm0, xmm1
movsd qword [esp + 0x5af0], xmm0
movsd xmm0, qword [esp + 0x5af0]
cvtsi2sd xmm1, dword [esp + 0x5aec]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b00], eax
jmp 0x5e18e2
jmp 0x5e182c
jmp 0x5e1627
jmp 0x5e182c
jmp 0x5e182c
movsd xmm0, qword [esp + 0x5af0]
movsd qword [esp + 0x35e8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x35e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x35e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x35f4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x35e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x35e4]
movsd xmm0, qword [esp + 0x35e8]
mov dl, al
mov eax, dword [esp + 0x35f4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5b00], eax
mov eax, dword [esp + 0x5b00]
mov dword [esp + 0x35dc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x35d0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x35d0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x35d8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x35d4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x35d4]
mov dl, al
mov eax, dword [esp + 0x35d8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x35dc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e1a73
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x35b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x35b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x35b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x35b8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x35bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x35bc]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x35cc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x35c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x35c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x35c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x35c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x35c4]
mov dl, al
mov eax, dword [esp + 0x35c8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x35cc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e1a73
mov dword [esp + 0x4cf4], 0x6347
jmp 0x5e1a78
mov dword [esp + 0x5f44], str.WriteProcessMemory
lea ecx, [esp + 0x69ea]
mov dword [esp + 0x5f40], ecx
mov eax, dword [esp + 0x5f40]
mov dword [esp + 0x35ac], eax
mov byte [eax], 0
mov edx, dword [esp + 0x5f44]
mov dl, byte [edx]
mov byte [esp + 0x64f3], dl
mov dword [esp + 0x64ec], eax
movzx eax, byte [esp + 0x64f3]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
lea ebx, [eax + edx + 0x27]
mov edx, 0x2040811
mov dword [esp + 0x35a8], edx
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 1], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 1]
mov byte [esp + 0x64eb], bl
mov dword [esp + 0x64e4], eax
movzx eax, byte [esp + 0x64eb]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 2], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 2]
mov byte [esp + 0x64e3], bl
mov dword [esp + 0x64dc], eax
movzx eax, byte [esp + 0x64e3]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 3], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 3]
mov byte [esp + 0x64db], bl
mov dword [esp + 0x64d4], eax
movzx eax, byte [esp + 0x64db]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 4], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 4]
mov byte [esp + 0x64d3], bl
mov dword [esp + 0x64cc], eax
movzx eax, byte [esp + 0x64d3]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 5], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 5]
mov byte [esp + 0x64cb], bl
mov dword [esp + 0x64c4], eax
movzx eax, byte [esp + 0x64cb]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 6], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 6]
mov byte [esp + 0x64c3], bl
mov dword [esp + 0x64bc], eax
movzx eax, byte [esp + 0x64c3]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 7], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 7]
mov byte [esp + 0x64bb], bl
mov dword [esp + 0x64b4], eax
movzx eax, byte [esp + 0x64bb]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 8], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 8]
mov byte [esp + 0x64b3], bl
mov dword [esp + 0x64ac], eax
movzx eax, byte [esp + 0x64b3]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 9], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 9]
mov byte [esp + 0x64ab], bl
mov dword [esp + 0x64a4], eax
movzx eax, byte [esp + 0x64ab]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xa], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xa]
mov byte [esp + 0x64a3], bl
mov dword [esp + 0x649c], eax
movzx eax, byte [esp + 0x64a3]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xb], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xb]
mov byte [esp + 0x649b], bl
mov dword [esp + 0x6494], eax
movzx eax, byte [esp + 0x649b]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xc], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xc]
mov byte [esp + 0x6493], bl
mov dword [esp + 0x648c], eax
movzx eax, byte [esp + 0x6493]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xd], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xd]
mov byte [esp + 0x648b], bl
mov dword [esp + 0x6484], eax
movzx eax, byte [esp + 0x648b]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xe], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xe]
mov byte [esp + 0x6483], bl
mov dword [esp + 0x647c], eax
movzx eax, byte [esp + 0x6483]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0xf], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0xf]
mov byte [esp + 0x647b], bl
mov dword [esp + 0x6474], eax
movzx eax, byte [esp + 0x647b]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0x10], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0x10]
mov byte [esp + 0x6473], bl
mov dword [esp + 0x646c], eax
movzx eax, byte [esp + 0x6473]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0x11], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0x11]
mov byte [esp + 0x646b], bl
mov dword [esp + 0x6464], eax
movzx eax, byte [esp + 0x646b]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea ebx, [eax + esi + 0x27]
mov eax, ebx
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35a8]
mov edi, esi
shl edi, 7
sub esi, edi
add ebx, esi
mov byte [eax + 0x12], bl
mov esi, dword [esp + 0x5f44]
mov bl, byte [esi + 0x12]
mov byte [esp + 0x6463], bl
mov dword [esp + 0x645c], eax
movzx eax, byte [esp + 0x6463]
lea esi, [eax + eax*8]
lea esi, [esi + esi*2]
add esi, eax
lea eax, [eax + esi + 0x27]
mov dword [esp + 0x35b0], eax
mul edx
mov eax, dword [esp + 0x35ac]
mov esi, edx
mov edx, dword [esp + 0x35b0]
mov edi, esi
shl edi, 7
sub esi, edi
add edx, esi
mov byte [eax + 0x13], dl
call fcn.00606f40
mov dword [esp + 0x4cf0], eax
mov eax, dword [0x5c4bd0]
mov esi, dword [esp + 0x4cf0]
mov edx, dword [esp + 0x4d10]
mov ecx, esp
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
sub esp, 8
mov dword [esp + 0x4cec], eax
mov dword [esp + 0x4ce8], 0x3181
mov dword [esp + 0x4ce4], 0x8b60
mov dword [esp + 0x4ce0], 0x3a9b
mov eax, dword [esp + 0x4ce4]
mov dword [esp + 0x4ce8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ae0], xmm0
movsd xmm0, qword [esp + 0x5ae0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ad8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x359c], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x359c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x35a4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x35a0], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x35a0]
mov dl, al
mov eax, dword [esp + 0x35a4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e22f3
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3590], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3590]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3594], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3594]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3598], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3598]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e22ee
mov dword [esp + 0x5ad4], 0
cmp dword [esp + 0x5ad4], 4
jae 0x5e22e9
movsd xmm0, qword [esp + 0x5ad8]
cvtsi2sd xmm1, dword [esp + 0x5ad4]
addsd xmm0, xmm1
movsd qword [esp + 0x3588], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3588]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e2256
jp 0x5e2256
movsd xmm0, qword [esp + 0x5ad8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ad8], xmm0
jmp 0x5e20f3
movsd xmm0, qword [esp + 0x5ad8]
cvtsi2sd xmm1, dword [esp + 0x5ad4]
addsd xmm0, xmm1
movsd qword [esp + 0x3580], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3580]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e22e4
jp 0x5e22e4
mov eax, dword [esp + 0x5ad4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ad8]
addsd xmm0, xmm1
movsd qword [esp + 0x5ad8], xmm0
movsd xmm0, qword [esp + 0x5ad8]
cvtsi2sd xmm1, dword [esp + 0x5ad4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ae8], eax
jmp 0x5e23ae
jmp 0x5e22f8
jmp 0x5e20f3
jmp 0x5e22f8
jmp 0x5e22f8
movsd xmm0, qword [esp + 0x5ad8]
movsd qword [esp + 0x3570], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3568], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3568]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x357c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x356c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x356c]
movsd xmm0, qword [esp + 0x3570]
mov dl, al
mov eax, dword [esp + 0x357c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ae8], eax
mov eax, dword [esp + 0x5ae8]
mov dword [esp + 0x3564], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3558], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3558]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3560], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x355c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x355c]
mov dl, al
mov eax, dword [esp + 0x3560]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3564]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e29f6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x353c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x353c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3540], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3540]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x3544], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3544]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x3554], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3548], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3548]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3550], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x354c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x354c]
mov dl, al
mov eax, dword [esp + 0x3550]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3554]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e29f6
mov dword [esp + 0x4ce0], 0x2f17
mov dword [esp + 0x4cdc], 0x49c0
mov dword [esp + 0x4cd8], 0x7fdd
mov dword [esp + 0x4cd4], 0x4c0b
mov eax, dword [esp + 0x4cd8]
mov dword [esp + 0x4cdc], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ac8], xmm0
movsd xmm0, qword [esp + 0x5ac8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5ac0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3530], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3530]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3538], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3534], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3534]
mov dl, al
mov eax, dword [esp + 0x3538]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e27a6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3524], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3524]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3528], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3528]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x352c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x352c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e27a1
mov dword [esp + 0x5abc], 0
cmp dword [esp + 0x5abc], 4
jae 0x5e279c
movsd xmm0, qword [esp + 0x5ac0]
cvtsi2sd xmm1, dword [esp + 0x5abc]
addsd xmm0, xmm1
movsd qword [esp + 0x3518], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3518]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e2709
jp 0x5e2709
movsd xmm0, qword [esp + 0x5ac0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5ac0], xmm0
jmp 0x5e25a6
movsd xmm0, qword [esp + 0x5ac0]
cvtsi2sd xmm1, dword [esp + 0x5abc]
addsd xmm0, xmm1
movsd qword [esp + 0x3510], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3510]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e2797
jp 0x5e2797
mov eax, dword [esp + 0x5abc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5ac0]
addsd xmm0, xmm1
movsd qword [esp + 0x5ac0], xmm0
movsd xmm0, qword [esp + 0x5ac0]
cvtsi2sd xmm1, dword [esp + 0x5abc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ad0], eax
jmp 0x5e2861
jmp 0x5e27ab
jmp 0x5e25a6
jmp 0x5e27ab
jmp 0x5e27ab
movsd xmm0, qword [esp + 0x5ac0]
movsd qword [esp + 0x3500], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x34f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x34f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x350c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x34fc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x34fc]
movsd xmm0, qword [esp + 0x3500]
mov dl, al
mov eax, dword [esp + 0x350c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ad0], eax
mov eax, dword [esp + 0x5ad0]
mov dword [esp + 0x34f4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x34e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x34e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x34ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x34ec]
mov dl, al
mov eax, dword [esp + 0x34f0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x34f4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e29f1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x34cc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x34cc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34d0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x34d0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x34d4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x34d4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x34e4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x34d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x34d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34e0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x34dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x34dc]
mov dl, al
mov eax, dword [esp + 0x34e0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x34e4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e29f1
mov dword [esp + 0x4cd4], 0x7a61
jmp 0x5e29f6
mov dword [esp + 0x4cd0], 0x6521
mov dword [esp + 0x4ccc], 0x4ee9
mov dword [esp + 0x4cc8], 0x3de9
mov eax, dword [esp + 0x4ccc]
mov dword [esp + 0x4cd0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5ab0], xmm0
movsd xmm0, qword [esp + 0x5ab0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5aa8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x34c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x34c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x34c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x34c4]
mov dl, al
mov eax, dword [esp + 0x34c8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e2c61
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x34b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x34b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x34b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x34b8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x34bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x34bc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e2c5c
mov dword [esp + 0x5aa4], 0
cmp dword [esp + 0x5aa4], 4
jae 0x5e2c57
movsd xmm0, qword [esp + 0x5aa8]
cvtsi2sd xmm1, dword [esp + 0x5aa4]
addsd xmm0, xmm1
movsd qword [esp + 0x34a8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x34a8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e2bc4
jp 0x5e2bc4
movsd xmm0, qword [esp + 0x5aa8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5aa8], xmm0
jmp 0x5e2a61
movsd xmm0, qword [esp + 0x5aa8]
cvtsi2sd xmm1, dword [esp + 0x5aa4]
addsd xmm0, xmm1
movsd qword [esp + 0x34a0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x34a0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e2c52
jp 0x5e2c52
mov eax, dword [esp + 0x5aa4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5aa8]
addsd xmm0, xmm1
movsd qword [esp + 0x5aa8], xmm0
movsd xmm0, qword [esp + 0x5aa8]
cvtsi2sd xmm1, dword [esp + 0x5aa4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ab8], eax
jmp 0x5e2d1c
jmp 0x5e2c66
jmp 0x5e2a61
jmp 0x5e2c66
jmp 0x5e2c66
movsd xmm0, qword [esp + 0x5aa8]
movsd qword [esp + 0x3490], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3488], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3488]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x349c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x348c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x348c]
movsd xmm0, qword [esp + 0x3490]
mov dl, al
mov eax, dword [esp + 0x349c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5ab8], eax
mov eax, dword [esp + 0x5ab8]
mov dword [esp + 0x3484], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3478], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3478]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3480], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x347c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x347c]
mov dl, al
mov eax, dword [esp + 0x3480]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3484]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e2eb0
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x345c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x345c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3460], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3460]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3464], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3464]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x3474], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3468], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3468]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3470], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x346c], eax
call fcn.005ceb20
mov edx, dword [esp + 0x346c]
mov cl, al
mov eax, dword [esp + 0x3470]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3474]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e2eb0
mov dword [esp + 0x4cc8], 0x8013
mov dword [esp + 0x4cc4], 0x52de
mov dword [esp + 0x4cc0], 0x4871
mov dword [esp + 0x4cbc], 0x59e6
mov eax, dword [esp + 0x4cc0]
mov dword [esp + 0x4cc4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a98], xmm0
movsd xmm0, qword [esp + 0x5a98]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a90], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3450], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3450]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3458], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3454], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3454]
mov dl, al
mov eax, dword [esp + 0x3458]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e311b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3444], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3444]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3448], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3448]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x344c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x344c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e3116
mov dword [esp + 0x5a8c], 0
cmp dword [esp + 0x5a8c], 4
jae 0x5e3111
movsd xmm0, qword [esp + 0x5a90]
cvtsi2sd xmm1, dword [esp + 0x5a8c]
addsd xmm0, xmm1
movsd qword [esp + 0x3438], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3438]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e307e
jp 0x5e307e
movsd xmm0, qword [esp + 0x5a90]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a90], xmm0
jmp 0x5e2f1b
movsd xmm0, qword [esp + 0x5a90]
cvtsi2sd xmm1, dword [esp + 0x5a8c]
addsd xmm0, xmm1
movsd qword [esp + 0x3430], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3430]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e310c
jp 0x5e310c
mov eax, dword [esp + 0x5a8c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a90]
addsd xmm0, xmm1
movsd qword [esp + 0x5a90], xmm0
movsd xmm0, qword [esp + 0x5a90]
cvtsi2sd xmm1, dword [esp + 0x5a8c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5aa0], eax
jmp 0x5e31d6
jmp 0x5e3120
jmp 0x5e2f1b
jmp 0x5e3120
jmp 0x5e3120
movsd xmm0, qword [esp + 0x5a90]
movsd qword [esp + 0x3420], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3418], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3418]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x342c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x341c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x341c]
movsd xmm0, qword [esp + 0x3420]
mov dl, al
mov eax, dword [esp + 0x342c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5aa0], eax
mov eax, dword [esp + 0x5aa0]
mov dword [esp + 0x3414], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3408], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3408]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3410], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x340c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x340c]
mov dl, al
mov eax, dword [esp + 0x3410]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3414]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e3cd6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x33ec], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x33ec]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x33f0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x33f0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x33f4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x33f4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x3404], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x33f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x33f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3400], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x33fc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x33fc]
mov dl, al
mov eax, dword [esp + 0x3400]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3404]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e3cd6
mov dword [esp + 0x4cbc], 0x5fe8
mov dword [esp + 0x4cb8], 0x7350
mov dword [esp + 0x4cb4], 0x76fb
mov dword [esp + 0x4cb0], 0xa3f4
mov eax, dword [esp + 0x4cb4]
mov dword [esp + 0x4cb8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a80], xmm0
movsd xmm0, qword [esp + 0x5a80]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a78], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x33e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x33e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x33e8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x33e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x33e4]
mov dl, al
mov eax, dword [esp + 0x33e8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e35ce
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x33d4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x33d4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x33d8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x33d8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x33dc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x33dc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e35c9
mov dword [esp + 0x5a74], 0
cmp dword [esp + 0x5a74], 4
jae 0x5e35c4
movsd xmm0, qword [esp + 0x5a78]
cvtsi2sd xmm1, dword [esp + 0x5a74]
addsd xmm0, xmm1
movsd qword [esp + 0x33c8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x33c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e3531
jp 0x5e3531
movsd xmm0, qword [esp + 0x5a78]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a78], xmm0
jmp 0x5e33ce
movsd xmm0, qword [esp + 0x5a78]
cvtsi2sd xmm1, dword [esp + 0x5a74]
addsd xmm0, xmm1
movsd qword [esp + 0x33c0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x33c0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e35bf
jp 0x5e35bf
mov eax, dword [esp + 0x5a74]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a78]
addsd xmm0, xmm1
movsd qword [esp + 0x5a78], xmm0
movsd xmm0, qword [esp + 0x5a78]
cvtsi2sd xmm1, dword [esp + 0x5a74]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a88], eax
jmp 0x5e3689
jmp 0x5e35d3
jmp 0x5e33ce
jmp 0x5e35d3
jmp 0x5e35d3
movsd xmm0, qword [esp + 0x5a78]
movsd qword [esp + 0x33b0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x33a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x33a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x33bc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x33ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x33ac]
movsd xmm0, qword [esp + 0x33b0]
mov dl, al
mov eax, dword [esp + 0x33bc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a88], eax
mov eax, dword [esp + 0x5a88]
mov dword [esp + 0x33a4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3398], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3398]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x33a0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x339c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x339c]
mov dl, al
mov eax, dword [esp + 0x33a0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x33a4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e3cd1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x337c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x337c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3380], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3380]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3384], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3384]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x3394], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3388], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3388]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3390], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x338c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x338c]
mov dl, al
mov eax, dword [esp + 0x3390]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3394]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e3cd1
mov dword [esp + 0x4cb0], 0x30c9
mov dword [esp + 0x4cac], 0x6ec2
mov dword [esp + 0x4ca8], 0x57ed
mov dword [esp + 0x4ca4], 0x3ed5
mov eax, dword [esp + 0x4ca8]
mov dword [esp + 0x4cac], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a68], xmm0
movsd xmm0, qword [esp + 0x5a68]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a60], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3370], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3370]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3378], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3374], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3374]
mov dl, al
mov eax, dword [esp + 0x3378]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e3a84
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3364], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3364]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3368], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3368]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x336c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x336c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e3a7f
mov dword [esp + 0x5a5c], 0
cmp dword [esp + 0x5a5c], 4
jae 0x5e3a7a
movsd xmm0, qword [esp + 0x5a60]
cvtsi2sd xmm1, dword [esp + 0x5a5c]
addsd xmm0, xmm1
movsd qword [esp + 0x3358], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3358]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e39e7
jp 0x5e39e7
movsd xmm0, qword [esp + 0x5a60]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a60], xmm0
jmp 0x5e3884
movsd xmm0, qword [esp + 0x5a60]
cvtsi2sd xmm1, dword [esp + 0x5a5c]
addsd xmm0, xmm1
movsd qword [esp + 0x3350], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3350]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e3a75
jp 0x5e3a75
mov eax, dword [esp + 0x5a5c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a60]
addsd xmm0, xmm1
movsd qword [esp + 0x5a60], xmm0
movsd xmm0, qword [esp + 0x5a60]
cvtsi2sd xmm1, dword [esp + 0x5a5c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a70], eax
jmp 0x5e3b3f
jmp 0x5e3a89
jmp 0x5e3884
jmp 0x5e3a89
jmp 0x5e3a89
movsd xmm0, qword [esp + 0x5a60]
movsd qword [esp + 0x3340], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3338], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3338]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x334c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x333c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x333c]
movsd xmm0, qword [esp + 0x3340]
mov dl, al
mov eax, dword [esp + 0x334c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a70], eax
mov eax, dword [esp + 0x5a70]
mov dword [esp + 0x3334], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3328], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3328]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3330], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x332c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x332c]
mov dl, al
mov eax, dword [esp + 0x3330]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3334]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e3ccc
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x330c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x330c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3310], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3310]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3314], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3314]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x3324], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3318], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3318]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3320], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x331c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x331c]
mov dl, al
mov eax, dword [esp + 0x3320]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3324]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e3ccc
mov dword [esp + 0x4ca4], 0x4054
jmp 0x5e3cd1
jmp 0x5e3cd6
mov eax, dword [esp + 0x4ea4]
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x50]
mov eax, dword [esp + 0x65a0]
mov dword [esp + 0x5f5c], 0x40
mov dword [esp + 0x5f58], 0x3000
mov dword [esp + 0x5f54], edx
mov dword [esp + 0x5f50], ecx
mov dword [esp + 0x5f4c], eax
mov eax, esp
mov dword [eax + 0xc], 0x3e8
mov dword [eax + 8], 0x35e4f491
mov dword [eax + 4], 0xf
mov dword [eax], 0
call fcn.005cd4e0
mov dword [esp + 0x5f48], eax
mov eax, dword [esp + 0x5f48]
mov dword [esp + 0x3308], eax
mov eax, dword [esp + 0x5f5c]
mov ebx, dword [esp + 0x5f58]
mov edi, dword [esp + 0x5f54]
mov esi, dword [esp + 0x5f50]
mov edx, dword [esp + 0x5f4c]
mov ecx, esp
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x3308]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
sub esp, 0x14
mov dword [esp + 0x6598], eax
mov dword [esp + 0x4ca0], 0x82f4
mov dword [esp + 0x4c9c], 0x5789
mov dword [esp + 0x4c98], 0x9f03
mov eax, dword [esp + 0x4c9c]
mov dword [esp + 0x4ca0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a50], xmm0
movsd xmm0, qword [esp + 0x5a50]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a48], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x32fc], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x32fc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3304], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3300], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3300]
mov dl, al
mov eax, dword [esp + 0x3304]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e3ffd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x32f0], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x32f0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x32f4], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x32f4]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x32f8], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x32f8]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e3ff8
mov dword [esp + 0x5a44], 0
cmp dword [esp + 0x5a44], 4
jae 0x5e3ff3
movsd xmm0, qword [esp + 0x5a48]
cvtsi2sd xmm1, dword [esp + 0x5a44]
addsd xmm0, xmm1
movsd qword [esp + 0x32e8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x32e8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e3f60
jp 0x5e3f60
movsd xmm0, qword [esp + 0x5a48]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a48], xmm0
jmp 0x5e3dfd
movsd xmm0, qword [esp + 0x5a48]
cvtsi2sd xmm1, dword [esp + 0x5a44]
addsd xmm0, xmm1
movsd qword [esp + 0x32e0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x32e0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e3fee
jp 0x5e3fee
mov eax, dword [esp + 0x5a44]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a48]
addsd xmm0, xmm1
movsd qword [esp + 0x5a48], xmm0
movsd xmm0, qword [esp + 0x5a48]
cvtsi2sd xmm1, dword [esp + 0x5a44]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a58], eax
jmp 0x5e40b8
jmp 0x5e4002
jmp 0x5e3dfd
jmp 0x5e4002
jmp 0x5e4002
movsd xmm0, qword [esp + 0x5a48]
movsd qword [esp + 0x32d0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x32c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x32c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x32dc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x32cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x32cc]
movsd xmm0, qword [esp + 0x32d0]
mov dl, al
mov eax, dword [esp + 0x32dc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a58], eax
mov eax, dword [esp + 0x5a58]
mov dword [esp + 0x32c4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x32b8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x32b8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x32c0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x32bc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x32bc]
mov dl, al
mov eax, dword [esp + 0x32c0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x32c4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e46ff
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x329c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x329c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x32a0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x32a0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x32a4], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x32a4]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x32b4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x32a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x32a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x32b0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x32ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x32ac]
mov dl, al
mov eax, dword [esp + 0x32b0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x32b4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e46ff
mov dword [esp + 0x4c98], 0x8815
mov dword [esp + 0x4c94], 0x7c09
mov dword [esp + 0x4c90], 0x7cea
mov dword [esp + 0x4c8c], 0x6308
mov eax, dword [esp + 0x4c90]
mov dword [esp + 0x4c94], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a38], xmm0
movsd xmm0, qword [esp + 0x5a38]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a30], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3290], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3290]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3298], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3294], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3294]
mov dl, al
mov eax, dword [esp + 0x3298]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e44b2
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3284], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3284]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3288], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3288]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x328c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x328c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e44ad
mov dword [esp + 0x5a2c], 0
cmp dword [esp + 0x5a2c], 4
jae 0x5e44a8
movsd xmm0, qword [esp + 0x5a30]
cvtsi2sd xmm1, dword [esp + 0x5a2c]
addsd xmm0, xmm1
movsd qword [esp + 0x3278], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3278]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e4415
jp 0x5e4415
movsd xmm0, qword [esp + 0x5a30]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a30], xmm0
jmp 0x5e42b2
movsd xmm0, qword [esp + 0x5a30]
cvtsi2sd xmm1, dword [esp + 0x5a2c]
addsd xmm0, xmm1
movsd qword [esp + 0x3270], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3270]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e44a3
jp 0x5e44a3
mov eax, dword [esp + 0x5a2c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a30]
addsd xmm0, xmm1
movsd qword [esp + 0x5a30], xmm0
movsd xmm0, qword [esp + 0x5a30]
cvtsi2sd xmm1, dword [esp + 0x5a2c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a40], eax
jmp 0x5e456d
jmp 0x5e44b7
jmp 0x5e42b2
jmp 0x5e44b7
jmp 0x5e44b7
movsd xmm0, qword [esp + 0x5a30]
movsd qword [esp + 0x3260], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3258], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3258]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x326c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x325c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x325c]
movsd xmm0, qword [esp + 0x3260]
mov dl, al
mov eax, dword [esp + 0x326c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a40], eax
mov eax, dword [esp + 0x5a40]
mov dword [esp + 0x3254], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3248], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3248]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3250], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x324c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x324c]
mov dl, al
mov eax, dword [esp + 0x3250]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3254]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e46fa
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x322c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x322c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3230], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3230]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x3234], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3234]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x3244], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3238], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3238]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3240], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x323c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x323c]
mov dl, al
mov eax, dword [esp + 0x3240]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3244]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e46fa
mov dword [esp + 0x4c8c], 0x2d5a
jmp 0x5e46ff
mov eax, dword [esp + 0x6598]
test eax, eax
movsd xmm0, qword [0x4802b0]
xorps xmm1, xmm1
movsd qword [esp + 0x3218], xmm1
movsd qword [esp + 0x3220], xmm0
je 0x5e473d
movsd xmm0, qword [esp + 0x3218]
movsd qword [esp + 0x3220], xmm0
movsd xmm0, qword [esp + 0x3220]
movsd qword [esp + 0x5a20], xmm0
movsd xmm0, qword [esp + 0x5a20]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a18], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x320c], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x320c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3214], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3210], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3210]
mov dl, al
mov eax, dword [esp + 0x3214]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e497e
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3200], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3200]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3204], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3204]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x3208], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3208]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e4979
mov dword [esp + 0x5a14], 0
cmp dword [esp + 0x5a14], 4
jae 0x5e4974
movsd xmm0, qword [esp + 0x5a18]
cvtsi2sd xmm1, dword [esp + 0x5a14]
addsd xmm0, xmm1
movsd qword [esp + 0x31f8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x31f8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e48e1
jp 0x5e48e1
movsd xmm0, qword [esp + 0x5a18]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a18], xmm0
jmp 0x5e477e
movsd xmm0, qword [esp + 0x5a18]
cvtsi2sd xmm1, dword [esp + 0x5a14]
addsd xmm0, xmm1
movsd qword [esp + 0x31f0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x31f0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e496f
jp 0x5e496f
mov eax, dword [esp + 0x5a14]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a18]
addsd xmm0, xmm1
movsd qword [esp + 0x5a18], xmm0
movsd xmm0, qword [esp + 0x5a18]
cvtsi2sd xmm1, dword [esp + 0x5a14]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a28], eax
jmp 0x5e4a39
jmp 0x5e4983
jmp 0x5e477e
jmp 0x5e4983
jmp 0x5e4983
movsd xmm0, qword [esp + 0x5a18]
movsd qword [esp + 0x31e0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x31d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x31d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x31ec], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x31dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x31dc]
movsd xmm0, qword [esp + 0x31e0]
mov dl, al
mov eax, dword [esp + 0x31ec]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a28], eax
mov eax, dword [esp + 0x5a28]
mov dword [esp + 0x31d4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x31c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x31c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x31d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x31cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x31cc]
mov dl, al
mov eax, dword [esp + 0x31d0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x31d4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e77d8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x31ac], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x31ac]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x31b0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x31b0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x31b4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x31b4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x31c4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x31b8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x31b8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x31c0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x31bc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x31bc]
mov dl, al
mov eax, dword [esp + 0x31c0]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x31c4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e77d8
mov dword [esp + 0x4c88], 0x6418
mov dword [esp + 0x4c84], 0xa25f
mov dword [esp + 0x4c80], 0x7bd6
mov eax, dword [esp + 0x4c84]
mov dword [esp + 0x4c88], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5a08], xmm0
movsd xmm0, qword [esp + 0x5a08]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5a00], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x31a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x31a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x31a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x31a4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x31a4]
mov dl, al
mov eax, dword [esp + 0x31a8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e4e29
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3194], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3194]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3198], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3198]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x319c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x319c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e4e24
mov dword [esp + 0x59fc], 0
cmp dword [esp + 0x59fc], 4
jae 0x5e4e1f
movsd xmm0, qword [esp + 0x5a00]
cvtsi2sd xmm1, dword [esp + 0x59fc]
addsd xmm0, xmm1
movsd qword [esp + 0x3188], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3188]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e4d8c
jp 0x5e4d8c
movsd xmm0, qword [esp + 0x5a00]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5a00], xmm0
jmp 0x5e4c29
movsd xmm0, qword [esp + 0x5a00]
cvtsi2sd xmm1, dword [esp + 0x59fc]
addsd xmm0, xmm1
movsd qword [esp + 0x3180], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3180]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e4e1a
jp 0x5e4e1a
mov eax, dword [esp + 0x59fc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5a00]
addsd xmm0, xmm1
movsd qword [esp + 0x5a00], xmm0
movsd xmm0, qword [esp + 0x5a00]
cvtsi2sd xmm1, dword [esp + 0x59fc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a10], eax
jmp 0x5e4ee4
jmp 0x5e4e2e
jmp 0x5e4c29
jmp 0x5e4e2e
jmp 0x5e4e2e
movsd xmm0, qword [esp + 0x5a00]
movsd qword [esp + 0x3170], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3168], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3168]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x317c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x316c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x316c]
movsd xmm0, qword [esp + 0x3170]
mov dl, al
mov eax, dword [esp + 0x317c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5a10], eax
mov eax, dword [esp + 0x5a10]
mov dword [esp + 0x3164], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3158], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3158]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3160], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x315c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x315c]
mov dl, al
mov eax, dword [esp + 0x3160]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3164]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e59e6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x313c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x313c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3140], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3140]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x3144], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x3144]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x3154], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3148], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3148]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3150], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x314c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x314c]
mov dl, al
mov eax, dword [esp + 0x3150]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3154]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e59e6
mov dword [esp + 0x4c80], 0xa13d
mov dword [esp + 0x4c7c], 0x5358
mov dword [esp + 0x4c78], 0x489a
mov dword [esp + 0x4c74], 0x85bd
mov eax, dword [esp + 0x4c78]
mov dword [esp + 0x4c7c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x59f0], xmm0
movsd xmm0, qword [esp + 0x59f0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x59e8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3130], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3130]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3138], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3134], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3134]
mov dl, al
mov eax, dword [esp + 0x3138]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e52e1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3124], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3124]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3128], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3128]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x312c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x312c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e52dc
mov dword [esp + 0x59e4], 0
cmp dword [esp + 0x59e4], 4
jae 0x5e52d7
movsd xmm0, qword [esp + 0x59e8]
cvtsi2sd xmm1, dword [esp + 0x59e4]
addsd xmm0, xmm1
movsd qword [esp + 0x3118], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3118]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e5244
jp 0x5e5244
movsd xmm0, qword [esp + 0x59e8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x59e8], xmm0
jmp 0x5e50e1
movsd xmm0, qword [esp + 0x59e8]
cvtsi2sd xmm1, dword [esp + 0x59e4]
addsd xmm0, xmm1
movsd qword [esp + 0x3110], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3110]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e52d2
jp 0x5e52d2
mov eax, dword [esp + 0x59e4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x59e8]
addsd xmm0, xmm1
movsd qword [esp + 0x59e8], xmm0
movsd xmm0, qword [esp + 0x59e8]
cvtsi2sd xmm1, dword [esp + 0x59e4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59f8], eax
jmp 0x5e539c
jmp 0x5e52e6
jmp 0x5e50e1
jmp 0x5e52e6
jmp 0x5e52e6
movsd xmm0, qword [esp + 0x59e8]
movsd qword [esp + 0x3100], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x30f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x30f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x310c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x30fc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x30fc]
movsd xmm0, qword [esp + 0x3100]
mov dl, al
mov eax, dword [esp + 0x310c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59f8], eax
mov eax, dword [esp + 0x59f8]
mov dword [esp + 0x30f4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x30e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x30e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x30f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x30ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x30ec]
mov dl, al
mov eax, dword [esp + 0x30f0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x30f4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e59e1
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x30cc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x30cc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x30d0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x30d0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x30d4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x30d4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x30e4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x30d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x30d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x30e0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x30dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x30dc]
mov dl, al
mov eax, dword [esp + 0x30e0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x30e4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e59e1
mov dword [esp + 0x4c74], 0x440d
mov dword [esp + 0x4c70], 0x9cdd
mov dword [esp + 0x4c6c], 0x33a6
mov dword [esp + 0x4c68], 0x99a1
mov eax, dword [esp + 0x4c6c]
mov dword [esp + 0x4c70], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x59d8], xmm0
movsd xmm0, qword [esp + 0x59d8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x59d0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x30c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x30c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x30c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x30c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x30c4]
mov dl, al
mov eax, dword [esp + 0x30c8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e5794
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x30b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x30b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x30b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x30b8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x30bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x30bc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e578f
mov dword [esp + 0x59cc], 0
cmp dword [esp + 0x59cc], 4
jae 0x5e578a
movsd xmm0, qword [esp + 0x59d0]
cvtsi2sd xmm1, dword [esp + 0x59cc]
addsd xmm0, xmm1
movsd qword [esp + 0x30a8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x30a8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e56f7
jp 0x5e56f7
movsd xmm0, qword [esp + 0x59d0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x59d0], xmm0
jmp 0x5e5594
movsd xmm0, qword [esp + 0x59d0]
cvtsi2sd xmm1, dword [esp + 0x59cc]
addsd xmm0, xmm1
movsd qword [esp + 0x30a0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x30a0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e5785
jp 0x5e5785
mov eax, dword [esp + 0x59cc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x59d0]
addsd xmm0, xmm1
movsd qword [esp + 0x59d0], xmm0
movsd xmm0, qword [esp + 0x59d0]
cvtsi2sd xmm1, dword [esp + 0x59cc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59e0], eax
jmp 0x5e584f
jmp 0x5e5799
jmp 0x5e5594
jmp 0x5e5799
jmp 0x5e5799
movsd xmm0, qword [esp + 0x59d0]
movsd qword [esp + 0x3090], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3088], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3088]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x309c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x308c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x308c]
movsd xmm0, qword [esp + 0x3090]
mov dl, al
mov eax, dword [esp + 0x309c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59e0], eax
mov eax, dword [esp + 0x59e0]
mov dword [esp + 0x3084], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3078], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3078]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3080], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x307c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x307c]
mov dl, al
mov eax, dword [esp + 0x3080]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3084]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e59dc
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x305c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x305c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3060], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3060]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x3064], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x3064]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x3074], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3068], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3068]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3070], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x306c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x306c]
mov dl, al
mov eax, dword [esp + 0x3070]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3074]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e59dc
mov dword [esp + 0x4c68], 0x45de
jmp 0x5e59e1
jmp 0x5e59e6
mov eax, dword [esp + 0x65a0]
mov dword [esp + 0x5f68], 0
mov dword [esp + 0x5f64], eax
mov eax, esp
mov dword [eax + 0xc], 0xa
mov dword [eax + 8], 0x86c5b0af
mov dword [eax + 4], 0xf
mov dword [eax], 0
call fcn.005cd4e0
mov dword [esp + 0x5f60], eax
mov eax, dword [esp + 0x5f60]
mov esi, dword [esp + 0x5f68]
mov edx, dword [esp + 0x5f64]
mov ecx, esp
mov dword [ecx + 4], esi
mov dword [ecx], edx
call eax
sub esp, 8
mov dword [esp + 0x4c64], 0x9ba3
mov dword [esp + 0x4c60], 0xa60f
mov dword [esp + 0x4c5c], 0x6e01
mov eax, dword [esp + 0x4c60]
mov dword [esp + 0x4c64], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x59c0], xmm0
movsd xmm0, qword [esp + 0x59c0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x59b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3050], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3050]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3058], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x3054], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x3054]
mov dl, al
mov eax, dword [esp + 0x3058]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e5cb4
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x3044], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x3044]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3048], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x3048]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x304c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x304c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e5caf
mov dword [esp + 0x59b4], 0
cmp dword [esp + 0x59b4], 4
jae 0x5e5caa
movsd xmm0, qword [esp + 0x59b8]
cvtsi2sd xmm1, dword [esp + 0x59b4]
addsd xmm0, xmm1
movsd qword [esp + 0x3038], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x3038]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e5c17
jp 0x5e5c17
movsd xmm0, qword [esp + 0x59b8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x59b8], xmm0
jmp 0x5e5ab4
movsd xmm0, qword [esp + 0x59b8]
cvtsi2sd xmm1, dword [esp + 0x59b4]
addsd xmm0, xmm1
movsd qword [esp + 0x3030], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x3030]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e5ca5
jp 0x5e5ca5
mov eax, dword [esp + 0x59b4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x59b8]
addsd xmm0, xmm1
movsd qword [esp + 0x59b8], xmm0
movsd xmm0, qword [esp + 0x59b8]
cvtsi2sd xmm1, dword [esp + 0x59b4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59c8], eax
jmp 0x5e5d6f
jmp 0x5e5cb9
jmp 0x5e5ab4
jmp 0x5e5cb9
jmp 0x5e5cb9
movsd xmm0, qword [esp + 0x59b8]
movsd qword [esp + 0x3020], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3018], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3018]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x302c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x301c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x301c]
movsd xmm0, qword [esp + 0x3020]
mov dl, al
mov eax, dword [esp + 0x302c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59c8], eax
mov eax, dword [esp + 0x59c8]
mov dword [esp + 0x3014], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x3008], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x3008]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3010], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x300c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x300c]
mov dl, al
mov eax, dword [esp + 0x3010]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3014]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e6873
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2fec], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2fec]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ff0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2ff0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x2ff4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2ff4]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x3004], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ff8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ff8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x3000], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2ffc], eax
call fcn.005ceb20
mov edx, dword [esp + 0x2ffc]
mov cl, al
mov eax, dword [esp + 0x3000]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x3004]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e6873
mov dword [esp + 0x4c5c], 0x9e79
mov dword [esp + 0x4c58], 0x452d
mov dword [esp + 0x4c54], 0x82e6
mov dword [esp + 0x4c50], 0x4f6e
mov eax, dword [esp + 0x4c54]
mov dword [esp + 0x4c58], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x59a8], xmm0
movsd xmm0, qword [esp + 0x59a8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x59a0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2fe0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2fe0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2fe8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2fe4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2fe4]
mov dl, al
mov eax, dword [esp + 0x2fe8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e616b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2fd4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2fd4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2fd8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2fd8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2fdc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2fdc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e6166
mov dword [esp + 0x599c], 0
cmp dword [esp + 0x599c], 4
jae 0x5e6161
movsd xmm0, qword [esp + 0x59a0]
cvtsi2sd xmm1, dword [esp + 0x599c]
addsd xmm0, xmm1
movsd qword [esp + 0x2fc8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2fc8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e60ce
jp 0x5e60ce
movsd xmm0, qword [esp + 0x59a0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x59a0], xmm0
jmp 0x5e5f6b
movsd xmm0, qword [esp + 0x59a0]
cvtsi2sd xmm1, dword [esp + 0x599c]
addsd xmm0, xmm1
movsd qword [esp + 0x2fc0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2fc0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e615c
jp 0x5e615c
mov eax, dword [esp + 0x599c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x59a0]
addsd xmm0, xmm1
movsd qword [esp + 0x59a0], xmm0
movsd xmm0, qword [esp + 0x59a0]
cvtsi2sd xmm1, dword [esp + 0x599c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59b0], eax
jmp 0x5e6226
jmp 0x5e6170
jmp 0x5e5f6b
jmp 0x5e6170
jmp 0x5e6170
movsd xmm0, qword [esp + 0x59a0]
movsd qword [esp + 0x2fb0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2fa8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2fa8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2fbc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2fac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2fac]
movsd xmm0, qword [esp + 0x2fb0]
mov dl, al
mov eax, dword [esp + 0x2fbc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x59b0], eax
mov eax, dword [esp + 0x59b0]
mov dword [esp + 0x2fa4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2fa0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f9c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f9c]
mov dl, al
mov eax, dword [esp + 0x2fa0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2fa4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e686e
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2f7c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2f7c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f80], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2f80]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x2f84], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2f84]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x2f94], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f88], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f88]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f90], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f8c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f8c]
mov dl, al
mov eax, dword [esp + 0x2f90]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2f94]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e686e
mov dword [esp + 0x4c50], 0x456c
mov dword [esp + 0x4c4c], 0x2fce
mov dword [esp + 0x4c48], 0xa6cb
mov dword [esp + 0x4c44], 0x5afa
mov eax, dword [esp + 0x4c48]
mov dword [esp + 0x4c4c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5990], xmm0
movsd xmm0, qword [esp + 0x5990]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5988], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f70], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f70]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f78], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f74], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f74]
mov dl, al
mov eax, dword [esp + 0x2f78]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e661e
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2f64], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2f64]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f68], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2f68]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2f6c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2f6c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e6619
mov dword [esp + 0x5984], 0
cmp dword [esp + 0x5984], 4
jae 0x5e6614
movsd xmm0, qword [esp + 0x5988]
cvtsi2sd xmm1, dword [esp + 0x5984]
addsd xmm0, xmm1
movsd qword [esp + 0x2f58], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2f58]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e6581
jp 0x5e6581
movsd xmm0, qword [esp + 0x5988]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5988], xmm0
jmp 0x5e641e
movsd xmm0, qword [esp + 0x5988]
cvtsi2sd xmm1, dword [esp + 0x5984]
addsd xmm0, xmm1
movsd qword [esp + 0x2f50], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2f50]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e660f
jp 0x5e660f
mov eax, dword [esp + 0x5984]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5988]
addsd xmm0, xmm1
movsd qword [esp + 0x5988], xmm0
movsd xmm0, qword [esp + 0x5988]
cvtsi2sd xmm1, dword [esp + 0x5984]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5998], eax
jmp 0x5e66d9
jmp 0x5e6623
jmp 0x5e641e
jmp 0x5e6623
jmp 0x5e6623
movsd xmm0, qword [esp + 0x5988]
movsd qword [esp + 0x2f40], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f38], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f38]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f4c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f3c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f3c]
movsd xmm0, qword [esp + 0x2f40]
mov dl, al
mov eax, dword [esp + 0x2f4c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5998], eax
mov eax, dword [esp + 0x5998]
mov dword [esp + 0x2f34], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f28], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f28]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f30], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f2c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f2c]
mov dl, al
mov eax, dword [esp + 0x2f30]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2f34]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e6869
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2f0c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2f0c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f10], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2f10]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2f14], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2f14]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x2f24], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f18], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f18]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f20], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f1c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f1c]
mov dl, al
mov eax, dword [esp + 0x2f20]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2f24]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e6869
mov dword [esp + 0x4c44], 0x956b
jmp 0x5e686e
jmp 0x5e6873
mov eax, dword [esp + 0x4d10]
mov dword [esp + 0x5f70], eax
mov eax, esp
mov dword [eax + 0xc], 0xe7
mov dword [eax + 8], 0x5b7e0bb8
mov dword [eax + 4], 0xf
mov dword [eax], 0
call fcn.005cd4e0
mov dword [esp + 0x5f6c], eax
mov eax, dword [esp + 0x5f6c]
mov edx, dword [esp + 0x5f70]
mov ecx, esp
mov dword [ecx], edx
call eax
sub esp, 4
mov dword [esp + 0x699c], 0x47ecdb
mov eax, dword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
mov dword [esp + 0x69a0], eax
mov eax, dword [sym.imp.KERNEL32.dll_AttachConsole]
mov dword [esp + 0x69a4], eax
mov eax, dword [sym.imp.KERNEL32.dll_GlobalHandle]
mov dword [esp + 0x69a8], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCommState]
mov dword [esp + 0x69ac], eax
mov dword [esp + 0x69b0], 0x47ecf9
mov eax, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputW]
mov dword [esp + 0x69b4], eax
mov dword [esp + 0x69b8], 0x47ed05
mov dword [esp + 0x69bc], 0x47ed0b
mov eax, dword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
mov dword [esp + 0x69c0], eax
mov eax, dword [sym.imp.KERNEL32.dll_DebugBreak]
mov dword [esp + 0x69c4], eax
mov eax, dword [sym.imp.GDI32.dll_GetTextFaceW]
mov dword [esp + 0x69c8], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetSystemPowerState]
mov dword [esp + 0x69cc], eax
mov eax, dword [sym.imp.USER32.dll_GetClipboardFormatNameW]
mov dword [esp + 0x69d0], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetThreadStackGuarantee]
mov dword [esp + 0x69d4], eax
mov eax, dword [sym.imp.ADVAPI32.dll_InitiateSystemShutdownW]
mov dword [esp + 0x69d8], eax
mov eax, dword [sym.imp.GDI32.dll_Chord]
mov dword [esp + 0x69dc], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetSystemTime]
mov dword [esp + 0x69e0], eax
mov eax, dword [sym.imp.KERNEL32.dll_BuildCommDCBAndTimeoutsW]
mov dword [esp + 0x69e4], eax
mov dword [esp + 0x4c40], 0x934d
mov dword [esp + 0x4c3c], 0x9aeb
mov dword [esp + 0x4c38], 0x8b10
mov eax, dword [esp + 0x4c3c]
mov dword [esp + 0x4c40], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5978], xmm0
movsd xmm0, qword [esp + 0x5978]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5970], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2f00], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2f00]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2f08], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2f04], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2f04]
mov dl, al
mov eax, dword [esp + 0x2f08]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e6c0c
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2ef4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2ef4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ef8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2ef8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2efc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2efc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e6c07
mov dword [esp + 0x596c], 0
cmp dword [esp + 0x596c], 4
jae 0x5e6c02
movsd xmm0, qword [esp + 0x5970]
cvtsi2sd xmm1, dword [esp + 0x596c]
addsd xmm0, xmm1
movsd qword [esp + 0x2ee8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2ee8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e6b6f
jp 0x5e6b6f
movsd xmm0, qword [esp + 0x5970]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5970], xmm0
jmp 0x5e6a0c
movsd xmm0, qword [esp + 0x5970]
cvtsi2sd xmm1, dword [esp + 0x596c]
addsd xmm0, xmm1
movsd qword [esp + 0x2ee0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2ee0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e6bfd
jp 0x5e6bfd
mov eax, dword [esp + 0x596c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5970]
addsd xmm0, xmm1
movsd qword [esp + 0x5970], xmm0
movsd xmm0, qword [esp + 0x5970]
cvtsi2sd xmm1, dword [esp + 0x596c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5980], eax
jmp 0x5e6cc7
jmp 0x5e6c11
jmp 0x5e6a0c
jmp 0x5e6c11
jmp 0x5e6c11
movsd xmm0, qword [esp + 0x5970]
movsd qword [esp + 0x2ed0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ec8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ec8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2edc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2ecc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2ecc]
movsd xmm0, qword [esp + 0x2ed0]
mov dl, al
mov eax, dword [esp + 0x2edc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5980], eax
mov eax, dword [esp + 0x5980]
mov dword [esp + 0x2ec4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2eb8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2eb8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ec0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2ebc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2ebc]
mov dl, al
mov eax, dword [esp + 0x2ec0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2ec4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e77cd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2e9c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2e9c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ea0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2ea0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2ea4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2ea4]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x2eb4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ea8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ea8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2eb0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2eac], eax
call fcn.005ceb20
mov edx, dword [esp + 0x2eac]
mov cl, al
mov eax, dword [esp + 0x2eb0]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2eb4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e77cd
mov dword [esp + 0x4c38], 0x66d4
mov dword [esp + 0x4c34], 0x79ee
mov dword [esp + 0x4c30], 0x3884
mov dword [esp + 0x4c2c], 0x69e3
mov eax, dword [esp + 0x4c30]
mov dword [esp + 0x4c34], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5960], xmm0
movsd xmm0, qword [esp + 0x5960]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5958], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2e90], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2e90]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e98], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2e94], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2e94]
mov dl, al
mov eax, dword [esp + 0x2e98]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e70c6
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2e84], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2e84]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e88], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2e88]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2e8c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2e8c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e70c1
mov dword [esp + 0x5954], 0
cmp dword [esp + 0x5954], 4
jae 0x5e70bc
movsd xmm0, qword [esp + 0x5958]
cvtsi2sd xmm1, dword [esp + 0x5954]
addsd xmm0, xmm1
movsd qword [esp + 0x2e78], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2e78]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e7029
jp 0x5e7029
movsd xmm0, qword [esp + 0x5958]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5958], xmm0
jmp 0x5e6ec6
movsd xmm0, qword [esp + 0x5958]
cvtsi2sd xmm1, dword [esp + 0x5954]
addsd xmm0, xmm1
movsd qword [esp + 0x2e70], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2e70]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e70b7
jp 0x5e70b7
mov eax, dword [esp + 0x5954]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5958]
addsd xmm0, xmm1
movsd qword [esp + 0x5958], xmm0
movsd xmm0, qword [esp + 0x5958]
cvtsi2sd xmm1, dword [esp + 0x5954]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5968], eax
jmp 0x5e7181
jmp 0x5e70cb
jmp 0x5e6ec6
jmp 0x5e70cb
jmp 0x5e70cb
movsd xmm0, qword [esp + 0x5958]
movsd qword [esp + 0x2e60], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2e58], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2e58]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e6c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2e5c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2e5c]
movsd xmm0, qword [esp + 0x2e60]
mov dl, al
mov eax, dword [esp + 0x2e6c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5968], eax
mov eax, dword [esp + 0x5968]
mov dword [esp + 0x2e54], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2e48], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2e48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e50], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2e4c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2e4c]
mov dl, al
mov eax, dword [esp + 0x2e50]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2e54]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e77c8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2e2c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2e2c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e30], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2e30]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x2e34], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x2e34]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x2e44], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2e38], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2e38]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e40], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2e3c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2e3c]
mov dl, al
mov eax, dword [esp + 0x2e40]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2e44]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e77c8
mov dword [esp + 0x4c2c], 0x5f57
mov dword [esp + 0x4c28], 0x6715
mov dword [esp + 0x4c24], 0x3440
mov dword [esp + 0x4c20], 0x726a
mov eax, dword [esp + 0x4c24]
mov dword [esp + 0x4c28], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5948], xmm0
movsd xmm0, qword [esp + 0x5948]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5940], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2e20], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2e20]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e28], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2e24], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2e24]
mov dl, al
mov eax, dword [esp + 0x2e28]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e757b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2e14], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2e14]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2e18], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2e18]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2e1c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2e1c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e7576
mov dword [esp + 0x593c], 0
cmp dword [esp + 0x593c], 4
jae 0x5e7571
movsd xmm0, qword [esp + 0x5940]
cvtsi2sd xmm1, dword [esp + 0x593c]
addsd xmm0, xmm1
movsd qword [esp + 0x2e08], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2e08]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e74de
jp 0x5e74de
movsd xmm0, qword [esp + 0x5940]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5940], xmm0
jmp 0x5e737b
movsd xmm0, qword [esp + 0x5940]
cvtsi2sd xmm1, dword [esp + 0x593c]
addsd xmm0, xmm1
movsd qword [esp + 0x2e00], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2e00]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e756c
jp 0x5e756c
mov eax, dword [esp + 0x593c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5940]
addsd xmm0, xmm1
movsd qword [esp + 0x5940], xmm0
movsd xmm0, qword [esp + 0x5940]
cvtsi2sd xmm1, dword [esp + 0x593c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5950], eax
jmp 0x5e7636
jmp 0x5e7580
jmp 0x5e737b
jmp 0x5e7580
jmp 0x5e7580
movsd xmm0, qword [esp + 0x5940]
movsd qword [esp + 0x2df0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2de8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2de8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2dfc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2dec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2dec]
movsd xmm0, qword [esp + 0x2df0]
mov dl, al
mov eax, dword [esp + 0x2dfc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5950], eax
mov eax, dword [esp + 0x5950]
mov dword [esp + 0x2de4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2dd8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2dd8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2de0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2ddc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2ddc]
mov dl, al
mov eax, dword [esp + 0x2de0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2de4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e77c3
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2dbc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2dbc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2dc0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2dc0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x2dc4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2dc4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x2dd4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2dc8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2dc8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2dd0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2dcc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2dcc]
mov dl, al
mov eax, dword [esp + 0x2dd0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2dd4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e77c3
mov dword [esp + 0x4c20], 0x429c
jmp 0x5e77c8
jmp 0x5e77cd
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.005d2e70
mov dword [esp + 0x4c1c], 0x7b40
mov dword [esp + 0x4c18], 0x497b
mov dword [esp + 0x4c14], 0x6ed4
mov eax, dword [esp + 0x4c18]
mov dword [esp + 0x4c1c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5930], xmm0
movsd xmm0, qword [esp + 0x5930]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5928], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2db0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2db0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2db8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2db4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2db4]
mov dl, al
mov eax, dword [esp + 0x2db8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e7a43
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2da4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2da4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2da8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2da8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2dac], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2dac]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e7a3e
mov dword [esp + 0x5924], 0
cmp dword [esp + 0x5924], 4
jae 0x5e7a39
movsd xmm0, qword [esp + 0x5928]
cvtsi2sd xmm1, dword [esp + 0x5924]
addsd xmm0, xmm1
movsd qword [esp + 0x2d98], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2d98]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e79a6
jp 0x5e79a6
movsd xmm0, qword [esp + 0x5928]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5928], xmm0
jmp 0x5e7843
movsd xmm0, qword [esp + 0x5928]
cvtsi2sd xmm1, dword [esp + 0x5924]
addsd xmm0, xmm1
movsd qword [esp + 0x2d90], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2d90]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e7a34
jp 0x5e7a34
mov eax, dword [esp + 0x5924]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5928]
addsd xmm0, xmm1
movsd qword [esp + 0x5928], xmm0
movsd xmm0, qword [esp + 0x5928]
cvtsi2sd xmm1, dword [esp + 0x5924]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5938], eax
jmp 0x5e7afe
jmp 0x5e7a48
jmp 0x5e7843
jmp 0x5e7a48
jmp 0x5e7a48
movsd xmm0, qword [esp + 0x5928]
movsd qword [esp + 0x2d80], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2d78], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2d78]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d8c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2d7c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2d7c]
movsd xmm0, qword [esp + 0x2d80]
mov dl, al
mov eax, dword [esp + 0x2d8c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5938], eax
mov eax, dword [esp + 0x5938]
mov dword [esp + 0x2d74], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2d68], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2d68]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d70], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2d6c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2d6c]
mov dl, al
mov eax, dword [esp + 0x2d70]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2d74]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e7c8b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2d4c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2d4c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d50], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2d50]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2d54], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2d54]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x2d64], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2d58], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2d58]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d60], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2d5c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2d5c]
mov dl, al
mov eax, dword [esp + 0x2d60]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2d64]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e7c8b
mov dword [esp + 0x4c14], 0x451a
mov eax, dword [esp + 0x6598]
mov ecx, dword [esp + 0x4ea4]
mov ecx, dword [ecx + 0x34]
sub eax, ecx
mov dword [esp + 0x4c10], eax
mov dword [esp + 0x4c0c], 0x4849
mov dword [esp + 0x4c08], 0x9ea9
mov dword [esp + 0x4c04], 0x64fe
mov eax, dword [esp + 0x4c08]
mov dword [esp + 0x4c0c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5918], xmm0
movsd xmm0, qword [esp + 0x5918]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5910], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2d40], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2d40]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d48], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2d44], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2d44]
mov dl, al
mov eax, dword [esp + 0x2d48]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e7f10
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2d34], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2d34]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d38], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2d38]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2d3c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2d3c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e7f0b
mov dword [esp + 0x590c], 0
cmp dword [esp + 0x590c], 4
jae 0x5e7f06
movsd xmm0, qword [esp + 0x5910]
cvtsi2sd xmm1, dword [esp + 0x590c]
addsd xmm0, xmm1
movsd qword [esp + 0x2d28], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2d28]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e7e73
jp 0x5e7e73
movsd xmm0, qword [esp + 0x5910]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5910], xmm0
jmp 0x5e7d10
movsd xmm0, qword [esp + 0x5910]
cvtsi2sd xmm1, dword [esp + 0x590c]
addsd xmm0, xmm1
movsd qword [esp + 0x2d20], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2d20]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e7f01
jp 0x5e7f01
mov eax, dword [esp + 0x590c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5910]
addsd xmm0, xmm1
movsd qword [esp + 0x5910], xmm0
movsd xmm0, qword [esp + 0x5910]
cvtsi2sd xmm1, dword [esp + 0x590c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5920], eax
jmp 0x5e7fcb
jmp 0x5e7f15
jmp 0x5e7d10
jmp 0x5e7f15
jmp 0x5e7f15
movsd xmm0, qword [esp + 0x5910]
movsd qword [esp + 0x2d10], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2d08], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2d08]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d1c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2d0c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2d0c]
movsd xmm0, qword [esp + 0x2d10]
mov dl, al
mov eax, dword [esp + 0x2d1c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5920], eax
mov eax, dword [esp + 0x5920]
mov dword [esp + 0x2d04], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2cf8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2cf8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2d00], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2cfc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2cfc]
mov dl, al
mov eax, dword [esp + 0x2d00]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2d04]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e8acd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2cdc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2cdc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ce0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2ce0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x2ce4], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x2ce4]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x2cf4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ce8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ce8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2cf0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2cec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2cec]
mov dl, al
mov eax, dword [esp + 0x2cf0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2cf4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e8acd
mov dword [esp + 0x4c04], 0x41d1
mov dword [esp + 0x4c00], 0x3752
mov dword [esp + 0x4bfc], 0x9340
mov dword [esp + 0x4bf8], 0x9733
mov eax, dword [esp + 0x4bfc]
mov dword [esp + 0x4c00], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5900], xmm0
movsd xmm0, qword [esp + 0x5900]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x58f8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2cd0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2cd0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2cd8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2cd4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2cd4]
mov dl, al
mov eax, dword [esp + 0x2cd8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e83c5
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2cc4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2cc4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2cc8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2cc8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2ccc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2ccc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e83c0
mov dword [esp + 0x58f4], 0
cmp dword [esp + 0x58f4], 4
jae 0x5e83bb
movsd xmm0, qword [esp + 0x58f8]
cvtsi2sd xmm1, dword [esp + 0x58f4]
addsd xmm0, xmm1
movsd qword [esp + 0x2cb8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2cb8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e8328
jp 0x5e8328
movsd xmm0, qword [esp + 0x58f8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x58f8], xmm0
jmp 0x5e81c5
movsd xmm0, qword [esp + 0x58f8]
cvtsi2sd xmm1, dword [esp + 0x58f4]
addsd xmm0, xmm1
movsd qword [esp + 0x2cb0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2cb0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e83b6
jp 0x5e83b6
mov eax, dword [esp + 0x58f4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x58f8]
addsd xmm0, xmm1
movsd qword [esp + 0x58f8], xmm0
movsd xmm0, qword [esp + 0x58f8]
cvtsi2sd xmm1, dword [esp + 0x58f4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5908], eax
jmp 0x5e8480
jmp 0x5e83ca
jmp 0x5e81c5
jmp 0x5e83ca
jmp 0x5e83ca
movsd xmm0, qword [esp + 0x58f8]
movsd qword [esp + 0x2ca0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2cac], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c9c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c9c]
movsd xmm0, qword [esp + 0x2ca0]
mov dl, al
mov eax, dword [esp + 0x2cac]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5908], eax
mov eax, dword [esp + 0x5908]
mov dword [esp + 0x2c94], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c88], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c88]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c90], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c8c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c8c]
mov dl, al
mov eax, dword [esp + 0x2c90]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2c94]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e8ac8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2c6c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2c6c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c70], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2c70]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c74], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2c74]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x2c84], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c78], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c78]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c80], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c7c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c7c]
mov dl, al
mov eax, dword [esp + 0x2c80]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2c84]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e8ac8
mov dword [esp + 0x4bf8], 0x3c12
mov dword [esp + 0x4bf4], 0x7637
mov dword [esp + 0x4bf0], 0x4fd6
mov dword [esp + 0x4bec], 0x97f4
mov eax, dword [esp + 0x4bf0]
mov dword [esp + 0x4bf4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x58e8], xmm0
movsd xmm0, qword [esp + 0x58e8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x58e0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c60], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c60]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c68], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c64], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c64]
mov dl, al
mov eax, dword [esp + 0x2c68]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e8878
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2c54], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2c54]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c58], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2c58]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2c5c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2c5c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e8873
mov dword [esp + 0x58dc], 0
cmp dword [esp + 0x58dc], 4
jae 0x5e886e
movsd xmm0, qword [esp + 0x58e0]
cvtsi2sd xmm1, dword [esp + 0x58dc]
addsd xmm0, xmm1
movsd qword [esp + 0x2c48], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2c48]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e87db
jp 0x5e87db
movsd xmm0, qword [esp + 0x58e0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x58e0], xmm0
jmp 0x5e8678
movsd xmm0, qword [esp + 0x58e0]
cvtsi2sd xmm1, dword [esp + 0x58dc]
addsd xmm0, xmm1
movsd qword [esp + 0x2c40], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2c40]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e8869
jp 0x5e8869
mov eax, dword [esp + 0x58dc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x58e0]
addsd xmm0, xmm1
movsd qword [esp + 0x58e0], xmm0
movsd xmm0, qword [esp + 0x58e0]
cvtsi2sd xmm1, dword [esp + 0x58dc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58f0], eax
jmp 0x5e8933
jmp 0x5e887d
jmp 0x5e8678
jmp 0x5e887d
jmp 0x5e887d
movsd xmm0, qword [esp + 0x58e0]
movsd qword [esp + 0x2c30], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c28], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c28]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c3c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c2c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c2c]
movsd xmm0, qword [esp + 0x2c30]
mov dl, al
mov eax, dword [esp + 0x2c3c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58f0], eax
mov eax, dword [esp + 0x58f0]
mov dword [esp + 0x2c24], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c18], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c18]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c20], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c1c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c1c]
mov dl, al
mov eax, dword [esp + 0x2c20]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2c24]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e8ac3
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2bfc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2bfc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c00], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2c00]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2c04], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2c04]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x2c14], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2c08], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2c08]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2c10], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2c0c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2c0c]
mov dl, al
mov eax, dword [esp + 0x2c10]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2c14]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e8ac3
mov dword [esp + 0x4bec], 0x6f57
jmp 0x5e8ac8
jmp 0x5e8acd
mov byte [esp + 0x4beb], 0
mov dword [esp + 0x4be4], 0x4b1e
mov dword [esp + 0x4be0], 0x4920
mov dword [esp + 0x4bdc], 0x9269
mov eax, dword [esp + 0x4be0]
mov dword [esp + 0x4be4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x58d0], xmm0
movsd xmm0, qword [esp + 0x58d0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x58c8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2bf0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2bf0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2bf8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2bf4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2bf4]
mov dl, al
mov eax, dword [esp + 0x2bf8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e8d40
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2be4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2be4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2be8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2be8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2bec], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2bec]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e8d3b
mov dword [esp + 0x58c4], 0
cmp dword [esp + 0x58c4], 4
jae 0x5e8d36
movsd xmm0, qword [esp + 0x58c8]
cvtsi2sd xmm1, dword [esp + 0x58c4]
addsd xmm0, xmm1
movsd qword [esp + 0x2bd8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2bd8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e8ca3
jp 0x5e8ca3
movsd xmm0, qword [esp + 0x58c8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x58c8], xmm0
jmp 0x5e8b40
movsd xmm0, qword [esp + 0x58c8]
cvtsi2sd xmm1, dword [esp + 0x58c4]
addsd xmm0, xmm1
movsd qword [esp + 0x2bd0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2bd0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e8d31
jp 0x5e8d31
mov eax, dword [esp + 0x58c4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x58c8]
addsd xmm0, xmm1
movsd qword [esp + 0x58c8], xmm0
movsd xmm0, qword [esp + 0x58c8]
cvtsi2sd xmm1, dword [esp + 0x58c4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58d8], eax
jmp 0x5e8dfb
jmp 0x5e8d45
jmp 0x5e8b40
jmp 0x5e8d45
jmp 0x5e8d45
movsd xmm0, qword [esp + 0x58c8]
movsd qword [esp + 0x2bc0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2bb8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2bb8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2bcc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2bbc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2bbc]
movsd xmm0, qword [esp + 0x2bc0]
mov dl, al
mov eax, dword [esp + 0x2bcc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58d8], eax
mov eax, dword [esp + 0x58d8]
mov dword [esp + 0x2bb4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ba8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ba8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2bb0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2bac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2bac]
mov dl, al
mov eax, dword [esp + 0x2bb0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2bb4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e8f91
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2b8c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2b8c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b90], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2b90]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x2b94], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x2b94]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x2ba4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b98], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b98]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ba0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b9c], eax
call fcn.005ceb20
mov edx, dword [esp + 0x2b9c]
mov cl, al
mov eax, dword [esp + 0x2ba0]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2ba4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e8f91
mov dword [esp + 0x4bdc], 0xa212
mov dword [esp + 0x4bd8], 0x43ee
mov dword [esp + 0x4bd4], 0x909b
mov dword [esp + 0x4bd0], 0xa1cb
mov eax, dword [esp + 0x4bd4]
mov dword [esp + 0x4bd8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x58b8], xmm0
movsd xmm0, qword [esp + 0x58b8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x58b0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b80], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b80]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b88], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b84], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2b84]
mov dl, al
mov eax, dword [esp + 0x2b88]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e91fc
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2b74], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2b74]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b78], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2b78]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2b7c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2b7c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e91f7
mov dword [esp + 0x58ac], 0
cmp dword [esp + 0x58ac], 4
jae 0x5e91f2
movsd xmm0, qword [esp + 0x58b0]
cvtsi2sd xmm1, dword [esp + 0x58ac]
addsd xmm0, xmm1
movsd qword [esp + 0x2b68], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2b68]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e915f
jp 0x5e915f
movsd xmm0, qword [esp + 0x58b0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x58b0], xmm0
jmp 0x5e8ffc
movsd xmm0, qword [esp + 0x58b0]
cvtsi2sd xmm1, dword [esp + 0x58ac]
addsd xmm0, xmm1
movsd qword [esp + 0x2b60], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2b60]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e91ed
jp 0x5e91ed
mov eax, dword [esp + 0x58ac]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x58b0]
addsd xmm0, xmm1
movsd qword [esp + 0x58b0], xmm0
movsd xmm0, qword [esp + 0x58b0]
cvtsi2sd xmm1, dword [esp + 0x58ac]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58c0], eax
jmp 0x5e92b7
jmp 0x5e9201
jmp 0x5e8ffc
jmp 0x5e9201
jmp 0x5e9201
movsd xmm0, qword [esp + 0x58b0]
movsd qword [esp + 0x2b50], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b48], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b5c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b4c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2b4c]
movsd xmm0, qword [esp + 0x2b50]
mov dl, al
mov eax, dword [esp + 0x2b5c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58c0], eax
mov eax, dword [esp + 0x58c0]
mov dword [esp + 0x2b44], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b38], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b38]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b40], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b3c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2b3c]
mov dl, al
mov eax, dword [esp + 0x2b40]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2b44]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e98ff
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2b1c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2b1c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b20], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2b20]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x2b24], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2b24]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x2b34], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b28], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b28]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b30], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b2c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2b2c]
mov dl, al
mov eax, dword [esp + 0x2b30]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2b34]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e98ff
mov dword [esp + 0x4bd0], 0x8fc4
mov dword [esp + 0x4bcc], 0x2ed0
mov dword [esp + 0x4bc8], 0xa5e0
mov dword [esp + 0x4bc4], 0x6e47
mov eax, dword [esp + 0x4bc8]
mov dword [esp + 0x4bcc], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x58a0], xmm0
movsd xmm0, qword [esp + 0x58a0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5898], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2b10], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2b10]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b18], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2b14], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2b14]
mov dl, al
mov eax, dword [esp + 0x2b18]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e96af
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2b04], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2b04]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2b08], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2b08]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2b0c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2b0c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e96aa
mov dword [esp + 0x5894], 0
cmp dword [esp + 0x5894], 4
jae 0x5e96a5
movsd xmm0, qword [esp + 0x5898]
cvtsi2sd xmm1, dword [esp + 0x5894]
addsd xmm0, xmm1
movsd qword [esp + 0x2af8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2af8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e9612
jp 0x5e9612
movsd xmm0, qword [esp + 0x5898]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5898], xmm0
jmp 0x5e94af
movsd xmm0, qword [esp + 0x5898]
cvtsi2sd xmm1, dword [esp + 0x5894]
addsd xmm0, xmm1
movsd qword [esp + 0x2af0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2af0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e96a0
jp 0x5e96a0
mov eax, dword [esp + 0x5894]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5898]
addsd xmm0, xmm1
movsd qword [esp + 0x5898], xmm0
movsd xmm0, qword [esp + 0x5898]
cvtsi2sd xmm1, dword [esp + 0x5894]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58a8], eax
jmp 0x5e976a
jmp 0x5e96b4
jmp 0x5e94af
jmp 0x5e96b4
jmp 0x5e96b4
movsd xmm0, qword [esp + 0x5898]
movsd qword [esp + 0x2ae0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ad8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ad8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2aec], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2adc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2adc]
movsd xmm0, qword [esp + 0x2ae0]
mov dl, al
mov eax, dword [esp + 0x2aec]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x58a8], eax
mov eax, dword [esp + 0x58a8]
mov dword [esp + 0x2ad4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ac8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ac8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ad0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2acc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2acc]
mov dl, al
mov eax, dword [esp + 0x2ad0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2ad4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5e98fa
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2aac], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2aac]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ab0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2ab0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2ab4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2ab4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x2ac4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2ab8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2ab8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2ac0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2abc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2abc]
mov dl, al
mov eax, dword [esp + 0x2ac0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2ac4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5e98fa
mov dword [esp + 0x4bc4], 0x9b3e
jmp 0x5e98ff
mov ecx, dword [esp + 0x6598]
mov eax, dword [esp + 0x4ea4]
mov dword [eax + 0x34], ecx
mov dword [esp + 0x4bc0], 0x3873
mov dword [esp + 0x4bbc], 0x4162
mov dword [esp + 0x4bb8], 0x3c8e
mov eax, dword [esp + 0x4bbc]
mov dword [esp + 0x4bc0], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5888], xmm0
movsd xmm0, qword [esp + 0x5888]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5880], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2aa0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2aa0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2aa8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2aa4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2aa4]
mov dl, al
mov eax, dword [esp + 0x2aa8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e9b7b
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2a94], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2a94]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a98], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2a98]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2a9c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2a9c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5e9b76
mov dword [esp + 0x587c], 0
cmp dword [esp + 0x587c], 4
jae 0x5e9b71
movsd xmm0, qword [esp + 0x5880]
cvtsi2sd xmm1, dword [esp + 0x587c]
addsd xmm0, xmm1
movsd qword [esp + 0x2a88], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2a88]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e9ade
jp 0x5e9ade
movsd xmm0, qword [esp + 0x5880]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5880], xmm0
jmp 0x5e997b
movsd xmm0, qword [esp + 0x5880]
cvtsi2sd xmm1, dword [esp + 0x587c]
addsd xmm0, xmm1
movsd qword [esp + 0x2a80], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2a80]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e9b6c
jp 0x5e9b6c
mov eax, dword [esp + 0x587c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5880]
addsd xmm0, xmm1
movsd qword [esp + 0x5880], xmm0
movsd xmm0, qword [esp + 0x5880]
cvtsi2sd xmm1, dword [esp + 0x587c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5890], eax
jmp 0x5e9c36
jmp 0x5e9b80
jmp 0x5e997b
jmp 0x5e9b80
jmp 0x5e9b80
movsd xmm0, qword [esp + 0x5880]
movsd qword [esp + 0x2a70], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2a68], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2a68]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a7c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2a6c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2a6c]
movsd xmm0, qword [esp + 0x2a70]
mov dl, al
mov eax, dword [esp + 0x2a7c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5890], eax
mov eax, dword [esp + 0x5890]
mov dword [esp + 0x2a64], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2a58], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2a58]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a60], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2a5c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2a5c]
mov dl, al
mov eax, dword [esp + 0x2a60]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2a64]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ea27f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2a3c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2a3c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a40], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2a40]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 0x2a44], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2a44]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x2a54], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2a48], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2a48]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a50], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2a4c], eax
call fcn.005ceb20
mov edx, dword [esp + 0x2a4c]
mov cl, al
mov eax, dword [esp + 0x2a50]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2a54]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ea27f
mov dword [esp + 0x4bb8], 0x2fce
mov dword [esp + 0x4bb4], 0x9fc0
mov dword [esp + 0x4bb0], 0x9853
mov dword [esp + 0x4bac], 0x51c8
mov eax, dword [esp + 0x4bb0]
mov dword [esp + 0x4bb4], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5870], xmm0
movsd xmm0, qword [esp + 0x5870]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5868], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2a30], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2a30]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a38], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2a34], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2a34]
mov dl, al
mov eax, dword [esp + 0x2a38]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea032
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2a24], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2a24]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a28], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2a28]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2a2c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2a2c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea02d
mov dword [esp + 0x5864], 0
cmp dword [esp + 0x5864], 4
jae 0x5ea028
movsd xmm0, qword [esp + 0x5868]
cvtsi2sd xmm1, dword [esp + 0x5864]
addsd xmm0, xmm1
movsd qword [esp + 0x2a18], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2a18]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5e9f95
jp 0x5e9f95
movsd xmm0, qword [esp + 0x5868]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5868], xmm0
jmp 0x5e9e32
movsd xmm0, qword [esp + 0x5868]
cvtsi2sd xmm1, dword [esp + 0x5864]
addsd xmm0, xmm1
movsd qword [esp + 0x2a10], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2a10]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ea023
jp 0x5ea023
mov eax, dword [esp + 0x5864]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5868]
addsd xmm0, xmm1
movsd qword [esp + 0x5868], xmm0
movsd xmm0, qword [esp + 0x5868]
cvtsi2sd xmm1, dword [esp + 0x5864]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5878], eax
jmp 0x5ea0ed
jmp 0x5ea037
jmp 0x5e9e32
jmp 0x5ea037
jmp 0x5ea037
movsd xmm0, qword [esp + 0x5868]
movsd qword [esp + 0x2a00], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x29f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x29f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2a0c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x29fc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x29fc]
movsd xmm0, qword [esp + 0x2a00]
mov dl, al
mov eax, dword [esp + 0x2a0c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5878], eax
mov eax, dword [esp + 0x5878]
mov dword [esp + 0x29f4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x29e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x29e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x29f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x29ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x29ec]
mov dl, al
mov eax, dword [esp + 0x29f0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x29f4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ea27a
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x29cc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x29cc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x29d0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x29d0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x29d4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x29d4]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x29e4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x29d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x29d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x29e0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x29dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x29dc]
mov dl, al
mov eax, dword [esp + 0x29e0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x29e4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ea27a
mov dword [esp + 0x4bac], 0xa04c
jmp 0x5ea27f
mov eax, dword [esp + 0x4cec]
mov ecx, dword [esp + 0x4ea4]
mov ebx, dword [ecx + 0x54]
mov edi, dword [esp + 0x4e28]
mov esi, dword [esp + 0x6598]
mov edx, dword [esp + 0x65a0]
mov ecx, esp
mov dword [ecx + 0xc], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 4], esi
mov dword [ecx], edx
mov dword [ecx + 0x10], 0
call eax
sub esp, 0x14
test eax, eax
setne byte [esp + 0x4beb]
mov dword [esp + 0x4ba8], 0x2b44
mov dword [esp + 0x4ba4], 0x48f3
mov dword [esp + 0x4ba0], 0xa2ee
mov eax, dword [esp + 0x4ba4]
mov dword [esp + 0x4ba8], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5858], xmm0
movsd xmm0, qword [esp + 0x5858]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5850], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x29c0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x29c0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x29c8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x29c4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x29c4]
mov dl, al
mov eax, dword [esp + 0x29c8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea533
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x29b4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x29b4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x29b8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x29b8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x29bc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x29bc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea52e
mov dword [esp + 0x584c], 0
cmp dword [esp + 0x584c], 4
jae 0x5ea529
movsd xmm0, qword [esp + 0x5850]
cvtsi2sd xmm1, dword [esp + 0x584c]
addsd xmm0, xmm1
movsd qword [esp + 0x29a8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x29a8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ea496
jp 0x5ea496
movsd xmm0, qword [esp + 0x5850]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5850], xmm0
jmp 0x5ea333
movsd xmm0, qword [esp + 0x5850]
cvtsi2sd xmm1, dword [esp + 0x584c]
addsd xmm0, xmm1
movsd qword [esp + 0x29a0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x29a0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ea524
jp 0x5ea524
mov eax, dword [esp + 0x584c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5850]
addsd xmm0, xmm1
movsd qword [esp + 0x5850], xmm0
movsd xmm0, qword [esp + 0x5850]
cvtsi2sd xmm1, dword [esp + 0x584c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5860], eax
jmp 0x5ea5ee
jmp 0x5ea538
jmp 0x5ea333
jmp 0x5ea538
jmp 0x5ea538
movsd xmm0, qword [esp + 0x5850]
movsd qword [esp + 0x2990], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2988], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2988]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x299c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x298c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x298c]
movsd xmm0, qword [esp + 0x2990]
mov dl, al
mov eax, dword [esp + 0x299c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5860], eax
mov eax, dword [esp + 0x5860]
mov dword [esp + 0x2984], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2978], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2978]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2980], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x297c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x297c]
mov dl, al
mov eax, dword [esp + 0x2980]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2984]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eac3d
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x295c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x295c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2960], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2960]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2964], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2964]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x2974], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2968], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2968]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2970], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x296c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x296c]
mov dl, al
mov eax, dword [esp + 0x2970]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2974]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eac3d
mov dword [esp + 0x4ba0], 0x2e19
mov dword [esp + 0x4b9c], 0x2943
mov dword [esp + 0x4b98], 0x3762
mov dword [esp + 0x4b94], 0x7571
mov eax, dword [esp + 0x4b98]
mov dword [esp + 0x4b9c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5840], xmm0
movsd xmm0, qword [esp + 0x5840]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5838], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2950], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2950]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2958], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2954], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2954]
mov dl, al
mov eax, dword [esp + 0x2958]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea9e9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2944], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2944]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2948], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2948]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x294c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x294c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ea9e4
mov dword [esp + 0x5834], 0
cmp dword [esp + 0x5834], 4
jae 0x5ea9df
movsd xmm0, qword [esp + 0x5838]
cvtsi2sd xmm1, dword [esp + 0x5834]
addsd xmm0, xmm1
movsd qword [esp + 0x2938], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2938]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ea94c
jp 0x5ea94c
movsd xmm0, qword [esp + 0x5838]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5838], xmm0
jmp 0x5ea7e9
movsd xmm0, qword [esp + 0x5838]
cvtsi2sd xmm1, dword [esp + 0x5834]
addsd xmm0, xmm1
movsd qword [esp + 0x2930], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2930]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ea9da
jp 0x5ea9da
mov eax, dword [esp + 0x5834]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5838]
addsd xmm0, xmm1
movsd qword [esp + 0x5838], xmm0
movsd xmm0, qword [esp + 0x5838]
cvtsi2sd xmm1, dword [esp + 0x5834]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5848], eax
jmp 0x5eaaa4
jmp 0x5ea9ee
jmp 0x5ea7e9
jmp 0x5ea9ee
jmp 0x5ea9ee
movsd xmm0, qword [esp + 0x5838]
movsd qword [esp + 0x2920], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2918], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2918]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x292c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x291c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x291c]
movsd xmm0, qword [esp + 0x2920]
mov dl, al
mov eax, dword [esp + 0x292c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5848], eax
mov eax, dword [esp + 0x5848]
mov dword [esp + 0x2914], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2908], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2908]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2910], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x290c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x290c]
mov dl, al
mov eax, dword [esp + 0x2910]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2914]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eac38
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x28ec], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x28ec]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x28f0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x28f0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x28f4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x28f4]
movsx ecx, cl
sub eax, ecx
mov dword [esp + 0x2904], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x28f8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x28f8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2900], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x28fc], eax
call fcn.005ceb20
mov edx, dword [esp + 0x28fc]
mov cl, al
mov eax, dword [esp + 0x2900]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2904]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eac38
mov dword [esp + 0x4b94], 0x97ef
jmp 0x5eac3d
mov dword [esp + 0x4b90], 0x528b
mov dword [esp + 0x4b8c], 0x67e2
mov dword [esp + 0x4b88], 0x31f5
mov eax, dword [esp + 0x4b8c]
mov dword [esp + 0x4b90], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5828], xmm0
movsd xmm0, qword [esp + 0x5828]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5820], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x28e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x28e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x28e8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x28e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x28e4]
mov dl, al
mov eax, dword [esp + 0x28e8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eaea8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x28d4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x28d4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x28d8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x28d8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x28dc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x28dc]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eaea3
mov dword [esp + 0x581c], 0
cmp dword [esp + 0x581c], 4
jae 0x5eae9e
movsd xmm0, qword [esp + 0x5820]
cvtsi2sd xmm1, dword [esp + 0x581c]
addsd xmm0, xmm1
movsd qword [esp + 0x28c8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x28c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eae0b
jp 0x5eae0b
movsd xmm0, qword [esp + 0x5820]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5820], xmm0
jmp 0x5eaca8
movsd xmm0, qword [esp + 0x5820]
cvtsi2sd xmm1, dword [esp + 0x581c]
addsd xmm0, xmm1
movsd qword [esp + 0x28c0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x28c0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eae99
jp 0x5eae99
mov eax, dword [esp + 0x581c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5820]
addsd xmm0, xmm1
movsd qword [esp + 0x5820], xmm0
movsd xmm0, qword [esp + 0x5820]
cvtsi2sd xmm1, dword [esp + 0x581c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5830], eax
jmp 0x5eaf63
jmp 0x5eaead
jmp 0x5eaca8
jmp 0x5eaead
jmp 0x5eaead
movsd xmm0, qword [esp + 0x5820]
movsd qword [esp + 0x28b0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x28a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x28a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x28bc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x28ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x28ac]
movsd xmm0, qword [esp + 0x28b0]
mov dl, al
mov eax, dword [esp + 0x28bc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5830], eax
mov eax, dword [esp + 0x5830]
mov dword [esp + 0x28a4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2898], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2898]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x28a0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x289c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x289c]
mov dl, al
mov eax, dword [esp + 0x28a0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x28a4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eb0f2
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x287c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x287c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2880], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2880]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov dword [esp + 0x2884], eax
call fcn.005cebb0
mov ecx, dword [esp + 0x2884]
movsx eax, al
sub ecx, eax
mov eax, ecx
shl eax, 3
sub eax, ecx
mov dword [esp + 0x2894], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2888], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2888]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2890], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x288c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x288c]
mov dl, al
mov eax, dword [esp + 0x2890]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2894]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eb0f2
mov dword [esp + 0x4b88], 0x3f27
mov al, byte [esp + 0x4beb]
test al, 1
xorps xmm0, xmm0
movsd xmm1, qword [0x4802b0]
movsd qword [esp + 0x2868], xmm1
movsd qword [esp + 0x2870], xmm0
jne 0x5eb130
movsd xmm0, qword [esp + 0x2868]
movsd qword [esp + 0x2870], xmm0
movsd xmm0, qword [esp + 0x2870]
movsd qword [esp + 0x5810], xmm0
movsd xmm0, qword [esp + 0x5810]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5808], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x285c], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x285c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2864], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2860], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2860]
mov dl, al
mov eax, dword [esp + 0x2864]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eb371
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2850], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2850]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2854], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2854]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2858], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2858]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eb36c
mov dword [esp + 0x5804], 0
cmp dword [esp + 0x5804], 4
jae 0x5eb367
movsd xmm0, qword [esp + 0x5808]
cvtsi2sd xmm1, dword [esp + 0x5804]
addsd xmm0, xmm1
movsd qword [esp + 0x2848], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2848]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eb2d4
jp 0x5eb2d4
movsd xmm0, qword [esp + 0x5808]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5808], xmm0
jmp 0x5eb171
movsd xmm0, qword [esp + 0x5808]
cvtsi2sd xmm1, dword [esp + 0x5804]
addsd xmm0, xmm1
movsd qword [esp + 0x2840], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2840]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eb362
jp 0x5eb362
mov eax, dword [esp + 0x5804]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5808]
addsd xmm0, xmm1
movsd qword [esp + 0x5808], xmm0
movsd xmm0, qword [esp + 0x5808]
cvtsi2sd xmm1, dword [esp + 0x5804]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5818], eax
jmp 0x5eb42c
jmp 0x5eb376
jmp 0x5eb171
jmp 0x5eb376
jmp 0x5eb376
movsd xmm0, qword [esp + 0x5808]
movsd qword [esp + 0x2830], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2828], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2828]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x283c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x282c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x282c]
movsd xmm0, qword [esp + 0x2830]
mov dl, al
mov eax, dword [esp + 0x283c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5818], eax
mov eax, dword [esp + 0x5818]
mov dword [esp + 0x2824], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2818], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2818]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2820], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x281c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x281c]
mov dl, al
mov eax, dword [esp + 0x2820]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2824]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eb5d9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x27fc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x27fc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2800], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2800]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov dword [esp + 0x2804], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2804]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*8]
mov dword [esp + 0x2814], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2808], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2808]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2810], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x280c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x280c]
mov dl, al
mov eax, dword [esp + 0x2810]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2814]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eb5d9
mov dword [esp + 0x4b84], 0
cmp dword [esp + 0x4b84], 0x14
jae 0x5eb5d4
mov byte [esp + 0x4ed3], 0
jmp 0x606deb
jmp 0x5eb5d9
mov dword [esp + 0x4b80], 0x6ecd
mov dword [esp + 0x4b7c], 0x2f1a
mov dword [esp + 0x4b78], 0x416d
mov eax, dword [esp + 0x4b7c]
mov dword [esp + 0x4b80], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x57e0], xmm0
movsd xmm0, qword [esp + 0x57e0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x57d8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x27f0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x27f0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x27f8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x27f4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x27f4]
mov dl, al
mov eax, dword [esp + 0x27f8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eb844
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x27e4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x27e4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x27e8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x27e8]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x27ec], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x27ec]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eb83f
mov dword [esp + 0x57d4], 0
cmp dword [esp + 0x57d4], 4
jae 0x5eb83a
movsd xmm0, qword [esp + 0x57d8]
cvtsi2sd xmm1, dword [esp + 0x57d4]
addsd xmm0, xmm1
movsd qword [esp + 0x27d8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x27d8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eb7a7
jp 0x5eb7a7
movsd xmm0, qword [esp + 0x57d8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x57d8], xmm0
jmp 0x5eb644
movsd xmm0, qword [esp + 0x57d8]
cvtsi2sd xmm1, dword [esp + 0x57d4]
addsd xmm0, xmm1
movsd qword [esp + 0x27d0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x27d0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5eb835
jp 0x5eb835
mov eax, dword [esp + 0x57d4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x57d8]
addsd xmm0, xmm1
movsd qword [esp + 0x57d8], xmm0
movsd xmm0, qword [esp + 0x57d8]
cvtsi2sd xmm1, dword [esp + 0x57d4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57e8], eax
jmp 0x5eb8ff
jmp 0x5eb849
jmp 0x5eb644
jmp 0x5eb849
jmp 0x5eb849
movsd xmm0, qword [esp + 0x57d8]
movsd qword [esp + 0x27c0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x27b8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x27b8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x27cc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x27bc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x27bc]
movsd xmm0, qword [esp + 0x27c0]
mov dl, al
mov eax, dword [esp + 0x27cc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57e8], eax
mov eax, dword [esp + 0x57e8]
mov dword [esp + 0x27b4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x27a8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x27a8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x27b0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x27ac], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x27ac]
mov dl, al
mov eax, dword [esp + 0x27b0]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x27b4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ebf48
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x278c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x278c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2790], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2790]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x2794], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2794]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x27a4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2798], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2798]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x27a0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x279c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x279c]
mov dl, al
mov eax, dword [esp + 0x27a0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x27a4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ebf48
mov dword [esp + 0x4b78], 0x7632
mov dword [esp + 0x4b74], 0x7af0
mov dword [esp + 0x4b70], 0x9184
mov dword [esp + 0x4b6c], 0x947e
mov eax, dword [esp + 0x4b70]
mov dword [esp + 0x4b74], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x57c8], xmm0
movsd xmm0, qword [esp + 0x57c8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x57c0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2780], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2780]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2788], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2784], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2784]
mov dl, al
mov eax, dword [esp + 0x2788]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ebcf9
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2774], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2774]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2778], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2778]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x277c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x277c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ebcf4
mov dword [esp + 0x57bc], 0
cmp dword [esp + 0x57bc], 4
jae 0x5ebcef
movsd xmm0, qword [esp + 0x57c0]
cvtsi2sd xmm1, dword [esp + 0x57bc]
addsd xmm0, xmm1
movsd qword [esp + 0x2768], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2768]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ebc5c
jp 0x5ebc5c
movsd xmm0, qword [esp + 0x57c0]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x57c0], xmm0
jmp 0x5ebaf9
movsd xmm0, qword [esp + 0x57c0]
cvtsi2sd xmm1, dword [esp + 0x57bc]
addsd xmm0, xmm1
movsd qword [esp + 0x2760], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2760]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ebcea
jp 0x5ebcea
mov eax, dword [esp + 0x57bc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x57c0]
addsd xmm0, xmm1
movsd qword [esp + 0x57c0], xmm0
movsd xmm0, qword [esp + 0x57c0]
cvtsi2sd xmm1, dword [esp + 0x57bc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57d0], eax
jmp 0x5ebdb4
jmp 0x5ebcfe
jmp 0x5ebaf9
jmp 0x5ebcfe
jmp 0x5ebcfe
movsd xmm0, qword [esp + 0x57c0]
movsd qword [esp + 0x2750], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2748], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2748]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x275c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x274c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x274c]
movsd xmm0, qword [esp + 0x2750]
mov dl, al
mov eax, dword [esp + 0x275c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57d0], eax
mov eax, dword [esp + 0x57d0]
mov dword [esp + 0x2744], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2738], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2738]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2740], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x273c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x273c]
mov dl, al
mov eax, dword [esp + 0x2740]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2744]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ebf43
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x271c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x271c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2720], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2720]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x2724], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2724]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x2734], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2728], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2728]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2730], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x272c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x272c]
mov dl, al
mov eax, dword [esp + 0x2730]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*4]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2734]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ebf43
mov dword [esp + 0x4b6c], 0xa1a2
jmp 0x5ebf48
mov dword [esp + 0x4b68], 0
mov dword [esp + 0x4b64], 0x40e2
mov dword [esp + 0x4b60], 0x6977
mov dword [esp + 0x4b5c], 0x2a1b
mov eax, dword [esp + 0x4b60]
mov dword [esp + 0x4b64], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x57b0], xmm0
movsd xmm0, qword [esp + 0x57b0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x57a8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2710], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2710]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2718], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2714], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2714]
mov dl, al
mov eax, dword [esp + 0x2718]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ec1be
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2704], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2704]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2708], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2708]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x270c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x270c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ec1b9
mov dword [esp + 0x57a4], 0
cmp dword [esp + 0x57a4], 4
jae 0x5ec1b4
movsd xmm0, qword [esp + 0x57a8]
cvtsi2sd xmm1, dword [esp + 0x57a4]
addsd xmm0, xmm1
movsd qword [esp + 0x26f8], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x26f8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ec121
jp 0x5ec121
movsd xmm0, qword [esp + 0x57a8]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x57a8], xmm0
jmp 0x5ebfbe
movsd xmm0, qword [esp + 0x57a8]
cvtsi2sd xmm1, dword [esp + 0x57a4]
addsd xmm0, xmm1
movsd qword [esp + 0x26f0], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x26f0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ec1af
jp 0x5ec1af
mov eax, dword [esp + 0x57a4]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x57a8]
addsd xmm0, xmm1
movsd qword [esp + 0x57a8], xmm0
movsd xmm0, qword [esp + 0x57a8]
cvtsi2sd xmm1, dword [esp + 0x57a4]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57b8], eax
jmp 0x5ec279
jmp 0x5ec1c3
jmp 0x5ebfbe
jmp 0x5ec1c3
jmp 0x5ec1c3
movsd xmm0, qword [esp + 0x57a8]
movsd qword [esp + 0x26e0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x26d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x26d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x26ec], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x26dc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x26dc]
movsd xmm0, qword [esp + 0x26e0]
mov dl, al
mov eax, dword [esp + 0x26ec]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57b8], eax
mov eax, dword [esp + 0x57b8]
mov dword [esp + 0x26d4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x26c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x26c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x26d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x26cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x26cc]
mov dl, al
mov eax, dword [esp + 0x26d0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x26d4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ec8ca
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x26ac], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x26ac]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x26b0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x26b0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [esp + 0x26b4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x26b4]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*4]
mov dword [esp + 0x26c4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x26b8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x26b8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x26c0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x26bc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x26bc]
mov dl, al
mov eax, dword [esp + 0x26c0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x26c4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ec8ca
mov dword [esp + 0x4b5c], 0x77f5
mov dword [esp + 0x4b58], 0x9de2
mov dword [esp + 0x4b54], 0x2ca8
mov dword [esp + 0x4b50], 0x3149
mov eax, dword [esp + 0x4b54]
mov dword [esp + 0x4b58], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5798], xmm0
movsd xmm0, qword [esp + 0x5798]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5790], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x26a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x26a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x26a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x26a4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x26a4]
mov dl, al
mov eax, dword [esp + 0x26a8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ec678
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2694], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2694]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2698], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2698]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x269c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x269c]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ec673
mov dword [esp + 0x578c], 0
cmp dword [esp + 0x578c], 4
jae 0x5ec66e
movsd xmm0, qword [esp + 0x5790]
cvtsi2sd xmm1, dword [esp + 0x578c]
addsd xmm0, xmm1
movsd qword [esp + 0x2688], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2688]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ec5db
jp 0x5ec5db
movsd xmm0, qword [esp + 0x5790]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5790], xmm0
jmp 0x5ec478
movsd xmm0, qword [esp + 0x5790]
cvtsi2sd xmm1, dword [esp + 0x578c]
addsd xmm0, xmm1
movsd qword [esp + 0x2680], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2680]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ec669
jp 0x5ec669
mov eax, dword [esp + 0x578c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5790]
addsd xmm0, xmm1
movsd qword [esp + 0x5790], xmm0
movsd xmm0, qword [esp + 0x5790]
cvtsi2sd xmm1, dword [esp + 0x578c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57a0], eax
jmp 0x5ec733
jmp 0x5ec67d
jmp 0x5ec478
jmp 0x5ec67d
jmp 0x5ec67d
movsd xmm0, qword [esp + 0x5790]
movsd qword [esp + 0x2670], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2668], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2668]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x267c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x266c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x266c]
movsd xmm0, qword [esp + 0x2670]
mov dl, al
mov eax, dword [esp + 0x267c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x57a0], eax
mov eax, dword [esp + 0x57a0]
mov dword [esp + 0x2664], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2658], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2658]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2660], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x265c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x265c]
mov dl, al
mov eax, dword [esp + 0x2660]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2664]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ec8c5
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x263c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x263c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2640], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2640]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x2644], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2644]
movsx ecx, cl
sub eax, ecx
add eax, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x2654], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2648], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2648]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2650], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x264c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x264c]
mov dl, al
mov eax, dword [esp + 0x2650]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x2654]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ec8c5
mov dword [esp + 0x4b50], 0x9238
jmp 0x5ec8ca
mov eax, dword [esp + 0x4ea4]
mov eax, dword [eax + 0xa0]
test eax, eax
movsd xmm0, qword [0x4802b0]
xorps xmm1, xmm1
movsd qword [esp + 0x2628], xmm1
movsd qword [esp + 0x2630], xmm0
jne 0x5ec90e
movsd xmm0, qword [esp + 0x2628]
movsd qword [esp + 0x2630], xmm0
movsd xmm0, qword [esp + 0x2630]
movsd qword [esp + 0x5780], xmm0
movsd xmm0, qword [esp + 0x5780]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5778], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x261c], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x261c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2624], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2620], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2620]
mov dl, al
mov eax, dword [esp + 0x2624]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ecb4f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2610], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2610]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2614], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2614]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2618], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2618]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ecb4a
mov dword [esp + 0x5774], 0
cmp dword [esp + 0x5774], 4
jae 0x5ecb45
movsd xmm0, qword [esp + 0x5778]
cvtsi2sd xmm1, dword [esp + 0x5774]
addsd xmm0, xmm1
movsd qword [esp + 0x2608], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2608]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ecab2
jp 0x5ecab2
movsd xmm0, qword [esp + 0x5778]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5778], xmm0
jmp 0x5ec94f
movsd xmm0, qword [esp + 0x5778]
cvtsi2sd xmm1, dword [esp + 0x5774]
addsd xmm0, xmm1
movsd qword [esp + 0x2600], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2600]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ecb40
jp 0x5ecb40
mov eax, dword [esp + 0x5774]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5778]
addsd xmm0, xmm1
movsd qword [esp + 0x5778], xmm0
movsd xmm0, qword [esp + 0x5778]
cvtsi2sd xmm1, dword [esp + 0x5774]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5788], eax
jmp 0x5ecc0a
jmp 0x5ecb54
jmp 0x5ec94f
jmp 0x5ecb54
jmp 0x5ecb54
movsd xmm0, qword [esp + 0x5778]
movsd qword [esp + 0x25f0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x25e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x25e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25fc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x25ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x25ec]
movsd xmm0, qword [esp + 0x25f0]
mov dl, al
mov eax, dword [esp + 0x25fc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5788], eax
mov eax, dword [esp + 0x5788]
mov dword [esp + 0x25e4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x25d8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x25d8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25e0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x25dc], eax
call fcn.005ceb20
mov edx, dword [esp + 0x25dc]
mov cl, al
mov eax, dword [esp + 0x25e0]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x25e4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ecdb8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x25bc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x25bc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25c0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x25c0]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x25c4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x25c4]
movsx ecx, cl
sub eax, ecx
shl eax, 3
mov dword [esp + 0x25d4], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x25c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x25c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x25cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x25cc]
mov dl, al
mov eax, dword [esp + 0x25d0]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x25d4]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ecdb8
mov eax, dword [esp + 0x4ea4]
mov ecx, dword [eax + 0xa0]
mov dword [esp + 0x6590], ecx
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x6594], eax
jmp 0x5ede04
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x25b0], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x25b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25b4], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x25b4]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x25b8], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x25b8]
movsx ecx, cl
sub eax, ecx
movd xmm0, eax
movlpd qword [esp + 0x47c8], xmm0
fild qword [esp + 0x47c8]
fstp qword [esp + 0x47c0]
movsd xmm0, qword [esp + 0x47c0]
movsd qword [esp + 0x5768], xmm0
movsd xmm0, qword [esp + 0x5768]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5760], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x25a4], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x25a4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x25ac], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x25a8], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x25a8]
mov dl, al
mov eax, dword [esp + 0x25ac]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed07a
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2598], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2598]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x259c], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x259c]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x25a0], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x25a0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed075
mov dword [esp + 0x575c], 0
cmp dword [esp + 0x575c], 4
jae 0x5ed070
movsd xmm0, qword [esp + 0x5760]
cvtsi2sd xmm1, dword [esp + 0x575c]
addsd xmm0, xmm1
movsd qword [esp + 0x2590], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2590]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ecfdd
jp 0x5ecfdd
movsd xmm0, qword [esp + 0x5760]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5760], xmm0
jmp 0x5ece7a
movsd xmm0, qword [esp + 0x5760]
cvtsi2sd xmm1, dword [esp + 0x575c]
addsd xmm0, xmm1
movsd qword [esp + 0x2588], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2588]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ed06b
jp 0x5ed06b
mov eax, dword [esp + 0x575c]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5760]
addsd xmm0, xmm1
movsd qword [esp + 0x5760], xmm0
movsd xmm0, qword [esp + 0x5760]
cvtsi2sd xmm1, dword [esp + 0x575c]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5770], eax
jmp 0x5ed135
jmp 0x5ed07f
jmp 0x5ece7a
jmp 0x5ed07f
jmp 0x5ed07f
movsd xmm0, qword [esp + 0x5760]
movsd qword [esp + 0x2578], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2570], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2570]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2584], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2574], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2574]
movsd xmm0, qword [esp + 0x2578]
mov dl, al
mov eax, dword [esp + 0x2584]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5770], eax
mov eax, dword [esp + 0x5770]
mov dword [esp + 0x256c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2560], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2560]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2568], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2564], eax
call fcn.005ceb20
mov edx, dword [esp + 0x2564]
mov cl, al
mov eax, dword [esp + 0x2568]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x256c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eddcd
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2544], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2544]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2548], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2548]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov dword [esp + 0x254c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x254c]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x255c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2550], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2550]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2558], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2554], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2554]
mov dl, al
mov eax, dword [esp + 0x2558]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x255c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eddcd
mov dword [esp + 0x5754], 0x40220000
mov dword [esp + 0x5750], 0
movsd xmm0, qword [esp + 0x5750]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5748], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2538], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2538]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2540], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x253c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x253c]
mov dl, al
mov eax, dword [esp + 0x2540]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed501
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x252c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x252c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2530], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2530]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2534], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2534]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed4fc
mov dword [esp + 0x5744], 0
cmp dword [esp + 0x5744], 4
jae 0x5ed4f7
movsd xmm0, qword [esp + 0x5748]
cvtsi2sd xmm1, dword [esp + 0x5744]
addsd xmm0, xmm1
movsd qword [esp + 0x2520], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2520]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ed464
jp 0x5ed464
movsd xmm0, qword [esp + 0x5748]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5748], xmm0
jmp 0x5ed301
movsd xmm0, qword [esp + 0x5748]
cvtsi2sd xmm1, dword [esp + 0x5744]
addsd xmm0, xmm1
movsd qword [esp + 0x2518], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2518]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ed4f2
jp 0x5ed4f2
mov eax, dword [esp + 0x5744]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5748]
addsd xmm0, xmm1
movsd qword [esp + 0x5748], xmm0
movsd xmm0, qword [esp + 0x5748]
cvtsi2sd xmm1, dword [esp + 0x5744]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5758], eax
jmp 0x5ed5bc
jmp 0x5ed506
jmp 0x5ed301
jmp 0x5ed506
jmp 0x5ed506
movsd xmm0, qword [esp + 0x5748]
movsd qword [esp + 0x2508], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2500], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2500]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2514], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2504], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2504]
movsd xmm0, qword [esp + 0x2508]
mov dl, al
mov eax, dword [esp + 0x2514]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5758], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x24f4], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x24f4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x24fc], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x24f8], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x24f8]
mov dl, al
mov eax, dword [esp + 0x24fc]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm0, eax
movlpd qword [esp + 0x47b8], xmm0
fild qword [esp + 0x47b8]
fstp qword [esp + 0x47b0]
movsd xmm0, qword [esp + 0x47b0]
movsd qword [esp + 0x5738], xmm0
movsd xmm0, qword [esp + 0x5738]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5730], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x24e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x24e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x24f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x24ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x24ec]
mov dl, al
mov eax, dword [esp + 0x24f0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed888
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x24dc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x24dc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x24e0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x24e0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x24e4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x24e4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ed883
mov dword [esp + 0x572c], 0
cmp dword [esp + 0x572c], 4
jae 0x5ed87e
movsd xmm0, qword [esp + 0x5730]
cvtsi2sd xmm1, dword [esp + 0x572c]
addsd xmm0, xmm1
movsd qword [esp + 0x24d0], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x24d0]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ed7eb
jp 0x5ed7eb
movsd xmm0, qword [esp + 0x5730]
cvtsi2sd xmm1, dword [esp + 0x572c]
addsd xmm0, xmm1
movsd qword [esp + 0x24c8], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x24c8]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ed879
jmp 0x5ed688
jmp 0x5ed88d
jmp 0x5ed88d
movsd xmm0, qword [esp + 0x5730]
movsd qword [esp + 0x24b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x24b0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x24b0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x24c4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x24b4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x24b4]
movsd xmm0, qword [esp + 0x24b8]
mov dl, al
mov eax, dword [esp + 0x24c4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5740], eax
mov eax, dword [esp + 0x5740]
mov dword [esp + 0x24ac], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x24a0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x24a0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x24a8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x24a4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x24a4]
mov dl, al
mov eax, dword [esp + 0x24a8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x24ac]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eddc8
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2484], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2484]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2488], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2488]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x248c], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x248c]
movsx ecx, cl
sub eax, ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x249c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2490], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2490]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2498], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2494], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2494]
mov dl, al
mov eax, dword [esp + 0x2498]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x249c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eddc8
mov dword [esp + 0x5724], 0x40100000
mov dword [esp + 0x5720], 0
movsd xmm0, qword [esp + 0x5720]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5718], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2478], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2478]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2480], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x247c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x247c]
mov dl, al
mov eax, dword [esp + 0x2480]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5edd0d
jmp 0x5eddff
mov dword [esp + 0x6588], 0
mov dword [esp + 0x658c], 0
mov eax, dword [esp + 0x6588]
mov dword [esp + 0x6590], eax
mov eax, dword [esp + 0x658c]
mov dword [esp + 0x6594], eax
jmp 0x5ede04
mov dword [esp + 0x4b4c], 0x9cc4
mov dword [esp + 0x4b48], 0xa31a
mov dword [esp + 0x4b44], 0x3ff2
mov eax, dword [esp + 0x4b48]
mov dword [esp + 0x4b4c], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x5708], xmm0
movsd xmm0, qword [esp + 0x5708]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x5700], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2434], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2434]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x243c], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2438], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2438]
mov dl, al
mov eax, dword [esp + 0x243c]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee06f
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x2428], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x2428]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x242c], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x242c]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2430], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2430]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee06a
mov dword [esp + 0x56fc], 0
cmp dword [esp + 0x56fc], 4
jae 0x5ee065
movsd xmm0, qword [esp + 0x5700]
cvtsi2sd xmm1, dword [esp + 0x56fc]
addsd xmm0, xmm1
movsd qword [esp + 0x2420], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2420]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5edfd2
jp 0x5edfd2
movsd xmm0, qword [esp + 0x5700]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [esp + 0x5700], xmm0
jmp 0x5ede6f
movsd xmm0, qword [esp + 0x5700]
cvtsi2sd xmm1, dword [esp + 0x56fc]
addsd xmm0, xmm1
movsd qword [esp + 0x2418], xmm0
call fcn.005ceb30
movsd xmm0, qword [esp + 0x2418]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ee060
jp 0x5ee060
mov eax, dword [esp + 0x56fc]
and eax, 1
cvtsi2sd xmm1, eax
movsd xmm0, qword [esp + 0x5700]
addsd xmm0, xmm1
movsd qword [esp + 0x5700], xmm0
movsd xmm0, qword [esp + 0x5700]
cvtsi2sd xmm1, dword [esp + 0x56fc]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5710], eax
jmp 0x5ee12a
jmp 0x5ee074
jmp 0x5ede6f
jmp 0x5ee074
jmp 0x5ee074
movsd xmm0, qword [esp + 0x5700]
movsd qword [esp + 0x2408], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2400], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2400]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2414], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2404], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2404]
movsd xmm0, qword [esp + 0x2408]
mov dl, al
mov eax, dword [esp + 0x2414]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x5710], eax
mov eax, dword [esp + 0x5710]
mov dword [esp + 0x23fc], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x23f0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x23f0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23f8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x23f4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x23f4]
mov dl, al
mov eax, dword [esp + 0x23f8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x23fc]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ee778
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x23d4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x23d4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23d8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x23d8]
movsx ecx, cl
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*8]
add eax, ecx
mov dword [esp + 0x23dc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x23dc]
movsx ecx, cl
sub eax, ecx
shl eax, 2
mov dword [esp + 0x23ec], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x23e0], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x23e0]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23e8], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x23e4], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x23e4]
mov dl, al
mov eax, dword [esp + 0x23e8]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x23ec]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5ee778
mov dword [esp + 0x4b44], 0x6e4b
mov dword [esp + 0x4b40], 0x704c
mov dword [esp + 0x4b3c], 0x2c22
mov dword [esp + 0x4b38], 0x5dd1
mov eax, dword [esp + 0x4b3c]
mov dword [esp + 0x4b40], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x56f0], xmm0
movsd xmm0, qword [esp + 0x56f0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x56e8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x23c8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x23c8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23d0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x23cc], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x23cc]
mov dl, al
mov eax, dword [esp + 0x23d0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee527
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x23bc], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x23bc]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23c0], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x23c0]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x23c4], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x23c4]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee522
mov dword [esp + 0x56e4], 0
cmp dword [esp + 0x56e4], 4
jae 0x5ee51d
jmp 0x5ee52c
jmp 0x5ee52c
movsd xmm0, qword [esp + 0x56e8]
movsd qword [esp + 0x2398], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2390], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2390]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x23a4], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2394], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2394]
movsd xmm0, qword [esp + 0x2398]
mov dl, al
mov eax, dword [esp + 0x23a4]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x56f8], eax
mov eax, dword [esp + 0x56f8]
mov dword [esp + 0x238c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2380], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2380]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2388], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2384], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2384]
mov dl, al
mov eax, dword [esp + 0x2388]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x238c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5ee773
mov dword [esp + 0x4b34], 0
mov dword [esp + 0x4b30], 0x8c19
mov dword [esp + 0x4b2c], 0x59fd
mov dword [esp + 0x4b28], 0x604a
mov eax, dword [esp + 0x4b2c]
mov dword [esp + 0x4b30], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x56d8], xmm0
movsd xmm0, qword [esp + 0x56d8]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x56d0], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2358], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2358]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2360], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x235c], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x235c]
mov dl, al
mov eax, dword [esp + 0x2360]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee9ee
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x234c], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x234c]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2350], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x2350]
movsx ecx, cl
lea ecx, [ecx + ecx*4]
mov dl, byte [0x5c6710]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov dword [esp + 0x2354], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x2354]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5ee9e9
mov dword [esp + 0x56cc], 0
cmp dword [esp + 0x56cc], 4
jae 0x5ee9e4
movsd xmm0, qword [esp + 0x56d0]
cvtsi2sd xmm1, dword [esp + 0x56cc]
addsd xmm0, xmm1
movsd qword [esp + 0x2340], xmm0
call fcn.005ceb20
movsd xmm0, qword [esp + 0x2340]
movsx eax, al
cvtsi2sd xmm1, eax
ucomisd xmm0, xmm1
jne 0x5ee951
jmp 0x5ee7ee
jmp 0x5ee9f3
jmp 0x5ee9f3
movsd xmm0, qword [esp + 0x56d0]
movsd qword [esp + 0x2328], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2320], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2320]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2334], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2324], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2324]
movsd xmm0, qword [esp + 0x2328]
mov dl, al
mov eax, dword [esp + 0x2334]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
movd xmm1, eax
movups xmm2, xmmword [0x4802c0]
por xmm1, xmm2
movsd xmm2, qword [0x4802d0]
subsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp + 0x56e0], eax
mov eax, dword [esp + 0x56e0]
mov dword [esp + 0x231c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2310], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2310]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2318], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2314], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2314]
mov dl, al
mov eax, dword [esp + 0x2318]
movsx edx, dl
imul ecx, edx
add eax, ecx
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x231c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
imul eax, ecx
cmp eax, 0
je 0x5eec38
mov al, byte [0x5c4ae2]
movsx eax, al
mov dword [esp + 0x22f4], eax
call fcn.005ceb80
mov cl, al
mov eax, dword [esp + 0x22f4]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x22f8], eax
call fcn.005ceb50
mov cl, al
mov eax, dword [esp + 0x22f8]
movsx edx, cl
mov cl, byte [0x5c6710]
movsx ecx, cl
imul edx, ecx
mov ecx, edx
shl ecx, 3
sub ecx, edx
add eax, ecx
mov dword [esp + 0x22fc], eax
call fcn.005cebb0
mov cl, al
mov eax, dword [esp + 0x22fc]
movsx ecx, cl
sub eax, ecx
add eax, eax
mov dword [esp + 0x230c], eax
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x2300], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x2300]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x2308], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x2304], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x2304]
mov dl, al
mov eax, dword [esp + 0x2308]
movsx edx, dl
imul ecx, edx
lea eax, [eax + ecx*8]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [esp + 0x230c]
mov dl, byte [0x5c4ae0]
movsx edx, dl
sub ecx, edx
add eax, ecx
cmp eax, 0
je 0x5eec38
mov byte [esp + 0x4b27], 0
mov dword [esp + 0x4b20], 0x31a8
mov dword [esp + 0x4b1c], 0x7f5c
mov dword [esp + 0x4b18], 0x5114
mov eax, dword [esp + 0x4b1c]
mov dword [esp + 0x4b20], eax
cvtsi2sd xmm0, eax
movsd qword [esp + 0x56c0], xmm0
movsd xmm0, qword [esp + 0x56c0]
mov al, byte [0x5c4ae6]
movsx eax, al
mov cl, byte [0x5c4ae2]
movsx ecx, cl
shl ecx, 1
sub eax, ecx
cvtsi2sd xmm1, eax
mulsd xmm0, xmm1
movsd qword [esp + 0x56b8], xmm0
mov al, byte [0x5c4ae8]
movsx eax, al
mov dword [esp + 0x22e8], eax
call fcn.005ceb90
mov cl, al
mov eax, dword [esp + 0x22e8]
movsx ecx, cl
add eax, ecx
mov dword [esp + 0x22f0], eax
call fcn.005ceb40
movsx eax, al
mov dword [esp + 0x22ec], eax
call fcn.005ceb20
mov ecx, dword [esp + 0x22ec]
mov dl, al
mov eax, dword [esp + 0x22f0]
movsx edx, dl
imul ecx, edx
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
mov cl, byte [0x5c4ae7]
movsx ecx, cl
xor edx, edx
div ecx
mov cl, byte [0x5c4ae0]
movsx ecx, cl
sub eax, ecx
cmp eax, 0
je 0x5eeeab
mov al, byte [esp + 0x4ed3]
and al, 1
movzx eax, al
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x6ce8]
xor ecx, ebp
call fcn.004010cb
mov eax, dword [esp + 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret