Function at 0x180002a20
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x50
mov rax, qword [0x180084008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r12, 0xffffffffffffffff
mov rbx, rcx
mov rcx, r12
movzx esi, r8b
mov edi, edx
nop
inc rcx
cmp word [rbx + rcx*2], 0
jne 0x180002a50
inc rcx
mov qword [rsp + 0x88], rbp
mov eax, 2
mov qword [rsp + 0x90], r14
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.180007380
mov r15, rax
test sil, sil
je 0x180002b7b
mov ecx, edi
test edi, edi
je 0x180002ac1
sub ecx, 1
je 0x180002ab8
sub ecx, 1
je 0x180002aaf
cmp ecx, 1
je 0x180002aa6
xor esi, esi
jmp 0x180002ac8
lea rsi, str.z1pp13bk
jmp 0x180002ac8
lea rsi, str.gr0nkl3
jmp 0x180002ac8
lea rsi, str.fl1gtmre
jmp 0x180002ac8
lea rsi, str.skr111
test rbx, rbx
je 0x180002b0e
test rsi, rsi
je 0x180002b0e
mov rax, r12
inc rax
cmp word [rbx + rax*2], 0
jne 0x180002ad5
mov rcx, r12
cmp word [rsi + rcx*2 + 2], 0
lea rcx, [rcx + 1]
jne 0x180002ae2
lea r14, [rcx + 2]
add r14, rax
cmp r14, 3
jae 0x180002b15
lea rdx, str.Insufficient_path_length._n
lea rcx, [0x1811ce860]
call fcn.180005cc0
xor al, al
jmp 0x180002d7b
mov eax, 2
mul r14
cmovo rax, r12
mov rcx, rax
call fcn.180029ec0
mov rbp, rax
test rax, rax
jne 0x180002b4b
lea rdx, str.Memory_allocation_failed._n
lea rcx, [0x1811ce860]
call fcn.180005cc0
xor al, al
jmp 0x180002d7b
mov r8, rbx
mov rdx, r14
mov rcx, rbp
call fcn.18001cbd0
lea r8, [0x18007eebc]
mov rdx, r14
mov rcx, rbp
call fcn.18001d290
mov r8, rsi
mov rdx, r14
mov rcx, rbp
call fcn.18001d290
jmp 0x180002ba3
mov rcx, r15
sub rcx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbx]
mov word [rcx + rbx], ax
lea rbx, [rbx + 2]
test ax, ax
jne 0x180002b90
mov rbp, r15
mov edx, edi
test edi, edi
je 0x180002bef
sub edx, 1
je 0x180002be8
sub edx, 1
je 0x180002be1
cmp edx, 1
je 0x180002bda
lea rdx, str.Failed_to_retrieve_valid_dragon._n
lea rcx, [0x1811ce860]
call fcn.180005cc0
mov rcx, rbp
call fcn.180029c70
xor al, al
jmp 0x180002d7b
mov ebx, 0x30a00
jmp 0x180002bf4
mov ebx, 0x33a400
jmp 0x180002bf4
mov ebx, 0x5a2200
jmp 0x180002bf4
mov ebx, 0x83bd1d
xor r9d, r9d
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rbp
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, r12
jne 0x180002c4c
lea rdx, str.Failed_to_open_file._n
lea rcx, [0x1811ce860]
call fcn.180005cc0
mov rcx, rbp
call fcn.180029c70
xor al, al
jmp 0x180002d7b
mov eax, 2
mul rbx
cmovo rax, r12
mov rcx, rax
call fcn.180029ec0
mov rsi, rax
test rax, rax
jne 0x180002c8a
lea rdx, str.Failed_to_create_read_buffer._n
lea rcx, [0x1811ce860]
call fcn.180005cc0
mov rcx, rbp
call fcn.180029c70
xor al, al
jmp 0x180002d7b
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], 0
mov r8d, ebx
mov rdx, rsi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180002cf0
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Failed_to_read_file.__n
mov ebx, eax
lea rcx, [0x1811ce860]
call fcn.180005cc0
mov rcx, rax
mov edx, ebx
call fcn.180003160
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call fcn.180029c70
mov rcx, rsi
call fcn.180029c70
xor al, al
jmp 0x180002d7b
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
test edi, edi
je 0x180002d10
sub edi, 1
je 0x180002d48
sub edi, 1
je 0x180002d33
cmp edi, 1
jne 0x180002d5d
cmp rcx, 0x83bd1d
jne 0x180002d5d
mov r8, rcx
lea rdx, [0x180084c60]
mov rcx, rsi
call fcn.180011560
test eax, eax
jne 0x180002d5d
mov bl, 1
jmp 0x180002d5f
cmp rcx, 0x33a400
jne 0x180002d5d
mov r8, rcx
lea rdx, [0x180e62b80]
jmp 0x180002d23
cmp rcx, 0x5a2200
jne 0x180002d5d
mov r8, rcx
lea rdx, [0x1808c0980]
jmp 0x180002d23
xor bl, bl
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rsi
call fcn.180029c70
mov rcx, r15
call fcn.1800072f0
movzx eax, bl
mov r14, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1800072d0
add rsp, 0x50
pop r15
pop r12
pop rdi
pop rsi
pop rbx
ret