Function at 0x140049010
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov rax, qword [0x1400bf040]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov rsi, rcx
mov ebp, r8d
mov rcx, qword [rsp + 0x160]
xor ebx, ebx
mov r11d, r9d
mov qword [rsp + 0x50], rcx
mov r15, rdx
mov r12d, ebx
movzx eax, byte [rsi + 0x323]
mov r13d, ebx
movzx r14d, byte [rsi + 0x327]
cmp al, 1
jne 0x140049268
movzx r8d, word [rsi + 0x4e6]
mov edx, ebx
test r8b, 0x10
je 0x140049085
movzx edx, word [rsi + 0x31e]
mov eax, edx
mov rcx, rbp
sub rcx, rax
mov r13d, 1
mov dword [rsp + 0x48], r13d
mov rdi, rbp
movzx r12d, byte [rcx + r15 - 1]
mov eax, r12d
mov r9d, r12d
mov dword [rsp + 0x44], eax
test r8b, 8
je 0x140049192
sub ebp, edx
mov eax, 0xff
movsxd rdx, ebp
dec rdx
add rdx, r15
lea ecx, [rbp - 1]
movzx r9d, byte [rdx]
mov edi, r9d
sub edi, ebp
add edi, r14d
shr edi, 0x1f
dec dil
cmp ecx, eax
cmovg ecx, eax
movsxd r8, ecx
test ecx, ecx
jle 0x140049111
nop word [rax + rax]
mov ecx, r9d
lea rdx, [rdx - 1]
sub ecx, ebx
movzx eax, r9b
xor al, byte [rdx + 1]
inc ebx
shr ecx, 0x1f
dec cl
and cl, al
or dil, cl
sub r8, r13
jne 0x1400490f0
mov dword [rsp + 0x38], r13d
lea rdx, [rsp + 0xa0]
mov r9d, ebp
mov dword [rsp + 0x30], r13d
sub r9d, r14d
mov dword [rsp + 0x28], r11d
sub r9d, r12d
mov dword [rsp + 0x20], r12d
dec r9d
mov r8, r15
mov rcx, rsi
call qword [rsi + 0x118]
movzx r8d, byte [rsi + 0x327]
lea r9, [rsp + 0xa0]
mov edx, ebp
mov rcx, r15
mov ebx, eax
call fcn.140048640
or al, dil
not al
movzx ecx, al
shr cl, 4
and al, cl
movzx ecx, al
mov edx, ecx
shr edx, 2
and edx, ecx
mov eax, edx
shr eax, 1
and eax, edx
dec eax
add eax, ebx
je 0x14004924a
mov eax, 0xfffffecf
jmp 0x140049305
sub ebp, r14d
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
lea rdx, [rsp + 0x60]
mov dword [rsp + 0x28], r11d
mov r13d, ebx
mov r8, r15
lea ecx, [rbp - 1]
cmp r12d, ecx
mov dword [rsp + 0x40], ecx
cmova r12d, ebx
cmp eax, ecx
mov rcx, rsi
cmovbe r13d, r9d
sub ebp, r13d
mov dword [rsp + 0x20], r13d
lea r9d, [rbp - 1]
call qword [rsi + 0x118]
mov r9d, eax
test r14d, r14d
je 0x14004922e
mov ecx, r13d
lea rax, [rsp + 0x60]
sub rdi, rcx
lea rdx, [rsp + 0x60]
sub rdi, r14
mov r8, r14
sub rdi, rax
add rdi, r15
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rdi + rdx - 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or ebx, ecx
sub r8, 1
jne 0x140049210
test ebx, ebx
jne 0x1400492f3
test r9d, r9d
jne 0x1400492f3
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x44], eax
ja 0x1400492f3
mov r13d, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
cmp byte [rsi + 0x323], 2
jne 0x1400492fa
movzx eax, word [rsi + 0x320]
jmp 0x140049301
test al, al
jne 0x14004924f
mov dword [rsp + 0x38], 1
lea rdx, [rsp + 0x60]
mov r9d, ebp
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r11d
sub r9d, r14d
mov r8, r15
mov dword [rsp + 0x20], 0xffffffff
mov rcx, rsi
call qword [rsi + 0x118]
mov r10d, eax
test r14d, r14d
je 0x1400492ea
mov r8, rbp
lea rax, [rsp + 0x60]
sub r8, r14
lea rdx, [rsp + 0x60]
sub r8, rax
mov r9, r14
add r8, r15
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rdx + r8]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or ebx, ecx
sub r9, 1
jne 0x1400492d0
test ebx, ebx
jne 0x1400492f3
test r10d, r10d
je 0x14004924a
mov eax, 0xfffffecf
jmp 0x140049305
lea eax, [r14 + r13]
add eax, r12d
mov dword [rcx], eax
xor eax, eax
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.14009f800
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret