Function at 0x100035860
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
xor r15d, r15d
mov r14, r8
mov r12, rcx
mov ebx, edx
lea rcx, [rax - 0x80]
lea r8d, [r15 + 0x50]
xor edx, edx
mov r13, r9
mov edi, r15d
mov qword [rsp + 0x50], r15
call sub.msvcrt.dll_memset
lea r8d, [r15 + 0x1a]
lea rcx, [rsp + 0x34]
xor edx, edx
mov dword [rsp + 0x30], r15d
call sub.msvcrt.dll_memset
mov rbp, r15
cmp ebx, dword [r12 + 0x20]
jb 0x1000358cd
mov edi, 0x80070057
jmp 0x100035b30
mov rax, qword [r12 + 0x18]
mov rcx, qword [r12 + 8]
xor r9d, r9d
mov rdx, qword [rax + rbx*8]
xor r8d, r8d
mov edx, dword [rdx + 0x2a]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [r12 + 8]
lea r9, [rsp + 0xe8]
lea rdx, [rsp + 0x30]
mov r8d, 0x1e
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, r15d
jne 0x10003593b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
je 0x100035931
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
jmp 0x100035b30
mov edi, 0x80004005
jmp 0x100035b30
cmp dword [rsp + 0x30], 0x4034b50
je 0x10003594f
mov edi, 0x80070570
jmp 0x100035b30
movzx eax, word [rsp + 0x38]
mov esi, 8
cmp ax, si
je 0x100035964
cmp ax, r15w
jne 0x100035945
cmp dword [rsp + 0x46], r15d
ja 0x100035975
mov edi, 0x80070002
jmp 0x100035b30
movzx edx, word [rsp + 0x4c]
movzx eax, word [rsp + 0x4a]
mov rcx, qword [r12 + 8]
add edx, eax
mov r9d, 1
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, dword [rsp + 0x46]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
mov edx, esi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
cmp rax, r15
je 0x100035ad6
cmp word [rsp + 0x38], r15w
jne 0x100035a1f
mov r8d, dword [rsp + 0x46]
mov rcx, qword [r12 + 8]
lea r9, [rsp + 0xe8]
mov rdx, rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, r15d
jne 0x100035a09
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r15d
je 0x100035add
movzx edi, ax
or edi, 0x80070000
cmp eax, r15d
cmovle edi, eax
jmp 0x100035afe
mov eax, dword [rsp + 0x46]
cmp dword [rsp + 0xe8], eax
je 0x100035af4
jmp 0x100035ae9
mov ebx, dword [rsp + 0x42]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbp, rax
cmp rax, r15
je 0x100035ad6
mov r8d, dword [rsp + 0x42]
mov rcx, qword [r12 + 8]
lea r9, [rsp + 0xe8]
mov rdx, rax
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, r15d
je 0x1000359e6
mov eax, dword [rsp + 0x42]
cmp dword [rsp + 0xe8], eax
jne 0x100035ae9
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x46]
lea rdx, str.1.1.4
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x68], eax
call fcn.10003a4a4
mov ebx, eax
cmp eax, r15d
jne 0x100035ad1
lea rcx, [rsp + 0x50]
call fcn.10003a578
lea rcx, [rsp + 0x50]
mov ebx, eax
call fcn.10003a420
cmp ebx, 1
lea rcx, [rsp + 0x50]
cmove ebx, r15d
call fcn.10003a420
cmp ebx, 0xfffffffc
jne 0x100035ae4
mov edi, 0x8007000e
jmp 0x100035afe
mov edi, 0x80004005
jmp 0x100035afe
cmp ebx, r15d
je 0x100035af0
mov edi, 0x80070570
jmp 0x100035afe
mov eax, dword [rsp + 0x46]
mov qword [r14], rsi
mov dword [r13], eax
mov rsi, r15
cmp rsi, r15
je 0x100035b17
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp rbp, r15
je 0x100035b30
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r11, [rsp + 0xb0]
mov eax, edi
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret