Function at 0x18001ab04
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 0x18001aba8
cmp byte [rcx], r13b
jne 0x18001ab9b
test byte [rcx + 1], 2
je 0x18001ab9b
mov rax, qword [rcx + 0x30]
cmp rax, r8
jne 0x18001ab57
mov rbx, qword [rsp + 0xb0]
mov dword [rbx], r13d
xor eax, eax
jmp 0x18001af70
jge 0x18001ab9b
test byte [rcx + 1], 8
mov rbx, qword [rsp + 0xb0]
jne 0x18001ac25
inc rax
cmp rax, rbp
jne 0x18001aba3
xor edx, edx
mov dword [rbx], r13d
call fcn.18001b0c0
test eax, eax
jne 0x18001ab91
mov rcx, rdi
call fcn.18001a1f4
cmp qword [rdi + 0x30], rbp
jne 0x18001aba3
jmp 0x18001ab50
cmp eax, 0x65
je 0x18001aba3
jmp 0x18001af70
mov rbx, qword [rsp + 0xb0]
mov r14, r13
jmp 0x18001ac10
mov rcx, qword [rdx]
cmp word [rcx + 8], 0xd
ja 0x18001abfd
mov rax, qword [rdx + 8]
movzx r8d, word [rax + 8]
mov rax, qword [rcx + 0x18]
cmp byte [rax], r13b
je 0x18001abcf
test byte [rax], 2
jne 0x18001abfd
mov al, 0xff
mov dl, 1
jmp 0x18001abd3
mov al, 1
mov dl, 0xff
mov byte [r15 + 0x14], dl
mov byte [r15 + 0x15], al
test r8b, 4
je 0x18001abea
lea r14, [0x180026330]
jmp 0x18001ac04
test r8b, 0x39
jne 0x18001abfd
lea r14, [0x1800264f4]
cmp qword [rcx + 0x20], r13
je 0x18001ac04
lea r14, [0x180026328]
mov rbx, qword [rsp + 0xb0]
mov byte [r15 + 0x13], r13b
mov rcx, rdi
call fcn.18001a828
test eax, eax
je 0x18001ac2d
cmp eax, 0x10
jne 0x18001af70
or dword [rbx], 0xffffffff
jmp 0x18001ab50
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 0x18001ad5f
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 0x18001acc1
jmp 0x18001acb9
inc rcx
cmp rcx, qword [rbp + 0x58]
jae 0x18001aeec
cmp byte [rcx], 0x80
jae 0x18001acac
inc rcx
lea rdx, [rsp + 0x48]
call fcn.18000a3bc
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0xa0]
jge 0x18001ad1e
lea r12d, [rsi + 1]
cmp r12d, r13d
jle 0x18001ad29
or ebx, 0xffffffff
mov r8, qword [rsp + 0x40]
xor r13d, r13d
mov rax, qword [rsp + 0x38]
cmp byte [rbp + 8], r13b
jne 0x18001af0f
mov rbx, rax
movzx eax, word [rbp + 0x18]
cmp r12d, eax
jl 0x18001aea7
movzx ecx, byte [rbp + 9]
mov rax, qword [rbp + 0x50]
mov edx, dword [rcx + rax + 8]
jmp 0x18001aeca
jle 0x18001ad44
lea r13d, [rsi - 1]
cmp r12d, r13d
jg 0x18001ad3d
movzx r8d, word [rsp + 0x98]
lea esi, [r12 + r13]
sar esi, 1
jmp 0x18001ac85
mov ebx, 1
jmp 0x18001ace6
xor r13d, r13d
mov word [rdi + 0x56], si
cmp byte [rbp + 8], r13b
jne 0x18001aef8
mov r8, qword [rsp + 0x40]
mov r12d, esi
jmp 0x18001ad00
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 0x18001ad92
mov rdx, r9
jmp 0x18001adb0
cmp byte [r9], 0
jl 0x18001adbd
movzx eax, byte [r9]
and ecx, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [rbp + 0xe]
cmp ecx, eax
ja 0x18001adbd
add rdx, 2
mov r8, r15
call r14
mov ebx, eax
jmp 0x18001ae68
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 0x18001af5a
mov rcx, qword [rdi + 0x20]
xor edx, edx
mov eax, ebx
div dword [rcx + 0x34]
cmp eax, dword [rcx + 0x3c]
ja 0x18001af5a
lea eax, [rbx + 0x12]
movsxd rcx, eax
call fcn.180006bcc
mov r13, rax
test rax, rax
je 0x18001af50
and dword [rsp + 0x20], 0
mov r9, rax
mov r8d, ebx
mov word [rdi + 0x56], si
xor edx, edx
mov rcx, rdi
call fcn.18001a368
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 0x18001af46
xor r9d, r9d
mov r8, r15
mov rdx, r13
call fcn.180025db0
mov rcx, r13
mov ebx, eax
call fcn.180006cb8
mov r13d, dword [rsp + 0x98]
test ebx, ebx
jns 0x18001ae72
lea r12d, [rsi + 1]
jmp 0x18001ae89
xor r13d, r13d
test ebx, ebx
jle 0x18001af22
lea r13d, [rsi - 1]
mov dword [rsp + 0x98], r13d
cmp r12d, r13d
jg 0x18001ace6
mov rbx, qword [rsp + 0x38]
lea esi, [r12 + r13]
mov r8, qword [rsp + 0x40]
sar esi, 1
jmp 0x18001ad5f
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.18001a76c
mov ebx, eax
test eax, eax
jne 0x18001af69
mov eax, dword [rsp + 0x34]
jmp 0x18001ac38
mov ecx, 0x10d00
call fcn.180078ddc
jmp 0x18001af70
or byte [rdi + 1], 2
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0xb0]
mov dword [rax], r13d
xor eax, eax
jmp 0x18001af6b
mov rax, qword [rsp + 0xb0]
mov word [rdi + 0x56], si
mov dword [rax], ebx
mov ebx, r13d
jmp 0x18001af69
mov rax, qword [rsp + 0xb0]
mov ebx, r13d
mov word [rdi + 0x56], si
mov dword [rax], r13d
cmp byte [r15 + 0x13], r13b
je 0x18001af69
mov ecx, 0x10d6b
call fcn.180078ddc
jmp 0x18001af67
mov rcx, r13
call fcn.180006cb8
jmp 0x18001af55
mov ebx, 7
xor r13d, r13d
jmp 0x18001af69
mov ecx, 0x10d4b
call fcn.180078ddc
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