Function at 0x402bdd
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 0x403181
pushfq
push rbx
push rbp
push r12
push r13
push r14
push r15
cld
mov r9d, r9d
lea r14, [0x004031c0]
lea r10, [0x00403e00]
cmp r9, 0
cmove r14, r10
mov r10d, dword [0x00640500]
cmp rdx, 0x200
jb 0x402f20
test rdx, 0xf
jne 0x402f20
bt r10d, 0x1c
jb 0x402f20
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 0x402c89
sub r12, r11
sub r15, r12
jmp 0x402ca0
sub r12, r10
and r12, 0xfff
add r12, 0x140
sub r15, r12
nop dword [rax]
xchg r15, rsp
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 0x402d04
cmp r10, 0xf08
jb 0x402d1c
nop dword [rax]
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 dword [rax]
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 0x402d28
lea r14, [r14 - 0x900]
cmp rbx, 0
je 0x402dd0
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 sym._x86_64_AES_encrypt
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 0x402d60
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 0x402efc
cmp r9, r8
je 0x402e60
mov qword [rsp + 0x40], rbp
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 sym._x86_64_AES_decrypt
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 0x402de0
mov r12, qword [rsp + 0x38]
mov r10, qword [rbp]
mov r11, qword [rbp + 8]
mov qword [r12], r10
mov qword [r12 + 8], r11
jmp 0x402efc
mov r10, qword [rbp]
mov r11, qword [rbp + 8]
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
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 sym._x86_64_AES_decrypt
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 0x402ee0
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 0x402e74
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
cmp dword [rsp + 0x140], 0
lea rdi, [rsp + 0x50]
je 0x403160
mov ecx, 0x1e
xor rax, rax
rep stosq qword [rdi], rax
nop
jmp 0x403160
lea rbp, [rsp - 0x58]
and rbp, 0xffffffffffffffc0
lea r10, [rcx - 0x97]
sub r10, rbp
neg r10
and r10, 0x3c0
sub rbp, r10
xchg rbp, rsp
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 0x403070
test r10, 0xfffffffffffffff0
mov eax, dword [rbp]
mov ebx, dword [rbp + 4]
mov ecx, dword [rbp + 8]
mov edx, dword [rbp + 0xc]
je 0x403030
nop dword [rax]
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 sym._x86_64_AES_encrypt_compact
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 0x402fb4
test r10, 0xf
jne 0x403030
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 0x403160
mov r11, rax
mov r12, rcx
mov rcx, r10
mov rsi, r8
mov rdi, r9
rep movsb byte [rdi], byte [rsi]
nop
mov rcx, 0x10
sub rcx, r10
xor rax, rax
rep stosb byte [rdi], al
nop
mov r8, r9
mov r10, 0x10
mov rax, r11
mov rcx, r12
jmp 0x402fb4
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 dword [rax]
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 sym._x86_64_AES_decrypt_compact
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 0x403124
je 0x403104
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 0x40308c
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 0x403160
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 0x403160
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