Function at 0x18001cb80
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rsi
sub rsp, 0xb8
movzx r8d, byte [rcx + 0x52]
mov esi, edx
movzx edx, byte [rcx + 0x58]
and r8d, 0x1f
mov qword [rax - 0x20], rdi
mov r10d, 0x20
mov qword [rax - 0x40], r15
mov r11d, r10d
mov eax, r8d
mov rbp, rcx
shl eax, 5
test r8d, r8d
cmovne r11d, eax
mov eax, dword [rcx + 0x5c]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x60]
mov dword [rsp + 0x54], eax
movzx eax, byte [rcx + 0x57]
shl edx, 8
add edx, eax
mov dword [rsp + 0xe0], r11d
mov eax, edx
shl eax, 5
test edx, edx
cmovne r10d, eax
cmp dword [rcx + 0x68], 0
mov dword [rsp + 0x3c], r10d
jne 0x18001cbfc
mov dword [rcx + 0x68], r10d
mov qword [rsp + 0xb0], rbx
lea rdx, [rbp + 0x54]
mov qword [rsp + 0xa0], r12
lea rdi, [rbp + 0xa]
xor eax, eax
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x90], r14
mov ecx, eax
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x40], rdi
jmp 0x18001cc47
mov esi, dword [rsp + 0xd8]
mov r9, qword [rdi + 6]
lea r8, [0x180063978]
movzx r15d, byte [rbp + 0x53]
shr r15d, cl
mov dword [rsp + 0x20], r15d
mov qword [rsp + 0x48], r9
test r9, r9
je 0x18001d043
mov ebx, eax
mov dword [rsp + 0x34], eax
mov eax, dword [r9 + 0x20]
add eax, 0x4000
mov dword [r9 + 0x2c], 1
mov r12d, dword [rdi - 0xa]
shr eax, 0xf
mov dword [rsp + 0x28], r12d
cmp r12d, eax
jg 0x18001ccac
test r15b, 1
jne 0x18001ccac
mov ebx, 1
or r15d, ebx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x20], r15d
movzx edx, byte [rdx]
movzx ecx, bl
mov r10d, dword [rbp + 0x48]
mov eax, edx
and eax, 0xf
mov dword [rsp + 0xe8], esi
mov r13d, esi
movzx r14d, byte [rax + r8]
movsxd r8, dword [rbp + 0x78]
shr r14d, cl
mov dword [rsp + 0x2c], r14d
test dl, 0x10
je 0x18001ceaa
mov rax, qword [rbp + 0x70]
movzx r14d, byte [rax + r8]
shr r14d, cl
test byte [rbp + 0x59], 1
mov dword [rsp + 0x2c], r14d
je 0x18001cd1e
cmp r8d, 0xffffffe0
jl 0x18001cd1e
test r14d, r14d
jne 0x18001cd3c
mov ebx, dword [rdi - 6]
mov ecx, 9
add ebx, r10d
mov dword [rsp + 0x20], ecx
mov r15d, ecx
and r15d, 1
mov dword [rsp + 0x24], r15d
jmp 0x18001cd52
mov r13d, dword [rbp + 0x68]
add r13d, r10d
mov dword [rsp + 0xe8], r13d
cmp r13d, esi
jl 0x18001cd3c
mov r13d, esi
mov dword [rsp + 0xe8], esi
mov ebx, dword [rdi - 6]
add ebx, r10d
mov dword [rsp + 0x28], r12d
and r15d, 1
mov dword [rsp + 0x24], r15d
je 0x18001cd6e
mov eax, r12d
sub eax, ebx
dec eax
add eax, esi
cdq
idiv r12d
mov ecx, eax
and ax, 1
imul ecx, r12d
add ebx, ecx
xor word [rdi], ax
mov eax, dword [rsp + 0x20]
mov r15d, 1
mov ecx, eax
and ecx, 8
mov dword [rsp + 0x5c], ecx
jne 0x18001cd8f
mov esi, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x54]
add esi, r10d
mov ecx, eax
mov rdx, r8
shr ecx, 3
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x70], rdx
movzx edx, word [rdi]
mov edi, r14d
mov ecx, edx
or ecx, eax
mov eax, dword [rsp + 0x58]
or eax, r15d
and ecx, eax
mov eax, 0
test cl, 1
mov rcx, qword [rsp + 0x40]
cmove edi, eax
mov r8d, edi
movsx eax, word [rcx - 2]
sub r8d, eax
je 0x18001cdf7
mov word [rcx - 2], di
mov edx, r10d
lea rcx, [rbp + 0x200]
call fcn.1800120b0
mov rax, qword [rsp + 0x40]
mov r11d, dword [rsp + 0xe0]
movzx edx, word [rax]
cmp esi, r13d
jl 0x18001ce05
cmp ebx, r13d
jge 0x18001cf9b
add edi, edi
mov ecx, 0
sub edi, r14d
movsx r14d, dx
setne cl
or r14d, dword [rsp + 0x24]
mov dword [rsp + 0x30], ecx
nop
cmp r13d, ebx
mov ebp, ebx
cmovle ebp, r13d
test ecx, r14d
je 0x18001ced4
cmp esi, ebp
jg 0x18001cee7
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0xd0]
nop word [rax + rax]
mov ecx, r15d
lea edx, [r15 + 1]
and ecx, 1
mov eax, r15d
neg ecx
shr eax, 1
and ecx, 0x12000
mov r15d, ecx
xor r15d, eax
test dl, 2
je 0x18001ce90
neg edi
lea rcx, [r13 + 0x200]
mov r8d, edi
mov r9, r12
mov edx, esi
call fcn.1800120b0
mov r11d, dword [rsp + 0xe0]
add esi, r11d
cmp esi, ebp
jle 0x18001ce50
mov r12d, dword [rsp + 0x28]
mov r13d, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0x30]
jmp 0x18001cee7
test r14d, r14d
jne 0x18001cd3c
mov ebx, dword [rdi - 6]
mov ecx, 9
mov dword [rsp + 0x20], ecx
add ebx, r10d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x24], 1
jmp 0x18001cd52
sub ebp, esi
js 0x18001cee7
mov eax, ebp
cdq
idiv r11d
mov eax, r11d
sub eax, edx
add eax, ebp
add esi, eax
cmp r13d, esi
mov ebp, esi
cmovle ebp, r13d
test r15d, ecx
je 0x18001cf45
cmp ebx, ebp
jge 0x18001cf39
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0x48]
nop word [rax + rax]
neg edi
lea rcx, [r14 + 0x200]
mov r8d, edi
mov r9, r13
mov edx, ebx
call fcn.1800120b0
add ebx, r12d
cmp ebx, ebp
jl 0x18001cf10
mov r13d, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0x30]
mov r14d, edi
neg r14d
shr r14d, 0x1f
jmp 0x18001cf5b
cmp ebx, ebp
jge 0x18001cf5b
nop dword [rax]
add ebx, r12d
xor r14d, 1
cmp ebx, ebp
jl 0x18001cf50
mov r11d, dword [rsp + 0xe0]
cmp ebx, r13d
jl 0x18001ce20
cmp esi, r13d
jl 0x18001ce20
mov eax, dword [rsp + 0x2c]
mov rbp, qword [rsp + 0xd0]
add eax, edi
mov rdi, qword [rsp + 0x40]
sar eax, 1
cmp dword [rsp + 0x24], 0
mov word [rdi - 2], ax
jne 0x18001cfa0
mov word [rdi], r14w
jmp 0x18001cfa0
mov rdi, qword [rsp + 0x40]
mov r8d, dword [rsp + 0xd8]
cmp r13d, r8d
jge 0x18001d01b
mov rdx, qword [rsp + 0x60]
add rdx, 1
mov qword [rsp + 0x60], rdx
js 0x18001cfcb
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe1
mov qword [rsp + 0x60], rdx
mov rax, qword [rbp + 0x70]
mov r10d, r13d
add r13d, dword [rsp + 0x3c]
movzx ecx, byte [rsp + 0x34]
mov r9, qword [rsp + 0x48]
movzx r14d, byte [rax + rdx]
mov r11d, dword [rsp + 0xe0]
mov eax, dword [rsp + 0x20]
shr r14d, cl
mov dword [rsp + 0x2c], r14d
mov dword [rsp + 0xe8], r13d
cmp r13d, r8d
jle 0x18001cda0
mov r13d, r8d
mov dword [rsp + 0xe8], r8d
jmp 0x18001cda0
mov r11d, dword [rsp + 0xe0]
sub ebx, r8d
cmp dword [rsp + 0x5c], 0
mov rdx, qword [rsp + 0x68]
mov dword [rdi - 6], ebx
jne 0x18001d03f
sub esi, r8d
mov dword [rbp + 0x60], r15d
mov dword [rbp + 0x5c], esi
xor eax, eax
jmp 0x18001d04b
mov r8d, dword [rsp + 0xd8]
mov ecx, dword [rsp + 0x38]
add rdi, 0x18
inc ecx
mov qword [rsp + 0x40], rdi
inc rdx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0x68], rdx
cmp ecx, 3
jl 0x18001cc40
sub r8d, dword [rbp + 0x48]
sub r8d, dword [rbp + 0x68]
mov r15, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
js 0x18001d0d0
mov r10d, dword [rsp + 0x3c]
lea eax, [r10 + r8]
cdq
idiv r10d
mov edx, dword [rbp + 0x78]
add edx, eax
mov dword [rbp + 0x78], edx
js 0x18001d0c9
and edx, 0x1f
sub edx, 0x20
mov dword [rbp + 0x78], edx
imul r10d, eax
sub r8d, r10d
mov esi, dword [rsp + 0xd8]
neg r8d
mov dword [rbp + 0x68], r8d
mov dword [rbp + 0x48], esi
add rsp, 0xb8
pop rsi
pop rbp
ret