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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2020]
mov eax, 0x2120
call fcn.180098db0
sub rsp, rax
mov rax, qword [0x1800f2780]
xor rax, rsp
mov qword [rbp + 0x2010], rax
mov rsi, rdx
mov rbx, rcx
mov qword [rbp - 0x58], rcx
xor r12d, r12d
mov dword [rcx], r12d
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], r12
mov qword [rcx + 0x18], r12
mov qword [rcx + 0x20], r12
mov byte [rcx + 0x28], r12b
mov dword [rcx + 0x2c], r12d
mov qword [rcx + 0x30], r12
mov dword [rcx + 0x38], 0x10000
mov word [rcx + 0x3c], r12w
mov qword [rcx + 0x40], r12
mov qword [rcx + 0x50], r12
mov qword [rcx + 0x58], r12
mov qword [rcx + 0x70], r12
mov qword [rcx + 0x78], r12
mov qword [rcx + 0x80], r12
mov qword [rcx + 0x88], r12
mov qword [rcx + 0x90], r12
mov dword [rcx + 0x98], r12d
mov qword [rcx + 0xa0], r12
mov qword [rcx + 0xa8], r12
mov qword [rcx + 0xb0], r12
mov qword [rcx + 0xb8], r12
mov dword [rcx + 0xc0], r12d
test rdx, rdx
je 0x180019a08
mov dword [rcx + 0x48], r12d
mov qword [rcx + 0x50], r12
mov qword [rcx + 0x58], r12
mov qword [rcx + 0x60], r12
mov qword [rcx + 0x68], r12
mov qword [rcx + 0xa0], r12
mov qword [rcx + 0xa8], r12
mov qword [rcx + 0xb0], r12
mov qword [rcx + 0xb8], r12
cmp byte [rcx + 0x3c], r12b
jne 0x18001930f
mov rcx, rdx
call fcn.180007f90
mov dword [rbx + 0x38], eax
mov byte [rbx + 0x3c], 1
mov edx, 0x43464632
mov rcx, rsi
call fcn.180008090
mov rdx, rax
mov rcx, rbx
call fcn.180017100
mov qword [rbx + 0x40], rax
mov rcx, rax
call fcn.1800029f0
mov qword [rbx + 0x30], rax
mov byte [rbx + 0x28], 0
mov rcx, rbx
call fcn.1800079d0
mov rax, qword [rbx + 0x40]
mov r15, qword [rax + 0x10]
cmp dword [rax + 0x18], 5
jb 0x180019976
lea rsi, [0x1800bad40]
cmp r15, rsi
je 0x180019976
movzx ecx, byte [r15 + 3]
shl ecx, 8
movzx eax, byte [r15 + 4]
add ecx, eax
movzx eax, byte [r15 + 2]
add rax, r15
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], ecx
mov dword [rbp - 0x74], r12d
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.180015ea0
test al, al
je 0x180019976
mov byte [rbp - 0x38], 0
mov dword [rbp - 0x34], r12d
lea rax, [rbp - 0x30]
mov ecx, 0x40
nop dword [rax]
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
lea rax, [rax + 0x40]
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
sub rcx, 1
jne 0x1800193b0
mov qword [rax], r12
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm1, qword [rbp - 0x78]
movsd qword [rbp - 0x40], xmm1
mov dword [rbp - 0x3c], r12d
lea rax, [rbp - 0x50]
mov qword [rsp + 0x70], rax
mov dword [rbx + 0x48], r12d
mov qword [rbx + 0x50], r12
mov qword [rbx + 0x58], r12
mov qword [rbx + 0x60], r12
mov qword [rbx + 0x68], r12
lea rdx, [rbx + 0x48]
lea rcx, [rsp + 0x70]
call fcn.180025080
test al, al
je 0x180019976
movzx ecx, byte [r15 + 2]
movzx eax, byte [r15 + 3]
shl eax, 8
movzx edx, byte [r15 + 4]
add eax, ecx
add edx, eax
mov r8, rbx
mov rcx, r15
call fcn.18000ffa0
mov qword [rbx + 0x70], rax
mov r8, rbx
mov edx, dword [rbx + 0x68]
mov rcx, r15
call fcn.1800103a0
mov qword [rbx + 0x78], rax
mov r8, rbx
mov edx, dword [rbx + 0x60]
mov rcx, r15
call fcn.18000ffa0
mov qword [rbx + 0x80], rax
mov r8, rbx
mov edx, dword [rbx + 0x64]
mov rcx, r15
call fcn.18000ffa0
mov qword [rbx + 0x88], rax
mov r9, rax
mov r8, rbx
mov edx, dword [rbx + 0x6c]
mov rcx, r15
call fcn.1800101f0
mov qword [rbx + 0x90], rax
mov r8, qword [rbx + 0x80]
cmp r8, rsi
je 0x180019976
cmp qword [rbx + 0x70], rsi
je 0x180019976
mov rdx, qword [rbx + 0x88]
cmp rdx, rsi
je 0x180019976
movzx ecx, byte [r8 + 1]
shl ecx, 0x10
movzx eax, byte [r8 + 2]
shl eax, 8
add ecx, eax
movzx eax, byte [r8]
shl eax, 0x18
add ecx, eax
movzx eax, byte [r8 + 3]
add ecx, eax
mov dword [rbx + 0xc0], ecx
cmp ecx, dword [rbx + 0x38]
jne 0x180019976
movzx esi, byte [rdx + 1]
shl esi, 0x10
movzx eax, byte [rdx + 2]
shl eax, 8
add esi, eax
movzx eax, byte [rdx]
shl eax, 0x18
add esi, eax
movzx eax, byte [rdx + 3]
add esi, eax
mov dword [rbx + 0x98], esi
lea rdi, [rbx + 0xb0]
cmovs esi, r12d
xor r8d, r8d
mov edx, esi
mov rcx, rdi
call fcn.18001c420
test al, al
je 0x180019976
mov eax, dword [rdi + 4]
cmp esi, eax
jbe 0x180019580
nop word [rax + rax]
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, qword [rdi + 8]
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
mov dword [rcx + 0xc], r12d
mov qword [rcx + 0x10], r12
mov eax, dword [rdi + 4]
inc eax
mov dword [rdi + 4], eax
cmp eax, esi
jb 0x180019550
jmp 0x18001958c
jae 0x18001958c
mov edx, esi
mov rcx, rdi
call fcn.18002df90
mov dword [rdi + 4], esi
mov esi, r12d
cmp dword [rbx + 0x98], r12d
jbe 0x180019a08
lea rdi, [0x1800b7498]
lea r14, str.check_range___p.._p____u_bytes__in___p.._p______s
lea r13, [0x1800f3360]
nop dword [rax]
nop dword [rax + rax]
mov r8d, esi
lea rdx, [rsp + 0x78]
mov rcx, qword [rbx + 0x88]
call fcn.18001b380
mov edx, dword [rbp - 0x78]
cmp edx, 0xffffffff
jae 0x180019976
mov r9, qword [rbx + 8]
mov r10, qword [rbp - 0x80]
mov rcx, r10
sub rcx, r9
mov eax, dword [rbx + 0x18]
cmp rcx, rax
ja 0x180019611
mov eax, dword [rbx + 0x10]
sub eax, r10d
cmp eax, edx
jb 0x180019611
mov eax, dword [rbx + 0x1c]
sub eax, edx
mov dword [rbx + 0x1c], eax
test eax, eax
jle 0x180019611
mov r11b, 1
jmp 0x180019614
xor r11b, r11b
lea rax, str.OUT_OF_RANGE
test r11b, r11b
cmovne rax, rdi
lea rcx, [r10 + rdx]
mov r8d, dword [rbx]
inc r8d
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r9
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r8d
mov r9d, 1
xor r8d, r8d
mov rdx, r10
lea rcx, [0x1800b7448]
call fcn.180001db0
test r11b, r11b
je 0x180019976
mov byte [rbp - 0x38], r8b
mov dword [rbp - 0x34], r12d
lea rax, [rbp - 0x30]
mov ecx, 0x40
nop
mov qword [rax], r12
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
lea rax, [rax + 0x40]
mov qword [rax - 0x28], r12
mov qword [rax - 0x20], r12
mov qword [rax - 0x18], r12
mov qword [rax - 0x10], r12
mov qword [rax - 8], r12
sub rcx, r9
jne 0x180019690
mov qword [rax], r12
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm1, qword [rbp - 0x78]
movsd qword [rbp - 0x40], xmm1
mov dword [rbp - 0x3c], r12d
lea rax, [rbp - 0x50]
mov qword [rsp + 0x70], rax
lea rcx, [rbx + 0xa0]
call fcn.1800293b0
mov rdi, rax
movups xmm0, xmmword [0x1800bad40]
movups xmmword [0x1800f3360], xmm0
movups xmm1, xmmword [0x1800bad50]
movups xmmword [0x1800f3370], xmm1
movsd xmm0, qword [0x1800bad60]
movsd qword [0x1800f3380], xmm0
cmp rax, r13
je 0x180019976
mov dword [rax], r12d
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov dword [rax + 0x20], r12d
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.180024c50
test al, al
je 0x180019976
lea r9, [rdi + 0x1c]
mov r14d, dword [r9]
mov r8, rbx
mov edx, dword [rdi + 0x18]
mov rcx, r15
call fcn.180010830
mov rdi, rax
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x60], r14d
mov dword [rbp - 0x5c], r12d
lea r8, [0x1800bad40]
cmp rax, r8
je 0x180019976
mov byte [rbp + 0xff8], 0
mov dword [rbp + 0xffc], r12d
lea rcx, [rbp + 0x1000]
mov edx, 0x40
nop word [rax + rax]
mov qword [rcx], r12
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], r12
lea rcx, [rcx + 0x40]
mov qword [rcx - 0x28], r12
mov qword [rcx - 0x20], r12
mov qword [rcx - 0x18], r12
mov qword [rcx - 0x10], r12
mov qword [rcx - 8], r12
sub rdx, 1
jne 0x1800197a0
mov qword [rcx], r12
movups xmm0, xmmword [rbp - 0x70]
movaps xmmword [rbp + 0xfe0], xmm0
movsd xmm1, qword [rbp - 0x60]
movsd qword [rbp + 0xff0], xmm1
mov dword [rbp + 0xff4], r12d
mov dword [rbp + 0x2008], r12d
mov byte [rbp + 0x200c], dl
lea rax, [rbp + 0xfe0]
mov qword [rsp + 0x70], rax
cmp esi, dword [rbx + 0xb4]
jb 0x18001983b
movups xmm0, xmmword [0x1800bad40]
movups xmmword [0x1800f3360], xmm0
movups xmm1, xmmword [0x1800bad50]
movups xmmword [0x1800f3370], xmm1
movups xmm0, xmmword [0x1800bad60]
movups xmmword [0x1800f3380], xmm0
mov rax, r13
jmp 0x18001984c
mov eax, esi
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rbx + 0xb8]
mov dword [rax], r12d
mov qword [rax + 8], r12
mov qword [rax + 0x10], r12
mov dword [rax + 0x18], r12d
mov qword [rax + 0x20], r8
mov dword [rax + 0x28], r12d
cmp esi, dword [rbx + 0xb4]
jb 0x18001989a
movups xmm0, xmmword [0x1800bad40]
movups xmmword [0x1800f3360], xmm0
movups xmm1, xmmword [0x1800bad50]
movups xmmword [0x1800f3370], xmm1
movups xmm0, xmmword [0x1800bad60]
movups xmmword [0x1800f3380], xmm0
mov rdx, r13
jmp 0x1800198ab
mov eax, esi
lea rdx, [rax + rax*2]
shl rdx, 4
add rdx, qword [rbx + 0xb8]
lea rcx, [rsp + 0x70]
call fcn.180024e10
test al, al
je 0x180019976
movups xmm0, xmmword [0x1800bad60]
movups xmm1, xmmword [0x1800bad50]
movups xmm2, xmmword [0x1800bad40]
cmp esi, dword [rbx + 0xb4]
jb 0x1800198f4
movups xmmword [0x1800f3360], xmm2
movups xmmword [0x1800f3370], xmm1
movups xmmword [0x1800f3380], xmm0
mov rdx, r13
jmp 0x180019905
mov eax, esi
lea rdx, [rax + rax*2]
shl rdx, 4
add rdx, qword [rbx + 0xb8]
lea rcx, [0x1800bad40]
test r14d, r14d
cmovne rcx, rdi
cmp esi, dword [rbx + 0xb4]
jb 0x180019935
movups xmmword [0x1800f3360], xmm2
movups xmmword [0x1800f3370], xmm1
movups xmmword [0x1800f3380], xmm0
mov rdi, r13
jmp 0x180019946
mov eax, esi
lea rdi, [rax + rax*2]
shl rdi, 4
add rdi, qword [rbx + 0xb8]
mov r8, rbx
mov edx, dword [rdx + 0x18]
call fcn.18000ffa0
mov qword [rdi + 0x20], rax
inc esi
cmp esi, dword [rbx + 0x98]
lea rdi, [0x1800b7498]
lea r14, str.check_range___p.._p____u_bytes__in___p.._p______s
jb 0x1800195c0
jmp 0x180019a08
mov rcx, rbx
call fcn.180004a90
cmp dword [rbx + 0x50], 0
je 0x180019991
mov dword [rbx + 0x54], r12d
mov rcx, qword [rbx + 0x58]
call fcn.18009e600
mov qword [rbx + 0x50], r12
mov qword [rbx + 0x58], r12
cmp dword [rbx + 0xa0], 0
je 0x1800199bc
xor edx, edx
lea rcx, [rbx + 0xa0]
call fcn.18002dee0
mov rcx, qword [rbx + 0xa8]
call fcn.18009e600
mov qword [rbx + 0xa0], r12
mov qword [rbx + 0xa8], r12
cmp dword [rbx + 0xb0], 0
je 0x1800199ed
xor edx, edx
lea rcx, [rbx + 0xb0]
call fcn.18002df90
mov rcx, qword [rbx + 0xb8]
call fcn.18009e600
mov qword [rbx + 0xb0], r12
mov qword [rbx + 0xb8], r12
mov rcx, qword [rbx + 0x40]
call fcn.1800028e0
mov qword [rbx + 0x40], r12
mov rax, rbx
mov rcx, qword [rbp + 0x2010]
xor rcx, rsp
call fcn.1800986c0
mov rbx, qword [rsp + 0x2170]
add rsp, 0x2120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret