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

Disassembly:
push r13
push r12
push rsi
push rbx
sub rsp, 0x48
mov dword [rcx + 4], 0
mov rbx, rcx
mov rcx, rdx
mov r12, rdx
mov esi, r8d
call sym.GetTapeStatus
cmp eax, 0x15
je 0x2100b9240
cmp eax, 0x458
je 0x2100b9240
mov eax, dword [rbx + 0x18]
cmp eax, 1
jle 0x2100b93a0
cmp eax, 3
je 0x2100b9348
mov ecx, dword [rbx + 4]
test ecx, ecx
jne 0x2100b9290
lea r13, [0x210273880]
test byte [0x210273880], 1
jne 0x2100b9378
xor r9d, r9d
test byte [rbx + 0x68], 4
mov r8d, 1
mov rdx, r12
setne r9b
mov rcx, rbx
add r9d, 1
call method.mtinfo_drive.write_marks_void__int__unsigned_int_
test byte [rbx + 0x68], 4
je 0x2100b9290
mov edx, dword [rbx + 4]
test edx, edx
jne 0x2100b9290
test sil, sil
jne 0x2100b929c
mov dword [rsp + 0x20], 0
mov r9, 0xffffffffffffffff
mov rdx, r12
mov rcx, rbx
mov r8d, 6
call method.mtinfo_drive.set_pos_void__int__long__bool_
mov eax, dword [rbx + 4]
test eax, eax
jne 0x2100b92be
movsxd rax, dword [rbx + 8]
shl rax, 5
mov qword [rbx + rax + 0x78], 0
movzx eax, byte [rbx + 0x68]
jmp 0x2100b92c2
mov dword [rbx + 0x18], 0
test sil, sil
jne 0x2100b9295
test byte [rbx + 0x68], 0x10
jne 0x2100b92c6
mov eax, dword [rbx + 4]
mov dword [rbx + 0x18], 0
test eax, eax
je 0x2100b926d
test byte [0x210273880], 1
jne 0x2100b9308
add rsp, 0x48
pop rbx
pop rsi
pop r12
pop r13
ret
call sym.GetLastError
mov dword [rbx + 4], eax
test eax, eax
je 0x2100b91a6
test sil, sil
je 0x2100b924c
lea r13, [0x210273880]
test byte [0x210273880], 1
jne 0x2100b92e8
xor r9d, r9d
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
mov dword [rsp + 0x20], 0
call method.mtinfo_drive.set_pos_void__int__long__bool_
movzx eax, byte [rbx + 0x68]
test al, 0x10
je 0x2100b9252
cmp dword [rbx + 0x1c], 2
jne 0x2100b9252
xor r9d, r9d
mov r8d, 4
mov rdx, r12
mov rcx, rbx
call method.mtinfo_drive.prepare_void__int__bool_
jmp 0x2100b9252
lea r9, str.rewinding
lea r8, str.int_mtinfo_drive::close_HANDLE__bool_
mov edx, 0x40
mov rcx, r13
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b92a5
mov dword [rsp + 0x28], eax
lea rax, str.close
mov edx, 0x40
lea r9, str._s:_Win32_error__d
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 eax, dword [rbx + 4]
add rsp, 0x48
pop rbx
pop rsi
pop r12
pop r13
ret
mov rdx, qword [rbx + 0x60]
mov r9d, 1
lea r8, [rsp + 0x3c]
mov rcx, r12
call sym.GetOverlappedResult
test eax, eax
je 0x2100b9280
mov dword [rbx + 4], 0
jmp 0x2100b91a6
lea r9, str.writing_filemark
lea r8, str.int_mtinfo_drive::close_HANDLE__bool_
mov edx, 0x40
mov rcx, r13
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100b91ba
jne 0x2100b9290
test sil, sil
jne 0x2100b9295
movsxd rdx, dword [rbx + 8]
movzx eax, byte [rbx + 0x68]
shl rdx, 5
add rdx, rbx
mov ecx, dword [rdx + 0x88]
test al, 0x20
je 0x2100b93e8
test ecx, ecx
je 0x2100b9420
cmp ecx, 1
jne 0x2100b92c2
mov dword [rdx + 0x88], 2
jmp 0x2100b92c2
cmp ecx, 1
jne 0x2100b92c2
mov dword [rsp + 0x20], 0
mov r9, 0xffffffffffffffff
mov r8d, 6
mov rdx, r12
mov rcx, rbx
call method.mtinfo_drive.set_pos_void__int__long__bool_
movzx eax, byte [rbx + 0x68]
jmp 0x2100b92c2
mov dword [rsp + 0x20], 0
mov r9d, 1
jmp 0x2100b9400