Function at 0x140018218
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor r13d, r13d
mov esi, r9d
mov rbp, r8
mov r15, rdx
mov rdi, rcx
test rdx, rdx
jne 0x1400182bc
cmp byte [rcx], r13b
jne 0x1400182af
test byte [rcx + 1], 2
je 0x1400182af
mov rax, qword [rcx + 0x30]
cmp rax, r8
jne 0x14001826b
mov rbx, qword [rsp + 0xb0]
mov dword [rbx], r13d
xor eax, eax
jmp 0x140018684
jge 0x1400182af
test byte [rcx + 1], 8
mov rbx, qword [rsp + 0xb0]
jne 0x140018339
inc rax
cmp rax, rbp
jne 0x1400182b7
xor edx, edx
mov dword [rbx], r13d
call fcn.1400187d4
test eax, eax
jne 0x1400182a5
mov rcx, rdi
call fcn.140017944
cmp qword [rdi + 0x30], rbp
jne 0x1400182b7
jmp 0x140018264
cmp eax, 0x65
je 0x1400182b7
jmp 0x140018684
mov rbx, qword [rsp + 0xb0]
mov r14, r13
jmp 0x140018324
mov rcx, qword [rdx]
cmp word [rcx + 8], 0xd
ja 0x140018311
mov rax, qword [rdx + 8]
movzx r8d, word [rax + 8]
mov rax, qword [rcx + 0x18]
cmp byte [rax], r13b
je 0x1400182e3
test byte [rax], 2
jne 0x140018311
mov al, 0xff
mov dl, 1
jmp 0x1400182e7
mov al, 1
mov dl, 0xff
mov byte [r15 + 0x14], dl
mov byte [r15 + 0x15], al
test r8b, 4
je 0x1400182fe
lea r14, [0x140023ba4]
jmp 0x140018318
test r8b, 0x39
jne 0x140018311
lea r14, [0x140023d68]
cmp qword [rcx + 0x20], r13
je 0x140018318
lea r14, [0x140023b9c]
mov rbx, qword [rsp + 0xb0]
mov byte [r15 + 0x13], r13b
mov rcx, rdi
call fcn.140017f3c
test eax, eax
je 0x140018341
cmp eax, 0x10
jne 0x140018684
or dword [rbx], 0xffffffff
jmp 0x140018264
mov eax, 1
sub eax, esi
mov dword [rsp + 0x34], eax
mov rbp, qword [rdi + 0x88]
mov r12d, r13d
mov ecx, eax
movzx r13d, word [rbp + 0x18]
lea rbx, [rbp + 0x60]
dec r13d
mov qword [rsp + 0x38], rbx
mov esi, r13d
mov dword [rsp + 0x98], r13d
sar esi, cl
lea r8, [rbp + 0x1a]
mov word [rdi + 0x56], si
mov qword [rsp + 0x40], r8
test r14, r14
jne 0x140018473
movzx r8d, word [r8]
mov word [rsp + 0x98], r8w
mov rdx, qword [rbx]
lea eax, [rsi + rsi]
movsxd rcx, eax
movzx eax, word [rcx + rdx]
ror ax, 8
movzx ecx, ax
movzx eax, r8w
and rcx, rax
add rcx, qword [rbp + 0x68]
cmp byte [rbp + 3], 0
je 0x1400183d5
jmp 0x1400183cd
inc rcx
cmp rcx, qword [rbp + 0x58]
jae 0x140018600
cmp byte [rcx], 0x80
jae 0x1400183c0
inc rcx
lea rdx, [rsp + 0x48]
call fcn.140007380
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0xa0]
jge 0x140018432
lea r12d, [rsi + 1]
cmp r12d, r13d
jle 0x14001843d
or ebx, 0xffffffff
mov r8, qword [rsp + 0x40]
xor r13d, r13d
mov rax, qword [rsp + 0x38]
cmp byte [rbp + 8], r13b
jne 0x140018623
mov rbx, rax
movzx eax, word [rbp + 0x18]
cmp r12d, eax
jl 0x1400185bb
movzx ecx, byte [rbp + 9]
mov rax, qword [rbp + 0x50]
mov edx, dword [rcx + rax + 8]
jmp 0x1400185de
jle 0x140018458
lea r13d, [rsi - 1]
cmp r12d, r13d
jg 0x140018451
movzx r8d, word [rsp + 0x98]
lea esi, [r12 + r13]
sar esi, 1
jmp 0x140018399
mov ebx, 1
jmp 0x1400183fa
xor r13d, r13d
mov word [rdi + 0x56], si
cmp byte [rbp + 8], r13b
jne 0x14001860c
mov r8, qword [rsp + 0x40]
mov r12d, esi
jmp 0x140018414
lea eax, [rsi + rsi]
movsxd rcx, eax
mov rax, qword [rbx]
movzx edx, word [rcx + rax]
movzx eax, word [r8]
ror dx, 8
movzx edx, dx
and rdx, rax
movzx eax, byte [rbp + 0xb]
add rdx, qword [rbp + 0x68]
movzx ecx, byte [rdx]
lea r9, [rdx + 1]
cmp ecx, eax
ja 0x1400184a6
mov rdx, r9
jmp 0x1400184c4
cmp byte [r9], 0
jl 0x1400184d1
movzx eax, byte [r9]
and ecx, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [rbp + 0xe]
cmp ecx, eax
ja 0x1400184d1
add rdx, 2
mov r8, r15
call r14
mov ebx, eax
jmp 0x14001857c
movzx eax, byte [rbp + 0xa]
lea r8, [rdi + 0x30]
sub rdx, rax
mov rcx, rbp
call qword [rbp + 0x80]
mov ebx, dword [rdi + 0x30]
mov dword [rsp + 0x30], ebx
cmp ebx, 2
jl 0x14001866e
mov rcx, qword [rdi + 0x20]
xor edx, edx
mov eax, ebx
div dword [rcx + 0x34]
cmp eax, dword [rcx + 0x3c]
ja 0x14001866e
lea eax, [rbx + 0x12]
movsxd rcx, eax
call fcn.140003b70
mov r13, rax
test rax, rax
je 0x140018664
and dword [rsp + 0x20], 0
mov r9, rax
mov r8d, ebx
mov word [rdi + 0x56], si
xor edx, edx
mov rcx, rdi
call fcn.140017ab8
movsxd rcx, dword [rsp + 0x30]
mov ebx, eax
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rcx + r13], xmm0
mov word [rcx + r13 + 0x10], ax
and byte [rdi + 1], 0xfb
test ebx, ebx
jne 0x14001865a
xor r9d, r9d
mov r8, r15
mov rdx, r13
call fcn.1400236f8
mov rcx, r13
mov ebx, eax
call fcn.140003c5c
mov r13d, dword [rsp + 0x98]
test ebx, ebx
jns 0x140018586
lea r12d, [rsi + 1]
jmp 0x14001859d
xor r13d, r13d
test ebx, ebx
jle 0x140018636
lea r13d, [rsi - 1]
mov dword [rsp + 0x98], r13d
cmp r12d, r13d
jg 0x1400183fa
mov rbx, qword [rsp + 0x38]
lea esi, [r12 + r13]
mov r8, qword [rsp + 0x40]
sar esi, 1
jmp 0x140018473
lea eax, [r12 + r12]
movsxd rcx, eax
mov rax, qword [rbx]
movzx edx, word [rcx + rax]
movzx eax, word [r8]
ror dx, 8
movzx ecx, dx
and rcx, rax
mov rax, qword [rbp + 0x50]
mov edx, dword [rcx + rax]
bswap edx
mov rcx, rdi
mov word [rdi + 0x56], r12w
call fcn.140017e80
mov ebx, eax
test eax, eax
jne 0x14001867d
mov eax, dword [rsp + 0x34]
jmp 0x14001834c
mov ecx, 0x10fd0
call fcn.140076e38
jmp 0x140018684
or byte [rdi + 1], 2
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0xb0]
mov dword [rax], r13d
xor eax, eax
jmp 0x14001867f
mov rax, qword [rsp + 0xb0]
mov word [rdi + 0x56], si
mov dword [rax], ebx
mov ebx, r13d
jmp 0x14001867d
mov rax, qword [rsp + 0xb0]
mov ebx, r13d
mov word [rdi + 0x56], si
mov dword [rax], r13d
cmp byte [r15 + 0x13], r13b
je 0x14001867d
mov ecx, 0x11043
call fcn.140076e38
jmp 0x14001867b
mov rcx, r13
call fcn.140003c5c
jmp 0x140018669
mov ebx, 7
xor r13d, r13d
jmp 0x14001867d
mov ecx, 0x11021
call fcn.140076e38
xor r13d, r13d
mov ebx, eax
mov eax, ebx
mov word [rdi + 0x46], r13w
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret