Function at 0x2100b9430
Capabilities:
Read file on windows

Disassembly:
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rbx, rcx
mov rcx, rdx
mov r12, rdx
mov rsi, r8
mov dword [rsp + 0x38], 0
mov r14, r9
call sym.GetTapeStatus
cmp eax, 0x458
sete dl
cmp eax, 0x15
sete al
mov edi, edx
or dil, al
jne 0x2100b9570
mov r13d, dword [rbx + 4]
cmp r13d, 0x457
je 0x2100b9590
cmp dword [rbx + 0x18], 3
je 0x2100b9640
movsxd rax, dword [rbx + 8]
mov dword [rbx + 0x18], 0
mov rdx, rax
shl rdx, 5
mov edx, dword [rbx + rdx + 0x88]
cmp edx, 1
je 0x2100b9610
cmp edx, 3
je 0x2100b9670
cmp edx, 4
je 0x2100b96a0
cmp edx, 5
je 0x2100b95e0
cmp edx, 6
je 0x2100b9810
shl rax, 5
mov byte [rbx + rax + 0x84], 0
test byte [rbx + 0x68], 0x10
je 0x2100b94ef
cmp dword [rbx + 0x1c], 1
jle 0x2100b9880
mov qword [rbx + 0x60], rsi
lea r9, [rsp + 0x38]
mov rdx, r14
mov rcx, r12
mov rax, qword [rsp + 0xa0]
mov qword [rsi + 0x10], 0
mov qword [rsp + 0x20], rsi
mov r8d, dword [rax]
call sym.ReadFile
mov r13d, eax
test eax, eax
je 0x2100b97c0
mov esi, dword [rsp + 0x38]
mov ecx, dword [rbx + 8]
mov dword [rbx + 4], 0
mov rax, qword [rsp + 0xa0]
mov r8, rsi
mov qword [rax], rsi
test esi, esi
jne 0x2100b96d0
movsxd rdx, ecx
shl rdx, 5
mov dword [rdx + rbx + 0x88], 0
mov dword [rbx + 0x18], 1
xor r13d, r13d
jmp 0x2100b957d
mov dword [rbx + 4], 0x458
mov r13d, 0x458
mov eax, r13d
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
ret
mov rax, qword [rsp + 0xa0]
mov qword [rax], 0
test byte [0x210273880], 1
je 0x2100b957d
lea rax, [0x2102943ae]
mov dword [rsp + 0x28], r13d
lea r9, str._s:_Win32_error__d
mov edx, 0x40
mov qword [rsp + 0x20], rax
lea r8, str.int_mtinfo_drive::error_const_char_
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
mov r13d, dword [rbx + 4]
jmp 0x2100b957d
shl rax, 5
mov dword [rbx + rax + 0x88], 6
mov rax, qword [rsp + 0xa0]
mov qword [rax], 0
mov dword [rbx + 4], 0
jmp 0x2100b9563
shl rax, 5
xor r13d, r13d
mov dword [rbx + rax + 0x88], 2
mov rax, qword [rsp + 0xa0]
mov qword [rax], 0
mov dword [rbx + 4], 0
jmp 0x2100b957d
mov rdx, qword [rbx + 0x60]
lea r8, [rsp + 0x3c]
mov r9d, 1
mov rcx, r12
call sym.GetOverlappedResult
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x2100b9838
mov dword [rbx + 4], eax
jmp 0x2100b948d
shl rax, 5
xor r13d, r13d
mov dword [rbx + rax + 0x88], 4
mov rax, qword [rsp + 0xa0]
mov qword [rax], 0
mov dword [rbx + 4], 0
jmp 0x2100b957d
mov rax, qword [rsp + 0xa0]
mov dword [rbx + 4], 0x450
mov r13d, 0x450
mov qword [rax], 0xffffffffffffffff
test byte [0x210273880], 1
je 0x2100b957d
jmp 0x2100b95a8
xor r13d, r13d
xor r9d, r9d
mov r10d, dword [rbx + 0x50]
mov eax, 1
test r10d, r10d
je 0x2100b96f0
lea eax, [r10 + r8 - 1]
xor edx, edx
div r10d
cdqe
movsxd rdx, ecx
add qword [rbx + 0x10], rax
mov rcx, rdx
shl rcx, 5
add rcx, rbx
mov r10, qword [rcx + 0x78]
add qword [rcx + 0x70], rax
test r10, r10
js 0x2100b9715
add r10, rax
mov qword [rcx + 0x78], r10
cmp r9d, 0x44d
jne 0x2100b9780
mov rax, rdx
add qword [rbx + 0x10], 1
shl rax, 5
add rax, rbx
mov ecx, dword [rax + 0x80]
add qword [rax + 0x70], 1
test ecx, ecx
js 0x2100b9745
add ecx, 1
mov dword [rax + 0x80], ecx
mov rcx, rdx
shl rcx, 5
cmp r8d, 1
mov qword [rbx + rcx + 0x78], 0
mov byte [rax + 0x84], dil
mov eax, 1
adc eax, 0
shl rdx, 5
mov dword [rdx + rbx + 0x88], eax
mov dword [rbx + 4], 0
jmp 0x2100b955c
cmp r13d, 0x44c
je 0x2100b9796
cmp r13d, 0x469
jne 0x2100b98b0
lea rax, [rdx + 4]
shl rax, 5
add rax, rbx
cmp dword [rax + 8], 2
jne 0x2100b98a0
mov dword [rax + 8], 6
test r13d, r13d
jne 0x2100b96bc
jmp 0x2100b955c
call sym.GetLastError
mov dword [rbx + 4], eax
cmp eax, 0x3e5
je 0x2100b9848
cmp eax, 0x44f
mov r9d, eax
mov r8d, dword [rsp + 0x38]
mov r13d, eax
sete dil
and r9d, 0xfffffffd
mov rax, qword [rsp + 0xa0]
mov ecx, dword [rbx + 8]
mov esi, r8d
mov qword [rax], rsi
movsxd rdx, ecx
test r8d, r8d
je 0x2100b9715
jmp 0x2100b96d6
mov rax, qword [rsp + 0xa0]
mov dword [rbx + 4], 0x44c
mov r13d, 0x44c
mov qword [rax], 0xffffffffffffffff
jmp 0x2100b96bc
call sym.GetLastError
jmp 0x2100b9665
mov rdx, qword [rbx + 0x60]
mov r9d, 1
lea r8, [rsp + 0x3c]
mov rcx, r12
call sym.GetOverlappedResult
mov r8d, dword [rsp + 0x3c]
xor r9d, r9d
mov dword [rsp + 0x38], r8d
test eax, eax
je 0x2100b98e0
mov dword [rbx + 4], r13d
jmp 0x2100b97e7
mov r9d, 1
mov r8d, 3
mov rdx, r12
mov rcx, rbx
call method.mtinfo_drive.prepare_void__int__bool_
jmp 0x2100b94ef
mov eax, 5
jmp 0x2100b9768
cmp r13d, 0x450
jne 0x2100b990c
lea rax, [rdx + 4]
shl rax, 5
add rax, rbx
cmp dword [rax + 8], 2
jne 0x2100b9902
mov dword [rax + 8], 4
jmp 0x2100b96bc
call sym.GetLastError
mov r8d, dword [rsp + 0x38]
mov r9d, eax
mov r13d, eax
and r9d, 0xfffffffd
cmp eax, 0x44f
sete dil
jmp 0x2100b9870
mov eax, 3
jmp 0x2100b9768
shl rdx, 5
mov dword [rdx + rbx + 0x88], 0
cmp r13d, 0xea
jne 0x2100b97b2
mov dword [rbx + 4], 8
mov r13d, 8
jmp 0x2100b96bc