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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov r12, rdx
lea rax, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x40], rax
lea rax, vtable.CVolObject.0
mov qword [rbp - 0x40], rax
xor r13d, r13d
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x30], r13
lea rax, vtable.CVolMem.0
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], r13
mov eax, 0x40
mov qword [rbp - 0x10], rax
mov rsi, qword [r8 + 0x18]
test rsi, rsi
jne 0x14001abdb
cmp qword [r8 + 0x48], rsi
jne 0x14001abce
lea rsi, [0x14024a3e0]
jmp 0x14001abdb
mov rsi, qword [r8 + 0x38]
test rsi, rsi
je 0x14001ad0a
cmp word [rsi], 0
je 0x14001ad0a
mov rdi, 0xffffffffffffffff
nop dword [rax]
lea rdi, [rdi + 1]
cmp word [rsi + rdi*2], 0
jne 0x14001abf0
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
lea r9d, [rdi + 1]
mov r8, rsi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd r14, eax
mov r15, qword [rbp - 0x28]
test r15, r15
je 0x14001ac9e
cmp r14, qword [rbp - 0x18]
je 0x14001ace1
test eax, eax
jne 0x14001ac5c
mov rdx, r15
lea rcx, [rbp - 0x40]
mov rax, qword [rbp - 0x40]
call qword [rax + 0x18]
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], r13
mov r15, r13
jmp 0x14001ace1
mov rbx, qword [rbp - 0x10]
test rbx, rbx
mov eax, 0x40
cmovle rbx, rax
mov rax, qword [rbp - 0x20]
cmp rax, r14
jl 0x14001ac7d
sub rax, r14
cmp rax, rbx
jle 0x14001acdd
mov rax, r14
cqo
idiv rbx
sub rbx, rdx
add rbx, r14
mov r8, rbx
mov rdx, r15
lea rcx, [rbp - 0x40]
mov rax, qword [rbp - 0x40]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x14001acd2
test eax, eax
jne 0x14001aca7
mov r15, r13
jmp 0x14001ace1
mov rbx, qword [rbp - 0x10]
test rbx, rbx
mov eax, 0x40
cmovle rbx, rax
mov rax, r14
cqo
idiv rbx
sub rbx, rdx
add rbx, r14
mov rdx, rbx
lea rcx, [rbp - 0x40]
mov rax, qword [rbp - 0x40]
call qword [rax]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rbx
mov r15, rax
mov qword [rbp - 0x18], r14
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r15
lea r9d, [rdi + 1]
mov r8, rsi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jg 0x14001ad11
lea r15, [0x14024e7eb]
movsxd rax, dword [r12 + 0x3c]
cmp dword [rax + r12 + 0x8c], 0
jbe 0x14001ad98
mov eax, dword [rax + r12 + 0x88]
add rax, r12
mov r14d, dword [rax + 0x1c]
add r14, r12
mov ecx, r15d
sub ecx, dword [rax + 0x10]
mov esi, dword [rax + 0x14]
cmp ecx, esi
ja 0x14001ad49
mov ebx, dword [r14 + rcx*4]
add rbx, r12
jmp 0x14001ad9b
mov edi, dword [rax + 0x20]
add rdi, r12
mov r11d, dword [rax + 0x24]
add r11, r12
mov r9d, r13d
mov ebx, dword [rax + 0x18]
test ebx, ebx
je 0x14001ad98
mov r10d, r9d
mov r8d, dword [rdi + r10*4]
add r8, r12
mov rax, r15
sub r8, r15
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x14001ad83
inc rax
test ecx, ecx
jne 0x14001ad70
test edx, edx
jne 0x14001ad90
movzx eax, word [r11 + r10*2]
cmp eax, esi
jbe 0x14001adf6
inc r9d
cmp r9d, ebx
jb 0x14001ad60
mov rbx, r13
lea rax, vtable.CVolMem.0
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp - 0x28]
test rdx, rdx
je 0x14001adbb
lea rcx, [rbp - 0x40]
mov r8, qword [rbp - 0x40]
call qword [r8 + 0x18]
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x20], r13
lea rax, vtable.CVolObject.0
mov qword [rbp - 0x40], rax
mov rax, rbx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ebx, dword [r14 + rax*4]
add rbx, r12
jmp 0x14001ad9b