Function at 0x5a9fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
mov eax, ecx
mov dword [ebp - 0x14], edx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x24], eax
xor ecx, ecx
mov dword [ebp - 8], edi
cmp cx, word [eax + 6]
jae 0x5ab82b
mov eax, dword [0x5f0038]
xor ebx, ebx
mov dword [ebp - 0x2b], eax
mov ax, word [0x5f003c]
mov word [ebp - 0x27], ax
mov al, byte [0x5f003e]
mov byte [ebp - 0x25], al
nop
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x38
xor byte [ebp + ebx - 0x2b], cl
inc ebx
cmp ebx, 7
jl 0x5a9fe0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0xd70]
lea ebx, [ecx + 0x11f4]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aa039
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0xd70], eax
mov dword [ebx], 0xffffff92
jmp 0x5aa03c
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5aab0d
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa21a
xor eax, eax
je 0x5aa083
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa1b1
nop word [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa1b1
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aab4d
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa0f0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa937
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa42b
xor eax, eax
je 0x5aa29a
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa3c2
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa3c2
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aab9a
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa301
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa5fa
xor eax, eax
je 0x5aa468
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa591
nop
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa591
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aabe7
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa4d0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5aa5ff
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f30]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa727
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa727
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aac34
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa666
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aa793
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f30]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aa8c1
nop word [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aa8c1
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aac83
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa800
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si edx, xmm0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
add ecx, dword [ebp - 0xc]
mov dword [ebx], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aab0a
xor eax, eax
je 0x5aa974
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aaaa1
nop dword [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aaaa1
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aacd0
movsd qword [ebp - 0x20], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aa9e0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
mov edi, dword [ebp - 8]
mov byte [ebx + 4], 1
mov eax, dword [ebx]
mov dword [ebp - 0x1c], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1088]
lea ebx, [ecx + 0xed0]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aad1d
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x1088], eax
mov dword [ebx], 0xffffff96
jmp 0x5aad20
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aab90
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aa211
mov eax, 8
jmp 0x5aa215
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aabdd
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aa422
mov ecx, 8
jmp 0x5aa426
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aac2a
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aa5f1
mov ecx, 8
jmp 0x5aa5f5
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aac77
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aa787
mov dword [ebp - 0xc], 8
jmp 0x5aa78e
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aacc6
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aa921
mov edx, 8
jmp 0x5aa925
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aad13
movsd xmm0, qword [ebp - 0x20]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x20], xmm0
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, xmm1
jmp 0x5aab01
mov eax, 8
jmp 0x5aab05
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ab7ed
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aaefa
xor eax, eax
je 0x5aad67
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aae91
nop
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aae91
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab834
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aadd0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab617
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab10b
xor eax, eax
je 0x5aaf7a
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab0a2
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab0a2
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab881
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aafe1
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab2da
xor eax, eax
je 0x5ab148
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab271
nop
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab271
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab8ce
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ab1b0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ab2df
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f30]
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab407
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab407
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x38], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab91b
movsd qword [ebp - 0x10], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ab346
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ab473
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f30]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab5a1
nop word [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab5a1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab96a
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ab4e0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si edx, xmm0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
add ecx, dword [ebp - 0xc]
mov dword [ebx], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab7ea
xor eax, eax
je 0x5ab654
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ab781
nop dword [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ab781
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ab9b7
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ab6c0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
mov edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x2b]
push eax
lea eax, [edi + edi*4]
mov byte [ebx + 4], 1
mov esi, dword [ebx]
lea eax, [ecx + eax*8]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax*4 + 0x784ff0]
call eax
add esp, 8
cmp eax, esi
je 0x5aba04
mov eax, dword [ebp - 0x24]
inc edi
mov dword [ebp - 8], edi
movzx eax, word [eax + 6]
cmp edi, eax
jl 0x5a9fc2
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab877
movsd xmm0, qword [ebp - 0x10]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, xmm1
jmp 0x5aaef1
mov eax, 8
jmp 0x5aaef5
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab8c4
movsd xmm0, qword [ebp - 0x10]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, xmm1
jmp 0x5ab102
mov ecx, 8
jmp 0x5ab106
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab911
movsd xmm0, qword [ebp - 0x10]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, xmm1
jmp 0x5ab2d1
mov ecx, 8
jmp 0x5ab2d5
movsd qword [ebp - 0x38], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab95e
movsd xmm0, qword [ebp - 0x10]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x10], xmm0
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, xmm1
jmp 0x5ab467
mov dword [ebp - 0xc], 8
jmp 0x5ab46e
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab9ad
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ab601
mov edx, 8
jmp 0x5ab605
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab9fa
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ab7e1
mov eax, 8
jmp 0x5ab7e5
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x800]
lea ebx, [ecx + 0xa3c]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aba34
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x800], eax
mov dword [ebx], 0xffffbce9
jmp 0x5aba37
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ac4fa
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abc0f
xor eax, eax
je 0x5aba7e
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5abba6
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abba6
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac535
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5abae5
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ac32b
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abe20
xor eax, eax
je 0x5abc8f
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5abdb7
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abdb7
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac582
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5abcf6
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abfee
xor eax, eax
je 0x5abe5d
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5abf85
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5abf85
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac5cf
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5abec4
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5abff3
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ac121
nop word [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac121
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac61c
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ac060
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ac18d
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ac2b5
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac2b5
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac66b
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ac1f4
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si edx, xmm0
mov ebx, dword [ebp - 4]
mov ecx, dword [ebx]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
add ecx, dword [ebp - 0xc]
mov dword [ebx], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac4fa
xor eax, eax
je 0x5ac368
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f08]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ac491
nop
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac491
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ac6b8
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ac3d0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
mov eax, dword fs:[0x2c]
mov byte [ebx + 4], 1
mov ecx, dword [eax]
mov eax, dword [ecx + 0x97c]
lea ebx, [ecx + 0x944]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5ac705
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x97c], eax
mov dword [ebx], 0xffff8a3f
jmp 0x5ac708
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac578
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5abc06
mov eax, 8
jmp 0x5abc0a
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac5c5
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5abe17
mov ecx, 8
jmp 0x5abe1b
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac612
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5abfe5
mov ecx, 8
jmp 0x5abfe9
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac65f
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ac181
mov dword [ebp - 0xc], 8
jmp 0x5ac188
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac6ae
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ac315
mov edx, 8
jmp 0x5ac319
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac6fb
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ac4f1
mov eax, 8
jmp 0x5ac4f5
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ad1ca
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac8e0
xor eax, eax
je 0x5ac74f
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ac877
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ac877
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad20a
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ac7b6
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5acff9
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5acaf1
xor eax, eax
je 0x5ac960
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aca88
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aca88
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad257
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ac9c7
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5accbf
xor eax, eax
je 0x5acb2e
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5acc56
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5acc56
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad2a4
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5acb95
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5accc4
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5acdf1
nop dword [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5acdf1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad2f1
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5acd30
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ace5d
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f28]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5acf85
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5acf85
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad340
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5acec4
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov ebx, dword [ebp - 4]
mov eax, dword [ebx]
and ecx, eax
add ecx, ecx
sub eax, ecx
add eax, dword [ebp - 0xc]
mov dword [ebx], eax
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad1ca
xor eax, eax
je 0x5ad036
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f08]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ad161
nop dword [eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad161
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ad38d
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ad0a0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
mov byte [ebx + 4], 1
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x294]
lea ebx, [ecx + 0xd8c]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5ad3da
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x294], eax
mov dword [ebx], 0xffff8e81
jmp 0x5ad3dd
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad24d
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ac8d7
mov eax, 8
jmp 0x5ac8db
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad29a
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5acae8
mov ecx, 8
jmp 0x5acaec
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad2e7
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5accb6
mov ecx, 8
jmp 0x5accba
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad334
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ace51
mov dword [ebp - 0xc], 8
jmp 0x5ace58
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad383
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5acfe5
mov ecx, 8
jmp 0x5acfe9
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad3d0
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ad1c1
mov eax, 8
jmp 0x5ad1c5
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5adea1
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad5ba
xor eax, eax
je 0x5ad424
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ad551
nop dword [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad551
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5adee6
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ad490
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5adcd3
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad7cb
xor eax, eax
je 0x5ad63a
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ad762
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad762
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5adf33
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ad6a1
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad99a
xor eax, eax
je 0x5ad808
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f08]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ad931
nop
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ad931
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5adf80
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ad870
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ad99f
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5adac7
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5adac7
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5adfcd
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ada06
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5adb33
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5adc61
nop word [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5adc61
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ae01c
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5adba0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
and ecx, dword [ebx]
add ecx, ecx
sub edx, ecx
add dword [ebx], edx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5adea1
xor eax, eax
je 0x5add10
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f00]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ade38
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ade38
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5ae069
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5add77
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
cmp dword [ebp - 0x24], 0
mov byte [ebx + 4], 1
je 0x5aeb7e
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x79c]
lea ebx, [ecx + 0x49c]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5ae0b6
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x79c], eax
mov dword [ebx], 0xffff96f6
jmp 0x5ae0b9
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adf29
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ad5b1
mov eax, 8
jmp 0x5ad5b5
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adf76
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ad7c2
mov ecx, 8
jmp 0x5ad7c6
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adfc3
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ad991
mov ecx, 8
jmp 0x5ad995
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae010
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5adb27
mov dword [ebp - 0xc], 8
jmp 0x5adb2e
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae05f
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5adcc1
mov ecx, 8
jmp 0x5adcc5
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae0ac
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ade98
mov eax, 8
jmp 0x5ade9c
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5aeb7a
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae291
xor eax, eax
je 0x5ae100
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f18]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae228
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae228
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aeb87
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ae167
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae9a7
call fcn.005e7fe0
movsx esi, byte [0x7862ac]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae4a2
xor eax, eax
je 0x5ae311
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f10]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae439
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae439
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aebd4
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ae378
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae670
xor eax, eax
je 0x5ae4df
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f08]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae607
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae607
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aec21
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ae546
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ae675
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae7a1
nop dword [eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae7a1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aec6e
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ae6e0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ae80d
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f20]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5ae935
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5ae935
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aecbd
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5ae874
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
and ecx, dword [ebx]
add ecx, ecx
sub edx, ecx
add dword [ebx], edx
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aeb7a
xor eax, eax
je 0x5ae9e4
add byte [edi], cl
mov esi, 0x770a930d
add byte [edi], cl
mov esi, 0x770a9005
add byte [ebx], al
leave
movsx ecx, byte [0x770a93]
movsx eax, byte [0x770a90]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x736f00]
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
je 0x5aeb11
nop dword [eax + eax]
call fcn.005e7fe0
movsx ecx, byte [0x7862ac]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e7fb0
movsx eax, al
sub esi, eax
call fcn.005e7fd0
movsx ecx, al
movsx eax, byte [0x770a93]
add ecx, esi
add eax, ecx
je 0x5aeb11
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
movsd qword [ebp - 0x40], xmm0
call fcn.005e8010
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x736a48]
lahf
test ah, 0x44
jp 0x5aed0a
movsd qword [ebp - 0x38], xmm0
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx edi, al
imul edi, esi
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
sub eax, ecx
jne 0x5aea50
call fcn.005e7ff0
movsx esi, al
call fcn.005e8010
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e7fc0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x770a91]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x770a92]
div ecx
movsx ecx, byte [0x770a98]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x736fd0]
mulsd xmm0, xmm1
mov ebx, dword [ebp - 4]
cvttsd2si eax, xmm0
xor dword [ebx], eax
mov byte [ebx + 4], 1
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aebca
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ae288
mov eax, 8
jmp 0x5ae28c
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aec17
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ae499
mov ecx, 8
jmp 0x5ae49d
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aec64
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ae667
mov ecx, 8
jmp 0x5ae66b
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aecb1
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ae801
mov dword [ebp - 0xc], 8
jmp 0x5ae808
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aed00
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5ae995
mov ecx, 8
jmp 0x5ae999
movsd qword [ebp - 0x40], xmm0
call fcn.005e8000
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aed4d
movsd xmm0, qword [ebp - 0x38]
xorps xmm1, xmm1
addsd xmm0, xmm1
movsd qword [ebp - 0x38], xmm0
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, xmm1
jmp 0x5aeb71
mov ebx, dword [ebp - 4]
mov eax, 8
pop edi
pop esi
xor dword [ebx], eax
mov al, 1
mov byte [ebx + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret