Function at 0x5a9bc0
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 0x5ab43b
mov eax, dword [0x68d55c]
xor ebx, ebx
mov dword [ebp - 0x2b], eax
mov ax, word [0x68d560]
mov word [ebp - 0x27], ax
mov al, byte [0x68d562]
mov byte [ebp - 0x25], al
nop
mov eax, 0x8d3dcb09
mov cl, bl
mul ebx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x32
xor byte [ebp + ebx - 0x2b], cl
inc ebx
cmp ebx, 7
jl 0x5a9c00
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 0x5a9c51
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0xd70], eax
mov dword [ebx], 0xffffff92
jmp 0x5a9c54
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5aa71d
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5a9e2c
xor eax, eax
je 0x5a9c9b
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5a9dc3
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5a9dc3
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa75d
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5a9d02
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aa547
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa03d
xor eax, eax
je 0x5a9eac
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5a9fd4
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5a9fd4
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa7aa
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5a9f13
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa20b
xor eax, eax
je 0x5aa07a
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aa1a2
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa1a2
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa7f7
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aa0e1
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5aa210
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c290]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aa338
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa338
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa844
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aa277
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aa3a4
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c290]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aa4d1
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa4d1
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa893
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aa410
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa71a
xor eax, eax
je 0x5aa584
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aa6b1
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aa6b1
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aa8e0
movsd qword [ebp - 0x20], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aa5f0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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 0x5aa92d
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x1088], eax
mov dword [ebx], 0xffffff96
jmp 0x5aa930
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa7a0
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 0x5a9e23
mov eax, 8
jmp 0x5a9e27
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa7ed
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 0x5aa034
mov ecx, 8
jmp 0x5aa038
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa83a
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 0x5aa202
mov ecx, 8
jmp 0x5aa206
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa887
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 0x5aa398
mov dword [ebp - 0xc], 8
jmp 0x5aa39f
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa8d6
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 0x5aa531
mov edx, 8
jmp 0x5aa535
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa923
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 0x5aa711
mov eax, 8
jmp 0x5aa715
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ab3fd
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aab0a
xor eax, eax
je 0x5aa977
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aaaa1
nop
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aaaa1
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab444
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aa9e0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab227
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aad1b
xor eax, eax
je 0x5aab8a
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aacb2
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aacb2
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab491
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aabf1
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aaeea
xor eax, eax
je 0x5aad58
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aae81
nop
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aae81
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab4de
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aadc0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5aaeef
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c290]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab017
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab017
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab52b
movsd qword [ebp - 0x10], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5aaf56
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ab083
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c290]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab1b1
nop word [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab1b1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab57a
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ab0f0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab3fa
xor eax, eax
je 0x5ab264
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab391
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab391
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ab5c7
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ab2d0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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 + 0x778860]
call eax
add esp, 8
cmp eax, esi
je 0x5ab614
mov eax, dword [ebp - 0x24]
inc edi
mov dword [ebp - 8], edi
movzx eax, word [eax + 6]
cmp edi, eax
jl 0x5a9be2
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab487
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 0x5aab01
mov eax, 8
jmp 0x5aab05
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab4d4
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 0x5aad12
mov ecx, 8
jmp 0x5aad16
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab521
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 0x5aaee1
mov ecx, 8
jmp 0x5aaee5
movsd qword [ebp - 0x38], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab56e
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 0x5ab077
mov dword [ebp - 0xc], 8
jmp 0x5ab07e
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab5bd
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 0x5ab211
mov edx, 8
jmp 0x5ab215
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab60a
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 0x5ab3f1
mov eax, 8
jmp 0x5ab3f5
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 0x5ab644
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x800], eax
mov dword [ebx], 0xffff84ed
jmp 0x5ab647
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ac10a
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab81f
xor eax, eax
je 0x5ab68e
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab7b6
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab7b6
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac145
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ab6f5
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5abf3b
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aba30
xor eax, eax
je 0x5ab89f
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ab9c7
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ab9c7
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac192
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ab906
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5abbfe
xor eax, eax
je 0x5aba6d
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5abb95
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5abb95
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac1df
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5abad4
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5abc03
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5abd31
nop word [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5abd31
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac22c
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5abc70
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5abd9d
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5abec5
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5abec5
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac27b
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5abe04
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac10a
xor eax, eax
je 0x5abf78
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c268]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ac0a1
nop
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac0a1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ac2c8
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5abfe0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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 0x5ac315
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x97c], eax
mov dword [ebx], 0xffffcd9c
jmp 0x5ac318
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac188
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 0x5ab816
mov eax, 8
jmp 0x5ab81a
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac1d5
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 0x5aba27
mov ecx, 8
jmp 0x5aba2b
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac222
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 0x5abbf5
mov ecx, 8
jmp 0x5abbf9
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac26f
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 0x5abd91
mov dword [ebp - 0xc], 8
jmp 0x5abd98
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac2be
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 0x5abf25
mov edx, 8
jmp 0x5abf29
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac30b
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 0x5ac101
mov eax, 8
jmp 0x5ac105
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5acdda
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac4f0
xor eax, eax
je 0x5ac35f
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ac487
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac487
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ace1a
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ac3c6
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5acc09
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac701
xor eax, eax
je 0x5ac570
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ac698
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac698
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ace67
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ac5d7
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac8cf
xor eax, eax
je 0x5ac73e
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ac866
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ac866
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5aceb4
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ac7a5
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ac8d4
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5aca01
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5aca01
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5acf01
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ac940
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aca6d
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c288]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5acb95
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5acb95
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5acf50
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5acad4
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5acdda
xor eax, eax
je 0x5acc46
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c268]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5acd71
nop dword [eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5acd71
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5acf9d
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5accb0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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 0x5acfea
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x294], eax
mov dword [ebx], 0xffffbdc4
jmp 0x5acfed
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ace5d
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 0x5ac4e7
mov eax, 8
jmp 0x5ac4eb
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aceaa
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 0x5ac6f8
mov ecx, 8
jmp 0x5ac6fc
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acef7
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 0x5ac8c6
mov ecx, 8
jmp 0x5ac8ca
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acf44
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 0x5aca61
mov dword [ebp - 0xc], 8
jmp 0x5aca68
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acf93
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 0x5acbf5
mov ecx, 8
jmp 0x5acbf9
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acfe0
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 0x5acdd1
mov eax, 8
jmp 0x5acdd5
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5adab1
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad1ca
xor eax, eax
je 0x5ad034
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad161
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad161
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adaf6
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad0a0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad8e3
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad3db
xor eax, eax
je 0x5ad24a
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad372
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad372
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adb43
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad2b1
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad5aa
xor eax, eax
je 0x5ad418
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c268]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad541
nop
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad541
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adb90
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad480
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ad5af
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad6d7
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad6d7
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adbdd
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad616
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ad743
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ad871
nop word [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ad871
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adc2c
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad7b0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5adab1
xor eax, eax
je 0x5ad920
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c260]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ada48
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ada48
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5adc79
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ad987
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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 0x5ae78e
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 0x5adcc6
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x79c], eax
mov dword [ebx], 0xffff7794
jmp 0x5adcc9
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adb39
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
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adb86
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 0x5ad3d2
mov ecx, 8
jmp 0x5ad3d6
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adbd3
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 0x5ad5a1
mov ecx, 8
jmp 0x5ad5a5
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adc20
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 0x5ad737
mov dword [ebp - 0xc], 8
jmp 0x5ad73e
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adc6f
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 0x5ad8d1
mov ecx, 8
jmp 0x5ad8d5
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5adcbc
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 0x5adaa8
mov eax, 8
jmp 0x5adaac
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ae78a
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5adea1
xor eax, eax
je 0x5add10
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c278]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ade38
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ade38
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae797
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5add77
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae5b7
call fcn.005e4880
movsx esi, byte [0x779b1c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae0b2
xor eax, eax
je 0x5adf21
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c270]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae049
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae049
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae7e4
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5adf88
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae280
xor eax, eax
je 0x5ae0ef
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c268]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae217
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae217
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae831
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ae156
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ae285
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae3b1
nop dword [eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae3b1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae87e
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ae2f0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ae41d
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c280]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae545
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae545
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae8cd
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ae484
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae78a
xor eax, eax
je 0x5ae5f4
add byte [edi], cl
mov esi, 0x764a900d
add byte [edi], cl
mov esi, 0x764a9205
add byte [ebx], al
leave
movsx ecx, byte [0x764a90]
movsx eax, byte [0x764a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72c260]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
je 0x5ae721
nop dword [eax + eax]
call fcn.005e4880
movsx ecx, byte [0x779b1c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e4850
movsx eax, al
sub esi, eax
call fcn.005e4870
movsx ecx, al
movsx eax, byte [0x764a90]
add ecx, esi
add eax, ecx
je 0x5ae721
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72bda8]
movsd qword [ebp - 0x40], xmm0
call fcn.005e48b0
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 [0x72bda8]
lahf
test ah, 0x44
jp 0x5ae91a
movsd qword [ebp - 0x38], xmm0
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx edi, al
imul edi, esi
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
sub eax, ecx
jne 0x5ae660
call fcn.005e4890
movsx esi, al
call fcn.005e48b0
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4860
movsx ecx, al
xor edx, edx
movsx eax, byte [0x764a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x764a94]
div ecx
movsx ecx, byte [0x764a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72c330]
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.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae7da
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
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae827
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 0x5ae0a9
mov ecx, 8
jmp 0x5ae0ad
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae874
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 0x5ae277
mov ecx, 8
jmp 0x5ae27b
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae8c1
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 0x5ae411
mov dword [ebp - 0xc], 8
jmp 0x5ae418
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae910
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 0x5ae5a5
mov ecx, 8
jmp 0x5ae5a9
movsd qword [ebp - 0x40], xmm0
call fcn.005e48a0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae95d
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 0x5ae781
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