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

Disassembly:
push rbp
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x50
lea rbp, [rsp + 0x50]
mov r12, rcx
mov r14, rdx
mov rbx, r8
test r8, r8
je 0x2100bad30
mov rcx, rdx
call sym.GetTapeStatus
mov rdx, r14
mov rcx, r12
mov esi, eax
cmp eax, 0x15
je 0x2100bac00
call method.mtinfo_drive.get_mp_void_
cmp esi, 0x458
sete dl
test byte [0x210273880], 1
jne 0x2100bacf0
cmp eax, 0x458
je 0x2100baca8
test dl, dl
jne 0x2100baca8
lea rdi, [rbx + 0x10]
mov eax, ebx
mov qword [rbx + 8], 0
and rdi, 0xfffffffffffffff8
mov qword [rbx + 0x68], 0
sub eax, edi
lea ecx, [rax + 0x70]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [rbx], 1
xor edi, edi
test dword [r12 + 0x38], 0x80000010
je 0x2100bac46
mov eax, dword [r12 + 0x50]
xor edi, edi
and eax, 0xffffff
sub rsp, 0x170
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
mov qword [rbx + 0x10], rax
lea r13, [rsp + 0x40]
lea rax, [rbp - 4]
mov edx, 0x2d0c04
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x168
mov qword [rsp + 0x20], r13
mov dword [rbp - 4], 0x168
call sym.DeviceIoControl
test eax, eax
je 0x2100bac60
mov ecx, dword [r13 + 4]
lea rax, [r13 + 8]
xor edx, edx
test ecx, ecx
jne 0x2100ba96f
jmp 0x2100ba9a0
add edx, 1
add rax, 0x20
cmp ecx, edx
je 0x2100bac58
mov r9d, dword [rax + 4]
mov r8d, dword [rax]
test r9d, r9d
jns 0x2100ba960
shl rdx, 5
mov qword [rbx], r8
add r13, rdx
cmp dword [r13 + 0x14], 1
jne 0x2100ba9a0
movzx eax, byte [r13 + 0x19]
shl eax, 0x18
or qword [rbx + 0x10], rax
nop dword [rax + rax]
mov rax, qword [rbx + 0x18]
test edi, edi
jne 0x2100bab68
mov edx, dword [r12 + 8]
mov ecx, dword [r12 + 0x54]
movzx r8d, dx
movsxd rdx, edx
shl ecx, 0x10
shl rdx, 5
or ecx, r8d
add rdx, r12
mov edi, ecx
mov r8, qword [rdx + 0x78]
movsxd rcx, dword [rdx + 0x80]
mov qword [rbx + 8], rdi
mov qword [rbx + 0x28], rcx
mov qword [rbx + 0x30], r8
test r8, r8
jne 0x2100ba9fe
mov r8, rax
bts rax, 0x1f
or r8, 0x40000000
test rcx, rcx
cmove rax, r8
mov ecx, dword [rdx + 0x88]
cmp ecx, 2
jle 0x2100baa18
cmp ecx, 4
jle 0x2100bad43
or rax, 0x28000000
cmp byte [rdx + 0x84], 0
je 0x2100baa27
or rax, 0x10000000
mov rdx, rax
or rdx, 0x1000000
mov qword [rbx + 0x18], rdx
cmp byte [r12 + 0x58], 0
je 0x2100baa47
or rax, 0x5000000
mov qword [rbx + 0x18], rax
mov rax, qword [r12 + 0x40]
mov qword [rbx + 0x38], rax
mov rax, qword [r12 + 0x48]
mov qword [rbx + 0x40], rax
movzx eax, byte [r12 + 0x68]
test al, 1
je 0x2100bab80
or qword [rbx + 0x18], 0x10000
cmp esi, 0x48d
je 0x2100bab8c
cmp byte [r12 + 0x23], 0
je 0x2100baba0
or qword [rbx + 0x18], 0x2000000
cmp byte [r12 + 0x22], 0
je 0x2100babac
or qword [rbx + 0x18], 0x100000
cmp byte [r12 + 0x20], 0
je 0x2100babb8
or qword [rbx + 0x18], 0x80000
cmp byte [r12 + 0x21], 0
je 0x2100babc4
or qword [rbx + 0x18], 0x20000
test al, 4
je 0x2100babcc
or qword [rbx + 0x18], 0x80
test al, 8
je 0x2100babd4
or qword [rbx + 0x18], 0x40
test al, 0x10
je 0x2100babdc
or qword [rbx + 0x18], 0x20
test al, 0x20
je 0x2100babe4
or qword [rbx + 0x18], 0x10
test al, 0x40
je 0x2100babec
or qword [rbx + 0x18], 8
test al, 2
je 0x2100bab18
or qword [rbx + 0x18], 4
mov eax, dword [r12 + 0x2c]
mov qword [rbx + 0x20], 0
mov dword [rbx + 0x48], eax
mov eax, dword [r12 + 0x28]
mov dword [rbx + 0x4c], eax
mov eax, dword [r12 + 0x24]
mov dword [rbx + 0x50], eax
mov eax, dword [r12 + 0x34]
mov qword [rbx + 0x58], rax
mov eax, dword [r12 + 0x38]
mov qword [rbx + 0x60], rax
mov eax, dword [r12 + 0x3c]
mov qword [rbx + 0x68], rax
xor eax, eax
mov rsp, rbp
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
or rax, 0x40000
mov qword [rbx + 0x18], rax
movzx eax, byte [r12 + 0x68]
test al, 1
jne 0x2100baa67
cmp esi, 0x48d
jne 0x2100baa7b
or qword [rbx + 0x18], 0x8000
cmp byte [r12 + 0x23], 0
jne 0x2100baa87
cmp byte [r12 + 0x22], 0
jne 0x2100baa9b
cmp byte [r12 + 0x20], 0
jne 0x2100baaaf
cmp byte [r12 + 0x21], 0
jne 0x2100baac3
test al, 4
jne 0x2100baad3
test al, 8
jne 0x2100baae3
test al, 0x10
jne 0x2100baaf0
test al, 0x20
jne 0x2100baafd
test al, 0x40
jne 0x2100bab0a
test al, 2
je 0x2100bab18
jmp 0x2100bab13
call method.mtinfo_drive.get_mp_void_
test byte [0x210273880], 1
jne 0x2100bac78
lea rdi, [rbx + 0x10]
mov eax, ebx
mov qword [rbx + 8], 0
mov esi, 0x458
and rdi, 0xfffffffffffffff8
mov qword [rbx + 0x68], 0
sub eax, edi
lea ecx, [rax + 0x70]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [rbx], 1
mov edi, 1
mov eax, dword [r12 + 0x24]
and eax, 0xffffff
jmp 0x2100ba8f7
mov qword [rbx], r8
jmp 0x2100ba9a0
call sym.GetLastError
cmp eax, 0xea
jne 0x2100ba9a0
jmp 0x2100ba948
mov dword [rsp + 0x28], eax
lea r9, str.GetTapeStatus:__u__get_mp:__d
lea r8, str.int_mtinfo_drive::get_status_HANDLE__mtget_
mov edx, 0x40
mov dword [rsp + 0x20], 0x458
lea rcx, [0x210273880]
mov esi, 0x458
call method.strace.prntf_unsigned_int__char_const__char_const__..._
lea rdi, [rbx + 0x10]
mov eax, ebx
mov qword [rbx + 8], 0
and rdi, 0xfffffffffffffff8
mov qword [rbx + 0x68], 0
sub eax, edi
lea ecx, [rax + 0x70]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [rbx], 1
mov edi, 1
mov eax, dword [r12 + 0x24]
and eax, 0xffffff
jmp 0x2100ba8f7
cmp eax, 0x458
mov dword [rsp + 0x28], eax
lea r9, str.GetTapeStatus:__u__get_mp:__d
lea r8, str.int_mtinfo_drive::get_status_HANDLE__mtget_
mov dword [rsp + 0x20], esi
sete dil
lea rcx, [0x210273880]
or edi, edx
mov edx, 0x40
call method.strace.prntf_unsigned_int__char_const__char_const__..._
test dil, dil
je 0x2100ba8ac
jmp 0x2100baca8
mov eax, 0x57
mov rsp, rbp
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
or rax, 0x8000000
jmp 0x2100baa18