Function at 0x14011ad00
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov r14, r9
mov r15, r8
mov r13, rdx
xor esi, esi
mov dword [rbp + 0x38], esi
mov qword [rbp - 0x30], rsi
lea rdi, [rdx + 0xe0]
mov rcx, rdx
call fcn.140109d20
mov rcx, rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rsi + 1]
call sub.KERNEL32.dll_CreateFileW
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x14011b150
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x38]
lea ebx, [rsi + 0x78]
mov r8d, ebx
mov rdx, rdi
mov rcx, rax
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x14011b150
cmp dword [rbp + 0x38], ebx
je 0x14011adab
mov ebx, 0x8007012b
jmp 0x14011b163
mov edx, ebx
mov rcx, rdi
call fcn.140112888
mov ebx, eax
test eax, eax
js 0x14011b163
cmp dword [rdi + 0x10], esi
jbe 0x14011b163
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x38]
mov r8d, 8
lea rdx, [rbp - 0x30]
mov rcx, r12
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x14011b150
cmp dword [rbp + 0x38], 8
jne 0x14011ada1
cmp dword [rbp - 0x30], 7
je 0x14011ae2b
mov eax, dword [rdi + 0x10]
dec eax
cmp esi, eax
je 0x14011ae1e
mov r9d, 1
xor r8d, r8d
mov edx, dword [rbp - 0x2c]
mov rcx, r12
call sub.KERNEL32.dll_SetFilePointer
cmp eax, 0xffffffff
je 0x14011b150
inc esi
cmp esi, dword [rdi + 0x10]
jae 0x14011b163
jmp 0x14011adc8
mov ecx, dword [rbp - 0x2c]
add rcx, 2
call fcn.140105b34
mov qword [rbp - 0x28], rax
test rax, rax
jne 0x14011ae4a
mov ebx, 0x8007000e
jmp 0x14011b163
mov r8d, dword [rbp - 0x2c]
add r8, 2
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x38]
mov r8d, dword [rbp - 0x2c]
mov rsi, qword [rbp - 0x28]
mov rdx, rsi
mov rcx, r12
call sub.KERNEL32.dll_ReadFile
test eax, eax
jne 0x14011ae95
call sub.KERNEL32.dll_GetLastError
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x14011b145
mov ecx, dword [rbp - 0x2c]
cmp dword [rbp + 0x38], ecx
je 0x14011aea7
mov ebx, 0x8007012b
jmp 0x14011b145
mov eax, dword [rdi + 0x14]
add eax, 0x78
sub eax, ecx
add eax, 0xfffffff8
mov dword [r14], eax
mov ecx, eax
call fcn.140105b34
mov qword [r15], rax
test rax, rax
jne 0x14011aece
mov ebx, 0x8007000e
jmp 0x14011b145
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call sub.KERNEL32.dll_SetFilePointer
cmp eax, 0xffffffff
je 0x14011ae7d
and qword [rsp + 0x20], 0
lea r9, [rbp + 0x38]
mov r8d, dword [r14]
mov rdx, qword [r15]
mov rcx, r12
call sub.KERNEL32.dll_ReadFile
test eax, eax
je 0x14011ae7d
mov eax, dword [r14]
cmp dword [rbp + 0x38], eax
jne 0x14011ae9d
or r11d, 0xffffffff
add dword [rdi + 0x10], r11d
mov ecx, dword [rdi + 0x10]
mov rax, qword [r15]
mov dword [rax + 0x10], ecx
mov ecx, dword [r14]
add ecx, 0xffffff88
mov dword [rdi + 0x14], ecx
mov rax, qword [r15]
mov dword [rax + 0x14], ecx
mov edx, dword [r14]
mov r10, qword [r15]
xor ecx, ecx
lea r8, [r10 + 0x14]
xor r9d, r9d
imul ecx, ecx, 0x65
movzx eax, byte [r8]
add ecx, eax
inc r8
inc r9d
movsxd rax, r9d
cmp rax, 0x10
jb 0x14011af3a
lea r8, [r10 + 0x78]
add edx, 0xffffff88
je 0x14011af6c
imul ecx, ecx, 0x65
movzx eax, byte [r8]
add ecx, eax
inc r8
add edx, r11d
jne 0x14011af5b
mov dword [rdi + 0xc], ecx
mov rax, qword [r15]
mov dword [rax + 0xc], ecx
xor r14d, r14d
mov rdi, rsi
lea rcx, [rbp - 0x18]
call fcn.140109a60
nop
lea esi, [r14 + 3]
cmp dword [rbp - 0x2c], r14d
jbe 0x14011b13c
cmp dword [rdi], 0
jne 0x14011af9e
lea rcx, [r13 + 0x20]
jmp 0x14011afad
mov r15d, 1
cmp dword [rdi], r15d
jne 0x14011afc5
lea rcx, [r13 + 0x30]
lea rdx, [rdi + 8]
call fcn.14010bed8
mov ebx, eax
test eax, eax
js 0x14011b13c
jmp 0x14011b11a
cmp dword [rdi], 2
jne 0x14011aff9
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
je 0x14011b137
lea rdx, [rdi + 8]
lea rcx, [rbp - 0x18]
call fcn.14010bed8
mov ebx, eax
test eax, eax
js 0x14011b13c
xor esi, esi
jmp 0x14011b11a
cmp dword [rdi], 3
jne 0x14011b035
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
jne 0x14011b137
test esi, esi
jne 0x14011b137
lea rcx, [rbp - 0x18]
call fcn.140109d20
mov rdx, rax
lea rcx, [r13 + 0x40]
lea r8, [rdi + 8]
call fcn.14010ad08
jmp 0x14011b103
cmp dword [rdi], 4
jne 0x14011b06a
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
je 0x14011b137
lea rdx, [rdi + 8]
lea rcx, [rbp - 0x18]
call fcn.14010bed8
mov ebx, eax
test eax, eax
js 0x14011b13c
mov esi, r15d
jmp 0x14011b11a
cmp dword [rdi], 5
jne 0x14011b0a7
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
jne 0x14011b137
cmp esi, r15d
jne 0x14011b137
lea rcx, [rbp - 0x18]
call fcn.140109d20
mov rdx, rax
lea rcx, [r13 + 0xa8]
lea r8, [rdi + 8]
call fcn.1400dde0c
jmp 0x14011b103
cmp dword [rdi], 6
jne 0x14011b0d3
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
je 0x14011b137
lea rdx, [rdi + 8]
lea rcx, [rbp - 0x18]
call fcn.14010bed8
mov ebx, eax
test eax, eax
js 0x14011b13c
mov esi, 2
jmp 0x14011b11a
cmp dword [rdi], 7
jne 0x14011b137
lea rcx, [rbp - 0x18]
call fcn.14010ef2c
test eax, eax
jne 0x14011b137
cmp esi, 2
jne 0x14011b137
lea rcx, [rbp - 0x18]
call fcn.140109d20
mov rdx, rax
lea rcx, [r13 + 0x70]
lea r8, [rdi + 8]
call fcn.1400dcb0c
mov ebx, eax
test eax, eax
js 0x14011b13c
mov edx, r15d
lea rcx, [rbp - 0x18]
call fcn.140110394
mov esi, 3
mov eax, dword [rdi + 4]
lea ecx, [rax*2 + 0xc]
mov eax, ecx
add rdi, rax
add r14d, ecx
cmp r14d, dword [rbp - 0x2c]
jae 0x14011b13c
jmp 0x14011af93
mov ebx, 0x8007000d
lea rcx, [rbp - 0x18]
call fcn.140109cb0
mov rcx, qword [rbp - 0x28]
call sub.msvcrt.dll_free
jmp 0x14011b163
call sub.KERNEL32.dll_GetLastError
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov rcx, r12
call sub.KERNEL32.dll_CloseHandle
mov eax, ebx
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret