Function at 0x14000e0d0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov ebx, r8d
mov dword [rbp - 0x30], 0xfffffffe
xor r15d, r15d
movsxd r8, ecx
mov dword [rbp - 0x28], r15d
mov r9, rdx
mov dword [rbp - 0x20], ebx
cmp r8d, 0xfffffffe
jne 0x14000e124
call fcn.140006594
mov dword [rax], r15d
call fcn.140006610
mov dword [rax], 9
jmp 0x14000e9b1
test ecx, ecx
js 0x14000e98a
cmp r8d, dword [0x14001b000]
jae 0x14000e98a
mov rax, r8
lea r10, [0x140000000]
mov qword [rbp - 0x10], rax
mov rcx, r8
sar rcx, 5
and eax, 0x1f
imul rsi, rax, 0x38
mov r13, qword [r10 + rcx*8 + 0x1b020]
mov qword [rbp - 0x18], rcx
mov r12b, byte [rsi + r13 + 8]
test r12b, 1
je 0x14000e98a
cmp ebx, 0x7fffffff
jbe 0x14000e190
call fcn.140006594
mov dword [rax], r15d
call fcn.140006610
mov dword [rax], 0x16
jmp 0x14000e99d
mov edi, r15d
test ebx, ebx
je 0x14000e986
test r12b, 2
jne 0x14000e986
test r9, r9
je 0x14000e178
mov edx, dword [rsi + r13 + 0xc]
mov ecx, 4
and edx, 3
mov eax, edx
mov dword [rbp - 0x38], edx
sub eax, 1
je 0x14000e1d6
cmp eax, 1
jne 0x14000e1d1
mov eax, ebx
not eax
test al, 1
je 0x14000e178
and ebx, 0xfffffffe
mov r14, r9
jmp 0x14000e21d
mov eax, ebx
not eax
test al, 1
je 0x14000e178
shr ebx, 1
cmp ebx, ecx
cmovb ebx, ecx
mov ecx, ebx
call fcn.140006ca0
mov r14, rax
test rax, rax
jne 0x14000e20f
call fcn.140006610
mov dword [rax], 0xc
call fcn.140006594
mov dword [rax], 8
jmp 0x14000e9b1
mov edx, dword [rbp - 0x38]
lea r10, [0x140000000]
mov r8d, dword [rbp + 0x48]
mov r15, r14
mov r9d, 0xa
test r12b, 0x48
je 0x14000e2d1
mov al, byte [rsi + r13 + 9]
cmp al, r9b
je 0x14000e2d1
mov r12, qword [rbp - 0x18]
test ebx, ebx
je 0x14000e2d5
mov byte [r14], al
lea r15, [r14 + 1]
mov rax, qword [r10 + r12*8 + 0x1b020]
lea edi, [r9 - 9]
or r11d, 0xffffffff
add ebx, r11d
mov byte [rax + rsi + 9], r9b
test edx, edx
je 0x14000e2d5
mov rax, qword [r10 + r12*8 + 0x1b020]
mov cl, byte [rax + rsi + 0xa]
cmp cl, r9b
je 0x14000e2d5
test ebx, ebx
je 0x14000e2d5
mov byte [r15], cl
lea edi, [r9 - 8]
mov rax, qword [r10 + r12*8 + 0x1b020]
inc r15
add ebx, r11d
mov byte [rax + rsi + 0xa], r9b
cmp edx, 1
jne 0x14000e2d5
mov rax, qword [r10 + r12*8 + 0x1b020]
mov cl, byte [rax + rsi + 0xb]
cmp cl, r9b
je 0x14000e2d5
test ebx, ebx
je 0x14000e2d5
mov byte [r15], cl
lea edi, [rdx + 2]
mov rax, qword [r10 + r12*8 + 0x1b020]
inc r15
add ebx, r11d
mov byte [rax + rsi + 0xb], r9b
jmp 0x14000e2d5
mov r12, qword [rbp - 0x18]
mov ecx, r8d
call fcn.14000a238
test eax, eax
je 0x14000e369
lea rcx, [0x140000000]
mov rcx, qword [rcx + r12*8 + 0x1b020]
cmp byte [rcx + rsi + 8], 0
jge 0x14000e369
mov rcx, qword [rcx + rsi]
lea rdx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
mov r13d, dword [rbp - 0x38]
mov dword [rbp - 0x28], eax
test eax, eax
je 0x14000e36d
cmp r13d, 2
jne 0x14000e36d
and qword [rsp + 0x20], 0
lea rax, [0x140000000]
mov rcx, qword [rax + r12*8 + 0x1b020]
lea r9, [rbp - 0x34]
shr ebx, 1
mov rdx, r15
mov r8d, ebx
mov rcx, qword [rcx + rsi]
call qword [sym.imp.KERNEL32.dll_ReadConsoleW]
test eax, eax
jne 0x14000e35e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400065bc
or ebx, 0xffffffff
jmp 0x14000e756
mov eax, dword [rbp - 0x34]
lea edx, [rax + rax]
mov dword [rbp - 0x34], edx
jmp 0x14000e3b5
mov r13d, dword [rbp - 0x38]
and qword [rsp + 0x20], 0
lea rcx, [0x140000000]
mov rcx, qword [rcx + r12*8 + 0x1b020]
lea r9, [rbp - 0x34]
mov r8d, ebx
mov rdx, r15
mov rcx, qword [rcx + rsi]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14000e950
movsxd rdx, dword [rbp - 0x34]
test edx, edx
js 0x14000e950
mov eax, ebx
cmp rdx, rax
ja 0x14000e950
lea r10, [0x140000000]
add edi, edx
mov rcx, qword [r10 + r12*8 + 0x1b020]
mov al, byte [rcx + rsi + 8]
test al, al
jns 0x14000e753
cmp r13d, 2
je 0x14000e6be
mov r8d, 0xa
test edx, edx
je 0x14000e3ef
cmp byte [r14], r8b
jne 0x14000e3ef
or al, 4
jmp 0x14000e3f1
and al, 0xfb
mov byte [rcx + rsi + 8], al
mov rbx, r14
movsxd rcx, edi
add rcx, r14
mov qword [rbp - 0x28], rcx
cmp r14, rcx
jae 0x14000e575
mov edx, 0x1a
mov rdi, rbx
mov rax, rcx
lea r15d, [rdx - 0xd]
mov cl, byte [rdi]
cmp cl, dl
je 0x14000e554
lea rdx, [rdi + 1]
cmp cl, r15b
je 0x14000e43a
mov byte [rbx], cl
mov rdi, rdx
inc rbx
jmp 0x14000e544
dec rax
cmp rdi, rax
jae 0x14000e463
cmp byte [rdx], r8b
jne 0x14000e451
mov byte [rbx], r8b
mov eax, 2
jmp 0x14000e458
mov byte [rbx], cl
mov eax, 1
inc rbx
add rdi, rax
jmp 0x14000e540
mov rax, qword [rbp - 0x10]
lea r9, [rbp - 0x34]
and qword [rsp + 0x20], 0
mov r13, rax
and eax, 0x1f
sar r13, 5
imul rax, rax, 0x38
mov rcx, qword [r10 + r13*8 + 0x1b020]
mov rdi, rdx
mov r8d, 1
mov qword [rbp - 0x18], rax
lea rdx, [rbp + 0x58]
mov rcx, qword [rcx + rax]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000e4b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14000e52d
cmp dword [rbp - 0x34], 0
je 0x14000e52d
mov rdx, qword [rbp - 0x18]
lea r10, [0x140000000]
mov rax, qword [r10 + r13*8 + 0x1b020]
test byte [rax + rdx + 8], 0x48
je 0x14000e4f5
mov r8d, 0xa
cmp byte [rbp + 0x58], r8b
jne 0x14000e4e1
mov byte [rbx], r8b
jmp 0x14000e53d
mov byte [rbx], r15b
mov rcx, qword [r10 + r13*8 + 0x1b020]
mov al, byte [rbp + 0x58]
mov byte [rcx + rdx + 9], al
jmp 0x14000e53d
cmp rbx, r14
jne 0x14000e506
mov r8d, 0xa
cmp byte [rbp + 0x58], r8b
je 0x14000e4dc
mov ecx, dword [rbp + 0x48]
mov r8d, 1
or rdx, 0xffffffffffffffff
call fcn.14000a3b8
mov r8d, 0xa
lea r10, [0x140000000]
cmp byte [rbp + 0x58], r8b
je 0x14000e540
jmp 0x14000e53a
mov r8d, 0xa
lea r10, [0x140000000]
mov byte [rbx], r15b
inc rbx
mov rax, qword [rbp - 0x28]
mov edx, 0x1a
cmp rdi, rax
jb 0x14000e41a
jmp 0x14000e571
mov rcx, qword [r10 + r12*8 + 0x1b020]
mov al, byte [rcx + rsi + 8]
test al, 0x40
jne 0x14000e56c
or al, 2
mov byte [rcx + rsi + 8], al
jmp 0x14000e571
mov byte [rbx], dl
inc rbx
mov r13d, dword [rbp - 0x38]
mov edi, ebx
sub edi, r14d
cmp r13d, 1
jne 0x14000e753
test edi, edi
je 0x14000e753
mov r13d, 1
sub rbx, r13
cmp byte [rbx], 0
jl 0x14000e5a2
add rbx, r13
jmp 0x14000e663
mov edx, r13d
jmp 0x14000e5b7
cmp edx, 4
jg 0x14000e5c5
cmp rbx, r14
jb 0x14000e5c5
sub rbx, r13
add edx, r13d
movzx eax, byte [rbx]
cmp byte [rax + r10 + 0x13a20], 0
je 0x14000e5a7
movzx ecx, byte [rbx]
movsx eax, byte [rcx + r10 + 0x13a20]
test eax, eax
jne 0x14000e5e5
call fcn.140006610
mov dword [rax], 0x2a
jmp 0x14000e356
inc eax
cmp eax, edx
jne 0x14000e5f3
movsxd rax, edx
add rbx, rax
jmp 0x14000e663
mov rax, qword [rbp - 0x10]
mov r8, rax
and eax, 0x1f
imul r9, rax, 0x38
sar r8, 5
mov rax, qword [r10 + r8*8 + 0x1b020]
test byte [rax + r9 + 8], 0x48
je 0x14000e653
add rbx, r13
mov byte [rax + r9 + 9], cl
cmp edx, 2
jl 0x14000e634
mov al, byte [rbx]
add rbx, r13
mov rcx, qword [r10 + r8*8 + 0x1b020]
mov byte [rcx + r9 + 0xa], al
cmp edx, 3
jne 0x14000e64b
mov al, byte [rbx]
add rbx, r13
mov rcx, qword [r10 + r8*8 + 0x1b020]
mov byte [rcx + r9 + 0xb], al
movsxd rax, edx
sub rbx, rax
jmp 0x14000e663
mov ecx, dword [rbp + 0x48]
neg edx
movsxd rdx, edx
mov r8d, r13d
call fcn.14000a3b8
mov rsi, qword [rbp + 0x50]
mov edi, ebx
mov ebx, dword [rbp - 0x20]
sub edi, r14d
mov eax, ebx
mov r9d, edi
shr eax, 1
mov r8, r14
mov dword [rsp + 0x28], eax
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x14000e6a9
movsxd rdx, eax
add rdx, rdx
cmp rdx, rbx
ja 0x14000e6a9
mov ebx, dword [rbp - 0x30]
lea edi, [rax + rax]
jmp 0x14000e75a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400065bc
or ebx, 0xffffffff
jmp 0x14000e75a
cmp dword [rbp - 0x28], 0
je 0x14000e774
mov eax, edi
mov r8, r14
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
lea r9, [r14 + rcx*2]
cmp r14, r9
jae 0x14000e748
mov r10d, 0x1a
mov rcx, r14
lea r15d, [r10 - 0xd]
lea r11d, [r10 - 0x10]
movzx edx, word [rcx]
cmp dx, r10w
je 0x14000e734
cmp dx, r15w
je 0x14000e70c
mov word [r8], dx
add r8, 2
add rcx, 2
jmp 0x14000e72d
lea rax, [r9 - 2]
cmp rcx, rax
jae 0x14000e72d
add rcx, 2
cmp word [rcx], r11w
jne 0x14000e725
mov word [r8], r11w
jmp 0x14000e729
mov word [r8], dx
add r8, 2
cmp rcx, r9
jb 0x14000e6ef
jmp 0x14000e748
lea rax, [0x140000000]
mov rax, qword [rax + r12*8 + 0x1b020]
or byte [rax + rsi + 8], 2
sub r8, r14
mov rdi, r8
sar rdi, 1
add edi, edi
mov ebx, dword [rbp - 0x30]
mov rsi, qword [rbp + 0x50]
cmp r14, rsi
je 0x14000e767
mov rcx, r14
call fcn.140006da8
cmp ebx, 0xfffffffe
cmove ebx, edi
mov eax, ebx
jmp 0x14000e9b4
mov r8d, 0xa
test edx, edx
je 0x14000e788
cmp word [r14], r8w
jne 0x14000e788
or al, 4
jmp 0x14000e78a
and al, 0xfb
mov byte [rcx + rsi + 8], al
mov rbx, r14
movsxd rax, edi
add rax, r14
mov qword [rbp - 0x20], rax
lea rcx, [rax - 1]
cmp r14, rcx
jae 0x14000e946
mov edx, 0x1a
mov rdi, rbx
lea r15d, [rdx - 0xd]
movzx ecx, word [rdi]
cmp cx, dx
je 0x14000e923
lea rdx, [rdi + 2]
cmp cx, r15w
je 0x14000e7d9
mov word [rbx], cx
mov rdi, rdx
add rbx, 2
jmp 0x14000e90f
add rax, 0xfffffffffffffffe
cmp rdi, rax
jae 0x14000e807
cmp word [rdx], r8w
jne 0x14000e7f3
mov word [rbx], r8w
mov eax, 4
jmp 0x14000e7fb
mov word [rbx], cx
mov eax, 2
add rbx, 2
add rdi, rax
jmp 0x14000e90b
mov rax, qword [rbp - 0x10]
lea r9, [rbp - 0x34]
and qword [rsp + 0x20], 0
mov r12, rax
and eax, 0x1f
sar r12, 5
imul r13, rax, 0x38
mov rcx, qword [r10 + r12*8 + 0x1b020]
mov rdi, rdx
mov r8d, 2
lea rdx, [rbp + 0x60]
mov rcx, qword [rcx + r13]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14000e854
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14000e8f6
cmp dword [rbp - 0x34], 0
je 0x14000e8f6
lea r10, [0x140000000]
mov rax, qword [r10 + r12*8 + 0x1b020]
test byte [rax + r13 + 8], 0x48
je 0x14000e8bb
mov r8d, 0xa
cmp word [rbp + 0x60], r8w
jne 0x14000e888
mov word [rbx], r8w
jmp 0x14000e907
mov word [rbx], r15w
mov al, byte [rbp + 0x60]
mov rcx, qword [r10 + r12*8 + 0x1b020]
mov byte [rcx + r13 + 9], al
mov al, byte [rbp + 0x61]
mov rcx, qword [r10 + r12*8 + 0x1b020]
mov byte [rcx + r13 + 0xa], al
mov rax, qword [r10 + r12*8 + 0x1b020]
mov byte [rax + r13 + 0xb], r8b
jmp 0x14000e907
cmp rbx, r14
jne 0x14000e8cd
mov r8d, 0xa
cmp word [rbp + 0x60], r8w
je 0x14000e882
mov ecx, dword [rbp + 0x48]
mov rdx, 0xfffffffffffffffe
lea r8d, [rdx + 3]
call fcn.14000a3b8
mov r8d, 0xa
lea r10, [0x140000000]
cmp word [rbp + 0x60], r8w
je 0x14000e90b
jmp 0x14000e903
mov r8d, 0xa
lea r10, [0x140000000]
mov word [rbx], r15w
add rbx, 2
mov rax, qword [rbp - 0x20]
lea rcx, [rax - 1]
mov edx, 0x1a
cmp rdi, rcx
jb 0x14000e7b4
jmp 0x14000e946
mov rcx, qword [rbp - 0x18]
mov rcx, qword [r10 + rcx*8 + 0x1b020]
mov al, byte [rcx + rsi + 8]
test al, 0x40
jne 0x14000e93f
or al, 2
mov byte [rcx + rsi + 8], al
jmp 0x14000e946
mov word [rbx], dx
add rbx, 2
sub ebx, r14d
mov edi, ebx
jmp 0x14000e753
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x14000e976
call fcn.140006610
mov dword [rax], 9
call fcn.140006594
mov dword [rax], 5
jmp 0x14000e356
cmp eax, 0x6d
jne 0x14000e34f
xor ebx, ebx
jmp 0x14000e756
xor eax, eax
jmp 0x14000e9b4
call fcn.140006594
mov dword [rax], r15d
call fcn.140006610
mov dword [rax], 9
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140006688
or eax, 0xffffffff
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret