Function at 0x140148f0f
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
xor ebp, ebp
test rcx, rcx
je 0x1401492f9
mov r15, r8
test r8, r8
je 0x1401492f9
mov r13, rdx
mov rsi, rcx
test rdx, rdx
je 0x140148f82
mov rcx, r15
call fcn.1401eac40
mov rdi, rax
mov rcx, r13
call fcn.1401eac40
mov rbp, rax
mov eax, dword [rsi + 0x30]
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsi + 0x10]
cmp rsi, 0x80
jne 0x140148fa3
mov dword [rsp + 0x20], eax
mov rcx, r13
mov edx, ebp
mov r8, r15
mov r9d, edi
call fcn.140149368
jmp 0x140148fb7
mov rcx, rsi
mov rdx, r15
mov r8d, 0xffffffff
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140148745
mov dword [rsp + 0x20], eax
mov rcx, r13
mov edx, ebp
mov r8, r15
mov r9d, edi
call fcn.14014950c
mov ebx, eax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], rdi
lea eax, [rdi + rbp]
inc eax
mov dword [rsp + 0x34], eax
mov ebp, ebx
xor r12d, r12d
mov rax, rbp
xor edx, edx
div rsi
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
mov rax, rdx
mov qword [rsp + 0x40], rdx
shl rdx, 5
cmp dword [rcx + rdx + 0x14], 0
mov edi, ebx
je 0x14014904f
lea r14, [rcx + rdx]
mov rax, qword [rcx + rdx]
cmp dword [rcx + rdx + 0x18], edi
sete cl
xor r12d, r12d
test rax, rax
je 0x140149059
mov esi, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
test cl, 1
je 0x140149038
cmp dword [r14 + 0x10], esi
jne 0x140149038
mov r8, qword [r14 + 8]
mov rcx, r13
mov rdx, r15
call fcn.1400ed714
test eax, eax
jne 0x14014907f
mov rax, qword [r14]
mov r14, rax
inc r12d
mov rax, qword [rax]
cmp dword [r14 + 0x18], edi
sete cl
test rax, rax
jne 0x140149017
jmp 0x140149062
xor r14d, r14d
mov rbx, qword [rsp + 0x28]
jmp 0x140149088
mov esi, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
test cl, cl
je 0x140149088
cmp dword [r14 + 0x10], esi
jne 0x140149088
mov r8, qword [r14 + 8]
mov rcx, r13
mov rdx, r15
call fcn.1400ed714
test eax, eax
je 0x140149088
mov rbp, qword [r14 + 8]
jmp 0x1401492f9
mov rsi, qword [rbx + 0x28]
test rsi, rsi
mov qword [rsp + 0x60], r15
mov dword [rsp + 0x5c], edi
je 0x1401491b3
mov qword [rsp + 0x40], rbp
cmp qword [rbx + 0x10], 0x80
mov rbp, qword [rsi + 0x10]
mov qword [rsp + 0x38], r13
mov ebx, edi
jne 0x1401490e1
cmp rbp, 0x80
je 0x14014910a
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8, r15
mov r9, qword [rsp + 0x48]
call fcn.14014950c
jmp 0x140149108
cmp rbp, 0x80
jne 0x14014910a
mov eax, dword [rsi + 0x30]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov r8, r15
mov r9, qword [rsp + 0x48]
call fcn.140149368
mov ebx, eax
mov eax, ebx
xor edx, edx
div rbp
mov rcx, qword [rsi + 8]
shl rdx, 5
cmp dword [rcx + rdx + 0x14], 0
je 0x140149199
lea rbp, [rcx + rdx]
mov rax, qword [rcx + rdx]
cmp dword [rcx + rdx + 0x18], ebx
sete cl
test rax, rax
mov esi, dword [rsp + 0x34]
je 0x14014916f
test cl, 1
je 0x14014915b
cmp dword [rbp + 0x10], esi
jne 0x14014915b
mov r8, qword [rbp + 8]
mov rcx, qword [rsp + 0x38]
mov rdx, r15
call fcn.1400ed714
test eax, eax
jne 0x140149190
mov rax, qword [rbp]
mov rbp, rax
inc r12d
mov rax, qword [rax]
cmp dword [rbp + 0x18], ebx
sete cl
test rax, rax
jne 0x140149138
test cl, cl
je 0x140149199
cmp dword [rbp + 0x10], esi
jne 0x140149199
mov r8, qword [rbp + 8]
mov r13, qword [rsp + 0x38]
mov rcx, r13
mov rdx, r15
call fcn.1400ed714
test eax, eax
je 0x14014919e
mov rbp, qword [rbp + 8]
jmp 0x1401492f9
mov r13, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
xor edx, edx
mov rbx, qword [rsp + 0x28]
div qword [rbx + 0x10]
mov qword [rsp + 0x40], rdx
mov rcx, qword [rsp + 0x48]
mov rdi, rbx
mov r15, qword [rbx + 0x20]
mov rax, qword [rsp + 0x50]
lea r8, [rax + rcx]
test r15, r15
je 0x14014922d
mov rdi, rcx
lea edx, [r8 + 1]
xor ecx, ecx
xor esi, esi
mov rbp, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
sub rax, rbp
cmp rax, rdx
ja 0x14014928b
mov rax, qword [r15 + 0x18]
cmp rax, rsi
cmova rsi, rax
mov rbx, qword [r15]
add rcx, rax
mov r15, rbx
test rbx, rbx
jne 0x1401491d8
mov rax, qword [rsp + 0x28]
mov rdx, qword [rax + 0x38]
test rdx, rdx
je 0x14014921c
cmp rcx, rdx
ja 0x1401492f7
test rsi, rsi
mov rcx, rdi
je 0x14014922d
mov rdi, rcx
shl rsi, 2
jmp 0x140149235
mov rdi, rcx
mov esi, 0x3e8
lea eax, [r8*4 + 4]
cmp rsi, rax
cmovb rsi, rax
lea rcx, [rsi + 0x30]
call qword [case.0x1400f5a1c.1]
test rax, rax
je 0x1401492f7
mov r15, rax
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], 0
add rax, 0x28
mov qword [r15 + 8], rax
lea rax, [r15 + rsi + 0x28]
mov qword [r15 + 0x10], rax
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx + 0x20]
mov qword [r15], rax
mov qword [rcx + 0x20], r15
mov rbp, qword [r15 + 8]
mov esi, dword [rsp + 0x50]
mov rcx, rbp
mov rdx, r13
mov r8, rsi
call fcn.1401cccd0
mov rax, qword [r15 + 8]
add rax, rsi
inc rax
mov qword [r15 + 8], rax
mov byte [rax - 1], 0x3a
mov rcx, qword [r15 + 8]
mov esi, edi
mov rdx, qword [rsp + 0x60]
mov r8, rsi
call fcn.1401cccd0
mov rax, qword [r15 + 8]
add rax, rsi
inc rax
mov qword [r15 + 8], rax
mov byte [rax - 1], 0
inc qword [r15 + 0x20]
test rbp, rbp
je 0x1401492f7
test r14, r14
je 0x14014930d
mov ecx, 0x20
call qword [case.0x1400f5a1c.1]
test rax, rax
mov rcx, qword [rsp + 0x28]
jne 0x14014931e
xor ebp, ebp
mov rax, rbp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x40]
shl rax, 5
mov rcx, qword [rsp + 0x28]
add rax, qword [rcx + 8]
xor edx, edx
mov qword [rax + 8], rbp
mov ebx, dword [rsp + 0x34]
mov dword [rax + 0x10], ebx
mov qword [rax], rdx
mov dword [rax + 0x14], 1
mov edx, dword [rsp + 0x5c]
mov dword [rax + 0x18], edx
test r14, r14
je 0x140149344
mov qword [r14], rax
inc dword [rcx + 0x18]
cmp r12d, 4
jb 0x1401492f9
mov rax, qword [rcx + 0x10]
cmp rax, 0xaaa
ja 0x1401492f9
add rax, rax
lea rdx, [rax + rax*2]
call fcn.140148be9
jmp 0x1401492f9