Function at 0x54f10d
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e8
movdqa xmmword [rsp + 0x1d0], xmm15
movdqa xmmword [rsp + 0x1c0], xmm14
movdqa xmmword [rsp + 0x1b0], xmm13
movdqa xmmword [rsp + 0x1a0], xmm12
movdqa xmmword [rsp + 0x190], xmm11
movdqa xmmword [rsp + 0x180], xmm10
movdqa xmmword [rsp + 0x170], xmm9
movdqa xmmword [rsp + 0x160], xmm8
movdqa xmmword [rsp + 0x150], xmm7
movdqa xmmword [rsp + 0x140], xmm6
mov rdi, r9
mov rbx, r8
mov rsi, rdx
mov rbp, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
test r8, r8
mov qword [rsp + 0x98], r9
jle 0x54f1da
mov r15d, dword [rsi]
cmp rbx, 4
jg 0x55094d
movabs rax, 0x6e442e3b36bce4b2
mov rcx, rax
not rcx
add rcx, rbx
add rcx, rax
mov rbx, rcx
jmp 0x54f1ea
dec rbx
xor ecx, ecx
mov rdx, rbx
call fcn.005482d0
mov r15d, dword [rsi]
mov ecx, 4
mov rdx, rbx
call fcn.005482d0
mov r14d, dword [rsi + 4]
mov ecx, 8
mov rdx, rbx
call fcn.005482d0
mov r12d, dword [rsi + 8]
mov r13, rbp
mov ecx, 0xc
mov rdx, rbx
call fcn.005482d0
movabs r11, 0xff00ff00ff00ff
mov r8d, dword [rsi + 0xc]
mov esi, r15d
mov edi, r14d
mov eax, r12d
mov r10, rdi
shl r10, 0x10
mov r9, rsi
shl r9, 0x10
and r15d, r9d
xor r9, rsi
or r9, r15
or r10, rdi
mov rdi, rax
shl rdi, 0x10
movabs rsi, 0x9663b33ac197221d
not rsi
and rsi, rdi
not rdi
not rax
movabs rcx, 0xb33a0000221d
mov rbp, rdi
and rbp, rcx
or rsi, rbp
and rcx, rax
and r12d, 0x3e68dde2
or r12, rcx
xor r12, rsi
or rax, rdi
not rax
or rax, r12
mov rbp, r8
shl rbp, 0x10
mov ecx, ebp
and ecx, r8d
xor rbp, r8
or rbp, rcx
movabs rcx, 0xffff0000ffff
not rcx
mov rbx, r9
xor rbx, rcx
and rbx, r9
not r10
or r10, rcx
not r10
not rax
or rax, rcx
not rax
xor rcx, rbp
and rcx, rbp
mov rdx, rbx
shl rdx, 8
mov rbp, rdx
and rbp, rbx
xor rdx, rbx
or rdx, rbp
mov rbx, r10
shl rbx, 8
mov rbp, rbx
and rbp, r10
xor rbx, r10
or rbx, rbp
not r11
mov r8, rdx
xor r8, r11
and r8, rdx
not rbx
mov qword [rsp + 0xa0], r11
or rbx, r11
not rbx
mov rdx, rax
shl rdx, 0x10
shl rax, 8
mov r9, rdx
not r9
movabs rbp, 0xb0f75dc79a91c4a5
mov rsi, rbp
not rsi
and rdx, rsi
and rsi, rax
not rax
mov rdi, r9
and rdi, rbp
or rdx, rdi
and rbp, rax
or rsi, rbp
xor rsi, rdx
or rax, r9
not rax
or rax, rsi
movabs rdx, 0xff00ff00ff00ff00
not rdx
mov rbp, rax
xor rbp, rdx
and rbp, rax
mov rax, r8
and rax, rbp
xor rbp, r8
or rbp, rax
lea rsi, [rsp + 0x20]
mov qword [rsi], rbp
mov rax, rcx
shl rax, 0x10
shl rcx, 8
mov rbp, rax
and rbp, rcx
xor rcx, rax
or rcx, rbp
xor rdx, rcx
and rdx, rcx
mov rax, rdx
and rax, rbx
xor rdx, rbx
or rdx, rax
mov qword [rsi + 0x20], rdx
mov rcx, rsi
call fcn.0054d0ac
movdqu xmm0, xmmword [r13]
movdqa xmm1, xmmword [0x006087d0]
movdqa xmm2, xmmword [rsi]
movdqa xmm3, xmmword [rsi + 0x10]
movdqa xmm4, xmm2
pandn xmm4, xmm1
movdqa xmm5, xmm1
pandn xmm5, xmm0
pandn xmm0, xmm1
por xmm0, xmm5
pandn xmm1, xmm2
por xmm1, xmm4
pxor xmm1, xmm0
movdqa xmmword [rsi], xmm1
movdqu xmm0, xmmword [r13 + 0x10]
movdqa xmm1, xmm0
pandn xmm1, xmm3
pandn xmm3, xmm0
por xmm3, xmm1
movdqa xmmword [rsi + 0x10], xmm3
mov rbx, qword [rsi + 0x20]
mov rcx, qword [r13 + 0x20]
mov rdx, rcx
not rdx
movabs rbp, 0xc6080db6a0f7aca0
and rdx, rbp
mov rax, rbx
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rbx
or rbp, rax
xor rbp, rcx
mov qword [rsi + 0x20], rbp
mov rax, qword [rsi + 0x28]
mov rcx, qword [r13 + 0x28]
mov rdx, rcx
not rdx
and rdx, rax
not rax
and rax, rcx
or rax, rdx
mov qword [rsi + 0x28], rax
mov rbx, qword [rsi + 0x30]
mov rcx, qword [r13 + 0x30]
mov rdx, rcx
not rdx
movabs rbp, 0x7c3fa098d318e1b0
and rdx, rbp
mov rax, rbx
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rbx
or rbp, rax
xor rbp, rcx
mov qword [rsi + 0x30], rbp
mov rbx, qword [rsi + 0x38]
mov rcx, qword [r13 + 0x38]
mov rdx, rcx
not rdx
movabs rbp, 0xaf6961b0f973144
and rdx, rbp
mov rax, rbx
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rbx
or rbp, rax
xor rbp, rcx
mov qword [rsi + 0x38], rbp
mov rbp, r13
mov rdi, qword [r13 + 0x3c0]
mov rcx, rsi
call fcn.0054d6fe
cmp rdi, 2
jl 0x5501ae
pcmpeqd xmm6, xmm6
movdqa xmm8, xmmword [0x006087e0]
movdqa xmm9, xmmword [0x006087f0]
movdqa xmm14, xmmword [0x00608800]
movdqa xmm10, xmmword [0x00608810]
movdqa xmm11, xmmword [0x00608820]
movdqa xmm12, xmmword [0x00608830]
movdqa xmm13, xmmword [0x00608840]
movdqa xmm7, xmmword [0x00608850]
movdqa xmm15, xmmword [0x00608860]
mov eax, 1
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xa8], rbp
xor eax, eax
movdqa xmm0, xmmword [rsp + rax*8 + 0x20]
movdqa xmm1, xmm0
pxor xmm1, xmm6
por xmm1, xmm8
movdqa xmm2, xmm1
pxor xmm2, xmm6
movdqa xmm3, xmm0
psrlq xmm3, 4
movdqa xmm4, xmm3
pxor xmm4, xmm9
pand xmm4, xmm3
movdqa xmm3, xmm4
pxor xmm3, xmm6
por xmm3, xmm1
pand xmm1, xmm14
movdqa xmm5, xmm14
pandn xmm5, xmm4
pandn xmm4, xmm14
por xmm4, xmm5
movdqa xmm5, xmm14
pandn xmm5, xmm2
por xmm5, xmm1
pxor xmm5, xmm4
pxor xmm3, xmm6
por xmm3, xmm5
movdqa xmm1, xmm0
psllq xmm1, 0xc
movdqa xmm2, xmm1
pxor xmm2, xmm10
pand xmm2, xmm1
movdqa xmm1, xmm3
pand xmm1, xmm2
pxor xmm2, xmm3
por xmm2, xmm1
movdqa xmm3, xmm0
psrlq xmm3, 8
pxor xmm3, xmm6
por xmm3, xmm11
movdqa xmm1, xmm3
pandn xmm1, xmm2
pxor xmm3, xmm6
pxor xmm3, xmm2
por xmm3, xmm1
movdqa xmm2, xmm0
psllq xmm2, 8
movdqa xmm1, xmm2
pxor xmm1, xmm12
pand xmm1, xmm2
movdqa xmm2, xmm3
pand xmm2, xmm1
pxor xmm1, xmm3
por xmm1, xmm2
movdqa xmm2, xmm0
psrlq xmm2, 0xc
movdqa xmm3, xmm2
pxor xmm3, xmm13
pand xmm3, xmm2
movdqa xmm4, xmm1
pxor xmm4, xmm6
movdqa xmm2, xmm3
pxor xmm2, xmm6
por xmm2, xmm4
movdqa xmm4, xmm7
pandn xmm4, xmm1
pandn xmm1, xmm7
por xmm1, xmm4
movdqa xmm4, xmm7
pandn xmm4, xmm3
pandn xmm3, xmm7
por xmm3, xmm4
pxor xmm3, xmm1
pxor xmm2, xmm6
por xmm2, xmm3
psllq xmm0, 4
pxor xmm0, xmm6
por xmm0, xmm15
movdqa xmm1, xmm0
pandn xmm1, xmm2
pxor xmm0, xmm6
pxor xmm0, xmm2
por xmm0, xmm1
movdqa xmmword [rsp + rax*8 + 0x20], xmm0
add rax, 2
cmp rax, 8
jne 0x54f56a
mov r14, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
mov rdx, r14
shr rdx, 0x10
mov rbp, r14
shl rbp, 0x30
mov rbx, rdx
not rbx
movabs rax, 0x9c222c67dc4147bb
mov r13, rax
not r13
and rdx, r13
and r13, rbp
not rbp
and rbx, rax
or rdx, rbx
and rbp, rax
or r13, rbp
xor r13, rdx
mov rax, r8
shr rax, 0x10
mov rbp, r8
shl rbp, 0x30
mov rbx, rax
not rbx
movabs rdx, 0x19a58a1cc8be8ab
mov r10, rdx
not r10
and rax, r10
and r10, rbp
not rbp
and rbx, rdx
or rax, rbx
and rbp, rdx
or r10, rbp
xor r10, rax
mov rbp, rdi
mov qword [rsp + 0x70], rdi
mov rax, rdi
shr rax, 0x10
shl rbp, 0x30
mov rbx, rax
not rbx
movabs rdi, 0x9dec1073e9a4ecf8
mov r15, rdi
not r15
and rax, r15
and r15, rbp
not rbp
and rbx, rdi
or rax, rbx
and rbp, rdi
or r15, rbp
xor r15, rax
mov rbp, rsi
mov qword [rsp + 0x60], rsi
mov rax, rsi
shr rax, 0x10
shl rbp, 0x30
mov rbx, rax
not rbx
movabs rdi, 0x9d9ffd537708193f
mov rdx, rdi
not rdx
and rax, rdx
and rdx, rbp
not rbp
and rbx, rdi
or rax, rbx
and rbp, rdi
or rdx, rbp
xor rdx, rax
mov qword [rsp + 0x88], rdx
mov rax, r9
rol rax, 0x30
mov rdx, rax
mov rcx, r13
not rcx
mov qword [rsp + 0x68], rcx
mov rax, r14
and rax, rcx
not r14
and r14, r13
or r14, rax
mov rbp, rdx
mov qword [rsp + 0x78], rdx
not rdx
mov qword [rsp + 0x80], rdx
movabs rbx, 0x355ccde72e85f6be
mov rax, rbx
and rax, rdx
mov rdx, rbx
not rdx
and rbp, rdx
or rbp, rax
and rdx, r9
mov rsi, r9
not rsi
and rsi, rbx
or rdx, rsi
xor rdx, rbp
mov r11, rdx
not r11
movabs rbx, 0xc607dc832a5e2f4b
mov rax, rbx
and rax, r11
mov rcx, rbx
not rcx
mov rbp, rdx
mov rsi, rdx
and rbp, rcx
or rbp, rax
mov rax, r14
not rax
and rax, rbx
and rcx, r14
or rcx, rax
xor rcx, rbp
mov rdx, qword [rsp + 0x28]
mov rax, rdx
rol rax, 0x30
mov rbp, rdx
not rdx
and rdx, rax
movabs rdi, 0x37ff1dc6deb97416
not rdi
mov qword [rsp + 0x138], rcx
and rcx, rdi
mov qword [rsp + 0x130], rcx
and rdi, rax
mov qword [rsp + 0x128], rdi
not rax
mov qword [rsp + 0x120], rax
and rbp, rax
or rdx, rbp
mov qword [rsp + 0x110], rdx
mov rax, rdx
not rax
and rax, r10
mov qword [rsp + 0x118], rax
mov rax, r10
not r10
mov qword [rsp + 0x108], r10
movabs rbp, 0xf8ac52fb8424266
mov rdx, rbp
and rdx, r10
mov r12, rbp
not r12
and rax, r12
or rax, rdx
and r12, r8
not r8
and r8, rbp
or r12, r8
xor r12, rax
movabs rbp, 0xd012599512884103
mov rax, rbp
and rax, r11
mov rcx, rbp
not rcx
mov rdx, rsi
and rdx, rcx
or rdx, rax
mov rax, r12
not rax
and rax, rbp
and rcx, r12
or rcx, rax
xor rcx, rdx
mov qword [rsp + 0x100], rcx
mov rdx, qword [rsp + 0x38]
mov rax, rdx
rol rax, 0x30
not rcx
and rcx, rax
mov qword [rsp + 0xf8], rcx
mov rbp, rax
not rax
mov qword [rsp + 0xf0], rax
movabs rdi, 0xe7a28028ee2bbaae
mov rbx, rdi
and rbx, rax
mov rax, rdi
not rax
and rbp, rax
or rbp, rbx
and rax, rdx
not rdx
and rdx, rdi
or rax, rdx
xor rax, rbp
rol r14, 0x20
mov rdx, r14
not rdx
movabs rbp, 0x9afdd1cce25ce3de
and rdx, rbp
mov rdi, rbp
not rdi
and r14, rdi
or r14, rdx
and rdi, r13
mov rcx, qword [rsp + 0x68]
and rcx, rbp
or rdi, rcx
xor rdi, r14
mov qword [rsp + 0xd0], rdi
and rdi, r11
and r11, rax
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xe0], rax
not rax
and rax, rsi
mov r9, rsi
mov qword [rsp + 0xc8], rsi
or rax, r11
movabs r10, 0x6538990f086af392
not r10
mov qword [rsp + 0x68], rax
and rax, r10
and r10, r15
mov rcx, r15
not r15
mov qword [rsp + 0xd8], r15
movabs rbp, 0x541f5c1a8842d4c2
mov rdx, rbp
and rdx, r15
mov r15, rbp
not r15
and rcx, r15
or rcx, rdx
mov rdx, qword [rsp + 0x70]
and r15, rdx
not rdx
and rdx, rbp
or r15, rdx
xor r15, rcx
mov r8, qword [rsp + 0x48]
mov rbx, r8
rol rbx, 0x30
movabs rcx, 0x19ec1bf79a785e52
not rcx
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0xc0], r15
and r15, rcx
and rcx, rbx
mov rsi, rbx
not rbx
mov qword [rsp + 0xb0], rbx
movabs rbp, 0xe45957c1d631e1f3
mov r11, rbp
and r11, rbx
mov rdx, rbp
not rdx
and rsi, rdx
or rsi, r11
and rdx, r8
not r8
and r8, rbp
or rdx, r8
xor rdx, rsi
mov rbx, rdx
not rbx
mov r8, qword [rsp + 0x88]
and rbx, r8
mov rsi, r8
not r8
movabs r11, 0xba361ba124424c24
mov r13, r11
and r13, r8
mov r14, r11
not r14
and rsi, r14
or rsi, r13
mov rbp, qword [rsp + 0x60]
and r14, rbp
not rbp
and rbp, r11
or r14, rbp
xor r14, rsi
mov rbp, qword [rsp + 0xd0]
not rbp
and rbp, r9
or rdi, rbp
mov qword [rsp + 0x70], rdi
mov rbp, qword [rsp + 0x138]
not rbp
movabs r11, 0x37ff1dc6deb97416
and rbp, r11
mov rsi, rbp
mov rbp, qword [rsp + 0x130]
or rbp, rsi
mov rdi, qword [rsp + 0x120]
and rdi, r11
mov rsi, qword [rsp + 0x128]
or rsi, rdi
xor rsi, rbp
mov rbp, qword [rsp + 0x110]
mov r9, qword [rsp + 0x108]
and r9, rbp
rol rbp, 0x20
mov rdi, rsi
not rdi
and rdi, rbp
not rbp
and rbp, rsi
or rbp, rdi
mov qword [rsp + 0x60], rbp
or r9, qword [rsp + 0x118]
mov rsi, r9
mov rbp, r12
shl rbp, 0x20
mov r13, rbp
not r13
movabs r11, 0xa821703f4da26ef2
mov rdi, r11
not rdi
and r13, r11
and rbp, rdi
or rbp, r13
shr r12, 0x20
and edi, r12d
not r12
and r12, r11
or rdi, r12
xor rdi, rbp
mov rbp, r9
not rbp
and rbp, rdi
not rdi
and rdi, r9
or rdi, rbp
mov rbp, qword [rsp + 0xe8]
shl rbp, 0x20
mov rsi, rbp
not rsi
movabs r11, 0x15d38d5411a7ec69
mov r12, r11
not r12
and rsi, r11
and rbp, r12
or rbp, rsi
mov rsi, rbp
mov rbp, qword [rsp + 0xe0]
shr rbp, 0x20
and r12d, ebp
not rbp
and rbp, r11
or r12, rbp
xor r12, rsi
mov rbp, qword [rsp + 0x100]
and rbp, qword [rsp + 0xf0]
or rbp, qword [rsp + 0xf8]
mov rsi, rbp
not rsi
and rsi, r12
not r12
and r12, rbp
or r12, rsi
mov rsi, qword [rsp + 0x68]
not rsi
movabs rbp, 0x6538990f086af392
and rsi, rbp
or rax, rsi
mov rsi, qword [rsp + 0xd8]
and rsi, rbp
or r10, rsi
xor r10, rax
mov rax, r10
not rax
movabs rbp, 0x32384495e246bf6a
and rax, rbp
mov rsi, rbp
not rsi
and r10, rsi
or r10, rax
mov rax, qword [rsp + 0xb8]
rol rax, 0x20
and rsi, rax
not rax
and rax, rbp
or rsi, rax
xor rsi, r10
mov rbp, qword [rsp + 0xc0]
not rbp
movabs rax, 0x19ec1bf79a785e52
and rbp, rax
or r15, rbp
mov rbp, qword [rsp + 0xb0]
and rbp, rax
or rcx, rbp
xor rcx, r15
and r8, rdx
rol rdx, 0x20
mov rax, rcx
not rax
movabs r9, 0x605f4cee6e8ad2f5
and rax, r9
mov rbp, r9
not rbp
and rcx, rbp
or rcx, rax
and rbp, rdx
not rdx
and rdx, r9
or rbp, rdx
xor rbp, rcx
or r8, rbx
mov rax, r14
shl rax, 0x20
mov rcx, rax
not rcx
movabs rdx, 0xd808896388a99667
mov r13, rdx
not r13
and rcx, rdx
and rax, r13
or rax, rcx
mov rcx, r14
shr rcx, 0x20
and r13d, ecx
not rcx
and rcx, rdx
or r13, rcx
xor r13, rax
mov rax, r8
not rax
and rax, r13
not r13
and r13, r8
mov r8, qword [rsp + 0x80]
and r8, r14
or r13, rax
not r14
and r14, qword [rsp + 0x78]
or r8, r14
mov r9, qword [rsp + 0xc8]
mov rax, r9
shl rax, 0x20
mov rcx, rax
not rcx
movabs rbx, 0x501e544c0e1f3f5c
mov rdx, rbx
not rdx
and rcx, rbx
and rax, rdx
or rax, rcx
mov rcx, r9
shr rcx, 0x20
and edx, ecx
not rcx
and rcx, rbx
or rdx, rcx
xor rdx, rax
mov rax, r8
mov rbx, r8
not rbx
movabs r8, 0x2f502b92c413d26e
and rbx, r8
mov rcx, r8
not rcx
and rax, rcx
or rax, rbx
and rcx, rdx
not rdx
and rdx, r8
or rcx, rdx
mov rdx, qword [rsp + 0x70]
mov rbx, rdx
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x40], rsi
mov rsi, rbp
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], r13
xor rcx, rax
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x58], rcx
mov rax, qword [rsp + 0x90]
lea r15, [rax*8]
cmp r15, 0x78
jb 0x54fe84
mov edx, 0x77
mov rcx, r15
call fcn.005482d0
mov rbp, qword [rsp + 0xa8]
mov rax, qword [rbp + r15*8]
mov rcx, rax
not rcx
mov rdi, rbx
and rcx, rbx
not rdi
and rdi, rax
or rdi, rcx
mov qword [rsp + 0x20], rdi
mov r14, r15
not r14
movabs rdi, 0xeb987f217ad1545
mov rbx, rdi
not rbx
mov rax, r14
and rax, rdi
mov rcx, r15
and rcx, rbx
or rcx, rax
mov rax, rdi
and rax, 0xfffffffffffffffe
mov edx, ebx
and edx, 1
or rdx, rax
xor rdx, rcx
mov eax, r14d
not eax
or ebx, edi
and ebx, eax
and ebx, 1
or rbx, rdx
cmp rbx, 0x78
jb 0x54ff04
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
movabs rbx, 0xc15c55807859e53c
and rcx, rbx
mov rdx, rbx
not rdx
and rax, rdx
or rax, rcx
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
not rcx
and rcx, rbx
and rdx, rdi
or rdx, rcx
xor rdx, rax
mov qword [rsp + 0x28], rdx
movabs rdi, 0x1b3aeee637445471
mov rbx, rdi
not rbx
mov rax, r14
and rax, rdi
mov rcx, r15
and rcx, rbx
or rcx, rax
mov rax, rdi
and rax, 0xfffffffffffffffd
mov edx, ebx
and edx, 2
or rdx, rax
xor rdx, rcx
mov eax, r14d
not eax
or ebx, edi
and ebx, eax
and ebx, 2
or rbx, rdx
cmp rbx, 0x78
jb 0x54ff97
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
movabs rbx, 0x73d0bd00e2043da2
and rcx, rbx
mov rdx, rbx
not rdx
and rax, rdx
or rax, rcx
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
not rcx
and rcx, rbx
and rdx, rdi
or rdx, rcx
xor rdx, rax
mov qword [rsp + 0x30], rdx
movabs rdi, 0x4fb18fd4f555bfd9
mov rbx, rdi
not rbx
mov rax, r14
and rax, rdi
mov rcx, r15
and rcx, rbx
or rcx, rax
mov rax, rdi
and rax, 0xfffffffffffffffc
mov edx, ebx
and edx, 3
or rdx, rax
xor rdx, rcx
mov eax, r14d
not eax
or ebx, edi
and ebx, eax
and ebx, 3
or rbx, rdx
cmp rbx, 0x78
jb 0x55002a
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
and rcx, r12
not r12
and r12, rax
or r12, rcx
mov qword [rsp + 0x38], r12
mov eax, r15d
and eax, 4
mov rbx, r15
xor rbx, 4
or rbx, rax
cmp rbx, 0x78
jb 0x550069
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
mov rdx, qword [rsp + 0x80]
and rcx, rdx
not rdx
and rdx, rax
or rdx, rcx
mov qword [rsp + 0x40], rdx
mov eax, r15d
and eax, 5
mov rbx, r15
xor rbx, 5
or rbx, rax
cmp rbx, 0x78
jb 0x5500b0
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
and rcx, rsi
not rsi
and rsi, rax
or rsi, rcx
mov qword [rsp + 0x48], rsi
mov eax, r15d
and eax, 6
mov rbx, r15
xor rbx, 6
or rbx, rax
cmp rbx, 0x78
jb 0x5500ef
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
and rcx, r13
not r13
and r13, rax
or r13, rcx
mov qword [rsp + 0x50], r13
movabs rdx, 0x401c36dd3d32517f
mov rbx, rdx
not rbx
mov rax, r14
and rax, rdx
and r15, rbx
or r15, rax
mov rax, rdx
and rax, 0xfffffffffffffff8
mov ecx, ebx
and ecx, 7
or rcx, rax
xor rcx, r15
not r14d
or ebx, edx
and ebx, r14d
and ebx, 7
or rbx, rcx
cmp rbx, 0x78
jb 0x55015a
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rbp + rbx*8]
mov rcx, rax
not rcx
mov rdx, qword [rsp + 0x88]
and rcx, rdx
not rdx
and rdx, rax
or rdx, rcx
mov qword [rsp + 0x58], rdx
mov rdi, qword [rsp + 0x90]
inc rdi
mov rsi, qword [rbp + 0x3c0]
lea rcx, [rsp + 0x20]
call fcn.0054d6fe
mov rax, rdi
mov qword [rsp + 0x90], rdi
cmp rdi, rsi
jl 0x54f568
mov r15, qword [rsp + 0x250]
xor eax, eax
pcmpeqd xmm0, xmm0
movdqa xmm8, xmmword [0x00608860]
movdqa xmm9, xmmword [0x006087e0]
movdqa xmm10, xmmword [0x006087f0]
movdqa xmm11, xmmword [0x00608810]
movdqa xmm12, xmmword [0x00608820]
movdqa xmm13, xmmword [0x00608830]
movdqa xmm15, xmmword [0x00608870]
movdqa xmm14, xmmword [0x00608840]
movdqa xmm2, xmmword [0x00608880]
movdqa xmm5, xmmword [rsp + rax*8 + 0x20]
movdqa xmm3, xmm5
pxor xmm3, xmm0
por xmm3, xmm9
pxor xmm3, xmm0
movdqa xmm4, xmm5
psrlq xmm4, 4
pxor xmm4, xmm0
por xmm4, xmm10
pxor xmm4, xmm0
por xmm4, xmm3
movdqa xmm3, xmm5
psllq xmm3, 0xc
movdqa xmm1, xmm3
pxor xmm1, xmm11
pand xmm1, xmm3
movdqa xmm3, xmm4
pand xmm3, xmm1
pxor xmm1, xmm4
por xmm1, xmm3
movdqa xmm3, xmm5
psrlq xmm3, 8
pxor xmm3, xmm0
por xmm3, xmm12
movdqa xmm6, xmm3
pandn xmm6, xmm1
pxor xmm3, xmm0
pxor xmm3, xmm1
por xmm6, xmm3
movdqa xmm1, xmm5
psllq xmm1, 8
pxor xmm1, xmm0
por xmm1, xmm13
movdqa xmm4, xmm1
pxor xmm4, xmm0
movdqa xmm7, xmm15
pandn xmm7, xmm6
pandn xmm6, xmm15
por xmm6, xmm7
movdqa xmm7, xmm15
pandn xmm7, xmm4
pxor xmm3, xmm0
por xmm3, xmm1
pand xmm1, xmm15
por xmm7, xmm1
movdqa xmm4, xmm5
pxor xmm7, xmm6
pxor xmm3, xmm0
por xmm3, xmm7
psrlq xmm5, 0xc
movdqa xmm1, xmm5
pxor xmm1, xmm14
pand xmm1, xmm5
movdqa xmm5, xmm3
pxor xmm5, xmm0
movdqa xmm6, xmm1
pxor xmm6, xmm0
por xmm6, xmm5
movdqa xmm5, xmm2
pandn xmm5, xmm3
pandn xmm3, xmm2
por xmm3, xmm5
movdqa xmm5, xmm2
pandn xmm5, xmm1
pandn xmm1, xmm2
por xmm1, xmm5
pxor xmm1, xmm3
psllq xmm4, 4
pxor xmm4, xmm0
por xmm4, xmm8
pxor xmm6, xmm0
por xmm6, xmm1
movdqa xmm1, xmm4
pandn xmm1, xmm6
pxor xmm4, xmm0
pxor xmm4, xmm6
por xmm4, xmm1
movdqa xmmword [rsp + rax*8 + 0x20], xmm4
add rax, 2
cmp rax, 8
jne 0x55020c
mov r14, qword [rbp + 0x3c0]
shl r14, 3
cmp r14, 0x78
jb 0x550385
mov edx, 0x77
mov rcx, r14
call fcn.005482d0
mov r12, rbp
mov rbx, qword [rbp + r14*8]
mov rcx, qword [rsp + 0x20]
mov rdx, rcx
not rdx
movabs rbp, 0xbf0b9249187719de
and rdx, rbp
mov rax, rbx
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rbx
or rbp, rax
xor rbp, rcx
mov qword [rsp + 0x20], rbp
mov rdi, r14
not rdi
mov ebx, edi
not ebx
movabs rax, 0xf845fee1f314f614
mov rcx, rax
not rcx
mov rdx, rdi
and rdx, rax
and rcx, r14
or rcx, rdx
or rax, 1
xor rax, rcx
and ebx, 1
or rbx, rax
cmp rbx, 0x78
jb 0x55040b
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rsi, qword [rsp + 0x28]
mov rcx, qword [r12 + rbx*8]
mov rdx, rcx
not rdx
movabs rbp, 0xb0589e271b5e1a84
and rdx, rbp
mov rax, rsi
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rsi
or rbp, rax
xor rbp, rcx
mov qword [rsp + 0x28], rbp
mov eax, r14d
and eax, 2
mov rbx, r14
xor rbx, 2
or rbx, rax
cmp rbx, 0x78
jb 0x55046a
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rsp + 0x30]
mov rbp, r12
mov rcx, qword [r12 + rbx*8]
mov rdx, rcx
not rdx
and rdx, rax
not rax
and rax, rcx
or rax, rdx
mov qword [rsp + 0x30], rax
mov ebx, edi
not ebx
movabs rax, 0x15c09e1167d36b40
mov rcx, rax
not rcx
mov rdx, rdi
and rdx, rax
and rcx, r14
or rcx, rdx
or rax, 3
xor rax, rcx
and ebx, 3
or rbx, rax
cmp rbx, 0x78
jb 0x5504cd
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rsi, qword [rsp + 0x38]
mov rcx, qword [rbp + rbx*8]
mov rdx, rcx
not rdx
movabs rbp, 0xed5b56d9227433ad
and rdx, rbp
mov rax, rsi
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rsi
or rbp, rax
xor rbp, rcx
mov qword [rsp + 0x38], rbp
mov ebx, edi
not ebx
movabs rax, 0xf86b330d0710c968
mov rcx, rax
not rcx
mov rdx, rdi
and rdx, rax
and rcx, r14
or rcx, rdx
or rax, 4
xor rax, rcx
and ebx, 4
or rbx, rax
cmp rbx, 0x78
jb 0x55054a
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rsi, qword [rsp + 0x40]
mov rcx, qword [r12 + rbx*8]
mov rdx, rcx
not rdx
movabs rbp, 0xc9d06a6b600ee61f
and rdx, rbp
mov rax, rsi
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rsi
or rbp, rax
xor rbp, rcx
mov qword [rsp + 0x40], rbp
mov ebx, edi
not ebx
movabs rax, 0x76120aab1fa0c8d4
mov rcx, rdi
and rcx, rax
not rax
and rax, r14
or rax, rcx
movabs rcx, 0x76120aab1fa0c8d1
xor rcx, rax
and ebx, 5
or rbx, rcx
cmp rbx, 0x78
jb 0x5505c9
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rbx, qword [r12 + rbx*8]
mov rcx, qword [rsp + 0x48]
mov rdx, rcx
not rdx
movabs rbp, 0xccd2a8e8f343a17c
and rdx, rbp
mov rax, rbx
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rbx
or rbp, rax
xor rbp, rcx
mov qword [rsp + 0x48], rbp
mov ebx, edi
not ebx
movabs rax, 0x44da61c510b28077
mov rcx, rdi
and rcx, rax
not rax
and rax, r14
or rax, rcx
movabs rcx, 0x44da61c510b28071
xor rcx, rax
and ebx, 6
or rbx, rcx
cmp rbx, 0x78
jb 0x550648
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
mov rax, qword [rsp + 0x50]
mov rcx, qword [r12 + rbx*8]
mov rdx, rcx
not rdx
and rdx, rax
not rax
and rax, rcx
or rax, rdx
mov qword [rsp + 0x50], rax
mov ebx, edi
not ebx
movabs rax, 0x91f03a509a10940d
and rdi, rax
not rax
and r14, rax
or r14, rdi
movabs rax, 0x91f03a509a10940a
xor rax, r14
and ebx, 7
or rbx, rax
cmp rbx, 0x78
jb 0x5506a8
mov edx, 0x77
mov rcx, rbx
call fcn.005482d0
lea rsi, [rsp + 0x20]
mov rdi, qword [rsi + 0x38]
mov rcx, qword [r12 + rbx*8]
mov rdx, rcx
not rdx
movabs rbp, 0x4d4661b853b1c29e
and rdx, rbp
mov rax, rdi
not rax
and rax, rbp
not rbp
and rcx, rbp
or rcx, rdx
and rbp, rdi
or rbp, rax
xor rbp, rcx
mov qword [rsi + 0x38], rbp
mov rcx, rsi
call fcn.0054d0ac
mov rax, qword [rsi]
mov rbx, qword [rsi + 0x20]
mov rcx, rax
mov rbp, qword [rsp + 0xa0]
xor rcx, rbp
and rcx, rax
mov rdx, rbx
not rdx
or rdx, rbp
not rdx
shr rax, 8
mov rsi, rax
xor rsi, rbp
and rsi, rax
shr rbx, 8
not rbx
or rbx, rbp
mov r8, rbx
not r8
mov rbp, rcx
shr rbp, 8
mov rax, rbp
and rax, rcx
xor rbp, rcx
or rbp, rax
mov rcx, rdx
shr rcx, 8
mov rax, rcx
and rax, rdx
xor rcx, rdx
or rcx, rax
mov r9, rsi
shr r9, 8
mov rdx, r9
and rdx, rsi
xor r9, rsi
or r9, rdx
mov rdx, r8
shr rdx, 8
mov r14, rdx
not r14
movabs rdi, 0x89ee30d2db855a5
mov rsi, rdi
not rsi
mov rax, r14
and rax, rdi
and rdx, rsi
or rdx, rax
and rdi, rbx
and rsi, r8
or rsi, rdi
xor rsi, rdx
or r14, rbx
not r14
or r14, rsi
mov r8d, 0xffff0000
mov edi, ebp
xor edi, r8d
and edi, ebp
shr rbp, 0x10
mov edx, 0xffff
mov eax, ebp
xor eax, edx
and eax, ebp
mov esi, eax
not esi
mov r12d, edi
not r12d
mov ebx, 0x6c5f96d5
mov ebp, esi
and ebp, ebx
mov r10d, 0x93a0692a
and eax, r10d
or eax, ebp
and ebx, r12d
and edi, r10d
or edi, ebx
xor edi, eax
or r12d, esi
not r12d
or r12d, edi
mov eax, ecx
xor eax, r8d
and eax, ecx
shr rcx, 0x10
mov ebp, ecx
xor ebp, edx
and ebp, ecx
mov ecx, ebp
and ecx, eax
xor ebp, eax
or ebp, ecx
mov eax, r9d
not eax
or eax, r8d
mov rcx, r9
shr rcx, 0x10
xor edx, ecx
and edx, ecx
mov esi, edx
not esi
mov ecx, 0x51e12bfc
mov ebx, esi
and ebx, ecx
and edx, 0xae1ed403
or edx, ebx
and ecx, eax
and r9d, 0xd403
or r9d, ecx
xor r9d, edx
or esi, eax
not esi
or esi, r9d
test r15, r15
jle 0x55086a
mov rdi, qword [rsp + 0x98]
mov dword [rdi], r12d
cmp r15, 4
jg 0x55095f
dec r15
jmp 0x550895
movabs rax, 0x5c940794bb5c07c9
mov rcx, rax
not rcx
add r15, rcx
add r15, rax
xor ecx, ecx
mov rdx, r15
call fcn.005482d0
mov rdi, qword [rsp + 0x98]
mov dword [rdi], r12d
mov ecx, 4
mov rdx, r15
call fcn.005482d0
mov dword [rdi + 4], ebp
mov ecx, 8
mov rdx, r15
call fcn.005482d0
mov dword [rdi + 8], esi
mov ecx, 0xc
mov rdx, r15
call fcn.005482d0
mov rax, r14
shr rax, 0x10
mov ecx, 0xffff0000
and eax, ecx
xor ecx, r14d
and ecx, r14d
mov edx, eax
and edx, ecx
xor ecx, eax
or ecx, edx
mov dword [rdi + 0xc], ecx
movaps xmm6, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm8, xmmword [rsp + 0x160]
movaps xmm9, xmmword [rsp + 0x170]
movaps xmm10, xmmword [rsp + 0x180]
movaps xmm11, xmmword [rsp + 0x190]
movaps xmm12, xmmword [rsp + 0x1a0]
movaps xmm13, xmmword [rsp + 0x1b0]
movaps xmm14, xmmword [rsp + 0x1c0]
movaps xmm15, xmmword [rsp + 0x1d0]
add rsp, 0x1e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14d, dword [rsi + 4]
cmp rbx, 8
jg 0x550986
dec rbx
jmp 0x54f1fb
mov dword [rdi + 4], ebp
cmp r15, 8
jg 0x5509ae
movabs rax, 0x15191608005867d0
mov rcx, rax
not rcx
add rcx, r15
add rcx, rax
mov r15, rcx
jmp 0x5508a5
mov r12d, dword [rsi + 8]
cmp rbx, 0xc
jg 0x5509d6
movabs rax, 0x91d751ed017909a
mov rcx, rax
not rcx
add rcx, rbx
add rcx, rax
mov rbx, rcx
jmp 0x54f20c
mov dword [rdi + 8], esi
cmp r15, 0xc
jg 0x5508c2
movabs rax, 0x8e1794c91ae4da59
mov rcx, rax
not rcx
add r15, rcx
add r15, rax
jmp 0x5508b5
mov r13, rbp
jmp 0x54f21c