Function at 0x14001b820
Capabilities:
Read file on windows

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
lea rbp, [rsp - 0x2f]
sub rsp, 0x90
mov rbx, rdx
mov r14, rcx
xor esi, esi
mov qword [rcx + 0x18], rsi
mov rdx, qword [rcx + 0x38]
test rdx, rdx
je 0x14001b864
mov rax, qword [rcx + 0x20]
add rcx, 0x20
call qword [rax + 0x18]
mov qword [r14 + 0x38], rsi
mov qword [r14 + 0x48], rsi
mov qword [r14 + 0x40], rsi
lea rax, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 0x41], rax
lea r15, vtable.CVolObject.0
mov qword [rbp - 0x41], r15
mov qword [rbp - 0x39], rsi
mov qword [rbp - 0x31], rsi
lea rax, vtable.CVolMem.0
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x29], rsi
mov qword [rbp - 0x19], rsi
mov qword [rbp - 0x21], rsi
mov eax, 0x40
mov qword [rbp - 0x11], rax
test rbx, rbx
je 0x14001bbfc
cmp word [rbx], 0
je 0x14001bbfc
lea r13, [rax - 0x41]
lea rdx, [0x140045354]
mov rcx, rbx
call fcn.14002b03c
mov r15, rax
lea r12d, [r13 + 2]
test rax, rax
je 0x14001b9f0
xor edx, edx
lea r8d, [r13 + 3]
mov rcx, rax
call fcn.140028214
mov rcx, r15
call fcn.14002ba6c
movsxd rsi, eax
xor r8d, r8d
xor edx, edx
mov rcx, r15
call fcn.140028214
test rsi, rsi
jle 0x14001b9df
mov rcx, qword [rbp - 0x29]
test rcx, rcx
je 0x14001b964
cmp rsi, qword [rbp - 0x19]
je 0x14001b99e
mov rbx, qword [rbp - 0x11]
test rbx, rbx
mov eax, 0x40
cmovle rbx, rax
mov rax, qword [rbp - 0x21]
cmp rax, rsi
jl 0x14001b943
sub rax, rsi
cmp rax, rbx
jle 0x14001b99a
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov r8, rbx
mov rdx, rcx
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax + 0x10]
jmp 0x14001b98f
mov rbx, qword [rbp - 0x11]
test rbx, rbx
mov eax, 0x40
cmovle rbx, rax
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov rdx, rbx
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax]
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rbx
mov rcx, rax
mov qword [rbp - 0x19], rsi
mov r9, r15
mov r8, rsi
mov rdx, r12
call fcn.14002b48c
mov rbx, rax
mov rcx, r15
call fcn.14002bbbc
test eax, eax
jne 0x14001b9e6
mov rdx, rbx
lea rcx, [rbp - 0x41]
call fcn.140019b40
mov rcx, r15
call fcn.140027a18
mov r15, qword [rbp - 0x19]
mov rdx, qword [rbp - 0x21]
mov rcx, qword [rbp - 0x29]
xor esi, esi
jmp 0x14001ba1c
xor esi, esi
mov r13d, esi
jmp 0x14001b9e8
xor esi, esi
mov rcx, r15
call fcn.140027a18
mov rdx, qword [rbp - 0x29]
test rdx, rdx
je 0x14001ba04
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax + 0x18]
mov rcx, rsi
mov qword [rbp - 0x29], rcx
mov r15, rsi
mov qword [rbp - 0x19], rsi
mov rdx, rsi
mov qword [rbp - 0x21], rdx
mov rbx, r13
test rbx, rbx
jle 0x14001bbf5
mov rax, rdx
sub rax, r15
cmp rax, 4
jl 0x14001ba46
mov dword [r15 + rcx], esi
mov rax, qword [rbp - 0x19]
add rax, 4
mov qword [rbp - 0x19], rax
jmp 0x14001bafb
lea rsi, [r15 + 4]
cmp rsi, r15
je 0x14001baf1
test rsi, rsi
jne 0x14001ba7d
test rcx, rcx
je 0x14001ba6b
mov rdx, rcx
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax + 0x18]
xor esi, esi
mov qword [rbp - 0x29], rsi
mov qword [rbp - 0x19], rsi
mov qword [rbp - 0x21], rsi
mov ecx, esi
jmp 0x14001baf3
mov rbx, qword [rbp - 0x11]
mov eax, 0x40
test rcx, rcx
jne 0x14001baaf
test rbx, rbx
cmovle rbx, rax
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov rdx, rbx
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax]
jmp 0x14001bae2
test rbx, rbx
cmovle rbx, rax
cmp rdx, rsi
jl 0x14001bac3
sub rdx, rsi
cmp rdx, rbx
jle 0x14001baed
mov rax, rsi
cqo
idiv rbx
sub rbx, rdx
add rbx, rsi
mov r8, rbx
mov rdx, rcx
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax + 0x10]
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rbx
mov rcx, rax
mov qword [rbp - 0x19], rsi
xor esi, esi
mov dword [rcx + r15], esi
mov rax, qword [rbp - 0x19]
mov rbx, qword [rbp - 0x29]
test rax, rax
cmove rbx, rsi
movzx eax, word [rbx]
mov ecx, 0xfeff
cmp ax, cx
jne 0x14001bb1a
add rbx, 2
mov r12d, esi
lea rax, vtable.CVolCommonBaseWithMemManager.0
mov qword [rbp - 9], rax
lea r15, vtable.CVolObject.0
mov qword [rbp - 9], r15
mov qword [rbp - 1], rsi
mov qword [rbp + 7], rsi
lea r13, vtable.CVolMem.0
mov qword [rbp - 9], r13
mov qword [rbp + 0xf], rsi
mov qword [rbp + 0x1f], rsi
mov qword [rbp + 0x17], rsi
mov eax, 0x40
mov qword [rbp + 0x27], rax
test r12d, r12d
je 0x14001bb70
cmp r12d, 1
jne 0x14001bbcb
mov rdx, rbx
mov rcx, r14
call fcn.14001b4e0
jmp 0x14001bbcb
mov rax, qword [r14 + 0x18]
test rax, rax
jne 0x14001bb8a
cmp qword [r14 + 0x48], rax
lea rax, [0x1400446ec]
je 0x14001bb8a
mov rax, qword [r14 + 0x38]
cmp rbx, rax
je 0x14001bbcb
mov qword [r14 + 0x18], rsi
mov rdx, qword [r14 + 0x38]
test rdx, rdx
je 0x14001bba7
mov rax, qword [r14 + 0x20]
lea rcx, [r14 + 0x20]
call qword [rax + 0x18]
mov qword [r14 + 0x38], rsi
mov qword [r14 + 0x48], rsi
mov qword [r14 + 0x40], rsi
test rbx, rbx
je 0x14001bbcb
cmp word [rbx], 0
je 0x14001bbcb
mov rdx, rbx
lea rcx, [r14 + 0x20]
call fcn.140019c20
nop
mov qword [rbp - 9], r13
mov rdx, qword [rbp + 0xf]
test rdx, rdx
je 0x14001bbe3
lea rcx, [rbp - 9]
mov rax, qword [rbp - 9]
call qword [rax + 0x18]
mov qword [rbp + 0xf], rsi
mov qword [rbp + 0x1f], rsi
mov qword [rbp + 0x17], rsi
mov qword [rbp - 9], r15
jmp 0x14001bc03
lea r15, vtable.CVolObject.0
lea r13, vtable.CVolMem.0
mov qword [rbp - 0x41], r13
mov rdx, qword [rbp - 0x29]
test rdx, rdx
je 0x14001bc1b
lea rcx, [rbp - 0x41]
mov rax, qword [rbp - 0x41]
call qword [rax + 0x18]
mov qword [rbp - 0x29], rsi
mov qword [rbp - 0x19], rsi
mov qword [rbp - 0x21], rsi
mov qword [rbp - 0x41], r15
mov rax, r14
lea r11, [rsp + 0x90]
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