Function at 0x408600
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rax, qword [rcx + 0x28]
mov r11, qword [rcx]
mov r14, rcx
mov r15, qword [rcx + 0x50]
mov rbx, qword [r14 + 0x58]
mov qword [rsp + 0x28], rax
mov r8, qword [rcx + 0x78]
mov rdi, qword [rcx + 0xa0]
mov qword [rsp + 0x48], rbx
mov rdx, qword [rcx + 8]
mov rcx, qword [rcx + 0x30]
mov qword [rsp + 8], rdx
mov rax, qword [r14 + 0x18]
mov rsi, qword [r14 + 0xa8]
mov qword [rsp + 0x30], rcx
mov r9, qword [r14 + 0x10]
mov r10, qword [r14 + 0x38]
mov qword [rsp + 0x18], rax
lea rax, [r14 + 0xa0]
mov r12, qword [r14 + 0x60]
mov r13, qword [r14 + 0x88]
mov qword [rsp + 0x70], rsi
mov rdx, qword [r14 + 0x40]
mov rcx, qword [r14 + 0x20]
mov qword [rsp + 0x10], r9
mov rbx, qword [r14 + 0x90]
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x50], r12
mov rbp, qword [r14 + 0x80]
mov r9, qword [r14 + 0xb0]
mov r10, qword [r14 + 0x68]
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x40], rdx
mov rdx, qword [r14 + 0xb8]
mov qword [rsp + 0x20], rcx
mov rsi, qword [r14 + 0x48]
mov r13, qword [r14 + 0x70]
mov rcx, qword [r14 + 0x98]
mov qword [rsp + 0xc0], rax
lea rax, [0x007987c0]
mov r12, qword [r14 + 0xc0]
mov qword [rsp], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xc8], rax
mov rax, rcx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x58], rsi
mov rsi, r12
mov r12, r8
mov r8, r13
mov qword [rsp + 0x60], r15
mov r13, r11
mov r15, rdi
mov r11, qword [rsp + 0x70]
mov rdi, rbx
mov rbx, r15
nop word cs:[rax + rax]
xor r13, qword [rsp + 0x28]
xor r13, qword [rsp + 0x60]
xor r13, r12
xor rbx, r13
mov r13, qword [rsp + 8]
xor r13, qword [rsp + 0x30]
xor r13, qword [rsp + 0x48]
xor r13, rbp
mov rbp, qword [rsp + 0x10]
xor r11, r13
xor rbp, qword [rsp + 0x38]
xor rbp, qword [rsp + 0x50]
xor rcx, rbp
xor rcx, r9
mov r9, qword [rsp + 0x18]
xor r9, qword [rsp + 0x40]
xor r9, r10
mov r10, rcx
xor rdi, r9
rol r10, 1
xor rdx, rdi
mov rdi, qword [rsp + 0x20]
xor rdi, qword [rsp + 0x58]
mov r12, rdx
xor r10, rbx
xor qword [r14 + 8], r10
xor r8, rdi
xor qword [r14 + 0x30], r10
xor rax, r8
mov r8, r11
xor rsi, rax
rol r8, 1
xor qword [r14 + 0x58], r10
xor r8, rsi
xor qword [r14], r8
xor qword [r14 + 0x28], r8
xor qword [r14 + 0x50], r8
xor qword [r14 + 0x78], r8
xor qword [r14 + 0xa0], r8
xor qword [r14 + 0x80], r10
rol r12, 1
xor r11, r12
rol rsi, 1
rol rbx, 1
xor qword [r14 + 0xa8], r10
xor rcx, rsi
xor qword [r14 + 0x10], r11
xor rdx, rbx
mov rdi, qword [r14 + 0x30]
ror rdi, 0x14
xor qword [r14 + 0x48], rdx
mov r10, qword [r14 + 0x48]
rol r10, 0x14
xor qword [r14 + 0xb0], r11
mov r9, qword [r14 + 0xb0]
ror r9, 3
xor qword [r14 + 0x18], rcx
xor qword [r14 + 0x40], rcx
xor qword [r14 + 0x68], rcx
xor qword [r14 + 0x90], rcx
xor qword [r14 + 0xb8], rcx
xor qword [r14 + 0x20], rdx
xor qword [r14 + 0x70], rdx
xor qword [r14 + 0x98], rdx
xor qword [r14 + 0xc0], rdx
xor qword [r14 + 0x38], r11
xor qword [r14 + 0x60], r11
xor qword [r14 + 0x88], r11
mov r11, qword [r14 + 0x70]
ror r11, 0x19
mov rdx, qword [r14 + 0xa0]
mov rax, qword [r14 + 0xb8]
mov qword [rsp + 0x68], r11
rol rdx, 0x12
mov rbx, qword [r14 + 0x10]
mov r12, qword [r14 + 0x60]
mov qword [rsp + 0x50], rdx
ror r12, 0x15
mov rsi, qword [r14 + 0x68]
mov rcx, qword [r14 + 0x98]
ror rbx, 2
mov qword [r14 + 0xb0], r11
mov r13, qword [r14 + 0x20]
mov rbp, qword [r14 + 0xa8]
mov qword [rsp + 0x70], rbx
rol rsi, 0x19
rol rcx, 8
mov r15, qword [r14 + 0x78]
ror rax, 8
mov r8, qword [r14 + 0x40]
rol r13, 0x1b
mov rdx, qword [r14 + 0x28]
rol rbp, 2
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x90], r13
mov r13, rdi
ror r15, 0x17
mov rsi, qword [r14 + 0xc0]
ror r8, 9
not r13
ror rdx, 0x1c
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x88], r15
mov r11, qword [r14 + 0x80]
rol rsi, 0xe
ror r11, 0x13
mov qword [r14 + 0xb8], r15
mov r15, r13
mov r13, r12
and r15, r12
mov qword [rsp + 0x98], rbp
not r13
mov qword [r14 + 0xc0], rbp
mov rbp, qword [r14 + 0x90]
rol rbp, 0x15
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xa0], r8
mov qword [r14 + 0xa8], r8
mov qword [rsp + 0xa8], rdx
mov rdx, qword [r14 + 0x18]
rol rdx, 0x1c
mov qword [r14 + 0xa0], rbx
mov rbx, qword [r14 + 0x88]
rol rbx, 0xf
xor r15, qword [r14]
mov rax, qword [r14 + 8]
mov qword [rsp + 0xb0], rbx
rol rax, 1
mov rbx, qword [r14 + 0x50]
mov r8, qword [r14 + 0x38]
mov qword [rsp + 0xb8], r15
mov r15, r13
and r15, rbp
mov rcx, qword [r14 + 0x58]
mov r13, r15
rol rbx, 3
xor r13, rdi
rol r8, 6
mov qword [rsp + 8], r13
mov qword [r14 + 8], r13
mov r13, rbp
rol rcx, 0xa
not r13
mov r15, r13
and r15, rsi
mov r13, r15
mov r15, rsi
not r15
and r15, qword [r14]
xor r13, r12
xor r15, rbp
mov rbp, qword [r14]
mov qword [rsp + 0x10], r13
not rbp
and rdi, rbp
mov qword [r14 + 0x10], r13
mov r13, r10
xor rdi, rsi
not r13
mov qword [rsp + 0x18], r15
mov rbp, r13
mov r13, rbx
and rbp, rbx
mov qword [r14 + 0x18], r15
mov r15, r11
not r13
mov rsi, rbp
not r15
mov rbp, r13
xor rsi, rdx
mov r13, r8
and r15, r9
and rbp, r11
not r13
mov qword [rsp + 0x20], rdi
xor r15, rbx
mov rbx, r9
mov r12, rbp
mov qword [r14 + 0x20], rdi
not rbx
xor r12, r10
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x28], rsi
and rbx, rdx
not rdx
mov qword [r14 + 0x28], rsi
xor rbx, r11
and rdx, r10
mov r10, r13
mov qword [rsp + 0x30], r12
mov rbp, rdi
xor rdx, r9
mov r9, qword [rsp + 0x48]
mov qword [r14 + 0x30], r12
not rbp
mov qword [rsp + 0x38], r15
and r10, r9
mov r11, r10
mov r10, r9
not r10
xor r11, rax
mov qword [r14 + 0x38], r15
and r10, rdi
mov rsi, r10
mov qword [rsp + 0x40], rbx
xor rsi, r8
mov qword [r14 + 0x40], rbx
mov qword [rsp + 0x58], rdx
mov qword [r14 + 0x48], rdx
mov qword [rsp + 0x60], r11
mov qword [r14 + 0x50], r11
mov qword [rsp + 0x48], rsi
mov r12, qword [rsp + 0x50]
mov r10, r12
and rbp, r12
not r10
xor rbp, r9
mov qword [r14 + 0x58], rsi
mov r15, qword [rsp + 0xa8]
and r10, rax
not rax
mov rbx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0xb0]
and r8, rax
xor r10, rdi
mov qword [r14 + 0x60], rbp
mov rax, qword [rsp + 0x90]
xor r8, r12
mov r12, r15
mov rdi, rbx
mov qword [rsp + 0x50], rbp
not r12
mov rbp, rcx
mov r13, rdx
not rdi
and r12, rcx
and rdi, rax
not rbp
not r13
xor r12, rax
not rax
and r13, rbx
and rbp, rdx
and rax, r15
xor rbp, r15
xor rcx, r13
xor rdi, rdx
mov rsi, qword [rsp + 0xc0]
xor rax, rbx
mov qword [r14 + 0x68], r10
mov qword [r14 + 0x70], r8
mov r9, qword [rsp + 0xc8]
mov qword [r14 + 0x78], r12
mov qword [r14 + 0x80], rbp
mov qword [r14 + 0x88], rcx
mov qword [r14 + 0x90], rdi
mov qword [r14 + 0x98], rax
mov r11, qword [rsi + 0x10]
mov r15, qword [rsi + 0x18]
movdqu xmm0, xmmword [rsi]
mov qword [r9 + 0x10], r11
mov qword [r9 + 0x18], r15
mov rdx, qword [rsi + 0x20]
movaps xmmword [r9], xmm0
mov r13, qword [rsp + 0xd8]
mov r9, qword [rsp + 0xe8]
mov rbx, r13
not rbx
and rbx, r11
not r11
xor rbx, qword [rsp + 0x70]
and r11, r9
not r9
xor r11, qword [rsp + 0xa0]
mov qword [r14 + 0xa0], rbx
and r9, rdx
xor r9, qword [rsp + 0x68]
mov qword [r14 + 0xa8], r11
not rdx
mov qword [r14 + 0xb0], r9
mov rsi, qword [rsp + 0xd0]
and rdx, rsi
not rsi
and rsi, r13
mov r13, qword [rsp]
xor rdx, qword [rsp + 0x88]
mov qword [r14 + 0xb8], rdx
xor rsi, qword [rsp + 0x98]
mov r15, qword [rsp + 0xb8]
mov qword [r14 + 0xc0], rsi
xor r15, qword [r13]
add qword [rsp], 8
mov r13, r15
mov qword [r14], r15
lea r15, [0x00798880]
cmp r15, qword [rsp]
jne 0x408730
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret