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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
mov rbx, rcx
lea rdx, [rbp + 0x20]
mov rcx, qword [rcx + 0x70]
xor r14d, r14d
mov esi, r14d
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
mov edi, r14d
cmovne rdi, qword [rbp + 0x20]
test rdi, rdi
jle 0x140074cc1
nop dword [rax + rax]
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov rcx, qword [rbx + 0x70]
lea r9, [rbp + 0x28]
mov r8d, 4
mov dword [rbp + 0x28], r14d
lea rdx, [rbp + 0x20]
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [rbp + 0x20], 0xf0
jne 0x140074cc1
cmp byte [rbp + 0x21], 0x7e
jne 0x140074cc1
movzx eax, byte [rbp + 0x23]
cmp al, 1
je 0x140074ce2
cmp al, 2
je 0x140074cb4
cmp al, 3
je 0x140074cad
sub al, 0x7c
cmp al, 3
ja 0x140074cdb
mov eax, 6
jmp 0x140074cb9
mov eax, 7
jmp 0x140074cb9
mov eax, 0x7f
add rsi, rax
cmp rsi, rdi
jl 0x140074c50
mov eax, 0x8004020c
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov eax, 0x8004020d
jmp 0x140074cc6
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov rcx, qword [rbx + 0x70]
lea r9, [rbp + 0x28]
mov r8d, socket
mov dword [rbp + 0x28], r14d
lea rdx, [rbp - 0x40]
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
movzx eax, byte [rbp - 0x3a]
cmp al, 0x1c
jbe 0x140074d25
mov eax, 0x80040208
jmp 0x140074cc6
cmp al, 0x18
jbe 0x140074d32
lea r8, [0x14012f1e8]
jmp 0x140074d6d
cmp al, 0x14
jbe 0x140074d3f
lea r8, [0x14012f1d8]
jmp 0x140074d6d
cmp al, 0x10
jbe 0x140074d4c
lea r8, [0x140130040]
jmp 0x140074d6d
cmp al, 0xc
jbe 0x140074d59
lea r8, [0x14012f1c8]
jmp 0x140074d6d
cmp al, 8
lea r8, [0x140130030]
lea rcx, [0x14012f1f8]
cmovbe r8, rcx
mov edx, 2
lea rcx, [rbx + 0x58]
lea r9d, [rdx - 3]
call fcn.140025fb0
movzx ecx, byte [rbp - 0x3a]
movzx edi, byte [rbp - 0x37]
add ecx, 6
movzx eax, byte [rbp - 0x38]
and edi, 0x7f
movzx r8d, byte [rbp - 0x3b]
and eax, 0x7f
shl edi, 7
and r8d, 0x7f
or edi, eax
shl r8d, 7
movzx eax, byte [rbp - 0x39]
and eax, 0x7f
shl edi, 7
or edi, eax
mov eax, 0x24924925
mul ecx
mov eax, 0x78
sub ecx, edx
shr ecx, 1
add ecx, edx
xor edx, edx
shr ecx, 2
div ecx
mov dword [rbx + 0x2c8], ecx
lea rdx, str.SDS_sample__d
mov dword [rbx + 0x2cc], eax
lea rcx, [rbp - 0x28]
movzx eax, byte [rbp - 0x3c]
and eax, 0x7f
or r8d, eax
call fcn.1400100f0
mov r9d, 0xffffffff
lea r8, [rbp - 0x28]
lea rcx, [rbx + 0x58]
lea edx, [r9 + 4]
call fcn.140025fb0
movzx r8d, byte [rbp - 0x34]
lea rax, [rsi + 0x15]
mov qword [rbx + 0x290], rax
and r8d, 0x7f
movzx eax, byte [rbp - 0x35]
xor edx, edx
and eax, 0x7f
shl r8d, 7
or r8d, eax
mov dword [rbx + 0x20], 1
movzx eax, byte [rbp - 0x36]
and eax, 0x7f
shl r8d, 7
or r8, rax
mov dword [rbx + 0x2c], 0x4b0
mov eax, edi
mov qword [rbx + 0x18], r8
shr eax, 1
add eax, 0x3b9aca00
div edi
mov dword [rbx + 0x28], eax
lea ecx, [rax - 0xac43]
cmp ecx, 2
ja 0x140074e6e
mov dword [rbx + 0x28], 0xac44
jmp 0x140074e7f
add eax, 0xffffa9df
cmp eax, 2
ja 0x140074e7f
mov dword [rbx + 0x28], 0x5622
mov ecx, dword [rbx + 0x2cc]
mov byte [rbx + 0x38], 1
lea rax, [rcx - 1]
add rax, r8
cqo
idiv rcx
cmp byte [rbp - 0x2d], 0x7f
movzx ecx, byte [rbp - 0x31]
mov dword [rbx + 0x2d0], eax
setne al
cmp byte [rbp - 0x2d], 1
mov byte [rbx + 0x44], al
sete al
and ecx, 0x7f
shl ecx, 7
mov byte [rbx + 0x45], al
movzx eax, byte [rbp - 0x32]
and eax, 0x7f
or ecx, eax
movzx eax, byte [rbp - 0x33]
shl ecx, 7
and eax, 0x7f
or ecx, eax
movzx eax, byte [rbp - 0x2f]
mov dword [rbx + 0x48], ecx
and eax, 0x7f
movzx ecx, byte [rbp - 0x2e]
and ecx, 0x7f
shl ecx, 7
or ecx, eax
movzx eax, byte [rbp - 0x30]
and eax, 0x7f
shl ecx, 7
or ecx, eax
mov dword [rbx + 0x4c], ecx
xor eax, eax
jmp 0x140074cc6