Function at 0x40de70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
mov rax, qword [rcx + 0x18]
mov r12, qword [rcx + 0x10]
mov qword [rsp + 0x318], rdx
mov rdx, rcx
mov r13, qword [rcx + 0x30]
mov r10, qword [rcx + 0x50]
mov rbx, qword [rcx + 0x58]
mov qword [rsp + 0x310], rcx
mov rbp, qword [rcx + 0x28]
mov qword [rsp + 0x328], r9
mov qword [rsp + 0x58], rax
mov r9, qword [rcx + 0x40]
mov qword [rsp + 0x188], rax
mov r15, qword [rcx + 0x20]
mov rax, qword [rcx + 0x48]
mov rsi, qword [rcx + 0x38]
mov r11, qword [rsp + 0x310]
mov rcx, qword [rdx + 0x60]
mov r14, qword [rdx + 0x68]
mov qword [rsp + 0x320], r8
mov qword [rsp + 0x28], r10
mov r10, r9
mov r11, qword [r11 + 0x98]
mov qword [rsp + 0x48], rbx
mov rbx, rax
mov qword [rsp + 0x20], rcx
mov rcx, rdx
mov rdx, qword [rdx + 0x70]
mov rdi, qword [rcx + 0x78]
mov r8, r11
lea r11, [rsp + 0x100]
mov qword [rsp + 0x38], rdx
mov rdx, rcx
mov rcx, qword [rcx + 0x80]
mov qword [rsp + 0xf0], r11
lea r11, [rsp + 0x180]
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x40], rcx
mov rcx, qword [rdx + 0x88]
mov rdx, qword [rdx + 0x90]
mov qword [rsp + 0xf8], r11
mov r11, r13
mov r9, qword [rsp + 0x28]
mov r13, rcx
mov rax, rdx
mov rdx, r12
mov r12, rdi
mov rdi, rbp
nop word cs:[rax + rax]
add rdx, qword [rsp + 0x328]
mov rbp, qword [rsp + 0x50]
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x1a8], r11
mov qword [rsp + 0x1b8], r10
mov qword [rsp + 0x1c8], r9
mov qword [rsp + 0x210], rbp
movabs rbp, 0x1bd11bdaa9fc1a22
mov qword [rsp + 0x208], rax
mov rcx, rdx
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x1d8], rdx
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x198], r15
mov qword [rsp + 0x1a0], rdi
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0x1c0], rbx
mov qword [rsp + 0x1e8], rdx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x1d0], r8
mov qword [rsp + 0x1e0], r14
mov qword [rsp + 0x1f0], r12
mov qword [rsp + 0x200], r13
mov qword [rsp + 0x1f8], rdx
mov rdx, r15
xor rdx, rdi
xor rdx, rbp
mov rbp, rcx
xor rdx, r11
xor rdx, rsi
xor rdx, r10
xor rdx, rbx
xor rdx, r9
xor rdx, r8
xor rdx, qword [rsp + 0x20]
mov r8d, 0x10
xor rdx, r14
xor rdx, qword [rsp + 0x38]
xor rdx, r12
xor rdx, qword [rsp + 0x40]
xor rdx, r13
xor rdx, rax
xor rdx, qword [rsp + 0x50]
mov qword [rsp + 0x218], rdx
mov rdx, rcx
xor rdx, qword [rsp + 0x58]
mov qword [rsp + 0x190], rdx
mov rdx, qword [rsp + 0x318]
mov rcx, qword [rsp + 0xf0]
call fcn.0040cbd0
mov r10, qword [rsp + 0x100]
mov r9, qword [rsp + 0x108]
mov r11, qword [rsp + 0x68]
mov r8, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x70], r10
add r15, r10
mov r10, qword [rsp + 0x110]
mov qword [rsp + 0x78], r9
add rdi, r9
mov r9, qword [rsp + 0x118]
mov qword [rsp + 0x80], r10
add r11, r10
mov r10, qword [rsp + 0x120]
mov qword [rsp + 0x88], r9
add rsi, r9
mov qword [rsp + 0x90], r10
mov r9, r10
mov r10, qword [rsp + 0x30]
add r10, r9
mov r9, qword [rsp + 0x128]
mov qword [rsp + 0x98], r9
add rbx, r9
mov r9, qword [rsp + 0x130]
mov rax, r9
mov qword [rsp + 0xa0], r9
mov r9, qword [rsp + 0x28]
add r9, rax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0xa8], rax
add r8, rax
mov rax, qword [rsp + 0x140]
add rcx, rax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x30], rcx
mov rcx, qword [rsp + 0x148]
add r14, rcx
mov qword [rsp + 0xb8], rcx
mov rcx, qword [rsp + 0x150]
mov rax, rcx
mov qword [rsp + 0xc0], rcx
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0xc8], rax
add r12, rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0xd0], rax
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x38], rcx
add rdx, rax
mov rax, qword [rsp + 0x168]
add r13, rax
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x170]
add r13, rbp
mov qword [rsp + 0x28], r13
mov r13, qword [rsp + 0x178]
mov rbp, rax
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x60]
add rax, qword [rsp + 0x58]
mov qword [rsp + 0xe8], r13
add rax, rbp
mov rbp, qword [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov rax, r14
add rbp, r13
mov r13, qword [rsp + 0xf8]
nop
add r10, rbx
rol rbx, 8
mov rcx, qword [rsp + 0x38]
xor rbx, r10
add r15, rdi
rol rdi, 0x18
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsp + 0x30]
xor rdi, r15
add rcx, r12
rol r12, 0x11
mov qword [rsp + 0x48], rdi
add r9, r8
xor r12, rcx
mov rdi, qword [rsp + 0x40]
add rbx, rax
rol rax, 8
ror r8, 0x11
mov r14, rax
mov rax, qword [rsp + 0x28]
xor r8, r9
xor r14, rbx
add r9, r12
rol r12, 0xa
add r15, r14
ror r14, 0x1a
xor r12, r9
add rdx, rax
xor r14, r15
rol rax, 0x16
add r11, rsi
xor rax, rdx
add rdi, rbp
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], r12
rol rsi, 0xd
mov r12, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
ror rbp, 0x1b
xor rsi, r11
xor rbp, rdi
add r11, rax
rol rax, 0x13
xor rax, r11
add r10, rbp
add rcx, r8
add rdx, rsi
ror r8, 0xf
rol rsi, 0x12
xor r8, rcx
xor rsi, rdx
add rdi, r12
add rbx, r14
ror rbp, 9
rol r12, 0x17
ror r14, 0xc
xor rbp, r10
xor r12, rdi
add r15, r8
add r10, rsi
xor r14, rbx
ror r8, 0x1f
ror rsi, 0xd
add r11, r12
xor r8, r15
xor rsi, r10
add r9, r14
rol r12, 4
rol r14, 0xd
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], rsi
mov r8, r12
mov rsi, r14
mov r12, qword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
add rdx, rbp
add rdi, rax
ror rbp, 0x1e
ror rax, 0x17
xor r8, r11
xor rsi, r9
xor rbp, rdx
xor rax, rdi
add rbx, r12
add rcx, r14
rol r14, 0x11
add r15, rbp
rol rbp, 5
xor r14, rcx
add rdi, rsi
xor rbp, r15
add r10, r14
ror r14, 0x17
ror r12, 5
xor r14, r10
xor r12, rbx
add r9, rax
mov qword [rsp + 0x50], r14
mov r14, rsi
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x30], rbp
ror rax, 0x10
lea rbp, [r8 + rbx]
mov rbx, r8
mov r8, qword [rsp + 0x38]
add r11, r12
xor rax, r9
rol r12, 0x14
rol rbx, 0x1c
xor r12, r11
mov qword [rsp + 0x48], rax
ror r14, 0x11
mov rax, rsi
xor r14, rdi
add rcx, rsi
add rdx, r8
mov qword [rsp + 0x28], r12
rol rax, 0x10
mov r12, rbx
rol r8, 0x19
add r15, qword [r13 + 0x20]
add r11, qword [r13 + 0x30]
xor r12, rbp
xor rax, rcx
xor r8, rdx
add rax, qword [r13 + 0x38]
mov rbx, r14
mov r14, rbp
add rbx, qword [r13 + 0x28]
add r10, qword [r13 + 0x40]
add r14, qword [r13 + 0x60]
add r8, qword [r13 + 0x58]
mov rsi, r12
add r9, qword [r13 + 0x50]
add rsi, qword [r13 + 0x48]
mov qword [rsp + 0x58], rdi
add r11, rax
rol rax, 9
add r15, rbx
ror rbx, 0x17
xor rax, r11
mov qword [rsp + 0x38], r14
mov r14, qword [rsp + 0x50]
xor rbx, r15
add r14, qword [r13 + 0x68]
add rcx, qword [r13 + 0x70]
add r10, rsi
add rdx, qword [r13 + 0x80]
mov r12, qword [rsp + 0x28]
add r9, r8
mov rdi, qword [r13 + 8]
add rdi, qword [r13 + 0x88]
ror rsi, 0x1b
add rdi, qword [rsp + 0x48]
add r12, qword [r13 + 0x78]
rol r8, 0x1f
xor rsi, r10
xor r8, r9
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x50], rsi
add rcx, r12
mov rbp, rdx
add rbp, 1
mov qword [rsp + 0x60], rbp
mov rbp, qword [r13 + 0x90]
add rbp, qword [r13 + 0x10]
mov qword [rsp + 0x28], rbp
mov rbp, qword [rsp + 0x58]
add rbp, qword [rsp + 0x28]
mov qword [rsp + 0x48], rbp
mov rbp, rdx
add rdx, 2
mov qword [rsp + 0x20], rdx
mov rdx, qword [r13 + 0x18]
add rbp, qword [r13 + 0x98]
mov rsi, qword [rsp + 0x48]
add rbp, qword [rsp + 0x30]
mov qword [rsp + 0x30], rbx
mov qword [r13 + 0xa0], rdx
mov qword [rsp + 0x68], rdx
mov rdx, qword [r13]
mov rbx, qword [rsp + 0x38]
mov qword [r13 + 0x18], rdx
mov rdx, qword [rsp + 0x40]
add rbx, r14
rol r14, 0xc
xor r14, rbx
ror r12, 0x11
add rsi, rbp
xor r12, rcx
add rdx, rdi
ror rdi, 0x14
xor rdi, rdx
add r9, r12
ror r12, 8
add r15, r14
xor r12, r9
add r11, rdi
rol r14, 0x10
ror rdi, 0x1e
mov qword [rsp + 0x48], r12
xor r14, r15
mov r12, qword [rsp + 0x50]
xor rdi, r11
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rdi
rol rbp, 0x1e
mov rdi, qword [rsp + 0x30]
xor rbp, rsi
add rcx, r8
lea r14, [r12 + rsi]
rol r8, 4
mov rsi, r12
xor r8, rcx
add rdx, rax
ror rsi, 0x16
lea r12, [rdi + rbx]
ror rax, 0xb
add r10, rbp
xor rax, rdx
add r15, r8
xor rsi, r14
ror rbp, 0xd
ror rdi, 0x17
rol r8, 0x1f
xor rbp, r10
xor rdi, r12
xor r8, r15
add r11, rsi
add r10, rax
ror rax, 0x11
xor rax, r10
mov rbx, qword [rsp + 0x40]
ror rsi, 0x14
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x48]
xor rsi, r11
add rdx, rbp
rol rbp, 0x13
mov qword [rsp + 0x30], r8
xor rbp, rdx
mov qword [rsp + 0x50], rsi
mov r8, rbx
lea rsi, [rbx + r14]
mov rbx, rax
add r9, rdi
add rbx, r12
add r15, rbp
ror rdi, 0x12
mov r12, rax
rol rbp, 9
xor rdi, r9
xor rbp, r15
ror r8, 0x16
ror r12, 0x14
xor r8, rsi
xor r12, rbx
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x48], rbp
lea rbp, [rdi + rsi]
mov rsi, qword [rsp + 0x50]
add r11, r12
ror r12, 0x10
add r9, r8
xor r12, r11
add rcx, rax
rol rax, 0x19
mov qword [rsp + 0x40], r12
lea r12, [rsi + rbx]
mov rbx, rsi
mov rsi, qword [rsp + 0x58]
xor rax, rcx
ror r8, 0x1d
add r10, rax
rol rdi, 0x17
ror rax, 0xc
xor r8, r9
xor rax, r10
xor rdi, rbp
add rcx, rsi
ror rsi, 0x1b
mov r14, r8
xor rsi, rcx
add rcx, qword [r13 + 0x78]
rol rbx, 0x1f
mov r8, qword [rsp + 0x30]
xor rbx, r12
add r12, qword [r13 + 0x68]
add r15, qword [r13 + 0x28]
add rdi, qword [r13 + 0x30]
add r13, 0x10
add r11, qword [r13 + 0x28]
add rsi, qword [r13 + 0x30]
mov qword [rsp + 0x38], rcx
mov rcx, r14
add rcx, qword [rsp + 0x28]
add rdx, r8
rol r8, 0x14
add r10, qword [r13 + 0x38]
xor r8, rdx
add rbx, qword [r13 + 0x40]
add r9, qword [r13 + 0x48]
add r8, qword [r13 + 0x50]
add rax, qword [r13 + 0x60]
mov qword [rsp + 0x28], rcx
mov rcx, qword [r13 - 0x10]
add rcx, qword [r13 + 0x88]
add rdx, qword [r13 + 0x78]
mov qword [rsp + 0x30], r12
mov r12, qword [rsp + 0x40]
add r12, qword [r13 + 0x70]
lea rcx, [rcx + rbp]
mov qword [rsp + 0x40], rcx
mov rbp, qword [rsp + 0x60]
mov rcx, qword [r13 + 0x10]
add rbp, qword [rsp + 0x68]
add rbp, qword [rsp + 0x48]
mov qword [r13 + 0x98], rcx
mov rcx, qword [r13 - 8]
mov qword [r13 + 0x10], rcx
cmp qword [rsp + 0x20], 0x15
jne 0x40e250
xor r8, qword [rsp + 0xa8]
mov r13, qword [rsp + 0x310]
mov r14, rax
xor rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x38]
xor r15, qword [rsp + 0x70]
xor rcx, qword [rsp + 0xc0]
xor rdi, qword [rsp + 0x78]
xor r11, qword [rsp + 0x80]
xor rsi, qword [rsp + 0x88]
xor r10, qword [rsp + 0x90]
xor rbx, qword [rsp + 0x98]
xor r9, qword [rsp + 0xa0]
mov qword [r13 + 0x58], r8
xor r14, qword [rsp + 0xb8]
xor r12, qword [rsp + 0xc8]
mov qword [rsp + 0x48], r8
mov r8, qword [rsp + 0x30]
xor r8, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x40]
mov qword [r13 + 0x70], rcx
mov qword [r13 + 0x20], r15
mov qword [r13 + 0x28], rdi
mov qword [r13 + 0x30], r11
mov qword [r13 + 0x38], rsi
mov qword [r13 + 0x60], r8
mov qword [r13 + 0x40], r10
mov qword [r13 + 0x48], rbx
mov qword [r13 + 0x50], r9
mov qword [rsp + 0x20], r8
mov qword [r13 + 0x68], r14
mov r8, r13
mov qword [rsp + 0x38], rcx
mov qword [r13 + 0x78], r12
movabs rcx, 0xbfffffffffffffff
mov qword [rsp + 0x40], rdx
mov qword [r13 + 0x80], rdx
mov rdx, r8
xor rbp, qword [rsp + 0xe8]
and rcx, qword [rsp + 0x188]
xor rax, qword [rsp + 0xe0]
mov r13, qword [rsp + 0x28]
sub qword [rsp + 0x318], 0xffffffffffffff80
xor r13, qword [rsp + 0xd8]
sub qword [rsp + 0x320], 1
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rcx
mov qword [r8 + 0x90], rax
mov qword [r8 + 0x88], r13
mov qword [rsp + 0x188], rcx
mov qword [rdx + 0x98], rbp
je 0x40e870
mov rdx, qword [rsp + 0x180]
jmp 0x40df80
mov rcx, qword [rsp + 0x310]
mov rax, qword [rsp + 0x180]
mov qword [rcx + 0x10], rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x18], rcx
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret