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

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x130
mov rax, qword [0x14027f238]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rax, qword [rcx]
mov r10, rcx
mov qword [rsp + 0x68], rcx
mov rsi, r8
mov word [rsp + 0x32], r9w
mov r8, rdx
mov qword [rsp + 0x70], rdx
mov rax, qword [rax]
mov rbx, qword [r10 + 0x10]
mov qword [rsp + 0x80], rax
mov rcx, qword [rax]
mov qword [rsp + 0x78], rcx
xor ecx, ecx
mov ebp, ecx
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rcx
cmp dword [rax + 0x30], ecx
je 0x14009fb4f
mov eax, dword [rax + 0x18]
jmp 0x1400a02ee
movzx ecx, word [rbx + 0x1a]
mov edx, SafeArrayCopy
mov eax, dword [rbx + 0x38]
test al, 0x20
movzx r11d, word [rbx + 0x3c]
mov r8d, dword [r8 + 0x44]
mov word [rsp + 0x3a], cx
movzx ecx, word [rbx + 0x1c]
mov word [rsp + 0x3c], cx
movzx ecx, word [rbx + 0x3e]
mov word [rsp + 0x40], cx
mov rcx, qword [rbx]
mov qword [rsp + 0x88], rcx
movzx ecx, word [rbx + 0x16]
mov dword [rsp + 0x64], eax
mov eax, 0x1bf
cmove edx, eax
mov word [rsp + 0x36], cx
movzx eax, word [rbx + 0x18]
mov ecx, edx
and ecx, 0xffffffc3
mov word [rsp + 0x30], ax
mov r9d, eax
mov qword [rsp + 0x28], rsi
mov eax, dword [rsi + 0x64]
and al, 4
mov qword [rsp + 0x128], rdi
mov word [rsp + 0x3e], r11w
cmove ecx, edx
mov rdx, qword [r10 + 8]
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xa0]
call fcn.14009ce20
xor edx, edx
mov rdi, rax
mov word [rbx + 0x12], dx
mov rcx, qword [rsi + 0x10]
movzx eax, word [rcx]
mov word [rsp + 0x60], ax
cmp ax, 0xa
jg 0x14009fc05
mov word [rsp + 0x38], dx
mov ecx, 0x100
jmp 0x14009fc22
movsx rcx, ax
call fcn.14000ba80
sub ax, 0x21
mov ecx, 0x100
mov word [rsp + 0x38], ax
xor edx, edx
jmp 0x14009fc22
xor edx, edx
test rdi, rdi
je 0x1400a01a9
movzx r9d, word [rdi + 0x14]
mov ebp, edx
mov word [rsp + 0x34], r9w
cmp r9w, cx
je 0x14009fc48
test byte [rdi + 0x12], 0x80
je 0x14009fd07
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 8]
movsx r8, word [rax + r10*2]
test r8d, r8d
js 0x14009fcf8
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
mov edx, dword [rax + rcx*8 + 8]
and edx, 0xf
jne 0x1400a0182
mov ecx, 0x100
mov rax, qword [rdi + 0x28]
test qword [rbx + 8], rax
jne 0x1400a0182
test word [rdi + 0x12], cx
je 0x14009fc9d
cmp r9w, 0x10
je 0x1400a0182
mov r11, qword [rsp + 0x70]
movzx edx, byte [r11 + 0x3c]
test dl, 0x58
je 0x14009fcd9
mov rcx, qword [rdi]
mov r8d, dword [rcx + 4]
test r8b, 3
je 0x1400a0182
mov eax, dword [r11 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1400a0182
test dl, 0x18
je 0x14009fcd9
test r8b, 2
jne 0x1400a0182
cmp byte [rsi + 0x62], 0
je 0x14009fd12
movzx eax, word [rsi + 0x5e]
dec eax
movzx ecx, r10w
cmp ecx, eax
jne 0x14009fd12
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 2
jmp 0x14009fd1b
cmp r8d, 0xffffffff
je 0x1400a0182
jmp 0x14009fc79
movzx r10d, word [rsp + 0x30]
jmp 0x14009fc7e
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 1
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x18], r10w
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x14009fd75
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
movzx r8d, ax
inc r8d
call fcn.14009efb0
test eax, eax
jne 0x1400a01a5
movzx r9d, word [rsp + 0x34]
movzx r10d, word [rsp + 0x30]
mov r11, qword [rsp + 0x70]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdi
inc word [rbx + 0x3c]
mov rcx, qword [rdi + 0x28]
or rcx, qword [rsp + 0x88]
mov rax, qword [rbx + 8]
not rax
and rcx, rax
mov qword [rbx], rcx
test r9b, 1
je 0x14009fea9
mov r8, qword [rdi]
test dword [r8 + 4], 0x1000
je 0x14009fdf1
movzx eax, word [rbx + 0x3c]
mov ebp, 0x2e
dec eax
test eax, eax
jle 0x14009fe09
mov rcx, qword [rbx + 0x48]
xor r9d, r9d
mov edx, eax
nop dword [rax]
mov rax, qword [rcx]
test rax, rax
je 0x14009fddf
cmp qword [rax], r8
cmove ebp, r9d
add rcx, 8
sub rdx, 1
jne 0x14009fdd0
movzx r9d, word [rsp + 0x34]
jmp 0x14009fe09
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x14009fe09
movsxd rcx, dword [rax]
test ecx, ecx
je 0x14009fe09
call fcn.14000ba80
movsx ebp, ax
test byte [rsi + 0x64], 0x80
je 0x14009fe76
movzx r11d, word [rsp + 0x38]
cmp r11w, 0xa
jl 0x14009fe76
mov rax, qword [rsi + 0x10]
movzx ecx, r10w
movzx r8d, word [rax + rcx*2]
cmp bp, 0xa
jg 0x14009fe33
xor eax, eax
jmp 0x14009fe40
movsx rcx, bp
call fcn.14000ba80
sub ax, 0x21
sub ax, bp
sub ax, r11w
add ax, r8w
add ax, 0xa
jns 0x14009fe76
cmp word [rsp + 0x32], 2
jge 0x1400a0182
mov rax, qword [rsp + 0x78]
test dword [rax + 0x60], 0x20000
jne 0x1400a0182
or dword [rbx + 0x38], 0x100000
or dword [rbx + 0x38], 4
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x48]
mov r10d, 0x100
test byte [rbx + 0x38], 2
je 0x1400a0021
mov r9, rax
mov qword [rsp + 0x20], rbx
mov r8, rcx
call fcn.14009edd0
jmp 0x1400a007b
test r9b, 0x82
je 0x14009ff22
mov rax, qword [rsi + 8]
movzx ecx, r10w
movsx edx, word [rax + rcx*2]
or dword [rbx + 0x38], 1
mov ecx, dword [rbx + 0x38]
cmp edx, 0xffffffff
je 0x14009ff01
test edx, edx
js 0x14009ff08
cmp word [rsp + 0x32], 0
jne 0x14009ff08
movzx edx, word [rsi + 0x5e]
movzx r8d, r10w
lea eax, [rdx - 1]
cmp r8d, eax
jne 0x14009ff08
test byte [rsi + 0x64], 8
jne 0x14009ff01
cmp edx, 1
jne 0x14009fefb
cmp byte [rsi + 0x62], 0
je 0x14009fefb
cmp r9w, 2
je 0x14009ff01
bts ecx, 0x10
jmp 0x14009ff05
bts ecx, 0xc
mov dword [rbx + 0x38], ecx
cmp byte [rsp + 0xc9], 1
jbe 0x14009fe7a
or dword [rbx + 0x38], 0x200000
jmp 0x14009fe7a
mov eax, 0x100
test ax, r9w
je 0x14009ff36
or dword [rbx + 0x38], 8
jmp 0x14009fe7a
mov edx, dword [r11 + 0x44]
mov r8, rsi
mov rcx, qword [rsp + 0x80]
movzx r9d, r10w
mov qword [rsp + 0x20], rdi
call fcn.14009f8b0
movzx r9d, word [rsp + 0x34]
mov r10d, 0x100
test r9b, 0x24
je 0x14009ffe0
or dword [rbx + 0x38], 0x22
mov rcx, rdi
mov word [rbx + 0x1a], ax
xor eax, eax
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x48], rax
test word [rdi + 0x12], r10w
je 0x14009fe8a
movzx r8d, word [rbx + 0x3c]
lea rax, [rdi + 0x38]
mov rcx, qword [rsp + 0x78]
inc r8d
mov rdx, rbx
mov qword [rsp + 0x48], rax
call fcn.14009efb0
test eax, eax
jne 0x1400a01a5
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x48]
movzx r9d, word [rsp + 0x34]
mov qword [rax + rcx*8], rdx
mov eax, 1
inc word [rbx + 0x3c]
mov rcx, rdi
or dword [rbx + 0x38], 0x10
mov word [rbx + 0x1c], ax
mov rax, rdx
jmp 0x14009fe84
or dword [rbx + 0x38], 0x12
test byte [rbx + 0x38], 0x20
mov word [rbx + 0x1c], ax
mov rax, rdi
mov qword [rsp + 0x48], rax
je 0x1400a0015
movzx eax, word [rbx + 0x3c]
sub eax, 2
movsxd rcx, eax
mov rax, qword [rbx + 0x48]
mov rcx, qword [rax + rcx*8]
mov rax, rdi
mov qword [rsp + 0x58], rcx
jmp 0x14009fe8a
xor ecx, ecx
mov qword [rsp + 0x58], rcx
jmp 0x14009fe8a
inc word [rbx + 0x18]
movzx edx, word [rdi + 0x10]
movzx r8d, word [rbx + 0x18]
test dx, dx
jg 0x1400a004c
movzx ecx, word [rsp + 0x30]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], 0
jl 0x1400a004c
sub dx, bp
add word [rbx + 0x16], dx
jmp 0x1400a007b
mov rdx, qword [rsi + 0x10]
lea eax, [r8 - 1]
movsxd rcx, eax
movzx r8d, word [rdx + r8*2]
sub r8w, word [rdx + rcx*2]
add r8w, word [rbx + 0x16]
mov word [rbx + 0x16], r8w
test r10w, r9w
je 0x1400a007b
add r8w, 0xa
mov word [rbx + 0x16], r8w
mov eax, dword [rsi + 0x64]
and eax, 3
cmp al, 3
jne 0x1400a008f
movzx eax, word [rbx + 0x16]
add ax, 0x10
jmp 0x1400a00af
mov rcx, qword [rsp + 0x70]
movsx eax, word [rsi + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
inc ax
add ax, word [rbx + 0x16]
movzx ecx, word [rsp + 0x38]
movzx edx, ax
call fcn.14000ba10
test dword [rbx + 0x38], 0x4000140
mov word [rbx + 0x14], ax
jne 0x1400a00dd
movzx edx, word [rbx + 0x16]
movzx ecx, ax
add dx, 0x10
call fcn.14000ba10
mov word [rbx + 0x14], ax
movzx ecx, word [rsp + 0x32]
mov rdx, rbx
movzx edi, word [rbx + 0x16]
movzx r8d, word [rsp + 0x60]
lea eax, [rcx + rbp]
add word [rbx + 0x14], ax
lea eax, [rcx + rbp]
add word [rbx + 0x16], ax
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 8]
call fcn.14009f700
mov rcx, qword [rsp + 0x68]
mov rdx, rbx
call fcn.14009f5a0
mov ecx, dword [rbx + 0x38]
test cl, 2
mov dword [rsp + 0x50], eax
cmovne di, word [rsp + 0x36]
mov word [rbx + 0x16], di
test cl, 0x10
jne 0x1400a0179
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1400a0179
cmp cx, word [rsi + 0x5e]
jb 0x1400a014a
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
je 0x1400a0179
cmp cx, 3
jbe 0x1400a015d
mov rcx, qword [rsp + 0x80]
call fcn.14000a6e0
movzx r9d, word [rsp + 0x32]
mov r8, rsi
mov rdx, qword [rsp + 0x70]
add r9w, bp
mov rcx, qword [rsp + 0x68]
call fcn.14009fae0
movzx ecx, word [rsp + 0x36]
mov word [rbx + 0x16], cx
lea rcx, [rsp + 0xa0]
call fcn.14009ca70
mov ebp, dword [rsp + 0x50]
mov rdi, rax
mov ecx, 0x100
test ebp, ebp
je 0x14009fc20
jmp 0x1400a01a9
mov ebp, dword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
movzx edi, word [rsp + 0x30]
movzx ecx, word [rsp + 0x40]
movzx r11d, word [rsp + 0x3e]
mov qword [rbx], rax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], di
mov word [rbx + 0x3e], cx
mov word [rbx + 0x3c], r11w
cmp di, cx
jne 0x1400a02e4
movzx ecx, word [rsi + 0x5e]
movzx eax, di
inc eax
cmp eax, ecx
jae 0x1400a02e4
cmp di, r11w
jne 0x1400a02e4
mov eax, dword [rsi + 0x64]
test al, 0x40
jne 0x1400a02e4
test al, al
jns 0x1400a02e4
mov r9, qword [rsp + 0x78]
test dword [r9 + 0x60], 0x4000
jne 0x1400a02e4
mov rax, qword [rsi + 0x10]
movzx ecx, di
cmp word [rax + rcx*2 + 2], 0x2a
jl 0x1400a02e4
movzx r8d, r11w
mov rdx, rbx
inc r8d
mov rcx, r9
call fcn.14009efb0
mov ebp, eax
test eax, eax
jne 0x1400a02e4
inc word [rbx + 0x18]
mov r8, rsi
inc word [rbx + 0x3e]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rsp + 0x70]
movzx r9d, di
mov qword [rax + rcx*8], 0
inc word [rbx + 0x3c]
or dword [rbx + 0x38], 0x8000
mov r10, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x68]
movzx eax, di
movzx r11d, word [r10 + r9*2]
movzx r9d, word [rsp + 0x32]
sub r11w, word [r10 + rax*2 + 2]
add r9w, 5
sub word [rbx + 0x16], r11w
add r9w, r11w
call fcn.14009fae0
movzx eax, word [rsp + 0x36]
movzx ecx, word [rsp + 0x40]
mov word [rbx + 0x16], ax
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x38], eax
mov word [rbx + 0x18], di
mov word [rbx + 0x3e], cx
mov rdi, qword [rsp + 0x128]
mov eax, ebp
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.140164ec0
add rsp, 0x130
pop rsi
pop rbp
pop rbx
ret