Function at 0x140004b34
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r9, qword [rcx]
xor eax, eax
mov rbx, rcx
mov dword [rsp + 0x80], eax
movsxd rdi, dword [r9 + 0x3c]
lea r15d, [rax + 1]
add rdi, r9
xor r12d, r12d
mov r10d, r12d
mov cl, r10b
or cl, 0x48
movsx eax, cl
mov r8b, cl
not r8b
xor r8d, eax
movsx eax, cl
and r8d, 0x13
xor r8d, eax
mov eax, 0x80808081
imul r8d
add edx, r8d
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub r8d, eax
lea rax, [0x140006414]
mov al, byte [r10 + rax]
xor al, r8b
mov byte [rsp + r10 + 0x82], r8b
mov byte [rsp + r10 + 0x80], al
add r10, r15
cmp r10, 2
jb 0x140004b65
lea rcx, [rsp + 0x80]
call fcn.140002878
mov cl, byte [rsp + 0x80]
mov rax, qword [section..data]
cmp byte [r9], cl
je 0x140004c19
test rax, rax
jne 0x140004c0e
mov ecx, 0x190
call fcn.140001034
test rax, rax
je 0x140004c04
mov rcx, rax
call fcn.140001644
jmp 0x140004c07
mov rax, r12
mov qword [section..data], rax
or ecx, 0xffffffff
call qword [rax + 0x58]
jmp 0x140004f68
mov ebp, 0x190
test rax, rax
jne 0x140004c43
mov ecx, ebp
call fcn.140001034
test rax, rax
je 0x140004c39
mov rcx, rax
call fcn.140001644
jmp 0x140004c3c
mov rax, r12
mov qword [section..data], rax
mov rax, qword [rax + 0xf0]
xor ecx, ecx
mov edx, dword [rdi + 0x50]
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
call rax
mov qword [rbx + 8], rax
test rax, rax
jne 0x140004c78
mov rax, qword [section..data]
test rax, rax
jne 0x140004c0e
mov rcx, rbp
jmp 0x140004bf0
mov r8d, dword [rdi + 0x54]
mov rcx, rax
mov rdx, qword [rbx]
call fcn.140004570
mov r8, qword [rbx + 8]
movzx edi, r12w
movsxd rsi, dword [r8 + 0x3c]
add rsi, r8
mov qword [rsp + 0x20], rsi
cmp r12w, word [rsi + 6]
jae 0x140004cd9
movzx eax, di
lea rcx, [rax + rax*4]
mov edx, dword [rsi + rcx*8 + 0x11c]
mov r8d, dword [rsi + rcx*8 + 0x118]
mov ecx, dword [rsi + rcx*8 + 0x114]
add rcx, qword [rbx + 8]
add rdx, qword [rbx]
call fcn.140004570
add di, r15w
cmp di, word [rsi + 6]
jb 0x140004ca2
mov r8, qword [rbx + 8]
movsxd r10, dword [r8 + 0x3c]
mov r14, r8
add r10, r8
mov rdx, r8
sub r14, qword [r10 + 0x30]
mov ecx, dword [r10 + 0xb4]
test ecx, ecx
je 0x140004d82
mov eax, dword [r10 + 0xb0]
add rcx, rax
add rcx, r8
lea r9, [rax + r8]
jmp 0x140004d7d
mov eax, dword [r9 + 4]
mov rdx, r8
test eax, eax
je 0x140004d82
mov edi, dword [r9]
lea r11, [rax - 8]
add rdi, r8
mov rcx, r12
shr r11, 1
je 0x140004d63
movzx edx, word [r9 + rcx*2 + 8]
mov r8d, 0xfff
movzx eax, dx
and dx, r8w
shr ax, 0xc
cmp ax, 3
je 0x140004d4c
cmp ax, 0xa
jne 0x140004d53
movzx eax, dx
add qword [rax + rdi], r14
add rcx, r15
cmp rcx, r11
jb 0x140004d29
mov eax, dword [r9 + 4]
mov rdx, qword [rbx + 8]
mov ecx, dword [r10 + 0xb4]
add r9, rax
mov eax, dword [r10 + 0xb0]
mov r8, rdx
add rax, rdx
add rcx, rax
cmp r9, rcx
jb 0x140004d0c
movsxd rax, dword [rdx + 0x3c]
mov r13d, r12d
mov dword [rsp + 0x80], r12d
mov r15d, dword [rax + rdx + 0x90]
add r15, rdx
mov qword [rsp + 0x98], r15
cmp dword [r15], r12d
je 0x140004f19
mov rdi, r15
mov r14d, dword [rdi + 0xc]
mov rax, qword [section..data]
add r14, rdx
test rax, rax
jne 0x140004de4
mov rcx, rbp
call fcn.140001034
test rax, rax
je 0x140004dda
mov rcx, rax
call fcn.140001644
jmp 0x140004ddd
mov rax, r12
mov qword [section..data], rax
mov rax, qword [rax + 0xc0]
mov rcx, r14
call rax
mov r12, rax
test rax, rax
je 0x140004f11
mov rdx, qword [rbx + 8]
mov r14d, dword [rdi]
mov eax, dword [rdi + 0x10]
add r14, rdx
and dword [rsp + 0x88], 0
add rax, rdx
cmp qword [r14], 0
je 0x140004ee9
mov r13d, dword [rsp + 0x88]
mov rdi, r14
xor r15d, r15d
mov rsi, rax
mov ecx, 8
call fcn.140001034
mov rcx, qword [rdi]
mov qword [rax], rcx
mov rax, qword [section..data]
test rcx, rcx
js 0x140004e79
mov rdi, qword [rbx + 8]
add rdi, rcx
test rax, rax
jne 0x140004e73
mov rcx, rbp
call fcn.140001034
test rax, rax
je 0x140004e6c
mov rcx, rax
call fcn.140001644
mov qword [section..data], rax
lea rdx, [rdi + 2]
jmp 0x140004ea2
mov edi, ecx
btr edi, 0x1f
test rax, rax
jne 0x140004ea0
mov rcx, rbp
call fcn.140001034
test rax, rax
je 0x140004e99
mov rcx, rax
call fcn.140001644
mov qword [section..data], rax
mov edx, edi
mov rax, qword [rax + 0x70]
mov rcx, r12
call rax
test rax, rax
lea rcx, [0x140004b30]
cmove rax, rcx
inc r13d
mov qword [r15 + rsi], rax
mov r15d, r13d
shl r15, 3
lea rdi, [r15 + r14]
cmp qword [rdi], 0
jne 0x140004e2f
mov rdx, qword [rbx + 8]
mov r15, qword [rsp + 0x98]
mov r13d, dword [rsp + 0x80]
inc r13d
xor r12d, r12d
mov dword [rsp + 0x80], r13d
lea rcx, [r13*4]
add rcx, r13
lea rdi, [r15 + rcx*4]
cmp dword [rdi], r12d
jne 0x140004db0
jmp 0x140004f14
xor r12d, r12d
mov rsi, qword [rsp + 0x20]
mov rax, qword [rbx + 8]
mov qword [rsi + 0x30], rax
mov eax, dword [rsi + 0xd0]
test eax, eax
je 0x140004f5d
mov edi, eax
add rdi, qword [rbx + 8]
je 0x140004f5d
cmp qword [rbx + 8], r12
je 0x140004f5d
mov rdi, qword [rdi + 0x18]
test rdi, rdi
je 0x140004f5d
jmp 0x140004f55
mov rcx, qword [rbx + 8]
xor r8d, r8d
lea edx, [r8 + 1]
call rax
lea rdi, [rdi + 8]
mov rax, qword [rdi]
test rax, rax
jne 0x140004f44
mov eax, dword [rsi + 0x28]
add rax, qword [rbx + 8]
mov qword [rbx + 0x10], rax
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret