Function at 0x40e9b0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [rcx + 0x18]
mov r11, qword [rcx + 0x28]
mov r13, qword [rcx + 0x20]
mov r12, qword [rcx + 0x30]
mov r15, qword [rcx + 0x38]
mov qword [rsp + 0xc0], rcx
mov rbp, rax
mov rax, r9
add rax, qword [rcx + 0x10]
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xd0], r8
mov rsi, r11
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x48], rax
mov r14, rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
nop dword [rax + rax]
mov rdx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x40]
mov rbx, r13
xor rbx, rsi
movabs rax, 0x1bd11bdaa9fc1a22
mov r8d, 4
xor rbx, rax
mov rdi, r14
call fcn.0040cbd0
lea r10, [rbp + r12]
mov rcx, rsi
mov r8, r15
add rcx, qword [rsp + 0x58]
add r8, qword [rsp + 0x68]
mov rax, r13
mov rdx, r10
add rdx, qword [rsp + 0x60]
add rax, qword [rsp + 0x50]
xor rdi, rbp
xor rbx, r12
add qword [rsp + 0xc8], 0x20
xor rbx, r15
lea r9, [rdi + r15]
add rcx, r14
lea r11, [r14 + rbx]
add rdx, r8
rol r8, 0x10
add rax, rcx
xor r8, rdx
rol rcx, 0xe
mov qword [rsp + 0x28], r11
xor rcx, rax
add rax, r8
ror r8, 0xc
xor r8, rax
add rdx, rcx
ror rcx, 7
xor rcx, rdx
add rdx, r8
ror r8, 0x18
add rax, rcx
xor r8, rdx
rol rcx, 0x17
xor rcx, rax
add rax, r8
rol r8, 5
xor r8, rax
add rdx, rcx
ror rcx, 0x1b
xor rcx, rdx
lea r8, [rbx + r8 + 1]
add rax, rsi
add rcx, r10
add rdx, r9
add rax, rcx
add rdx, r8
rol rcx, 0x19
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
ror r8, 0x12
xor rcx, rdx
xor r8, rax
add rax, rcx
ror rcx, 6
add rdx, r8
rol r8, 0x16
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
rol r8, 0x20
xor rcx, rdx
xor r8, rax
add rcx, r9
add rax, r12
lea r8, [r8 + r13 + 2]
add rdx, r11
add rax, rcx
rol rcx, 0xe
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r11
xor r8, rax
lea r11, [r13 + rbp]
lea r8, [r8 + rsi + 3]
add rax, r15
add rdx, r11
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
mov qword [rsp + 0x30], r11
add rax, r8
add rdx, rcx
rol rcx, 0xc
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r11
xor r8, rax
lea r11, [rdi + rsi]
lea r8, [r8 + r12 + 4]
add rax, rbx
add rax, rcx
add rdx, r11
rol rcx, 0xe
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r11
xor r8, rax
lea r11, [r14 + r12]
lea r8, [r8 + r15 + 5]
add rax, r13
add rdx, r11
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
ror r8, 0x12
xor rcx, rdx
xor r8, rax
add rax, rcx
ror rcx, 6
add rdx, r8
rol r8, 0x16
xor rcx, rax
xor r8, rdx
add rax, r8
add rdx, rcx
rol rcx, 0x20
xor rcx, rdx
rol r8, 0x20
add rcx, r11
xor r8, rax
lea r11, [r15 + rbp]
add rax, rsi
lea r8, [rbx + r8 + 6]
add rax, rcx
add rdx, r11
rol rcx, 0xe
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
xor r8, rax
add rax, r12
add rcx, r11
lea r11, [rbx + rdi]
lea r8, [r8 + r13 + 7]
add rax, rcx
rol rcx, 0x19
add rdx, r11
xor rcx, rax
add rdx, r8
ror r8, 0x1f
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
xor rcx, rdx
ror r8, 0x12
xor r8, rax
add rax, rcx
ror rcx, 6
xor rcx, rax
add rdx, r8
rol r8, 0x16
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
xor rcx, rdx
rol r8, 0x20
add rcx, r11
xor r8, rax
lea r11, [r14 + r13]
add rax, r15
lea r8, [r8 + rsi + 8]
add rax, rcx
add rdx, r11
rol rcx, 0xe
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r11
xor r8, rax
lea r11, [rsi + rbp]
lea r8, [r8 + r12 + 9]
add rax, rbx
add rdx, r11
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rax, r8
ror r8, 0x12
xor r8, rax
add rdx, rcx
rol rcx, 0xc
xor rcx, rdx
add rdx, r8
rol r8, 0x16
add rax, rcx
ror rcx, 6
xor r8, rdx
xor rcx, rax
add rax, r8
rol r8, 0x20
add rdx, rcx
rol rcx, 0x20
xor r8, rax
xor rcx, rdx
add rax, r13
lea r8, [r8 + r15 + 0xa]
add rcx, r11
lea r11, [rdi + r12]
add rax, rcx
rol rcx, 0xe
add rdx, r11
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
xor rcx, rdx
ror r8, 0xc
xor r8, rax
add rax, rcx
rol rcx, 0x17
xor rcx, rax
add rdx, r8
ror r8, 0x18
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
xor rcx, rdx
rol r8, 5
add rcx, r11
xor r8, rax
lea r11, [r14 + r15]
lea r8, [rbx + r8 + 0xb]
add rax, rsi
add rdx, r11
add rax, rcx
rol rcx, 0x19
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
ror r8, 0x12
xor rcx, rdx
xor r8, rax
add rax, rcx
ror rcx, 6
add rdx, r8
rol r8, 0x16
xor rcx, rax
xor r8, rdx
add rax, r8
rol r8, 0x20
xor r8, rax
add rdx, rcx
rol rcx, 0x20
xor rcx, rdx
lea r8, [r8 + r13 + 0xc]
add rax, r12
add rcx, r11
lea r11, [rbx + rbp]
add rdi, r13
add rax, rcx
rol rcx, 0xe
add rdx, r11
xor rcx, rax
add rdx, r8
rol r8, 0x10
xor r8, rdx
add rdx, rcx
ror rcx, 7
add rax, r8
ror r8, 0xc
xor rcx, rdx
xor r8, rax
add rax, rcx
rol rcx, 0x17
add rdx, r8
ror r8, 0x18
xor rcx, rax
xor r8, rdx
add rdx, rcx
ror rcx, 0x1b
add rax, r8
rol r8, 5
xor rcx, rdx
xor r8, rax
add rcx, r11
add rax, r15
lea r8, [r8 + rsi + 0xd]
add rdx, rdi
add rax, rcx
rol rcx, 0x19
lea r11, [r14 + rsi]
add rdx, r8
ror r8, 0x1f
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0xc
add rax, r8
ror r8, 0x12
xor rcx, rdx
xor r8, rax
add rax, rcx
ror rcx, 6
add rdx, r8
rol r8, 0x16
xor rcx, rax
xor r8, rdx
add rdx, rcx
rol rcx, 0x20
add rax, r8
rol r8, 0x20
xor rcx, rdx
xor r8, rax
add rdi, rcx
add rdx, r11
lea r8, [r8 + r12 + 0xe]
add rax, rbx
add rax, rdi
rol rdi, 0xe
add rdx, r8
rol r8, 0x10
xor rdi, rax
xor r8, rdx
add rdx, rdi
ror rdi, 7
add rax, r8
ror r8, 0xc
xor rdi, rdx
xor r8, rax
add rax, rdi
rol rdi, 0x17
add rdx, r8
ror r8, 0x18
xor rdi, rax
xor r8, rdx
add rdx, rdi
ror rdi, 0x1b
add rax, r8
rol r8, 5
xor rdi, rdx
xor r8, rax
add rdx, r10
add rdi, r11
lea rcx, [r8 + r15 + 0xf]
add rax, r13
mov r11, qword [rsp + 0x28]
add rax, rdi
rol rdi, 0x19
add rdx, rcx
ror rcx, 0x1f
xor rdi, rax
xor rcx, rdx
add rdx, rdi
rol rdi, 0xc
add rax, rcx
ror rcx, 0x12
xor rcx, rax
xor rdi, rdx
add rdx, rcx
rol rcx, 0x16
add rax, rdi
xor rcx, rdx
ror rdi, 6
xor rdi, rax
add rax, rcx
rol rcx, 0x20
add rdx, rdi
xor rcx, rax
rol rdi, 0x20
xor rdi, rdx
lea rcx, [rbx + rcx + 0x10]
add rax, rsi
add rdi, r10
add rdx, r9
add rax, rdi
add rdx, rcx
rol rdi, 0xe
rol rcx, 0x10
xor rdi, rax
xor rcx, rdx
add rdx, rdi
ror rdi, 7
add rax, rcx
ror rcx, 0xc
xor rdi, rdx
xor rcx, rax
add rax, rdi
rol rdi, 0x17
add rdx, rcx
ror rcx, 0x18
xor rdi, rax
xor rcx, rdx
add rdx, rdi
ror rdi, 0x1b
add rax, rcx
rol rcx, 5
xor rdi, rdx
xor rcx, rax
add rdi, r9
add rax, r12
lea rcx, [rcx + r13 + 0x11]
add rax, rdi
add rdx, r11
rol rdi, 0x19
xor rdi, rax
add rdx, rcx
ror rcx, 0x1f
lea r12, [rdi + rdx]
xor rcx, rdx
rol rdi, 0xc
add rax, rcx
ror rcx, 0x12
xor rdi, r12
xor rcx, rax
lea r13, [rdi + rax]
add r12, rcx
ror rdi, 6
rol rcx, 0x16
mov rax, qword [rsp + 0xc0]
xor rdi, r13
xor rcx, r12
add r13, rcx
add r12, rdi
rol rcx, 0x20
rol rdi, 0x20
xor rcx, r13
add r13, r15
xor rdi, r12
xor r13, qword [rsp + 0x50]
add r12, qword [rsp + 0x30]
lea rcx, [rcx + rsi + 0x12]
xor r12, qword [rsp + 0x60]
xor rcx, qword [rsp + 0x68]
lea rsi, [rdi + r11]
xor rsi, qword [rsp + 0x58]
add r14, qword [rsp + 0xd8]
mov qword [rax + 0x20], r13
mov qword [rax + 0x30], r12
mov qword [rax + 0x38], rcx
mov r15, rcx
mov qword [rax + 0x28], rsi
movabs rax, 0xbfffffffffffffff
and rbp, rax
sub qword [rsp + 0x38], 1
jne 0x40ea20
mov rax, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xc0]
sub rax, 1
imul rax, qword [rsp + 0xd8]
add rax, qword [rsp + 0x48]
mov qword [rsi + 0x10], rax
mov rax, rsi
mov qword [rax + 0x18], rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret