Function at 0x1400147d0
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x68
mov rsi, rcx
xor r12d, r12d
mov r14d, r8d
mov dword [rsp + 0x40], r9d
mov r13, rdx
mov qword [rsp + 0x30], r12
xor ebp, ebp
test rsi, rsi
je 0x140014ddb
test r13, r13
je 0x140014ddb
cmp r14d, 0x10
jg 0x140014dc2
mov rcx, rsi
call fcn.140014e00
test al, al
jne 0x140014da7
mov rcx, rsi
lea rdx, [0x1401a4514]
call fcn.1400b1fe8
mov r15, rax
test r15, r15
je 0x140014d85
mov rcx, r15
mov dword [rsp + 0x38], 0
call fcn.1400bd0e8
mov rcx, r15
xor edx, edx
mov r8d, 2
mov dword [rsp + 0x48], eax
call fcn.1400b2558
mov rcx, r15
call fcn.1400b2e28
mov ebx, eax
mov rcx, r15
lea edi, [rbx + 4]
call fcn.1400b2fa8
movsxd rdi, edi
add rdi, 4
mov rcx, rdi
call fcn.140018240
mov rdi, rax
add ebx, 6
mov rdx, rdi
mov r8d, ebx
mov ecx, dword [rsp + 0x48]
call fcn.1400d55b4
mov ebx, eax
mov al, byte [rdi]
cmp al, 0xff
je 0x140014d53
cmp al, 0xfe
je 0x140014d23
cmp al, 0xef
je 0x140014cf5
test ebp, ebp
jne 0x140014d16
test ebp, ebp
jne 0x140014cc5
movsxd rbx, ebx
lea rcx, [rbx + rbx + 0xa]
call fcn.140018240
mov r12, rax
test r12, r12
je 0x140014ce2
mov r10d, dword [rsp + 0x38]
and r10d, 0x700
or ebp, r10d
jne 0x1400149e5
xor edx, edx
xor r8d, r8d
mov ecx, dword [rsp + 0x48]
call fcn.1400d6000
mov rcx, r15
call fcn.1400b304c
test eax, eax
jne 0x140014935
mov edi, dword [rsp + 0x40]
add ebx, 2
mov rcx, r12
mov edx, ebx
mov r8, r15
call fcn.1400b3250
test rax, rax
jne 0x140014956
mov rcx, r15
call fcn.1400b304c
test eax, eax
je 0x140014917
mov rcx, r15
call fcn.1400b3410
mov rcx, r12
call fcn.140086ae8
add rsp, 0x68
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, r12
call fcn.14008c504
test rax, rax
je 0x140014929
movzx ecx, word [r12]
cmp ecx, 0x40
jne 0x140014999
mov rcx, r12
lea rdx, [rsp + 0x30]
xor r8d, r8d
mov dword [rdx], 1
call fcn.14005a870
mov rdx, r13
lea r8d, [r14 + 1]
xor r9d, r9d
lea rcx, [r12 + 2]
call fcn.1400147d0
jmp 0x140014929
mov rbp, r12
test ecx, ecx
je 0x1400149b5
call fcn.14008aa60
test eax, eax
je 0x1400149b5
add rbp, 2
movzx ecx, word [rbp]
test ecx, ecx
jne 0x1400149a0
movzx eax, word [rbp]
test eax, eax
je 0x140014929
mov rcx, r12
call fcn.140034330
mov rcx, rax
mov rax, rsp
mov rdx, r13
mov r8d, r14d
mov r9, rsi
mov dword [rax + 0x20], edi
call fcn.14005ab30
jmp 0x140014929
mov ecx, dword [rsp + 0x38]
mov dword [rsp + 0x58], r10d
call fcn.14005a830
mov r10d, dword [rsp + 0x58]
test r10d, r10d
je 0x140014a11
mov ebp, dword [rsp + 0x38]
and ebp, 0x100
shr rbp, 8
add rbp, 2
jmp 0x140014a13
xor ebp, ebp
mov rax, rbx
mov byte [rax + rdi], 0
mov byte [rax + rdi + 1], 0
cmp rbp, rax
jge 0x140014935
mov ebx, dword [rsp + 0x38]
mov qword [rsp + 0x50], rdi
and ebx, 0x600
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r13
mov dword [rsp + 0x58], r10d
mov r13, rax
mov r15d, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
xor eax, eax
mov rdx, rdi
test ebx, ebx
jne 0x140014b5e
mov r11, qword [rsp + 0x50]
mov r10b, byte [rbp + r11]
inc rbp
mov byte [rdx], r10b
cmp r10b, 0xd
je 0x140014a9a
cmp r10b, 0xa
je 0x140014a9a
inc rax
inc rdx
mov byte [rax + rdi], 0
cmp rbp, r13
jl 0x140014a65
cmp byte [rdi], 0
jne 0x140014aa6
mov r15, qword [rsp + 0x48]
jmp 0x140014935
mov byte [rdx], 0
cmp byte [rdi], 0
je 0x140014c9b
movsx ecx, byte [rdi]
cmp ecx, 0x40
jne 0x140014aef
mov rcx, rdi
lea rdx, [rsp + 0x34]
xor r8d, r8d
mov dword [rdx], 1
call fcn.14005a650
lea rcx, [rdi + 1]
call fcn.14003bfd0
test rax, rax
je 0x140014c9b
mov rcx, rax
lea r8d, [r14 + 1]
xor r9d, r9d
mov rdx, qword [rsp + 0x40]
call fcn.1400147d0
jmp 0x140014c9b
mov rax, rdi
test ecx, ecx
je 0x140014b23
mov dword [rsp + 0x60], r14d
mov r14, rbp
mov ebp, ebx
mov rbx, rax
call fcn.1400b4c00
test eax, eax
je 0x140014b16
inc rbx
movsx ecx, byte [rbx]
test ecx, ecx
jne 0x140014b03
mov rax, rbx
mov ebx, ebp
mov rbp, r14
mov r14d, dword [rsp + 0x60]
cmp byte [rax], 0
je 0x140014c9b
mov rcx, rdi
call fcn.14005a5c0
cmp dword [rsp + 0x58], 0
je 0x140014b45
mov rcx, rax
call fcn.14003bfd0
jmp 0x140014b4d
mov rcx, rax
call fcn.1400028a0
mov rcx, rax
test rcx, rcx
jne 0x140014c81
jmp 0x140014c9b
mov edx, r15d
mov rcx, qword [rsp + 0x50]
and edx, 0x400
test edx, edx
je 0x140014b8e
movzx r10d, byte [rbp + rcx + 1]
shl r10d, 8
movzx r11d, byte [rbp + rcx]
add rbp, 2
or r11d, r10d
mov word [r12 + rax*2], r11w
jmp 0x140014bb7
test r15d, 0x200
je 0x140014cae
movzx r11d, byte [rbp + rcx]
shl r11d, 8
movzx r10d, byte [rbp + rcx + 1]
or r11d, r10d
mov word [r12 + rax*2], r11w
add rbp, 2
cmp r11d, 0xd
je 0x140014bea
cmp r11d, 0xa
je 0x140014bea
inc rax
xor r10d, r10d
mov word [r12 + rax*2], r10w
cmp rbp, r13
jl 0x140014b6c
mov rcx, r12
call fcn.14008c504
test rax, rax
jne 0x140014c02
mov r15, qword [rsp + 0x48]
jmp 0x140014935
mov rcx, r12
xor edx, edx
mov word [r12 + rax*2], dx
call fcn.14008c504
test rax, rax
je 0x140014c9b
movzx ecx, word [r12]
cmp ecx, 0x40
jne 0x140014c3a
mov rcx, r12
lea rdx, [rsp + 0x38]
xor r8d, r8d
mov dword [rdx], 1
call fcn.14005a870
xor r9d, r9d
lea r8d, [r14 + 1]
mov rdx, qword [rsp + 0x40]
lea rcx, [r12 + 2]
call fcn.1400147d0
jmp 0x140014c9b
mov rax, r12
test ecx, ecx
je 0x140014c6f
mov dword [rsp + 0x60], r14d
mov r14, rbp
mov ebp, ebx
mov rbx, rax
call fcn.14008aa60
test eax, eax
je 0x140014c62
add rbx, 2
movzx ecx, word [rbx]
test ecx, ecx
jne 0x140014c4e
mov rax, rbx
mov ebx, ebp
mov rbp, r14
mov r14d, dword [rsp + 0x60]
movzx eax, word [rax]
test eax, eax
je 0x140014c9b
mov rcx, r12
call fcn.140034330
mov rcx, rax
mov rax, rsp
mov r8d, r14d
mov r9, rsi
mov dword [rax + 0x20], 0
mov rdx, qword [rsp + 0x40]
call fcn.14005ab30
cmp rbp, r13
jl 0x140014a53
mov r15, qword [rsp + 0x48]
jmp 0x140014935
lea rdx, str.shared_driver_cmdline.c
mov ecx, 0x2728
mov r8d, 0x883
call fcn.140032820
movsxd rbx, ebx
lea rcx, [rbx + 5]
call fcn.140018240
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
jne 0x1400148e1
xor ecx, ecx
inc ecx
mov edx, 0x2729
call fcn.14003b7f0
jmp 0x1400148e1
cmp byte [rdi + 1], 0xbb
jne 0x140014d0e
cmp byte [rdi + 2], 0xbf
jne 0x140014d0e
mov dword [rsp + 0x38], 0x100
jmp 0x1400148c0
test ebp, ebp
je 0x1400148c0
mov dword [rsp + 0x38], 0x800
jmp 0x1400148c0
cmp byte [rdi + 1], 0xff
jne 0x140014d36
mov dword [rsp + 0x38], 0x200
jmp 0x1400148c8
test ebp, ebp
jne 0x140014d49
cmp byte [rdi + 1], 0xff
je 0x1400148c8
jmp 0x1400148c0
mov dword [rsp + 0x38], 0x800
jmp 0x140014d3a
cmp byte [rdi + 1], 0xfe
je 0x140014d78
test ebp, ebp
je 0x1400148c0
mov dword [rsp + 0x38], 0x800
cmp byte [rdi + 1], 0xfe
je 0x1400148c8
jmp 0x1400148c0
mov dword [rsp + 0x38], 0x400
jmp 0x1400148c8
xor ecx, ecx
inc ecx
mov edx, 0x2715
mov r8, rsi
call fcn.14003b7f0
add rsp, 0x68
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
lea rdx, [0x1401a454c]
mov rcx, rsi
call fcn.1400b1fe8
mov r15, rax
xor ebp, ebp
inc ebp
jmp 0x140014836
xor ecx, ecx
inc ecx
mov edx, 0x27b2
mov r8d, 0x10
call fcn.14003b7f0
jmp 0x140014814
mov ecx, 0x273c
call fcn.14003c480
lea r8, str.shared_driver_cmdline.c
mov ecx, 0x2727
mov rdx, rax
mov r9d, 0x81a
call fcn.140032820
nop