Function at 0x5a9940
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 0x5ab1cb
mov eax, dword [0x678468]
xor ebx, ebx
mov dword [ebp - 0x2b], eax
mov ax, word [0x67846c]
mov word [ebp - 0x27], ax
mov al, byte [0x67846e]
mov byte [ebp - 0x25], al
nop
mov eax, 0x24924925
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
mov cl, al
shl cl, 3
sub cl, al
mov al, bl
shl cl, 3
sub al, cl
add al, 0x38
xor byte [ebp + ebx - 0x2b], al
inc ebx
cmp ebx, 7
jl 0x5a9980
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 0x5a99dc
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0xd70], eax
mov dword [ebx], 0xffffff92
jmp 0x5a99df
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5aa4ad
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9bba
xor eax, eax
je 0x5a9a26
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5a9b51
nop dword [eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9b51
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa4ed
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5a9a90
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aa2d7
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9dcb
xor eax, eax
je 0x5a9c3a
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5a9d62
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9d62
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa53a
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5a9ca1
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9f9a
xor eax, eax
je 0x5a9e08
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5a9f31
nop
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5a9f31
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa587
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5a9e70
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5a9f9f
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd8]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aa0c7
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa0c7
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa5d4
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aa006
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aa133
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd8]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aa261
nop word [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa261
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa623
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aa1a0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa4aa
xor eax, eax
je 0x5aa314
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aa441
nop dword [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa441
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5aa670
movsd qword [ebp - 0x20], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aa380
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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 0x5aa6bd
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x1088], eax
mov dword [ebx], 0xffffff96
jmp 0x5aa6c0
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa530
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 0x5a9bb1
mov eax, 8
jmp 0x5a9bb5
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa57d
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 0x5a9dc2
mov ecx, 8
jmp 0x5a9dc6
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa5ca
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 0x5a9f91
mov ecx, 8
jmp 0x5a9f95
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa617
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 0x5aa127
mov dword [ebp - 0xc], 8
jmp 0x5aa12e
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa666
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 0x5aa2c1
mov edx, 8
jmp 0x5aa2c5
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa6b3
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 0x5aa4a1
mov eax, 8
jmp 0x5aa4a5
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ab18d
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa89a
xor eax, eax
je 0x5aa707
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aa831
nop
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aa831
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab1d4
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aa770
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aafb7
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aaaab
xor eax, eax
je 0x5aa91a
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aaa42
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aaa42
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab221
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aa981
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aac7a
xor eax, eax
je 0x5aaae8
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aac11
nop
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aac11
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab26e
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aab50
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5aac7f
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd8]
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aada7
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aada7
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab2bb
movsd qword [ebp - 0x10], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aace6
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aae13
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5aaf41
nop word [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5aaf41
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab30a
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aae80
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab18a
xor eax, eax
je 0x5aaff4
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ab121
nop dword [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab121
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ab357
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ab060
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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 + 0x7778d0]
call eax
add esp, 8
cmp eax, esi
je 0x5ab3a4
mov eax, dword [ebp - 0x24]
inc edi
mov dword [ebp - 8], edi
movzx eax, word [eax + 6]
cmp edi, eax
jl 0x5a9962
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab217
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 0x5aa891
mov eax, 8
jmp 0x5aa895
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab264
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 0x5aaaa2
mov ecx, 8
jmp 0x5aaaa6
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab2b1
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 0x5aac71
mov ecx, 8
jmp 0x5aac75
movsd qword [ebp - 0x38], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab2fe
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 0x5aae07
mov dword [ebp - 0xc], 8
jmp 0x5aae0e
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab34d
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 0x5aafa1
mov edx, 8
jmp 0x5aafa5
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab39a
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 0x5ab181
mov eax, 8
jmp 0x5ab185
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 0x5ab3d4
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x800], eax
mov dword [ebx], 0xffffba54
jmp 0x5ab3d7
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5abe9a
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab5af
xor eax, eax
je 0x5ab41e
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ab546
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab546
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5abed5
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ab485
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5abccb
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab7c0
xor eax, eax
je 0x5ab62f
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ab757
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab757
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5abf22
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ab696
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab98e
xor eax, eax
je 0x5ab7fd
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ab925
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ab925
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5abf6f
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ab864
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ab993
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5abac1
nop word [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5abac1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5abfbc
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aba00
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5abb2d
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5abc55
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5abc55
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ac00b
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5abb94
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5abe9a
xor eax, eax
je 0x5abd08
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5abe31
nop
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5abe31
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ac058
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5abd70
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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 0x5ac0a5
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x97c], eax
mov dword [ebx], 0xffffb7a2
jmp 0x5ac0a8
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5abf18
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 0x5ab5a6
mov eax, 8
jmp 0x5ab5aa
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5abf65
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 0x5ab7b7
mov ecx, 8
jmp 0x5ab7bb
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5abfb2
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 0x5ab985
mov ecx, 8
jmp 0x5ab989
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5abfff
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 0x5abb21
mov dword [ebp - 0xc], 8
jmp 0x5abb28
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac04e
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 0x5abcb5
mov edx, 8
jmp 0x5abcb9
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac09b
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 0x5abe91
mov eax, 8
jmp 0x5abe95
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5acb6a
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac280
xor eax, eax
je 0x5ac0ef
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac217
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac217
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acbaa
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ac156
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac999
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac491
xor eax, eax
je 0x5ac300
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac428
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac428
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acbf7
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ac367
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac65f
xor eax, eax
je 0x5ac4ce
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac5f6
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac5f6
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acc44
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ac535
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ac664
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac791
nop dword [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac791
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acc91
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ac6d0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ac7fd
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afd0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ac925
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ac925
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acce0
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ac864
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5acb6a
xor eax, eax
je 0x5ac9d6
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5acb01
nop dword [eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5acb01
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5acd2d
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5aca40
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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 0x5acd7a
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x294], eax
mov dword [ebx], 0xffffb7e3
jmp 0x5acd7d
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acbed
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 0x5ac277
mov eax, 8
jmp 0x5ac27b
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acc3a
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 0x5ac488
mov ecx, 8
jmp 0x5ac48c
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acc87
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 0x5ac656
mov ecx, 8
jmp 0x5ac65a
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5accd4
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 0x5ac7f1
mov dword [ebp - 0xc], 8
jmp 0x5ac7f8
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acd23
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 0x5ac985
mov ecx, 8
jmp 0x5ac989
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5acd70
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 0x5acb61
mov eax, 8
jmp 0x5acb65
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ad841
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5acf5a
xor eax, eax
je 0x5acdc4
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5acef1
nop dword [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5acef1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ad886
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ace30
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad673
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad16b
xor eax, eax
je 0x5acfda
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad102
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad102
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ad8d3
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ad041
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad33a
xor eax, eax
je 0x5ad1a8
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad2d1
nop
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad2d1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ad920
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ad210
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ad33f
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad467
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad467
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ad96d
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ad3a6
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ad4d3
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad601
nop word [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad601
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ad9bc
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ad540
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad841
xor eax, eax
je 0x5ad6b0
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afa8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ad7d8
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ad7d8
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ada09
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ad717
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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 0x5ae51e
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 0x5ada56
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x79c], eax
mov dword [ebx], 0xffff9b5f
jmp 0x5ada59
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad8c9
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 0x5acf51
mov eax, 8
jmp 0x5acf55
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad916
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 0x5ad162
mov ecx, 8
jmp 0x5ad166
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad963
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 0x5ad331
mov ecx, 8
jmp 0x5ad335
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad9b0
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 0x5ad4c7
mov dword [ebp - 0xc], 8
jmp 0x5ad4ce
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ad9ff
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 0x5ad661
mov ecx, 8
jmp 0x5ad665
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ada4c
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 0x5ad838
mov eax, 8
jmp 0x5ad83c
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ae51a
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5adc31
xor eax, eax
je 0x5adaa0
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5adbc8
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5adbc8
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae527
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5adb07
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
shl edi, 2
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ae347
call fcn.005e4620
movsx esi, byte [0x778b8c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ade42
xor eax, eax
je 0x5adcb1
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5addd9
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5addd9
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae574
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5add18
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ae010
xor eax, eax
je 0x5ade7f
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afb0]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5adfa7
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5adfa7
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae5c1
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5adee6
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ae015
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ae141
nop dword [eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ae141
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae60e
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ae080
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ae1ad
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afc8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ae2d5
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ae2d5
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae65d
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ae214
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ae51a
xor eax, eax
je 0x5ae384
add byte [edi], cl
mov esi, 0x763a900d
add byte [edi], cl
mov esi, 0x763a9205
add byte [ebx], al
leave
movsx ecx, byte [0x763a90]
movsx eax, byte [0x763a92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x72afa8]
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
je 0x5ae4b1
nop dword [eax + eax]
call fcn.005e4620
movsx ecx, byte [0x778b8c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
add esi, esi
call fcn.005e45f0
movsx eax, al
sub esi, eax
call fcn.005e4610
movsx ecx, al
movsx eax, byte [0x763a90]
add ecx, esi
add eax, ecx
je 0x5ae4b1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x72aaf0]
movsd qword [ebp - 0x40], xmm0
call fcn.005e4650
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 [0x72aaf0]
lahf
test ah, 0x44
jp 0x5ae6aa
movsd qword [ebp - 0x38], xmm0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx edi, al
imul edi, esi
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
sub eax, ecx
jne 0x5ae3f0
call fcn.005e4630
movsx esi, al
call fcn.005e4650
movsx eax, al
imul eax, esi
lea esi, [eax*8]
sub esi, eax
call fcn.005e4600
movsx ecx, al
xor edx, edx
movsx eax, byte [0x763a93]
add ecx, esi
add eax, ecx
movsx ecx, byte [0x763a94]
div ecx
movsx ecx, byte [0x763a91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x72b070]
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.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae56a
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 0x5adc28
mov eax, 8
jmp 0x5adc2c
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae5b7
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 0x5ade39
mov ecx, 8
jmp 0x5ade3d
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae604
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 0x5ae007
mov ecx, 8
jmp 0x5ae00b
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae651
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 0x5ae1a1
mov dword [ebp - 0xc], 8
jmp 0x5ae1a8
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae6a0
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 0x5ae335
mov ecx, 8
jmp 0x5ae339
movsd qword [ebp - 0x40], xmm0
call fcn.005e4640
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ae6ed
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 0x5ae511
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