Function at 0x14000aee0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rbx, qword [0x140025bf0]
cmp rbx, 0x1000
jae 0x14000af7f
cmp byte [0x140014f47], 0
jne 0x14000af61
mov rdx, qword [0x14001dbe8]
lea rdi, [0x14001dbf0]
mov rcx, rdi
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [0x140014d24]
lea rdx, [rbx + rdi]
mov r8d, 0x7fff
sub r8d, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
movsxd rbx, eax
add rbx, qword [0x140025bf0]
mov qword [0x140025bf0], rbx
mov qword [0x14001dbe8], rdi
cmp rbx, 0x7fff
je 0x14000af61
mov byte [0x140014f47], 1
test rbx, rbx
jne 0x14000af7f
mov byte [0x140014f46], bl
mov al, 0xff
mov byte [0x140014f47], bl
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rax, qword [0x14001dbe8]
movzx edx, byte [rax]
lea rbx, [rax + 1]
mov edi, edx
mov byte [0x140014a9e], dl
and edi, 0xffffffbf
mov qword [rsp + 0x40], rbx
lea eax, [rdi - 0x20]
cmp eax, 0xf
ja 0x14000afba
sub di, 0x1f
add word [0x140014d20], di
mov edi, 2
jmp case.0x14000afd8.6
cmp edi, 0x1a
ja case.0x14000afd8.6
lea r8, [0x140000000]
movsxd rax, edi
mov ecx, dword [r8 + rax*4 + 0xb3c4]
add rcx, r8
jmp rcx
cmp byte [0x140014f46], 0
jne 0x14000b3a9
movzx eax, byte [rbx + 2]
lea r8, [rbx + 4]
movzx edx, byte [rbx]
movzx ecx, byte [rbx + 1]
mov byte [0x140014d17], al
movzx eax, byte [rbx + 3]
mov rbx, r8
mov byte [0x140014d22], al
mov byte [0x140014f46], 1
mov byte [0x140014d16], dl
mov byte [0x140014a9f], cl
mov byte [0x14001af7a], 0
mov byte [0x14001af7b], 0
cmp dl, 1
jne 0x14000b049
cmp cl, dl
jne case.0x14000afd8.6
mov byte [0x14001af7b], dl
movzx r9d, dl
mov byte [0x14001af7a], dl
jmp 0x14000b087
cmp dl, 2
jne 0x14000b062
test cl, cl
jne case.0x14000afd8.6
mov byte [0x14001af7b], 1
mov r9b, 1
jmp 0x14000b087
cmp dl, 3
jne 0x14000b073
xor r9b, r9b
test cl, cl
je 0x14000b087
jmp case.0x14000afd8.6
cmp dl, 4
jne case.0x14000afd8.6
xor r9b, r9b
test cl, cl
jne case.0x14000afd8.6
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [r8 + rax], 0
jne 0x14000b090
inc rax
movzx edx, r9b
xor ecx, ecx
mov dword [rsp + 0x28], eax
test r9b, r9b
mov r10d, 0xfde9
lea r9, [0x140014d30]
mov qword [rsp + 0x20], r9
lea rbx, [r8 + rax]
mov r9d, eax
cmove ecx, r10d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x14000b3af
jmp case.0x14000afd8.6
lea rcx, [rsp + 0x40]
call fcn.14000add0
mov rbx, qword [rsp + 0x40]
jmp case.0x14000afd8.6
movzx eax, word [rbx]
mov edi, 2
add rbx, 2
add word [0x140014d20], ax
jmp case.0x14000afd8.6
movzx eax, word [rbx]
add rbx, 2
mov word [0x140014d20], ax
test ax, ax
je case.0x14000afd8.6
dec ax
mov word [0x140014d20], ax
jmp case.0x14000afd8.6
mov eax, dword [rbx]
mov ecx, 0xffff
add rbx, 4
cmp eax, ecx
cmova eax, ecx
jmp 0x14000b10d
xor ecx, ecx
mov dword [0x140014d10], ecx
test dl, 0x40
jne 0x14000b17d
movzx edx, word [rbx]
mov dword [0x140014d10], edx
movzx eax, byte [rbx + 2]
add rbx, 3
mov byte [0x140014a9d], al
bt edx, 0xf
jae case.0x14000afd8.6
or edx, 0xffff0000
mov dword [0x140014d10], edx
jmp case.0x14000afd8.6
movzx eax, byte [rbx]
mov byte [0x140014d10], al
movzx eax, byte [rbx + 1]
mov byte [0x140014d11], al
movzx eax, byte [rbx + 2]
mov byte [0x140014d12], al
movzx eax, byte [rbx + 3]
add rbx, 4
mov byte [0x140014a9d], al
jmp 0x14000b362
test dl, 0x40
jne 0x14000b23d
cmp byte [0x14001af7a], 0
jne 0x14000b1ca
movzx eax, byte [rbx]
inc rbx
movzx ecx, word [rbx]
jmp 0x14000b1dc
movzx eax, word [rbx]
mov edx, 0x7ff
movzx ecx, ax
and cx, dx
shr ax, 0xb
mov byte [0x140014a9d], al
mov word [0x140014d14], cx
xor ecx, ecx
cmp byte [0x140014d22], cl
mov dword [0x140014d10], ecx
movzx eax, word [rbx + 2]
mov dword [0x140014d10], eax
lea rax, [rbx + 4]
mov qword [rsp + 0x40], rax
je 0x14000b214
inc rax
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
call fcn.14000add0
mov eax, dword [0x140014d10]
bt eax, 0xf
jae 0x14000b0e4
mov rbx, qword [rsp + 0x40]
or eax, 0xffff0000
jmp 0x14000b373
movzx eax, byte [rbx]
xor ecx, ecx
cmp byte [0x140014d22], 0
mov byte [0x140014a9d], al
movzx eax, word [rbx + 1]
mov dword [0x140014d10], ecx
lea rcx, [rbx + 6]
mov word [0x140014d14], ax
movzx eax, byte [rbx + 3]
mov byte [0x140014d10], al
movzx eax, byte [rbx + 4]
mov byte [0x140014d11], al
movzx eax, byte [rbx + 5]
mov byte [0x140014d12], al
mov qword [rsp + 0x40], rcx
je 0x14000b292
lea rax, [rcx + 1]
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x40]
call fcn.14000add0
mov eax, dword [0x140014d10]
bt eax, 0x17
jae 0x14000b0e4
mov rbx, qword [rsp + 0x40]
jmp 0x14000b36e
xor ecx, ecx
mov dword [0x140014d10], ecx
test dl, 0x40
jne 0x14000b2e4
movzx eax, word [rbx]
add rbx, 2
mov dword [0x140014d10], eax
bt eax, 0xf
jae case.0x14000afd8.6
or eax, 0xffff0000
jmp 0x14000b373
movzx eax, byte [rbx]
lea rcx, [rbx + 2]
mov byte [0x140014d10], al
movzx eax, byte [rbx + 1]
lea rbx, [rcx + 1]
mov byte [0x140014d11], al
movzx eax, byte [rcx]
mov byte [0x140014d12], al
jmp 0x14000b362
xor ecx, ecx
mov dword [0x140014d10], ecx
lea rcx, [rbx + 2]
test dl, 0x40
jne 0x14000b336
cmp byte [0x140014d22], 0
movzx eax, word [rbx]
mov rbx, rcx
mov dword [0x140014d10], eax
je 0x14000b2d0
lea rbx, [rcx + 1]
jmp 0x14000b2d0
cmp byte [0x140014d22], 0
movzx eax, byte [rbx]
mov byte [0x140014d10], al
movzx eax, byte [rbx + 1]
lea rbx, [rcx + 1]
mov byte [0x140014d11], al
movzx eax, byte [rcx]
mov byte [0x140014d12], al
je 0x14000b362
inc rbx
mov eax, dword [0x140014d10]
bt eax, 0x17
jae case.0x14000afd8.6
or eax, 0xff000000
mov dword [0x140014d10], eax
mov rax, qword [0x14001dbe8]
sub rax, rbx
mov qword [0x14001dbe8], rbx
add qword [0x140025bf0], rax
js 0x14000b3bc
mov rbx, qword [rsp + 0x48]
movzx eax, dil
mov byte [0x140014a9e], dil
add rsp, 0x30
pop rdi
ret
call fcn.140001790
int3
xor edx, edx
mov ecx, 0x5dc
call fcn.1400076c0
int3
call fcn.140001790
int3