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

Disassembly:
push rbp
push rsi
push rbx
mov byte [rsp - 0x210], 0
mov byte [rsp - 0x1210], 0
mov byte [rsp - 0x2210], 0
sub rsp, 0x2210
mov rbp, rsp
mov qword [rbp + 0x48], rcx
mov byte [rbp + 0x57], r8b
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x2238], rdx
mov rcx, qword [rbp + 0x2238]
call fcn.0040e9c0
nop
mov rcx, qword [rbp + 0x48]
call fcn.0040e7f0
xor esi, esi
mov ebx, 0x8003
movzx rax, byte [rbp + 0x57]
sub al, 1
test al, al
je 0x55ec88
sub al, 1
test al, al
je 0x55ec8f
sub al, 1
test al, al
je 0x55ec96
sub al, 1
test al, al
jne 0x55eca2
jmp 0x55ec9d
mov ebx, 0x8003
jmp 0x55eca2
mov ebx, 0x8004
jmp 0x55eca2
mov ebx, 0x800c
jmp 0x55eca2
mov ebx, 0x8000
lea rcx, [rbp + 0x2200]
xor edx, edx
xor r8, r8
mov r9d, 0x18
mov dword [rsp + 0x20], 0xf0000000
mov rax, qword [0x00670500]
call qword [rax]
test eax, eax
je 0x55ef75
mov rcx, qword [rbp + 0x2200]
mov edx, ebx
xor r8, r8
xor r9, r9
lea rax, [rbp + 0x21f8]
mov qword [rsp + 0x20], rax
mov rax, qword [0x00670298]
call qword [rax]
test eax, eax
je 0x55ef75
mov rcx, qword [rbp + 0x2238]
call fcn.0040f9f0
mov rcx, rax
mov edx, 0x80000000
mov r8d, 1
xor r9, r9
mov dword [rsp + 0x20], 3
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_CreateFileW
mov rbx, rax
cmp rbx, 0xffffffffffffffff
je 0x55ee57
mov rcx, rbx
lea rdx, [rbp + 0x2208]
call sub.kernel32.dll_GetFileSizeEx
test al, al
je 0x55ee4f
xor esi, esi
jmp 0x55ee41
mov rcx, qword [rbp + 0x2208]
sub rcx, rsi
mov edx, 0x2000
call fcn.0055ec00
mov dword [rbp + 0x1f4], eax
lea rcx, [rbp + 0x1f8]
mov edx, 0x2000
xor r8, r8
call fcn.0040ab10
cmp dword [rbp + 0x1f4], 0x2000
jbe 0x55edc6
mov dword [rbp + 0x1f4], 0x2000
mov eax, dword [rbp + 0x1f4]
mov rcx, qword [rbp + 0x2208]
sub rcx, rsi
cmp rax, rcx
jle 0x55edc6
mov eax, dword [rbp + 0x2208]
sub eax, esi
mov dword [rbp + 0x1f4], eax
mov rcx, rbx
mov rdx, rsi
xor r8, r8
xor r9, r9
call sub.kernel32.dll_SetFilePointerEx
test eax, eax
je 0x55ee38
mov rcx, rbx
lea rdx, [rbp + 0x1f8]
mov r8d, dword [rbp + 0x1f4]
lea r9, [rbp + 0x1f0]
mov qword [rsp + 0x20], 0
call sub.kernel32.dll_ReadFile
test eax, eax
je 0x55ee38
mov eax, dword [rbp + 0x1f4]
cmp eax, dword [rbp + 0x1f0]
jne 0x55ee38
mov rcx, qword [rbp + 0x21f8]
lea rdx, [rbp + 0x1f8]
mov r8d, dword [rbp + 0x1f4]
xor r9, r9
mov rax, qword [0x00670830]
call qword [rax]
test eax, eax
je 0x55ee4e
mov eax, dword [rbp + 0x1f4]
add rsi, rax
cmp rsi, qword [rbp + 0x2208]
jl 0x55ed5f
nop
mov rcx, rbx
call sub.kernel32.dll_CloseHandle
cmp rsi, qword [rbp + 0x2208]
jne 0x55ef65
mov dword [rbp + 0x1f4], 4
mov dword [rbp + 0x16c], 0
mov rcx, qword [rbp + 0x21f8]
mov edx, 4
lea r8, [rbp + 0x16c]
lea r9, [rbp + 0x1f4]
mov dword [rsp + 0x20], 0
mov rax, qword [0x006709d8]
call qword [rax]
test eax, eax
je 0x55ef65
lea rcx, [rbp + 0x170]
mov edx, 0x80
xor r8, r8
call fcn.0040ab10
mov rcx, qword [rbp + 0x21f8]
mov edx, 2
lea r8, [rbp + 0x170]
lea r9, [rbp + 0x16c]
mov dword [rsp + 0x20], 0
mov rax, qword [0x006709d8]
call qword [rax]
test eax, eax
je 0x55ef65
lea rcx, [rbp + 0x6c]
mov edx, pe_nt_image_headers64
xor r8, r8
call fcn.0040ab10
mov rcx, qword [rbp + 0x48]
call fcn.0040e7f0
xor ecx, ecx
mov esi, dword [rbp + 0x16c]
sub esi, 1
mov eax, ecx
cmp eax, esi
ja 0x55ef64
sub esi, ecx
add esi, 1
lea rbx, [rbp + 0x170]
lea rcx, [rbp + 0x6c]
lea rdx, [0x0055efc8]
movzx r8, byte [rbx]
call sub.user32.dll_wsprintfW
lea rcx, [rbp + 0x58]
lea rdx, [rbp + 0x6c]
mov r8d, 0x80
call fcn.0040fab0
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x58]
call fcn.0040fd20
add rbx, 1
sub esi, 1
test esi, esi
jne 0x55ef25
nop
mov rcx, qword [rbp + 0x21f8]
mov rax, qword [0x00670808]
call qword [rax]
nop
lea rcx, [rbp + 0x58]
call fcn.0040e7f0
lea rcx, [rbp + 0x2238]
call fcn.0040e7f0
mov rax, qword [rbp + 0x48]
lea rsp, [rbp + 0x2210]
pop rbx
pop rsi
pop rbp
ret