Function at 0x29e85b6c070
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
cmp rdx, 0
je 0x29e85ad3071
pushfq
push rbx
push rbp
push r12
push r13
push r14
push r15
cld
mov r9d, r9d
lea r14, [0x29e85ad3080]
cmp r9, 0
jne 0x29e85ad2ac4
lea r14, [0x29e85ad3cc0]
mov r10d, dword [0x29e85cc4588]
cmp rdx, 0x200
jb 0x29e85ad2df0
test rdx, 0xf
jne 0x29e85ad2df0
bt r10d, 0x1c
jb 0x29e85ad2df0
lea r15, [rsp - 0x150]
and r15, 0xffffffffffffffc0
mov r10, r14
lea r11, [r14 + 0x900]
mov r12, r15
and r10, 0xfff
and r11, 0xfff
and r12, 0xfff
cmp r12, r11
jb 0x29e85ad2b32
sub r12, r11
sub r15, r12
jmp 0x29e85ad2b48
sub r12, r10
and r12, 0xfff
add r12, 0x140
sub r15, r12
nop
nop
xchg rsp, r15
mov qword [rsp + 0x10], r15
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x140], 0
mov rbp, r8
mov rbx, r9
mov r9, rsi
mov r8, rdi
mov r15, rcx
mov eax, dword [r15 + 0xf0]
mov r10, r15
sub r10, r14
and r10, 0xfff
cmp r10, 0x900
jb 0x29e85ad2bb4
cmp r10, 0xf08
jb 0x29e85ad2bcc
nop
nop
nop
mov rsi, r15
lea rdi, [rsp + 0x50]
lea r15, [rsp + 0x50]
mov ecx, 0x1e
rep movsq qword [rdi], qword [rsi]
nop
mov dword [rdi], eax
mov qword [rsp], r15
mov ecx, 0x12
nop
nop
nop
mov r10, qword [r14]
mov r11, qword [r14 + 0x20]
mov r12, qword [r14 + 0x40]
mov r13, qword [r14 + 0x60]
lea r14, [r14 + 0x80]
sub ecx, 1
jne 0x29e85ad2bd8
lea r14, [r14 - 0x900]
cmp rbx, 0
je 0x29e85ad2c80
mov eax, dword [rbp]
mov ebx, dword [rbp + 4]
mov ecx, dword [rbp + 8]
mov edx, dword [rbp + 0xc]
xor eax, dword [r8]
xor ebx, dword [r8 + 4]
xor ecx, dword [r8 + 8]
xor edx, dword [r8 + 0xc]
mov r15, qword [rsp]
mov qword [rsp + 0x18], r8
call fcn.29e85ad1a40
mov r8, qword [rsp + 0x18]
mov r10, qword [rsp + 0x28]
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
lea r8, [r8 + 0x10]
lea r9, [r9 + 0x10]
sub r10, 0x10
test r10, 0xfffffffffffffff0
mov qword [rsp + 0x28], r10
jne 0x29e85ad2c14
mov rbp, qword [rsp + 0x38]
mov dword [rbp], eax
mov dword [rbp + 4], ebx
mov dword [rbp + 8], ecx
mov dword [rbp + 0xc], edx
jmp 0x29e85ad2dc4
cmp r9, r8
je 0x29e85ad2d20
mov qword [rsp + 0x40], rbp
nop
nop
mov eax, dword [r8]
mov ebx, dword [r8 + 4]
mov ecx, dword [r8 + 8]
mov edx, dword [r8 + 0xc]
mov r15, qword [rsp]
mov qword [rsp + 0x18], r8
call fcn.29e85ad1f80
mov rbp, qword [rsp + 0x40]
mov r8, qword [rsp + 0x18]
mov r10, qword [rsp + 0x28]
xor eax, dword [rbp]
xor ebx, dword [rbp + 4]
xor ecx, dword [rbp + 8]
xor edx, dword [rbp + 0xc]
mov rbp, r8
sub r10, 0x10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x40], rbp
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
lea r8, [r8 + 0x10]
lea r9, [r9 + 0x10]
jne 0x29e85ad2c90
mov r12, qword [rsp + 0x38]
mov r10, qword [rbp]
mov r11, qword [rbp + 8]
mov qword [r12], r10
mov qword [r12 + 8], r11
jmp 0x29e85ad2dc4
mov r10, qword [rbp]
mov r11, qword [rbp + 8]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
nop
nop
mov eax, dword [r8]
mov ebx, dword [r8 + 4]
mov ecx, dword [r8 + 8]
mov edx, dword [r8 + 0xc]
mov r15, qword [rsp]
mov qword [rsp + 0x18], r8
call fcn.29e85ad1f80
mov r8, qword [rsp + 0x18]
mov r10, qword [rsp + 0x28]
xor eax, dword [rsp + 0x40]
xor ebx, dword [rsp + 0x44]
xor ecx, dword [rsp + 0x48]
xor edx, dword [rsp + 0x4c]
mov r11, qword [r8]
mov r12, qword [r8 + 8]
sub r10, 0x10
je 0x29e85ad2da7
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r12
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
lea r8, [r8 + 0x10]
lea r9, [r9 + 0x10]
mov qword [rsp + 0x28], r10
jmp 0x29e85ad2d34
mov rdi, qword [rsp + 0x38]
mov qword [rdi], r11
mov qword [rdi + 8], r12
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
nop
nop
cmp dword [rsp + 0x140], 0
lea rdi, [rsp + 0x50]
je 0x29e85ad3050
mov ecx, 0x1e
xor rax, rax
rep stosq qword [rdi], rax
nop
jmp 0x29e85ad3050
lea rbp, [rsp - 0x58]
and rbp, 0xffffffffffffffc0
lea r10, [rcx - 0x97]
sub r10, rbp
neg r10
and r10, 0x3c0
sub rbp, r10
xchg rsp, rbp
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x38], r8
mov rbp, r8
mov rbx, r9
mov r9, rsi
mov r8, rdi
mov r15, rcx
mov r10, rdx
mov eax, dword [r15 + 0xf0]
mov qword [rsp], r15
shl eax, 4
lea rax, [r15 + rax]
mov qword [rsp + 8], rax
lea r14, [r14 + 0x800]
lea rax, [rsp + 0x2f8]
sub rax, r14
and rax, 0x300
lea r14, [r14 + rax]
cmp rbx, 0
je 0x29e85ad2f50
test r10, 0xfffffffffffffff0
mov eax, dword [rbp]
mov ebx, dword [rbp + 4]
mov ecx, dword [rbp + 8]
mov edx, dword [rbp + 0xc]
je 0x29e85ad2f0c
nop
nop
nop
xor eax, dword [r8]
xor ebx, dword [r8 + 4]
xor ecx, dword [r8 + 8]
xor edx, dword [r8 + 0xc]
mov r15, qword [rsp]
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r10
call fcn.29e85ad1c30
mov r8, qword [rsp + 0x18]
mov r9, qword [rsp + 0x20]
mov r10, qword [rsp + 0x28]
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
lea r8, [r8 + 0x10]
lea r9, [r9 + 0x10]
sub r10, 0x10
test r10, 0xfffffffffffffff0
jne 0x29e85ad2e88
test r10, 0xf
jne 0x29e85ad2f0c
mov rbp, qword [rsp + 0x38]
mov dword [rbp], eax
mov dword [rbp + 4], ebx
mov dword [rbp + 8], ecx
mov dword [rbp + 0xc], edx
jmp 0x29e85ad3050
mov r11, rax
mov r12, rcx
mov rcx, r10
mov rsi, r8
mov rdi, r9
rep movsb byte [rdi], byte [rsi]
nop
mov ecx, 0x10
sub rcx, r10
xor rax, rax
rep stosb byte [rdi], al
nop
mov r8, r9
mov r10d, 0x10
mov rax, r11
mov rcx, r12
jmp 0x29e85ad2e88
shr rax, 3
add r14, rax
mov r11, qword [rbp]
mov r12, qword [rbp + 8]
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r12
nop
nop
nop
mov eax, dword [r8]
mov ebx, dword [r8 + 4]
mov ecx, dword [r8 + 8]
mov edx, dword [r8 + 0xc]
mov r15, qword [rsp]
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r10
call fcn.29e85ad2160
mov r8, qword [rsp + 0x18]
mov r9, qword [rsp + 0x20]
mov r10, qword [rsp + 0x28]
xor eax, dword [rsp + 0x40]
xor ebx, dword [rsp + 0x44]
xor ecx, dword [rsp + 0x48]
xor edx, dword [rsp + 0x4c]
mov r11, qword [r8]
mov r12, qword [r8 + 8]
sub r10, 0x10
jb 0x29e85ad3010
je 0x29e85ad2fef
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r12
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
lea r8, [r8 + 0x10]
lea r9, [r9 + 0x10]
jmp 0x29e85ad2f6c
mov rdi, qword [rsp + 0x38]
mov qword [rdi], r11
mov qword [rdi + 8], r12
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
jmp 0x29e85ad3050
mov rdi, qword [rsp + 0x38]
mov qword [rdi], r11
mov qword [rdi + 8], r12
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x44], ebx
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x4c], edx
mov rdi, r9
lea rsi, [rsp + 0x40]
lea rcx, [r10 + 0x10]
rep movsb byte [rdi], byte [rsi]
nop
jmp 0x29e85ad3050
mov rsi, qword [rsp + 0x10]
mov r15, qword [rsi]
mov r14, qword [rsi + 8]
mov r13, qword [rsi + 0x10]
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
lea rsp, [rsi + 0x30]
popfq
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
jmp 0x29e85ad2a70