Function at 0x18004eab0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea r11d, [r9 + 0x192]
mov r12, rdx
mov dword [rsp + 0x40], r11d
mov esi, r9d
mov r10, r8
mov rdx, rcx
cmp r9d, r11d
jae case.0x18004eb57.5
mov rdi, qword [rsp + 0xb0]
lea r11d, [r9 - 0x57]
mov r15d, dword [rsp + 0xa8]
mov r14d, dword [rsp + 0xa8]
mov ebp, dword [rsp + 0xa8]
mov r13d, dword [rsp + 0xa8]
mov ebx, dword [rsp + 0xa8]
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], r11d
lea r8, [0x180000000]
cmp r11d, 0xcb
ja case.default.0x18004eb57
movzx eax, byte [r8 + r11 + 0x4ee48]
mov ecx, dword [r8 + rax*4 + 0x4ee2c]
add rcx, r8
jmp rcx
mov r9d, 0x4f
nop
mov eax, r9d
sub eax, 0x4f
je 0x18004ebc1
sub eax, 0x2e
je 0x18004eb9f
sub eax, 0x2e
je 0x18004eb83
cmp eax, 0x2e
jne 0x18004ebd0
mov eax, dword [r12]
add eax, r13d
jmp 0x18004ee13
mov eax, ebp
cdq
idiv r15d
mov r13d, eax
test r14d, r14d
js 0x18004ee03
mov rdx, qword [rsp + 0x90]
jmp 0x18004ebd0
mov r15d, dword [rdx]
mov eax, r14d
mov ecx, dword [r10]
cdq
sub r15d, dword [rdi]
mov ebp, eax
sub ecx, dword [rdi]
xor ebp, edx
sub ebp, edx
mov rdx, qword [rsp + 0x90]
imul ebp, ecx
jmp 0x18004ebd0
mov rax, qword [rsp + 0xb8]
mov r14d, dword [rax]
sub r14d, dword [r12]
add r9d, 0x2e
cmp r9d, 0x107
jb 0x18004eb60
jmp case.0x18004eb57.6
mov rax, qword [rsp + 0xb8]
and dword [r12], 0x7fff
and dword [rax], 0x7fff
jmp case.0x18004eb57.6
test rdi, rdi
je case.0x18004eb57.6
mov r10d, 0x53
nop dword [rax]
cmp r10d, 0x53
je 0x18004ecde
cmp r10d, 0x298
je 0x18004ec4b
cmp r10d, 0x4dd
jne 0x18004ecf2
mov rax, qword [rdi]
mov ecx, ebx
shr ecx, 0x10
mov byte [rax + 0x18], cl
mov ecx, ebx
mov rax, qword [rdi]
shr ecx, 0x18
mov byte [rax + 0x19], cl
jmp 0x18004ecf2
mov rax, qword [rdi]
xor edx, edx
mov byte [rax + 0x19], 0
movsxd r8, dword [rdi + 8]
test r8, r8
jle 0x18004ec8b
mov r9, qword [rdi]
movzx ecx, byte [r9 + rdx]
inc rdx
mov eax, ebx
shr rax, 0x18
xor rcx, rax
mov eax, ebx
shl eax, 8
lea rbx, [0x180000000]
mov ebx, dword [rbx + rcx*4 + 0x688c0]
xor ebx, eax
cmp rdx, r8
jl 0x18004ec60
movsxd r8, dword [rdi + 0x18]
xor edx, edx
test r8, r8
jle 0x18004eccb
mov r9, qword [rdi + 0x10]
nop word [rax + rax]
movzx ecx, byte [r9 + rdx]
inc rdx
mov eax, ebx
shr rax, 0x18
xor rcx, rax
mov eax, ebx
shl eax, 8
lea rbx, [0x180000000]
mov ebx, dword [rbx + rcx*4 + 0x688c0]
xor ebx, eax
cmp rdx, r8
jl 0x18004eca0
mov rax, qword [rdi]
mov ecx, ebx
shr ecx, 8
mov byte [rax + 0x16], bl
mov rax, qword [rdi]
mov byte [rax + 0x17], cl
jmp 0x18004ecf2
mov rax, qword [rdi]
xor ebx, ebx
mov byte [rax + 0x16], bl
mov rax, qword [rdi]
mov byte [rax + 0x17], bl
mov rax, qword [rdi]
mov byte [rax + 0x18], bl
add r10d, 0x245
cmp r10d, 0x6cf
jbe 0x18004ec10
jmp 0x18004edd3
mov eax, dword [rdx]
xor r9d, r9d
lea rdx, [rsp + 0xa8]
mov dword [rsp + 0xa8], eax
mov r8, rdi
mov ecx, 0x128
call fcn.180045490
jmp 0x18004edce
mov rsi, qword [rdx + 0x10]
mov edx, 0x60
mov rcx, rsi
call fcn.1800330a0
mov edx, 0x11b
mov rcx, rsi
call fcn.180033000
test eax, eax
jne 0x18004edc7
nop dword [rax]
nop word [rax + rax]
xor eax, eax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea edx, [rax + 0x2f]
call fcn.180011760
mov ecx, dword [r12]
lea r8, [rsp + 0x48]
mov dword [rsp + 0x48], ecx
mov r9, rax
mov rcx, rdi
mov edx, 0x33
call fcn.180007b70
xor r9d, r9d
mov r8d, 0x10a
mov rdx, rsi
xor ecx, ecx
call fcn.180053120
mov edx, 0x11b
mov rcx, rsi
call fcn.180033000
test eax, eax
je 0x18004ed60
mov esi, dword [rsp + 0xa8]
mov r11d, dword [rsp + 0x44]
mov r10, qword [rsp + 0xa0]
mov eax, dword [rsp + 0x40]
add esi, 0x43
add r11d, 0x43
mov dword [rsp + 0xa8], esi
mov dword [rsp + 0x44], r11d
cmp esi, eax
jae case.0x18004eb57.5
mov rdx, qword [rsp + 0x90]
jmp 0x18004eb2f
mov eax, dword [r12]
sub eax, r13d
jmp 0x18004ee13
mov eax, dword [rsp + 0xa8]
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret