Function at 0x1400191d0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x14009c020]
xor rax, rsp
mov qword [rbp - 8], rax
mov rdi, rdx
mov r14, rcx
mov qword [rbp - 0x30], rcx
test rdx, rdx
jne 0x140019252
cmp byte [rcx + 0x68], dl
jne 0x1400193ea
mov byte [rcx + 0x68], 1
mov dword [rcx + 0x6c], 2
mov rdx, qword [str.Failed_to_open_file]
mov rbx, 0xffffffffffffffff
mov r8, rbx
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140019230
add rcx, 0x70
call fcn.14000b2e0
mov qword [r14 + 0x94], rbx
xor al, al
jmp 0x1400196d6
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x140019276
nop dword [rax + rax]
mov rcx, rbx
mov rbx, qword [rbx + 0x60]
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
test rbx, rbx
jne 0x140019260
xor r13d, r13d
mov qword [r14 + 0x28], r13
mov qword [r14 + 0x30], r13
mov rbx, 0xffffffffffffffff
mov qword [r14 + 8], rbx
xor edx, edx
lea r8d, [r13 + 2]
mov rcx, rdi
call fcn.14005e5d0
mov rcx, rdi
call fcn.1400571c8
movsxd r15, eax
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14005e5d0
test r15d, r15d
jg 0x1400192ef
cmp byte [r14 + 0x68], r13b
jne 0x1400193ea
mov byte [r14 + 0x68], 1
mov dword [r14 + 0x6c], 0xd
mov rdx, qword [str.Error_document_empty.]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp word [rdx + r8*2], r13w
jne 0x1400192e0
jmp 0x1400193da
lea eax, [r15 + 0xa]
movsxd rsi, eax
mov rcx, rsi
call fcn.140055bb8
mov r12, rax
test rax, rax
jne 0x14001933f
cmp byte [r14 + 0x68], r13b
jne 0x1400193ea
mov byte [r14 + 0x68], 1
mov dword [r14 + 0x6c], 3
mov rdx, qword [str.Memory_allocation_failed.]
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], r13w
jne 0x140019330
jmp 0x1400193da
mov r8, rsi
xor edx, edx
mov rcx, r12
call fcn.14004b2f0
mov r8, r15
mov r9, rdi
mov edx, 1
mov rcx, r12
call fcn.14005ef24
movzx edx, word [r12]
mov eax, 0xfffe
cmp dx, ax
jne 0x140019391
mov rcx, r12
test dl, dl
jne 0x14001937f
cmp byte [rcx + 1], r13b
je 0x14001947c
movzx eax, byte [rcx + 1]
mov byte [rcx], al
mov byte [rcx + 1], dl
add rcx, 2
movzx edx, byte [rcx]
jmp 0x140019371
mov eax, 0xfeff
cmp dx, ax
je 0x14001947c
add rsi, rsi
mov rcx, rsi
call fcn.140055bb8
mov rdi, rax
test rax, rax
jne 0x1400193f1
cmp byte [r14 + 0x68], r13b
jne 0x1400193ea
mov byte [r14 + 0x68], 1
mov dword [r14 + 0x6c], 3
mov rdx, qword [str.Memory_allocation_failed.]
mov r8, rbx
nop
inc r8
cmp word [rdx + r8*2], r13w
jne 0x1400193d0
lea rcx, [r14 + 0x70]
call fcn.14000b2e0
mov qword [r14 + 0x94], rbx
xor al, al
jmp 0x1400196d6
mov r8, rsi
xor edx, edx
mov rcx, rdi
call fcn.14004b2f0
lea eax, [r15 + 1]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, ebx
mov r8, r12
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jg 0x140019471
cmp byte [r14 + 0x68], r13b
jne 0x14001945a
mov byte [r14 + 0x68], 1
mov dword [r14 + 0x6c], 2
mov rdx, qword [str.Failed_to_open_file]
mov r8, rbx
nop
inc r8
cmp word [rdx + r8*2], r13w
jne 0x140019440
lea rcx, [r14 + 0x70]
call fcn.14000b2e0
mov qword [r14 + 0x94], rbx
mov rcx, r12
call fcn.140055bc8
mov rcx, rdi
call fcn.140055bc8
xor al, al
jmp 0x1400196d6
mov rcx, r12
call fcn.140055bc8
mov r12, rdi
mov r15, r12
mov rsi, r12
inc rbx
cmp word [r12 + rbx*2], r13w
jne 0x140019482
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r13w
movsxd rdx, ebx
lea rcx, [rbp - 0x28]
call fcn.14000ae00
movzx eax, word [r12]
test ax, ax
je 0x14001960e
mov ebx, 4
mov r14d, 0xa
cmp ax, r14w
jne 0x140019543
mov rdx, rsi
sub rdx, r15
sar rdx, 1
inc rdx
mov rcx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x140019526
lea rdi, [rcx + rdx]
mov qword [rbp - 0x18], rdi
lea rbx, [rbp - 0x28]
cmp r8, 8
cmovae rbx, qword [rbp - 0x28]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r15
call fcn.14004ac40
mov word [rbx + rdi*2], r13w
mov ebx, 4
add rsi, 2
mov r15, rsi
jmp 0x1400195fe
mov qword [rsp + 0x20], rdx
mov r9, r15
lea rcx, [rbp - 0x28]
call fcn.140001f90
add rsi, 2
mov r15, rsi
jmp 0x1400195fe
cmp ax, 0xd
jne 0x1400195fa
mov rdx, rsi
sub rdx, r15
sar rdx, 1
test rdx, rdx
jle 0x1400195b0
mov rcx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
mov rax, r8
sub rax, rcx
cmp rdx, rax
ja 0x14001959f
lea rdi, [rcx + rdx]
mov qword [rbp - 0x18], rdi
lea rbx, [rbp - 0x28]
cmp r8, 8
cmovae rbx, qword [rbp - 0x28]
lea rcx, [rbx + rcx*2]
lea r8, [rdx + rdx]
mov rdx, r15
call fcn.14004ac40
mov word [rbx + rdi*2], r13w
mov ebx, 4
jmp 0x1400195b0
mov qword [rsp + 0x20], rdx
mov r9, r15
lea rcx, [rbp - 0x28]
call fcn.140001f90
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
cmp rcx, rdx
jae 0x1400195d8
lea rax, [rcx + 1]
mov qword [rbp - 0x18], rax
lea rax, [rbp - 0x28]
cmp rdx, 8
cmovae rax, qword [rbp - 0x28]
mov dword [rax + rcx*2], r14d
jmp 0x1400195e4
mov r9d, r14d
lea rcx, [rbp - 0x28]
call fcn.14000aaf0
mov eax, 2
cmp word [rsi + 2], r14w
cmove rax, rbx
add rsi, rax
mov r15, rsi
jmp 0x1400195fe
add rsi, 2
movzx eax, word [rsi]
test ax, ax
jne 0x1400194c6
mov r14, qword [rbp - 0x30]
sub rsi, r15
sar rsi, 1
je 0x140019669
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x10]
mov rax, rdx
sub rax, rcx
cmp rsi, rax
ja 0x140019655
lea rdi, [rcx + rsi]
mov qword [rbp - 0x18], rdi
lea rbx, [rbp - 0x28]
cmp rdx, 8
cmovae rbx, qword [rbp - 0x28]
lea rcx, [rbx + rcx*2]
lea r8, [rsi + rsi]
mov rdx, r15
call fcn.14004ac40
mov word [rbx + rdi*2], r13w
jmp 0x140019669
mov qword [rsp + 0x20], rsi
mov r9, r15
mov rdx, rsi
lea rcx, [rbp - 0x28]
call fcn.140001f90
mov rcx, r12
call fcn.140055bc8
mov rax, qword [r14]
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rdx, qword [rbp - 0x28]
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call qword [rax + 0x10]
nop
cmp byte [r14 + 0x68], 0
sete bl
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x1400196d3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400196ce
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400196fa
call fcn.140048430
movzx eax, bl
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140048410
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140054034
int3