Function at 0x5a7a40
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 0x5a9252
mov eax, dword [str.eDRTVY_]
xor ebx, ebx
mov dword [ebp - 0x2b], eax
mov ax, word [0x673cd8]
mov word [ebp - 0x27], ax
mov al, byte [0x673cda]
mov byte [ebp - 0x25], al
nop
mov eax, 0x8d3dcb09
mov cl, bl
mul ebx
shr edx, 5
movsx eax, dl
imul eax, eax, 0x3a
sub cl, al
add cl, 0x35
xor byte [ebp + ebx - 0x2b], cl
inc ebx
cmp ebx, 7
jl 0x5a7a80
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x8a0]
lea ebx, [ecx + 0xd30]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5a7ad1
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x8a0], eax
mov dword [ebx], 0xffffff9d
jmp 0x5a7ad4
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5a8566
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a7ca9
xor eax, eax
je 0x5a7b21
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a7c49
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a7c49
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a85a6
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a7b88
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a839e
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a7eb1
xor eax, eax
je 0x5a7d29
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a7e51
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a7e51
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a85f3
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a7d90
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8076
xor eax, eax
je 0x5a7eee
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8016
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8016
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a8640
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a7f55
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5a807b
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726470]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a81a3
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a81a3
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a868d
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a80e2
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5a8206
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726470]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8331
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8331
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a86dc
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8270
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8563
xor eax, eax
je 0x5a83db
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8503
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8503
movsd xmm0, qword [ebp - 0x20]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a8729
movsd qword [ebp - 0x20], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8442
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x20]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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 + 0x10ec]
lea ebx, [ecx + 0xf28]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5a8776
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x10ec], eax
mov dword [ebx], 0xffffff96
jmp 0x5a8779
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a85e9
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 0x5a7ca0
mov eax, 2
jmp 0x5a7ca4
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8636
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 0x5a7ea8
mov ecx, 2
jmp 0x5a7eac
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a8683
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 0x5a806d
mov ecx, 2
jmp 0x5a8071
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a86d0
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 0x5a81fa
mov dword [ebp - 0xc], 2
jmp 0x5a8201
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a871f
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 0x5a8388
mov edx, 2
jmp 0x5a838c
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a876c
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 0x5a855a
mov eax, 2
jmp 0x5a855e
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5a9214
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8951
xor eax, eax
je 0x5a87c6
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a88f1
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a88f1
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a925b
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8830
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a904a
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8b59
xor eax, eax
je 0x5a89d1
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8af9
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8af9
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a92a8
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8a38
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8d21
xor eax, eax
je 0x5a8b96
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8cc1
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8cc1
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a92f5
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8c00
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5a8d26
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8e51
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8e51
movsd xmm0, qword [ebp - 0x10]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a9342
movsd qword [ebp - 0x10], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8d90
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x10]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5a8eb4
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a8fe1
nop dword [eax + eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a8fe1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a9391
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a8f20
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9211
xor eax, eax
je 0x5a9087
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726448]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a91b1
nop
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a91b1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a93de
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a90f0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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 + 0x772570]
call eax
add esp, 8
cmp eax, esi
je 0x5a942b
mov eax, dword [ebp - 0x24]
inc edi
mov dword [ebp - 8], edi
movzx eax, word [eax + 6]
cmp edi, eax
jl 0x5a7a62
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a929e
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 0x5a8948
mov eax, 2
jmp 0x5a894c
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a92eb
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 0x5a8b50
mov ecx, 2
jmp 0x5a8b54
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a9338
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 0x5a8d18
mov ecx, 2
jmp 0x5a8d1c
movsd qword [ebp - 0x38], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x38]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a9385
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 0x5a8ea8
mov dword [ebp - 0xc], 2
jmp 0x5a8eaf
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a93d4
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 0x5a9038
mov ecx, 2
jmp 0x5a903c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a9421
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 0x5a9208
mov eax, 2
jmp 0x5a920c
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x664]
lea ebx, [ecx + 0xa58]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5a945b
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x664], eax
mov dword [ebx], 0xffff7a47
jmp 0x5a945e
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5a9ef3
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9633
xor eax, eax
je 0x5a94ab
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a95d3
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a95d3
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a9f2e
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a9512
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a9d2e
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9841
xor eax, eax
je 0x5a96b3
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a97e1
nop word [eax + eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a97e1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a9f7b
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a9720
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9a06
xor eax, eax
je 0x5a987e
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a99a6
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a99a6
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5a9fc8
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a98e5
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5a9a0b
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a9b33
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9b33
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aa015
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a9a72
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5a9b96
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a9cc1
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9cc1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aa064
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a9c00
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9ef3
xor eax, eax
je 0x5a9d6b
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726448]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5a9e93
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5a9e93
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aa0b1
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5a9dd2
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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 + 0x60c]
lea ebx, [ecx + 0x24]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aa0fe
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x60c], eax
mov dword [ebx], 0xffffd17f
jmp 0x5aa101
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a9f71
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 0x5a962a
mov eax, 2
jmp 0x5a962e
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5a9fbe
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 0x5a9838
mov ecx, 2
jmp 0x5a983c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa00b
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 0x5a99fd
mov ecx, 2
jmp 0x5a9a01
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa058
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 0x5a9b8a
mov dword [ebp - 0xc], 2
jmp 0x5a9b91
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa0a7
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 0x5a9d18
mov edx, 2
jmp 0x5a9d1c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aa0f4
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 0x5a9eea
mov eax, 2
jmp 0x5a9eee
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5aab91
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa2d6
xor eax, eax
je 0x5aa14e
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa276
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa276
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aabd1
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aa1b5
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa9ca
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa4e1
xor eax, eax
je 0x5aa356
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa481
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa481
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aac1e
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aa3c0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa6a6
xor eax, eax
je 0x5aa51e
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa646
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa646
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aac6b
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aa585
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5aa6ab
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa7d3
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa7d3
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aacb8
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aa712
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5aa836
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726468]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aa961
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aa961
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aad07
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aa8a0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aab91
xor eax, eax
je 0x5aaa07
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726448]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aab31
nop
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aab31
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5aad54
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aaa70
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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 + 0x190]
lea ebx, [ecx + 0x1318]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aada1
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x190], eax
mov dword [ebx], 0xffff636f
jmp 0x5aada4
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aac14
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 0x5aa2cd
mov eax, 2
jmp 0x5aa2d1
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aac61
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 0x5aa4d8
mov ecx, 2
jmp 0x5aa4dc
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aacae
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 0x5aa69d
mov ecx, 2
jmp 0x5aa6a1
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aacfb
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 0x5aa82a
mov dword [ebp - 0xc], 2
jmp 0x5aa831
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aad4a
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 0x5aa9b8
mov ecx, 2
jmp 0x5aa9bc
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aad97
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 0x5aab88
mov eax, 2
jmp 0x5aab8c
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ab831
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aaf79
xor eax, eax
je 0x5aadf1
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5aaf19
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5aaf19
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab876
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5aae58
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab66a
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab181
xor eax, eax
je 0x5aaff9
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab121
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab121
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab8c3
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ab060
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab346
xor eax, eax
je 0x5ab1be
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726448]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab2e6
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab2e6
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab910
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ab225
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5ab34b
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab473
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab473
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab95d
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ab3b2
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ab4d6
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab601
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab601
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab9ac
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ab540
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab831
xor eax, eax
je 0x5ab6a7
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726440]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ab7d1
nop
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ab7d1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ab9f9
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ab710
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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 0x5ac4e5
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1248]
lea ebx, [ecx + 0x8c0]
mov dword [ebp - 4], ebx
test al, 1
jne 0x5aba46
or eax, 1
mov byte [ebx + 4], 0
mov dword [ecx + 0x1248], eax
mov dword [ebx], 0xffff6a60
jmp 0x5aba49
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab8b9
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 0x5aaf70
mov eax, 2
jmp 0x5aaf74
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab906
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 0x5ab178
mov ecx, 2
jmp 0x5ab17c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab953
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 0x5ab33d
mov ecx, 2
jmp 0x5ab341
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab9a0
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 0x5ab4ca
mov dword [ebp - 0xc], 2
jmp 0x5ab4d1
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ab9ef
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 0x5ab658
mov ecx, 2
jmp 0x5ab65c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5aba3c
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 0x5ab828
mov eax, 2
jmp 0x5ab82c
mov dword [ebp - 4], ebx
cmp byte [ebx + 4], 0
jne 0x5ac4e1
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx*8]
sub esi, ecx
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abc21
xor eax, eax
je 0x5aba96
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726458]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5abbc1
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abbc1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac4ee
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5abb00
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov ebx, dword [ebp - 4]
xor dword [ebx], eax
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
shl edi, 3
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ac31a
call fcn.005e1cc0
movsx esi, byte [0x77378c]
movsx eax, al
imul esi, eax
shl esi, 3
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abe29
xor eax, eax
je 0x5abca1
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726450]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5abdc9
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abdc9
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac53b
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5abd08
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*2]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abff1
xor eax, eax
je 0x5abe66
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726448]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5abf91
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5abf91
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac588
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5abed0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov eax, dword [ebp - 4]
xor dword [eax], ecx
xor eax, eax
je 0x5abff6
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ac121
nop dword [eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ac121
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac5d5
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ac060
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc], eax
xor eax, eax
je 0x5ac184
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726460]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ac2b1
nop dword [eax + eax]
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ac2b1
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac624
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ac1f0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*8]
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ac4e1
xor eax, eax
je 0x5ac357
add byte [edi], cl
mov esi, 0x75ea900d
add byte [edi], cl
mov esi, 0x75ea9205
add byte [ebx], al
leave
movsx ecx, byte [0x75ea90]
movsx eax, byte [0x75ea92]
add ecx, ecx
sub eax, ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x726440]
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
je 0x5ac481
nop
call fcn.005e1cc0
movsx ecx, byte [0x77378c]
movsx eax, al
imul ecx, eax
lea esi, [ecx + ecx*4]
add esi, esi
call fcn.005e1c90
movsx eax, al
sub esi, eax
call fcn.005e1cb0
movsx ecx, al
movsx eax, byte [0x75ea90]
add ecx, esi
add eax, ecx
je 0x5ac481
movsd xmm0, qword [ebp - 0x38]
addsd xmm0, qword [0x725f88]
movsd qword [ebp - 0x40], xmm0
call fcn.005e1cf0
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 [0x725f88]
lahf
test ah, 0x44
jp 0x5ac671
movsd qword [ebp - 0x38], xmm0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
sub eax, ecx
jne 0x5ac3c0
call fcn.005e1cd0
movsx esi, al
call fcn.005e1cf0
movsx edi, al
imul edi, esi
call fcn.005e1ca0
movsx ecx, al
xor edx, edx
movsx eax, byte [0x75ea93]
add ecx, edi
add eax, ecx
movsx ecx, byte [0x75ea94]
div ecx
movsx ecx, byte [0x75ea91]
movsd xmm0, qword [ebp - 0x38]
sub eax, ecx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
addsd xmm1, qword [eax*8 + 0x726510]
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.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac531
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 0x5abc18
mov eax, 2
jmp 0x5abc1c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac57e
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 0x5abe20
mov ecx, 2
jmp 0x5abe24
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac5cb
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 0x5abfe8
mov ecx, 2
jmp 0x5abfec
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac618
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 0x5ac178
mov dword [ebp - 0xc], 2
jmp 0x5ac17f
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac667
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 0x5ac308
mov ecx, 2
jmp 0x5ac30c
movsd qword [ebp - 0x40], xmm0
call fcn.005e1ce0
movsd xmm1, qword [ebp - 0x40]
movsx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5ac6b4
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 0x5ac4d8
mov ebx, dword [ebp - 4]
mov eax, 2
pop edi
pop esi
xor dword [ebx], eax
mov al, 1
mov byte [ebx + 4], 1
pop ebx
mov esp, ebp
pop ebp
ret