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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov byte [r11 + 0x20], r9b
mov qword [r11 + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor eax, eax
mov r12, r8
mov qword [r11 - 0x48], rax
mov r13, rcx
mov qword [rcx], rax
xor r9d, r9d
mov dword [rsp + 0x28], eax
mov edx, 0x80000000
lea r8d, [rax + 1]
mov dword [rsp + 0x20], 3
mov rcx, r12
mov edi, eax
mov r14d, eax
mov esi, eax
mov r15d, eax
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
nop dword [rax + rax]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400109d3
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jne 0x140010cd9
lea rdx, [rsp + 0x80]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
nop dword [rax + rax]
test eax, eax
jne 0x140010a04
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jne 0x140010a99
cmp qword [rsp + 0x80], rsi
jne 0x140010a18
mov ebx, 0xe8
jmp 0x140010a99
cmp qword [rsp + 0x80], 0x10000000
jle 0x140010a2d
mov ebx, Ordinal_224
jmp 0x140010a99
mov rcx, qword gs:[0x60]
mov edx, 8
mov r8, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rsi, rax
test rax, rax
jne 0x140010a60
lea ebx, [rax + 8]
jmp 0x140010a99
mov r8d, dword [rsp + 0x80]
lea r9, [rsp + 0x88]
and qword [rsp + 0x20], rdi
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
nop dword [rax + rax]
test eax, eax
jne 0x140010a99
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp rbp, 0xffffffffffffffff
je 0x140010aae
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop dword [rax + rax]
test ebx, ebx
jne 0x140010b5e
and dword [rsp + 0x28], edi
lea ecx, [rbx + 1]
mov r9d, dword [rsp + 0x80]
mov r8, rsi
and qword [rsp + 0x20], rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop dword [rax + rax]
test eax, eax
jne 0x140010aef
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
jmp 0x140010b22
mov rcx, qword gs:[0x60]
mov ebp, 8
mov r8d, eax
mov edx, ebp
add r8, r8
mov r15d, eax
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov r14, rax
test rax, rax
jne 0x140010b26
mov ebx, ebp
test ebx, ebx
jne 0x140010b5e
mov r9d, dword [rsp + 0x80]
xor edx, edx
mov dword [rsp + 0x28], r15d
mov r8, rsi
mov qword [rsp + 0x20], r14
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop dword [rax + rax]
test eax, eax
jne 0x140010b5e
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test rsi, rsi
je 0x140010b81
mov rcx, qword gs:[0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
test ebx, ebx
jne 0x140010c89
mov eax, r15d
xor r11d, r11d
xor ebp, ebp
xor r10d, r10d
mov rdx, r14
lea r9, [r14 + rax*2]
cmp r14, r9
jae 0x140010bfc
inc r10d
mov r8, rdx
cmp rdx, r9
jae 0x140010bbb
cmp word [r8], 0xa
je 0x140010bbb
add r8, 2
cmp r8, r9
jb 0x140010bab
mov rcx, rdx
cmp rdx, r8
jae 0x140010bd2
cmp word [rcx], 0x3a
je 0x140010bd2
add rcx, 2
cmp rcx, r8
jb 0x140010bc3
mov rax, rcx
sub rax, rdx
cmp rax, 0xffff
jg 0x140010c37
sub cx, dx
je 0x140010bf3
movzx eax, cx
inc ebp
add eax, 0x1f
and eax, 0xfffffff8
add r11d, eax
lea rdx, [r8 + 2]
cmp rdx, r9
jb 0x140010ba0
mov rcx, qword gs:[0x60]
mov edx, 8
mov r8d, r11d
add r8, 0x20
mov ebx, ebp
shl rbx, 4
mov rcx, qword [rcx + 0x30]
add r8, rbx
call qword [sym.imp.ntdll.dll_RtlAllocateHeap]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x140010c49
lea ebx, [rax + 8]
jmp 0x140010c89
mov r8d, r10d
mov rdx, r12
call fcn.14001020c
mov ebx, recvfrom
jmp 0x140010c89
mov r9b, byte [rsp + 0x98]
mov r8, r12
mov dword [rax + 0x18], ebp
mov rdx, rdi
add rax, 0x20
mov dword [rsp + 0x28], r15d
mov qword [rdi], rax
lea rax, [rbp + 4]
lea rax, [rdi + rax*8]
mov qword [rsp + 0x20], r14
mov qword [rdi + 8], rax
lea rax, [rdi + 0x20]
add rax, rbx
mov qword [rdi + 0x10], rax
call fcn.1400102bc
mov ebx, eax
test r14, r14
je 0x140010cac
mov rcx, qword gs:[0x60]
mov r8, r14
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
test ebx, ebx
jne 0x140010cb6
mov qword [r13], rdi
jmp 0x140010cd9
test rdi, rdi
je 0x140010cd9
mov rcx, qword gs:[0x60]
mov r8, rdi
xor edx, edx
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.ntdll.dll_RtlFreeHeap]
nop dword [rax + rax]
mov eax, ebx
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret