Function at 0x18003d0c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov r11d, edx
mov r13, r8
mov rdx, rcx
lea ebx, [r11 + 0x62e]
mov dword [rsp + 0x50], ebx
cmp r11d, ebx
mov ebx, dword [rsp + 0x108]
jae 0x18003d519
mov rsi, qword [rsp + 0x138]
mov r14, qword [rsp + 0x128]
mov r15, qword [rsp + 0x120]
mov ebp, dword [rsp + 0x5c]
mov rdi, qword [rsp + 0x130]
mov r12d, dword [rsp + 0x54]
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x6c], ebx
lea r8, [0x180000000]
cmp r11d, 0x17b
ja 0x18003d4ca
je 0x18003d3fb
lea eax, [r11 - 0x64]
cmp eax, 0xe2
ja case.0x18003d177.100
movzx eax, byte [r8 + rax + 0x3d590]
mov ecx, dword [r8 + rax*4 + 0x3d578]
add rcx, r8
jmp rcx
mov eax, dword [r13]
mov dword [0x423005ac], eax
jmp case.0x18003d177.100
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x58], 0
jmp case.0x18003d177.100
xor ebp, ebp
mov dword [rsp + 0x5c], ebp
jmp case.0x18003d177.100
cmp dword [r13], 0
jne 0x18003d1e0
mov eax, dword [rsi]
mov r9d, dword [r15]
mov r8d, dword [r14]
mov edx, dword [rdx]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x140]
mov rcx, rax
call qword [rax]
mov rdx, qword [rsp + 0x100]
mov r11d, dword [rsp + 0x108]
jmp case.0x18003d177.100
mov ebp, dword [rsp + 0x70]
mov ebx, 0x81
mov dword [rsp + 0x60], ebx
nop dword [rax]
mov eax, ebx
sub eax, 0x7e
je 0x18003d288
sub eax, 1
je 0x18003d242
sub eax, 1
je 0x18003d233
cmp eax, 1
jne 0x18003d3be
mov eax, dword [r9 + 4]
mov ecx, dword [r9]
mov r12d, ecx
mov dword [rsp + 0xb0], eax
mov eax, dword [r9 + 8]
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x54], ecx
jmp 0x18003d3be
mov eax, dword [rdi + 4]
mov dword [rsp + 0x80], eax
jmp 0x18003d3be
mov rax, qword [rsp + 0x130]
mov ebp, dword [rax + 8]
cmp r12d, dword [rax]
je 0x18003d3f6
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], 0
lea r8, [0x18008d740]
mov edx, 0xa7
lea rcx, str.pBottomSplitter
call fcn.18004cd80
mov rdi, qword [rsp + 0x130]
jmp 0x18003d3be
mov ecx, dword [rsp + 0x54]
test ecx, ecx
jle 0x18003d3b9
mov ebx, dword [rsp + 0x80]
mov qword [rsp + 0x70], rcx
mov r12d, dword [rsp + 0x84]
mov edi, 0x12a
nop dword [rax]
mov eax, edi
sub eax, 0x12a
je 0x18003d2e3
sub eax, 0x4d
je 0x18003d2db
sub eax, 0x4d
je 0x18003d2d3
cmp eax, 0x4d
jne 0x18003d392
add dword [rsi], ebp
jmp 0x18003d392
add dword [r15], ebx
jmp 0x18003d392
add dword [r14], r12d
jmp 0x18003d392
mov eax, dword [rsi]
lea r8, [rsp + 0xa0]
mov rcx, qword [rsp + 0x140]
add r9, 0xc
mov dword [rsp + 0x88], eax
mov eax, dword [r15]
mov dword [rsp + 0x98], eax
mov eax, dword [r14]
mov dword [rsp + 0x90], eax
mov eax, dword [rdx]
mov edx, 0xb4
mov dword [rsp + 0xa8], eax
mov eax, dword [r13]
mov qword [rsp + 0x40], rcx
dec eax
mov dword [rsp + 0xa0], eax
lea rcx, [rsp + 0x88]
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x38], rcx
add rax, 0xc
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0xa8]
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
call fcn.18003d0c0
mov rdx, qword [rsp + 0x100]
mov eax, dword [rsp + 0xb0]
mov r9, qword [rsp + 0x118]
add dword [rdx], eax
add edi, 0x4d
cmp edi, 0x25e
jb 0x18003d2b0
sub qword [rsp + 0x70], 1
jne 0x18003d2a0
mov ebx, dword [rsp + 0x60]
mov rdi, qword [rsp + 0x130]
mov r12d, dword [rsp + 0x54]
mov r9, qword [rsp + 0x118]
dec ebx
mov rdx, qword [rsp + 0x100]
mov dword [rsp + 0x60], ebx
cmp ebx, 0x7d
ja 0x18003d1f0
mov ebx, dword [rsp + 0x6c]
mov r11d, dword [rsp + 0x108]
mov dword [rsp + 0x70], ebp
mov ebp, dword [rsp + 0x5c]
jmp case.0x18003d177.100
mov rdi, rax
jmp 0x18003d3be
test r13, r13
je 0x18003d553
mov esi, dword [rsp + 0x64]
lea rdi, [0x180000000]
nop
mov r10d, 0x9a
mov eax, r10d
sub eax, 0x9a
je 0x18003d435
sub eax, 1
je 0x18003d430
cmp eax, 1
jne 0x18003d490
mov r13, qword [r13 + 0x10]
jmp 0x18003d490
sub dword [r9], esi
jmp 0x18003d490
mov ecx, dword [r9]
mov rax, qword [r13]
movsxd r8, dword [r13 + 8]
add r8, qword [rax]
cmp ecx, dword [r13 + 0xc]
cmovge ecx, dword [r13 + 0xc]
xor esi, esi
xor edx, edx
movsxd r9, ecx
test ecx, ecx
jle 0x18003d488
mov esi, ecx
nop dword [rax]
movzx ecx, byte [rdx + r8]
inc rdx
mov eax, ebp
shr rax, 0x18
xor rcx, rax
mov eax, ebp
shl eax, 8
mov ebp, dword [rdi + rcx*4 + 0x994a0]
xor ebp, eax
cmp rdx, r9
jl 0x18003d460
mov dword [rsp + 0x5c], ebp
mov r9, qword [rsp + 0x118]
inc r10d
cmp r10d, 0x9d
jb 0x18003d416
mov dword [rsp + 0x64], esi
test r13, r13
jne 0x18003d410
mov rsi, qword [rsp + 0x138]
mov rdi, qword [rsp + 0x130]
mov rdx, qword [rsp + 0x100]
jmp case.0x18003d177.100
cmp r11d, 0x299
ja 0x18003d50a
je 0x18003d503
mov eax, r11d
sub eax, 0x1b7
je 0x18003d4f8
sub eax, 0x35
je 0x18003d571
cmp eax, 0x3c
jne case.0x18003d177.100
movzx eax, word [r13 + 0x18]
mov dword [rsp + 0x58], eax
jmp case.0x18003d177.100
movzx eax, word [r13 + 0x14]
mov dword [rsp + 0x68], eax
jmp case.0x18003d177.100
shl dword [rsp + 0x58], 0x10
jmp 0x18003d553
mov eax, r11d
sub eax, 0x30a
je 0x18003d536
cmp eax, 0x71
jne case.0x18003d177.100
mov eax, ebx
mov rbx, qword [rsp + 0x110]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rsp + 0x68]
xor ebx, ebx
or eax, dword [rsp + 0x58]
and eax, 0xffffff
cmp eax, dword [r9]
sete bl
mov dword [rsp + 0x6c], ebx
mov eax, dword [rsp + 0x50]
add r11d, 0x71
mov dword [rsp + 0x108], r11d
cmp r11d, eax
jae 0x18003d519
mov r9, qword [rsp + 0x118]
jmp 0x18003d13a
mov eax, ebp
jmp 0x18003d51b