Function at 0x14017d880
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x60
mov r14, rdx
mov qword [rsp + 0x70], rbx
mov rdi, rcx
xor ebp, ebp
mov rsi, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
cmp rsi, rcx
jb 0x14017d90b
mov rcx, qword ds:[rdi]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rbp
lea rsi, [rdi + 0x18]
mov qword [rsp + 0x38], rbp
xor r9d, r9d
mov dword [rsp + 0x30], 0x2000
xor r8d, r8d
mov qword [rsp + 0x28], rsi
xor edx, edx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntdll.dll_NtReadFile]
test eax, eax
js 0x14017db8f
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14017db8f
lea rcx, [rax + 0x18]
mov qword [rdi + 8], rsi
add rcx, rdi
mov qword [rdi + 0x10], rcx
movzx ebx, byte ds:[rsi]
inc rsi
mov qword [rdi + 8], rsi
mov edx, dword [r14]
test edx, edx
jne 0x14017dbd2
test bl, bl
jns 0x14017db99
cmp ebx, 0xfe
jne 0x14017d975
cmp rsi, rcx
jb 0x14017d94d
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword ds:[rdi + 8]
movzx ecx, byte [rax]
inc rax
mov qword [rdi + 8], rax
cmp cl, 0xff
jne 0x14017db8f
mov dword [r14], 1
jmp 0x14017d8a2
cmp bl, 0xff
jne 0x14017d9b5
cmp rsi, rcx
jb 0x14017d98f
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword ds:[rdi + 8]
movzx ecx, byte [rax]
inc rax
mov qword [rdi + 8], rax
cmp cl, 0xfe
jne 0x14017db8f
mov dword [r14], 2
jmp 0x14017d8a2
mov eax, ebx
and eax, 0xe0
cmp al, 0xc0
je 0x14017db3c
mov eax, ebx
and eax, 0xf0
cmp al, 0xe0
jne 0x14017da71
cmp rsi, rcx
jb 0x14017d9ed
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ecx, byte [rax]
lea rdx, [rax + 1]
mov eax, ecx
mov qword [rdi + 8], rdx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and ebx, 0xf
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
mov esi, ebx
cmp rdx, qword [rdi + 0x10]
jb 0x14017da2d
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword ds:[rdi + 8]
movzx ebx, byte [rax]
inc rax
mov qword [rdi + 8], rax
mov eax, ebx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and ebx, 0x3f
shl esi, 6
or ebx, esi
cmp ebx, 0x800
jb 0x14017db7e
nop dword [rax]
cmp ebx, 0xfeff
je 0x14017d8a2
jmp 0x14017ddc8
mov eax, ebx
and eax, 0xf8
cmp al, 0xf0
jne 0x14017db8f
cmp rsi, rcx
jb 0x14017da9d
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ecx, byte [rax]
lea rdx, [rax + 1]
mov eax, ecx
mov qword [rdi + 8], rdx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and ebx, 7
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
cmp rdx, qword [rdi + 0x10]
jb 0x14017dad9
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx esi, byte [rax]
lea rcx, [rax + 1]
mov eax, esi
mov qword [rdi + 8], rcx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and esi, 0x3f
shl ebx, 6
or esi, ebx
cmp rcx, qword [rdi + 0x10]
jb 0x14017db16
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ebx, byte [rax]
inc rax
mov qword [rdi + 8], rax
mov eax, ebx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and ebx, 0x3f
shl esi, 6
or ebx, esi
cmp ebx, 0x10000
jmp 0x14017db78
nop dword [rax]
cmp rsi, rcx
jb 0x14017db51
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ecx, byte [rax]
inc rax
mov qword [rdi + 8], rax
mov eax, ecx
and al, 0xc0
cmp al, 0x80
jne 0x14017db8f
and ebx, 0x1f
and ecx, 0x3f
shl ebx, 6
or ebx, ecx
cmp ebx, 0x80
jae 0x14017ddc8
lea rcx, str.Invalid_UTF_8_sequence_for_character_0x_04x_
mov edx, ebx
lfence
call fcn.14017d5c0
mov eax, 0xffffffff
jmp 0x14017ddca
nop dword [rax]
cmp bl, 0x1f
ja 0x14017ddc8
mov ecx, 0xffffd9ff
bt ecx, ebx
jae 0x14017ddc8
lea rcx, str.Bad_control_character_0x_02x_not_allowed_by_XML_standard_
mov edx, ebx
lfence
call fcn.14017d5c0
mov eax, 0xffffffff
jmp 0x14017ddca
sub edx, 1
je 0x14017dcd4
nop dword [rax + rax]
cmp edx, 1
jne 0x14017ddc8
cmp rsi, rcx
jb 0x14017dbfa
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ecx, byte [rax]
lea rdx, [rax + 1]
shl ecx, 8
or ecx, ebx
mov qword [rdi + 8], rdx
mov ebx, ecx
cmp ecx, 0x20
jae 0x14017dc4d
lea eax, ds:[rcx - 9]
test eax, 0xfffffffa
jne 0x14017dd19
cmp ecx, 0xe
jne 0x14017ddc8
lea rcx, str.Bad_control_character_0x_02x_not_allowed_by_XML_standard_
mov edx, ebx
lfence
call fcn.14017d5c0
lea eax, [rbx - 0xf]
jmp 0x14017ddca
lea eax, [rcx - 0xd800]
cmp eax, 0x3ff
ja 0x14017ddc8
nop
cmp rdx, qword [rdi + 0x10]
jb 0x14017dc76
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx esi, byte [rax]
inc rax
mov qword [rdi + 8], rax
cmp rax, qword [rdi + 0x10]
jb 0x14017dc9a
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx ecx, byte [rax]
inc rax
shl ecx, 8
or ecx, esi
mov qword [rdi + 8], rax
lea eax, [rcx - 0xdc00]
cmp eax, 0x3fe
ja 0x14017db8f
and ebx, 0x3ff
and ecx, 0x3ff
shl ebx, 0xa
or ebx, ecx
jmp 0x14017ddc2
cmp rsi, rcx
jb 0x14017dced
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
shl ebx, 8
movzx ecx, byte [rax]
lea rdx, [rax + 1]
or ebx, ecx
mov qword [rdi + 8], rdx
cmp ebx, 0x20
jae 0x14017dd34
lea eax, [rbx - 9]
test eax, 0xfffffffa
jne 0x14017dd19
cmp ebx, 0xe
jne 0x14017ddc8
lea rcx, str.Bad_control_character_0x_02x_not_allowed_by_XML_standard_
mov edx, ebx
lfence
call fcn.14017d5c0
mov eax, 0xffffffff
jmp 0x14017ddca
lea eax, ds:[rbx - 0xd800]
cmp eax, 0x3ff
ja 0x14017ddc8
cmp rdx, qword [rdi + 0x10]
jb 0x14017dd68
mov rcx, rdi
call fcn.14017dea0
nop dword [rax]
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
movzx esi, byte [rax]
inc rax
mov qword [rdi + 8], rax
cmp rax, qword [rdi + 0x10]
jb 0x14017dd8d
mov rcx, rdi
call fcn.14017dea0
test eax, eax
js 0x14017db8f
mov rax, qword [rdi + 8]
shl esi, 8
movzx ecx, byte [rax]
inc rax
or esi, ecx
mov qword [rdi + 8], rax
lea eax, [rsi - 0xdc00]
cmp eax, 0x3fe
ja 0x14017db8f
and ebx, 0x3ff
and esi, 0x3ff
shl ebx, 0xa
or ebx, esi
add ebx, 0x10000
mov eax, ebx
mov rbx, qword [rsp + 0x70]
lea r11, [rsp + 0x60]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret