Function at 0x40df90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x150], xmm9
movaps xmmword [rsp + 0x160], xmm10
xor eax, eax
movabs r10, 0xff00ff00ff00ff00
mov r9d, dword [rdx]
movdqu xmm4, xmmword [rdx]
mov qword [rsp + 0x1d0], r8
lea r8, [rsp + 0xa8]
mov qword [rsp + 0x1c0], rcx
mov rdi, r8
mov ecx, 7
lea r8, [rsp + 0xf0]
movaps xmmword [rsp + 0xe0], xmm4
rep stosq qword [rdi], rax
mov rdi, r8
mov r8d, dword [rdx + 4]
mov ecx, 6
rep stosq qword [rdi], rax
mov eax, dword [rdx + 0xc]
lea rsi, [rsp + 0xa0]
mov ecx, dword [rdx + 8]
mov rdx, r9
mov qword [rsp + 0x98], rsi
shl rdx, 0x10
or r9, rdx
mov rdx, r8
shl rdx, 0x10
or r8, rdx
mov rdx, rcx
shl rdx, 0x10
or rcx, rdx
mov rdx, rax
shl rdx, 0x10
or rdx, rax
movabs rax, 0xffff0000ffff
and r9, rax
and rcx, rax
and r8, rax
and rax, rdx
mov rdx, r9
shl rdx, 8
mov r11, rax
or r9, rdx
mov rdx, r8
shl r11, 8
shl rdx, 8
or rax, r11
or r8, rdx
mov rdx, rcx
shl rax, 8
shl rdx, 8
and rax, r10
or rdx, rcx
movabs rcx, 0xff00ff00ff00ff
shl rdx, 8
and r9, rcx
and r8, rcx
and rdx, r10
or rax, r8
mov rcx, rsi
or rdx, r9
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xa0], rdx
call fcn.0040c590
mov rax, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xb8]
mov r8, qword [rax + 0x3c0]
mov rdi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
mov rdx, r8
mov rbp, qword [rsp + 0xd8]
shl rdx, 6
add rdx, rax
xor r13, qword [rdx]
lea rax, [r8 - 1]
xor r12, qword [rdx + 0x10]
mov qword [rsp + 0x90], rax
xor r15, qword [rdx + 0x18]
xor rdi, qword [rdx + 0x20]
xor rcx, qword [rdx + 0x28]
mov rbx, r13
mov qword [rsp + 0xa0], r13
xor r9, qword [rdx + 0x30]
mov qword [rsp + 0xb0], r12
mov r13, qword [rsp + 0xa8]
mov qword [rsp + 0xb8], r15
xor r13, qword [rdx + 8]
mov qword [rsp + 0xc0], rdi
xor rbp, qword [rdx + 0x38]
test rax, rax
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], r9
mov r11, r13
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xd8], rbp
jle 0x40eac6
mov r13, rbp
mov rax, rdi
mov qword [rsp + 0x38], rdx
mov rdi, r12
mov rbp, rcx
nop
movabs rsi, 0xff0000000000
mov r14, rbx
mov rdx, rbx
shr r14, 0xc
shl rdx, 4
movabs r8, 0xff00000000
and edx, 0xfff00000
and r14d, 0xf0000
movabs r10, 0xf000000000000000
movabs rcx, 0xfff000000000000
or r14, rdx
movzx edx, bx
or r14, rdx
mov rdx, rbx
shl rdx, 8
and rdx, rsi
or r14, rdx
mov rdx, rbx
shr rdx, 8
and rdx, r8
or r14, rdx
mov rdx, rbx
shr rbx, 4
shl rdx, 0xc
and rbx, rcx
and rdx, r10
or r14, rdx
mov rdx, r11
or r14, rbx
mov rbx, r11
shr rdx, 0xc
shl rbx, 4
and edx, 0xf0000
mov r12, r14
and ebx, 0xfff00000
mov r14, rdi
mov qword [rsp + 0x30], r12
or rbx, rdx
movzx edx, r11w
or rbx, rdx
mov rdx, r11
shl rdx, 8
and rdx, rsi
or rbx, rdx
mov rdx, r11
shr rdx, 8
and rdx, r8
or rbx, rdx
mov rdx, r11
shl rdx, 0xc
and rdx, r10
or rbx, rdx
mov rdx, rdi
shl r14, 4
shr rdx, 0xc
and r14d, 0xfff00000
shr r11, 4
and edx, 0xf0000
and r11, rcx
or r14, rdx
movzx edx, di
or rbx, r11
or r14, rdx
mov rdx, rdi
mov r11, rcx
shl rdx, 8
and rdx, rsi
or r14, rdx
mov rdx, rdi
shr rdx, 8
and rdx, r8
or r14, rdx
mov rdx, rdi
shr rdi, 4
shl rdx, 0xc
and rdi, rcx
mov rcx, r15
and rdx, r10
shr rcx, 0xc
or r14, rdx
mov rdx, r15
and ecx, 0xf0000
shl rdx, 4
or rdi, r14
mov r14, rbp
and edx, 0xfff00000
or rdx, rcx
movzx ecx, r15w
or rdx, rcx
mov rcx, r15
shl rcx, 8
and rcx, rsi
or rdx, rcx
mov rcx, r15
shr rcx, 8
and rcx, r8
shl r14, 4
or rdx, rcx
mov rcx, r15
shr r15, 4
shl rcx, 0xc
and r15, r11
and r14d, 0xfff00000
and rcx, r10
or rdx, rcx
mov rcx, rax
or r15, rdx
mov rdx, rax
shr rcx, 0xc
shl rdx, 4
and ecx, 0xf0000
and edx, 0xfff00000
or rdx, rcx
movzx ecx, ax
or rdx, rcx
mov rcx, rax
shl rcx, 8
and rcx, rsi
or rdx, rcx
mov rcx, rax
shr rcx, 8
and rcx, r8
or rdx, rcx
mov rcx, rax
shr rax, 4
shl rcx, 0xc
and rax, r11
and rcx, r10
or rdx, rcx
mov rcx, r8
or rax, rdx
mov rdx, rbp
shr rdx, 0xc
and edx, 0xf0000
or r14, rdx
movzx edx, bp
or r14, rdx
mov rdx, rbp
shl rdx, 8
and rdx, rsi
or r14, rdx
mov rdx, rbp
shr rdx, 8
and rdx, r8
mov r8, r11
or r14, rdx
mov rdx, rbp
shr rbp, 4
shl rdx, 0xc
and rbp, r11
mov r11, r9
and rdx, r10
shl r11, 4
or r14, rdx
mov rdx, r9
and r11d, 0xfff00000
shr rdx, 0xc
or r14, rbp
mov rbp, rbx
and edx, 0xf0000
or r11, rdx
movzx edx, r9w
or r11, rdx
mov rdx, r9
shl rdx, 8
and rdx, rsi
or r11, rdx
mov rdx, r9
shr rdx, 8
and rdx, rcx
or r11, rdx
mov rdx, r9
shr r9, 4
shl rdx, 0xc
and r9, r8
mov r8, r13
and rdx, r10
shl r8, 4
or r11, rdx
mov rdx, r13
and r8d, 0xfff00000
or r11, r9
shr rdx, 0xc
xor rbp, rax
and edx, 0xf0000
xor rbx, r15
or r8, rdx
movzx edx, r13w
xor rbx, r11
or r8, rdx
mov rdx, r13
shl rdx, 8
and rdx, rsi
mov rsi, r11
or r8, rdx
mov rdx, r13
xor rsi, rbp
shr rdx, 8
and rdx, rcx
mov rcx, rdi
or r8, rdx
mov rdx, r13
shr r13, 4
shl rdx, 0xc
xor rcx, r14
and rdx, r10
mov r10, r12
mov r12, rcx
or r8, rdx
mov rcx, rbx
xor r10, r15
movabs rdx, 0xfff000000000000
xor r11, r10
and rdx, r13
mov r13, r14
or r8, rdx
xor r13, r10
mov r9, r8
xor r12, r8
xor r9, rbp
not r12
xor rbp, r10
not r9
mov r10, rsi
xor rcx, r9
xor r10, r9
mov qword [rsp + 0x20], rcx
mov rcx, r15
mov r15, r11
not r11
xor rcx, rax
xor rax, rdi
mov qword [rsp + 0x28], r10
xor rax, r8
mov r8, r12
mov rdx, rax
mov rax, rsi
xor rdx, r13
xor rdi, qword [rsp + 0x30]
xor r8, rdx
xor rbx, r8
xor rax, r8
xor r15, r8
mov qword [rsp + 0x40], rbx
mov rbx, qword [rsp + 0x20]
xor r14, rdi
mov qword [rsp + 0x50], rax
mov rax, r10
xor rax, r15
mov qword [rsp + 0x78], r15
mov r15, rdx
mov r10, rax
mov rax, rcx
xor rbx, rbp
mov qword [rsp + 0x80], r10
xor r14, rbx
mov qword [rsp + 0x48], rbx
xor r9, r14
xor r13, r14
mov r14, r12
mov qword [rsp + 0x70], rax
xor r14, r9
xor rcx, r13
mov rdi, r13
mov qword [rsp + 0x58], r14
mov r14, qword [rsp + 0x48]
xor rdx, rcx
mov r13, rbp
xor r15, r9
and r13, rdx
mov rbx, rcx
and r10, qword [rsp + 0x58]
mov qword [rsp + 0x30], r15
xor r15, rcx
xor rbx, r12
mov qword [rsp + 0x88], rcx
and r14, r9
mov qword [rsp + 0x60], rbx
mov rcx, r14
mov r14, r13
mov r13, rdi
not r13
xor rdi, rcx
mov rbx, r13
mov r13, qword [rsp + 0x20]
xor r10, rdi
and rbx, rax
mov rdi, qword [rsp + 0x40]
mov rax, qword [rsp + 0x28]
and r13, r15
xor r13, rbx
and rdi, r12
mov qword [rsp + 0x68], r13
mov r13, qword [rsp + 0x28]
xor rax, rdi
and r13, qword [rsp + 0x30]
xor rax, qword [rsp + 0x30]
xor r13, rbx
mov rbx, qword [rsp + 0x68]
xor r10, rbx
xor rcx, rax
mov rax, r11
and rax, r8
xor rsi, rdx
xor rcx, r13
xor rax, rbp
xor rax, rdx
xor rax, r14
xor r14, rsi
xor rax, rbx
mov rbx, qword [rsp + 0x50]
and rbx, qword [rsp + 0x60]
xor r14, rbx
xor r14, r13
mov r13, r10
and r10, rax
xor r13, rcx
mov r11, r14
mov rbx, r14
xor r11, r10
mov rsi, r13
mov r14, rax
and rsi, r11
xor r14, rbx
xor rsi, rcx
xor rcx, r10
and rcx, r14
mov r14, rbx
xor r14, rcx
xor rcx, r10
mov r10, rsi
and rbx, rcx
xor rax, r14
mov rdi, r14
xor rax, rbx
xor rbx, r11
mov r11, rsi
and rbx, rsi
xor r11, r14
xor r14, rax
xor rbx, r13
mov r13, rax
xor r13, rbx
xor r10, rbx
mov rcx, r13
xor rcx, r11
and rdx, r10
and r10, rbp
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x60]
and r15, rcx
and r8, rbx
and r9, r14
and r12, rdi
and rdx, rsi
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0x80]
and rdx, rax
mov qword [rsp + 0x80], rdx
and rcx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x70]
and r14, qword [rsp + 0x48]
xor r9, qword [rsp + 0x68]
mov rdx, rcx
and rsi, qword [rsp + 0x50]
and rbp, r11
mov qword [rsp + 0x70], rdx
and rax, qword [rsp + 0x58]
mov rcx, rbp
and r11, qword [rsp + 0x88]
mov rbp, r12
xor rcx, rdx
mov rdx, r8
and rbx, qword [rsp + 0x78]
xor rdx, rcx
xor rbx, qword [rsp + 0x60]
xor rbp, r10
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x68]
xor rbp, r9
xor rsi, rbp
xor rdx, r11
mov r11, qword [rsp + 0x30]
xor rdx, r15
xor r8, rdx
and r11, r13
xor r11, r15
mov r15, qword [rsp + 0x80]
xor r11, qword [rsp + 0x20]
xor r14, r15
xor r14, qword [rsp + 0x20]
xor rsi, r11
xor rax, r14
xor rcx, rbp
xor r12, qword [rsp + 0x60]
xor r10, rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x28]
xor r9, rax
mov rbp, qword [rsp + 0x38]
xor r14, rdx
xor r10, r11
mov rdx, r8
xor rdx, r9
xor rax, r12
mov r12, qword [rsp + 0x40]
and rcx, r13
xor rcx, qword [rsp + 0x70]
mov r13, rbx
xor rbx, qword [rbp - 0x28]
xor r13, rax
mov r11, r13
and r12, rdi
mov rdi, qword [rbp - 0x40]
xor r11, rdx
xor rcx, r8
xor r12, r15
mov r15, r14
xor r11, qword [rbp - 0x38]
xor r12, rsi
xor rsi, rcx
mov rcx, qword [rbp - 0x20]
xor r15, r10
xor r15, qword [rbp - 0x30]
xor rbx, r12
xor rdi, r14
xor rbx, rsi
xor rdi, r12
xor rcx, r10
xor rdi, rsi
xor rax, rcx
xor r15, r9
xor rax, rdx
xor r14, qword [rbp - 0x18]
mov rdx, r15
mov rcx, rax
xor r8, qword [rbp - 8]
ror rdx, 0x10
xor rsi, qword [rbp - 0x10]
mov rbp, rdx
mov rax, rdi
ror rax, 0x10
xor r14, r9
mov r9, rbx
xor r14, r12
mov r12, rcx
xor r8, r10
ror r12, 0x10
mov rdx, r14
ror r9, 0x10
mov qword [rsp + 0x58], r12
mov r12, r14
mov r14, rdi
xor rsi, r13
xor r14, r12
mov qword [rsp + 0x20], r12
ror rdx, 0x10
mov r10, r11
mov r12, r14
mov r14, rdi
mov qword [rsp + 0x28], r9
mov r9, r8
xor r14, r11
ror r8, 0x10
mov r13, rsi
mov qword [rsp + 0x60], r14
mov r14, qword [rsp + 0x20]
ror r13, 0x10
ror r10, 0x10
mov qword [rsp + 0x30], r9
xor r9, r8
mov qword [rsp + 0x40], r9
xor r9, rsi
mov qword [rsp + 0x48], r9
mov r9, qword [rsp + 0x20]
xor r14, rbx
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x88], r14
mov r14, r11
xor r14, r15
xor r9, rcx
mov qword [rsp + 0x68], r14
mov r14, r15
mov qword [rsp + 0x80], r9
mov r9, qword [rsp + 0x40]
xor r14, rbx
xor rbx, rcx
mov qword [rsp + 0x70], r14
mov r14, qword [rsp + 0x20]
mov qword [rsp + 0x78], rbx
mov rbx, rax
xor rbx, rdx
mov rcx, rbx
mov rbx, r9
xor rcx, rsi
xor rbx, rax
xor r14, rsi
xor rcx, r12
xor rbx, rdx
mov qword [rsp + 0x40], r14
rol rcx, 0x20
xor rbx, r14
mov r14, qword [rsp + 0x60]
xor rbx, rcx
xor r11, qword [rsp + 0x20]
mov rcx, rax
xor r11, qword [rsp + 0x30]
xor rcx, r10
xor rcx, r8
xor rcx, rdx
xor rcx, r13
xor r11, r10
xor r12, rcx
xor r11, rdx
xor r11, r13
rol r11, 0x20
xor r11, r12
mov r12, r15
xor r15, qword [rsp + 0x40]
xor r12, r8
xor r12, rdi
mov rdi, rsi
xor rdi, rbp
xor r12, rsi
mov rcx, r15
mov r15, qword [rsp + 0x28]
xor rdi, r8
xor r12, rbp
xor rcx, rbp
xor rdi, r10
xor r12, r13
xor rcx, rax
xor rax, qword [rsp + 0x48]
xor rdi, r13
rol r12, 0x20
xor rdi, r14
xor rcx, r15
xor rdi, r12
mov r12, qword [rsp + 0x58]
xor rcx, rdx
xor rcx, r14
xor rax, r15
mov r15, r14
mov r14, qword [rsp + 0x88]
xor rax, rdx
xor r15, rax
mov rax, qword [rsp + 0x28]
xor r15, r14
rol r15, 0x20
xor rax, r10
xor r10, r12
xor r10, qword [rsp + 0x30]
xor r15, rcx
xor rax, r8
xor rax, r12
xor rax, rdx
xor rax, r13
xor r10, rdx
xor rax, r14
mov r14, qword [rsp + 0x68]
mov rcx, r10
mov r10, qword [rsp + 0x80]
xor rcx, r13
xor rcx, r14
xor rax, r14
mov r14, qword [rsp + 0x70]
xor rcx, r10
rol rcx, 0x20
xor rax, rcx
mov rcx, qword [rsp + 0x50]
xor rcx, rsi
xor rcx, r8
xor rcx, rbp
xor rbp, r8
xor rcx, r12
xor rbp, rdx
xor rcx, rdx
xor rbp, r13
xor rcx, r13
xor rbp, r14
xor rcx, r14
xor rbp, qword [rsp + 0x40]
xor rsi, r8
mov r14, qword [rsp + 0x20]
xor rsi, r12
rol rbp, 0x20
xor r14, r9
xor rbp, rcx
mov rcx, r9
mov r9, qword [rsp + 0x28]
xor r12, rcx
mov r8, r12
xor r8, r10
xor r14, r9
rol r8, 0x20
xor r14, rdx
mov rdx, qword [rsp + 0x78]
xor r9, qword [rsp + 0x48]
xor r14, r13
sub qword [rsp + 0x38], 0x40
xor r14, rdx
xor r9, r13
xor r13, rsi
xor r9, rdx
xor r13, r10
rol r9, 0x20
xor r13, r8
xor r9, r14
sub qword [rsp + 0x90], 1
jne 0x40e1c0
movq xmm6, r11
mov r12, rdi
movq xmm0, rbx
punpcklqdq xmm0, xmm6
mov rcx, rbp
movq xmm6, r15
movaps xmmword [rsp + 0xa0], xmm0
movq xmm0, r12
movq xmm4, r13
punpcklqdq xmm0, xmm6
movq xmm6, rcx
movaps xmmword [rsp + 0xb0], xmm0
movq xmm0, rax
punpcklqdq xmm0, xmm6
movaps xmmword [rsp + 0xc0], xmm0
movq xmm0, r9
punpcklqdq xmm0, xmm4
movaps xmmword [rsp + 0xd0], xmm0
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm8, xmmword [0x004f0c80]
movdqa xmm7, xmmword [0x004f0c70]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
movdqa xmm3, xmm1
psllq xmm0, 8
movdqa xmm6, xmmword [0x004f0c90]
movdqa xmm9, xmm1
psrlq xmm2, 8
movdqa xmm5, xmmword [0x004f0ca0]
pand xmm0, xmm7
pand xmm2, xmm8
por xmm0, xmm2
movdqa xmm2, xmm1
psrlq xmm3, 0xc
psllq xmm2, 4
movdqa xmm4, xmmword [0x004f0cc0]
pand xmm3, xmm5
pand xmm2, xmm6
por xmm2, xmm3
movdqa xmm3, xmmword [0x004f0cb0]
por xmm0, xmm2
movdqa xmm2, xmm1
psrlq xmm9, 4
psllq xmm2, 0xc
pand xmm9, xmm4
pand xmm2, xmm3
por xmm2, xmm9
por xmm0, xmm2
movdqa xmm2, xmmword [0x004f0cd0]
pand xmm1, xmm2
por xmm0, xmm1
movaps xmmword [rsp + 0xa0], xmm0
movq rbx, xmm0
movdqa xmm0, xmmword [rsp + 0xb0]
mov rdx, rbx
mov r12, qword [rsp + 0xa8]
movdqa xmm1, xmm0
movdqa xmm9, xmm0
movdqa xmm10, xmm0
psllq xmm1, 8
psrlq xmm9, 8
pand xmm1, xmm7
pand xmm9, xmm8
por xmm1, xmm9
movdqa xmm9, xmm0
mov r8, r12
psllq xmm9, 4
psrlq xmm10, 0xc
pand xmm9, xmm6
pand xmm10, xmm5
por xmm9, xmm10
movdqa xmm10, xmm0
por xmm1, xmm9
movdqa xmm9, xmm0
psrlq xmm10, 4
pand xmm0, xmm2
psllq xmm9, 0xc
pand xmm10, xmm4
pand xmm9, xmm3
por xmm9, xmm10
por xmm1, xmm9
por xmm1, xmm0
movdqa xmm0, xmmword [rsp + 0xc0]
movq rsi, xmm1
movaps xmmword [rsp + 0xb0], xmm1
mov rcx, qword [rsp + 0xb8]
mov r13, rsi
xor rbx, rsi
movdqa xmm1, xmm0
movdqa xmm9, xmm0
movdqa xmm10, xmm0
psrlq xmm1, 8
psllq xmm9, 8
pand xmm1, xmm8
pand xmm9, xmm7
por xmm1, xmm9
movdqa xmm9, xmm0
xor r12, rcx
psrlq xmm9, 0xc
xor rdx, rcx
psllq xmm10, 4
pand xmm9, xmm5
mov r14, rdx
pand xmm10, xmm6
por xmm9, xmm10
movdqa xmm10, xmm0
por xmm1, xmm9
movdqa xmm9, xmm0
psllq xmm10, 0xc
pand xmm0, xmm2
psrlq xmm9, 4
pand xmm10, xmm3
pand xmm9, xmm4
por xmm9, xmm10
por xmm1, xmm9
por xmm1, xmm0
movq r9, xmm1
movaps xmmword [rsp + 0xc0], xmm1
movdqa xmm1, xmmword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc8]
xor r8, r9
xor rcx, r9
xor r9, rsi
movdqa xmm0, xmm1
pand xmm2, xmm1
mov r10, r8
mov r11, r8
psrlq xmm0, 8
xor r8, rdx
pand xmm0, xmm8
movdqa xmm8, xmm1
psllq xmm8, 8
xor r13, rdi
xor r14, rdi
pand xmm7, xmm8
por xmm0, xmm7
movdqa xmm7, xmm1
xor rdi, rbx
psllq xmm7, 4
pand xmm6, xmm7
movdqa xmm7, xmm1
psrlq xmm7, 0xc
pand xmm5, xmm7
por xmm5, xmm6
por xmm0, xmm5
movdqa xmm5, xmm1
psrlq xmm5, 4
pand xmm4, xmm5
movdqa xmm5, xmm1
psllq xmm5, 0xc
pand xmm3, xmm5
por xmm3, xmm4
por xmm0, xmm3
por xmm0, xmm2
movaps xmmword [rsp + 0xd0], xmm0
mov r15, qword [rsp + 0xd8]
movq rax, xmm0
xor r12, rax
xor r11, rax
xor rax, rdx
mov rbp, r12
mov rdx, r9
xor r10, r15
xor r13, r15
xor rdx, r15
not r10
not r13
mov r15, r12
xor rbp, r10
xor rdx, r14
mov r9, r13
mov qword [rsp + 0x20], rbp
mov r12, qword [rsp + 0x20]
xor r9, rdx
mov rbp, r11
xor r15, r9
mov rbx, r10
xor rbp, r10
mov qword [rsp + 0x40], r15
mov r10, rcx
mov qword [rsp + 0x28], rbp
mov r15, r12
xor r15, r8
mov qword [rsp + 0x30], r15
mov r15, r11
mov rsi, qword [rsp + 0x30]
xor r15, r9
mov qword [rsp + 0x48], r15
mov r15, rax
not rax
xor r15, r9
mov qword [rsp + 0x50], r15
mov r15, qword [rsp + 0x50]
xor rdi, rsi
xor rbx, rdi
xor r14, rdi
mov rdi, r13
xor rdi, rbx
xor rcx, r14
mov qword [rsp + 0x60], rdi
mov rdi, rcx
xor rcx, r13
xor r15, rbp
mov rbp, rbx
mov rbx, rdx
mov qword [rsp + 0x68], rcx
xor rbx, rbp
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x38], rbx
xor rbx, rdi
xor rdx, rdi
and rax, r9
mov r15, rbx
mov rbx, rsi
mov rsi, r8
mov qword [rsp + 0x80], rdi
and rsi, rdx
and r12, r15
mov qword [rsp + 0x78], r10
and rbx, rbp
mov rdi, rsi
mov rsi, r14
xor r14, rbx
not rsi
xor rax, r8
xor r11, rdx
and rsi, r10
mov r10, qword [rsp + 0x58]
xor rax, rdx
mov rcx, rsi
mov rsi, r12
and r10, qword [rsp + 0x60]
xor rax, rdi
xor rsi, rcx
xor rdi, r11
mov r12, rsi
mov rsi, qword [rsp + 0x28]
and rsi, qword [rsp + 0x38]
xor rax, r12
xor r10, r14
mov r14, qword [rsp + 0x68]
xor r10, r12
xor rsi, rcx
mov rcx, qword [rsp + 0x40]
and rcx, r13
xor rcx, qword [rsp + 0x28]
xor rcx, qword [rsp + 0x38]
xor rcx, rbx
mov rbx, qword [rsp + 0x48]
xor rcx, rsi
and rbx, r14
xor rdi, rbx
xor rdi, rsi
mov rsi, r10
and r10, rax
xor rsi, rcx
mov rbx, rdi
mov r12, rsi
mov rsi, rdi
mov rdi, rax
xor rsi, r10
mov r11, rsi
mov rsi, r12
and rsi, r11
xor rsi, rcx
xor rdi, rbx
xor rcx, r10
and rcx, rdi
mov rdi, rbx
and r14, rsi
xor rdi, rcx
xor rcx, r10
mov qword [rsp + 0x70], r14
mov r14, qword [rsp + 0x58]
and rbx, rcx
xor rax, rdi
mov rcx, rsi
xor rax, rbx
xor rbx, r11
mov r11, rsi
and rbx, rsi
xor r11, rdi
and r13, rdi
xor rbx, r12
mov r12, rax
and r14, rax
xor rcx, rbx
xor r12, rbx
and r9, rbx
and rbx, qword [rsp + 0x50]
mov r10, rcx
mov rcx, rdi
xor rbx, qword [rsp + 0x70]
mov qword [rsp + 0x58], r14
xor rcx, rax
and rdx, r10
mov qword [rsp + 0x68], rcx
mov rcx, r12
and r8, r10
and rbp, qword [rsp + 0x68]
xor rcx, r11
mov r14, r9
and r15, rcx
and rcx, qword [rsp + 0x20]
mov r10, rcx
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], r10
and rcx, r11
xor rcx, r10
mov r10, rbp
mov rbp, r13
xor r10, rdx
xor rbp, r8
xor rbp, r10
xor r14, rcx
and rsi, qword [rsp + 0x48]
xor r8, rbx
and r11, qword [rsp + 0x80]
xor rcx, rbp
xor rcx, rbx
and rax, qword [rsp + 0x60]
xor r13, qword [rsp + 0x70]
and rdi, qword [rsp + 0x40]
xor rsi, rbp
xor rdx, r11
mov r11, qword [rsp + 0x38]
mov qword [rsp + 0x38], r14
xor rdx, r15
xor r9, rdx
and r11, r12
and r12, qword [rsp + 0x28]
xor r11, r15
mov r15, qword [rsp + 0x58]
xor r11, r14
mov r14, qword [rsp + 0x68]
and r14, qword [rsp + 0x30]
xor r8, r11
xor rsi, r11
xor rdi, r15
xor rdi, rsi
xor r14, r15
xor r14, qword [rsp + 0x38]
xor r12, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x1c0]
xor rax, r14
xor r14, rdx
mov rdx, r9
xor r10, rax
xor r12, r9
xor rax, r13
mov r11, qword [rbx]
xor rdx, r10
xor rsi, r12
xor r9, qword [rbx + 0x38]
xor r11, r14
xor r11, rdi
xor r11, rsi
mov qword [rsp + 0xa0], r11
mov r11, qword [rbx + 8]
xor r11, rcx
xor r11, rax
xor r11, rdx
mov qword [rsp + 0xa8], r11
mov r11, r14
xor r14, qword [rbx + 0x28]
xor r11, r8
xor r11, qword [rbx + 0x10]
xor r11, r10
xor r10, r14
mov qword [rsp + 0xb0], r11
mov r11, qword [rbx + 0x18]
xor r11, rcx
xor rcx, qword [rbx + 0x30]
xor r11, rdi
xor rdi, r10
xor r11, rsi
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xb8], r11
mov r11, qword [rbx + 0x20]
xor r11, r8
xor r8, r9
xor r11, rax
xor rax, rcx
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0xd8], r8
xor rdx, r11
xor rsi, rax
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xd0], rsi
call fcn.0040c590
mov rdx, qword [rsp + 0xa0]
movabs r9, 0xff00ff00ff00ff
mov rax, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x1d0]
mov r8, rdx
shr rdx, 8
and r8, r9
mov rcx, rax
shr rax, 8
and rcx, r9
and rdx, r9
and rax, r9
mov r9, r8
shr r9, 8
or r8, r9
mov r9, rcx
shr r9, 8
or rcx, r9
mov r9, rdx
shr r9, 8
or rdx, r9
mov r9, rax
shr r9, 8
or rax, r9
movabs r9, 0xffff0000ffff
and r8, r9
and rcx, r9
and rdx, r9
and rax, r9
mov r9, r8
shr r9, 0x10
or r8d, r9d
mov dword [rdi], r8d
mov r8, rcx
shr r8, 0x10
or ecx, r8d
mov dword [rdi + 4], ecx
mov rcx, rdx
shr rcx, 0x10
or edx, ecx
mov dword [rdi + 8], edx
mov rdx, rax
shr rdx, 0x10
or eax, edx
mov dword [rdi + 0xc], eax
movaps xmm6, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm9, xmmword [rsp + 0x150]
movaps xmm10, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret