Function at 0x1800021a0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
push r13
push r15
sub rsp, 0x280
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x208
xor edi, edi
call fcn.180005b70
lea rcx, [rsp + 0x40]
mov r15d, edi
mov r13d, edi
call fcn.1800024e0
test eax, eax
je 0x180002480
lea rcx, [rsp + 0x40]
nop word [rax + rax]
movzx eax, word [rcx]
add rcx, 2
test ax, ax
jne 0x1800021f0
lea rax, [rsp + 0x40]
sub rcx, rax
sar rcx, 1
sub rcx, 1
je 0x180002480
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
lea rcx, [rsp + 0x40]
mov edx, 0x80000000
mov qword [rsp + 0x258], r14
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x180002478
lea rcx, str.kernel32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.GetFileSize
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000227f
xor edx, edx
mov rcx, r14
call rax
mov edx, eax
jmp 0x180002281
mov edx, edi
mov rax, qword [0x18001fd50]
mov qword [rsp + 0x278], rbx
mov qword [rsp + 0x270], rbp
mov r8d, dword [rax + 0x2c]
mov ecx, dword [rax + 0x30]
add ecx, r8d
cmp edx, ecx
jb 0x1800024c9
mov ebx, r8d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbp, rax
test rax, rax
je 0x1800024c9
mov rcx, qword [0x18001fd50]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x268], rsi
mov edx, dword [rcx + 0x30]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rdx, qword [0x18001fd50]
mov esi, edi
mov dword [rsp + 0x2b8], edi
mov ecx, dword [rdx + 0x2c]
test ecx, ecx
je 0x180002349
nop dword [rax + rax]
sub ecx, esi
mov edx, esi
mov r8d, ecx
mov qword [rsp + 0x20], rdi
mov rcx, r14
lea r9, [rsp + 0x2b8]
add rdx, rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [0x18001fd50]
test eax, eax
je 0x180002349
add esi, dword [rsp + 0x2b8]
mov ecx, dword [rdx + 0x2c]
cmp esi, ecx
jb 0x180002310
cmp esi, dword [rdx + 0x2c]
jne 0x1800024aa
mov rcx, r14
mov qword [rsp + 0x260], r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r12, qword [0x18001fd50]
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x28], rax
mov r9d, esi
mov r8, rbp
mov dword [rsp + 0x2b0], edi
mov qword [rsp + 0x20], rdi
lea rdx, [r12 + 0x38]
call fcn.180001300
mov eax, dword [rsp + 0x2b0]
mov rbx, rbp
test eax, eax
je 0x180002425
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r14, rax
mov rbx, rbp
test rax, rax
je 0x180002425
lea rax, [rsp + 0x2b0]
mov r9d, esi
mov qword [rsp + 0x28], rax
lea rdx, [r12 + 0x38]
mov r8, rbp
mov qword [rsp + 0x20], r14
call fcn.180001300
test eax, eax
je 0x180002411
mov r13d, dword [rsp + 0x2b0]
lea rcx, [rsp + 0x40]
mov r8d, r13d
mov rdx, r14
mov r15, r14
call fcn.1800026f0
mov edi, 1
jmp 0x180002425
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r12, qword [rsp + 0x260]
test rbx, rbx
je 0x180002446
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x18000248f
mov rax, qword [rsp + 0x2a0]
mov qword [rax], r15
mov rax, qword [rsp + 0x2a8]
mov dword [rax], r13d
mov rsi, qword [rsp + 0x268]
mov rbp, qword [rsp + 0x270]
mov rbx, qword [rsp + 0x278]
mov r14, qword [rsp + 0x258]
mov eax, edi
add rsp, 0x280
pop r15
pop r13
pop rdi
ret
test r15, r15
je 0x180002460
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180002460
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbp
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180002460
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180002468