Function at 0x7f0030
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov esi, r9d
mov r12d, r8d
mov r15, rdx
mov r13, rcx
mov rax, qword [rbp + 0x78]
mov qword [rbp - 8], rax
mov eax, dword [rbp + 0x70]
mov dword [rbp + 4], eax
movzx edx, word [r13]
mov ecx, dword [r15]
mov eax, ecx
shr eax, 0xb
imul eax, edx
cmp r12d, 7
mov qword [rbp - 0x10], rsi
ja 0x7f00e4
mov dword [r15], eax
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add ecx, edx
mov word [r13], cx
cmp eax, 0xffffff
ja 0x7f00a5
shl eax, 8
mov dword [r15], eax
mov rcx, r15
call fcn.007f0480
mov eax, dword [r15]
lea ecx, [rsi*8]
lea rsi, [r13 + rcx*2 + 4]
mov r14d, r12d
shr r14d, 2
movzx edx, word [r13 + rcx*2 + 6]
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
and r14d, 1
jne 0x7f019e
mov dword [r15], ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add eax, edx
jmp 0x7f01b4
mov ebx, eax
add qword [r15 + 8], rbx
sub ecx, eax
mov dword [r15], ecx
mov eax, edx
shr eax, 5
sub edx, eax
mov word [r13], dx
cmp ecx, 0xffffff
ja 0x7f0114
shl ecx, 8
mov dword [r15], ecx
mov rcx, r15
call fcn.007f0480
mov ecx, dword [r15]
movzx edx, word [r13 + 2]
mov eax, ecx
shr eax, 0xb
imul eax, edx
cmp r12d, 0xf
ja 0x7f0204
mov dword [r15], eax
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add ecx, edx
mov word [r13 + 2], cx
cmp eax, 0xffffff
ja 0x7f0157
shl eax, 8
mov dword [r15], eax
mov rcx, r15
call fcn.007f0480
mov eax, dword [r15]
lea ecx, [rsi*8]
lea r14, [r13 + rcx*2 + 0x104]
add r12d, 0xfffffff8
mov esi, r12d
shr esi, 2
movzx edx, word [r13 + rcx*2 + 0x106]
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
and esi, 1
jne 0x7f0399
mov dword [r15], ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add eax, edx
jmp 0x7f03af
mov ebx, ecx
add qword [r15 + 8], rbx
sub eax, ecx
mov dword [r15], eax
mov ecx, edx
shr ecx, 5
sub edx, ecx
mov ecx, eax
mov eax, edx
mov word [rsi + 2], ax
cmp ecx, 0xffffff
ja 0x7f01d1
shl ecx, 8
mov dword [r15], ecx
mov rcx, r15
call fcn.007f0480
mov ecx, dword [r15]
or r14d, 2
mov ebx, r12d
shr ebx, 1
movzx edx, word [rsi + r14*2]
mov eax, ecx
shr eax, 0xb
imul eax, edx
and ebx, 1
jne 0x7f02cc
mov dword [r15], eax
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
jmp 0x7f02e0
mov ebx, eax
add qword [r15 + 8], rbx
sub ecx, eax
mov dword [r15], ecx
mov eax, edx
shr eax, 5
sub edx, eax
mov word [r13 + 2], dx
cmp ecx, 0xffffff
ja 0x7f0231
shl ecx, 8
mov dword [r15], ecx
mov rcx, r15
call fcn.007f0480
add r12d, 0xfffffff0
mov eax, 1
mov esi, 7
nop
mov ebx, r12d
mov ecx, esi
shr ebx, cl
mov r14d, eax
movzx ecx, word [r13 + r14*2 + 0x204]
mov edx, dword [r15]
mov eax, edx
shr eax, 0xb
imul eax, ecx
and ebx, 1
jne 0x7f0280
mov dword [r15], eax
mov edx, 0x800
sub edx, ecx
shr edx, 5
add edx, ecx
jmp 0x7f0296
mov edi, eax
add qword [r15 + 8], rdi
sub edx, eax
mov dword [r15], edx
mov eax, ecx
shr eax, 5
sub ecx, eax
mov eax, edx
mov edx, ecx
mov word [r13 + r14*2 + 0x204], dx
cmp eax, 0xffffff
ja 0x7f02b4
shl eax, 8
mov dword [r15], eax
mov rcx, r15
call fcn.007f0480
add r14d, r14d
or ebx, r14d
dec esi
cmp esi, 0xffffffff
mov eax, ebx
jne 0x7f0240
jmp 0x7f0356
mov edi, eax
add qword [r15 + 8], rdi
sub ecx, eax
mov dword [r15], ecx
mov eax, edx
shr eax, 5
sub edx, eax
mov eax, ecx
mov word [rsi + r14*2], dx
cmp eax, 0xffffff
ja 0x7f02fd
shl eax, 8
mov dword [r15], eax
mov rcx, r15
call fcn.007f0480
mov eax, dword [r15]
add r14d, r14d
or r14d, ebx
movzx edx, word [rsi + r14*2]
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
test r12b, 1
jne 0x7f0327
mov dword [r15], ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add edx, eax
jmp 0x7f033b
mov ebx, ecx
add qword [r15 + 8], rbx
sub eax, ecx
mov dword [r15], eax
mov ecx, edx
shr ecx, 5
sub edx, ecx
mov ecx, eax
mov word [rsi + r14*2], dx
cmp ecx, 0xffffff
ja 0x7f0356
shl ecx, 8
mov dword [r15], ecx
mov rcx, r15
call fcn.007f0480
cmp dword [rbp + 4], 0
mov rdx, qword [rbp - 0x10]
je 0x7f036c
mov eax, edx
dec dword [r13 + rax*4 + 0x4808]
je 0x7f037d
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, r13
mov r8, qword [rbp - 8]
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.007ef8e0
mov ebx, ecx
add qword [r15 + 8], rbx
sub eax, ecx
mov dword [r15], eax
mov ecx, edx
shr ecx, 5
sub edx, ecx
mov ecx, eax
mov eax, edx
mov word [r14 + 2], ax
cmp ecx, 0xffffff
ja 0x7f03cd
shl ecx, 8
mov dword [r15], ecx
mov rcx, r15
call fcn.007f0480
mov ecx, dword [r15]
or esi, 2
mov ebx, r12d
shr ebx, 1
movzx edx, word [r14 + rsi*2]
mov eax, ecx
shr eax, 0xb
imul eax, edx
and ebx, 1
jne 0x7f03f8
mov dword [r15], eax
mov ecx, 0x800
sub ecx, edx
shr ecx, 5
add edx, ecx
jmp 0x7f040c
mov edi, eax
add qword [r15 + 8], rdi
sub ecx, eax
mov dword [r15], ecx
mov eax, edx
shr eax, 5
sub edx, eax
mov eax, ecx
mov word [r14 + rsi*2], dx
cmp eax, 0xffffff
ja 0x7f0429
shl eax, 8
mov dword [r15], eax
mov rcx, r15
call fcn.007f0480
mov eax, dword [r15]
add esi, esi
or esi, ebx
movzx edx, word [r14 + rsi*2]
mov ecx, eax
shr ecx, 0xb
imul ecx, edx
test r12b, 1
jne 0x7f0451
mov dword [r15], ecx
mov eax, 0x800
sub eax, edx
shr eax, 5
add edx, eax
jmp 0x7f0465
mov ebx, ecx
add qword [r15 + 8], rbx
sub eax, ecx
mov dword [r15], eax
mov ecx, edx
shr ecx, 5
sub edx, ecx
mov ecx, eax
mov word [r14 + rsi*2], dx
cmp ecx, 0xffffff
ja 0x7f0356
jmp 0x7f0348