Function at 0x180011c00
Capabilities:
Check for time delay via gettickcount
Get file size
Read and send data from client to server
Read file on windows
Send data

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r14, rcx
xor edx, edx
mov rcx, r9
mov rsi, r9
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r10, qword [r14 + 8]
mov r13d, dword [r10 + 0x7c]
mov r15d, eax
xor ebp, ebp
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, 0x8000
mov r11d, eax
mov eax, 0x10624dd3
mov rcx, rbx
mul r11d
mov eax, edx
shr eax, 5
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x50], eax
call fcn.180030d98
mov r8d, dword [rsp + 0xe8]
mov rcx, qword [r14]
mov r12, qword [rsp + 0xe0]
mov r10, qword [rcx]
xor edx, edx
mov rdi, rax
mov eax, r15d
mov dword [rsp + 0x40], r13d
div r13d
xor edx, edx
mov r9d, eax
mov dword [rsp + 0x58], eax
mov eax, r8d
div r13d
mov edx, dword [r12]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], edx
mov rdx, qword [rsp + 0xd0]
mov dword [rsp + 0x20], r9d
xor r8d, r8d
mov r9d, r15d
mov dword [rsp + 0x54], eax
call qword [r10 + 0x58]
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x68]
test al, al
jne 0x180011e33
nop word [rax + rax]
lea r9, [rsp + 0xc0]
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180011ea9
cmp dword [rsp + 0xc0], 0
je 0x180011e51
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, dword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
lea r9, [rsp + 0x5c]
mov rdx, rdi
mov esi, eax
call qword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x180011ea9
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, 0x1f4
jae 0x180011d5f
cmp ebx, 0x1000000
jae 0x180011d72
add ebx, ebx
jmp 0x180011d72
cmp eax, 0x4e2
jbe 0x180011d84
shr ebx, 1
mov eax, 0x8000
cmp ebx, eax
cmovb ebx, eax
mov rcx, rdi
call fcn.180030d58
mov ecx, ebx
call fcn.180030d98
mov rdi, rax
mov eax, dword [rsp + 0x5c]
add dword [r12], eax
add ebp, eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r11d, eax
mov eax, 0x10624dd3
mul r11d
mov esi, edx
shr esi, 5
cmp esi, dword [rsp + 0x50]
je 0x180011e1a
mov r9d, dword [rsp + 0xe8]
mov r8d, dword [r12]
xor edx, edx
mov ecx, esi
mov eax, ebp
sub ecx, dword [rsp + 0x60]
div ecx
mov rcx, qword [r14]
xor edx, edx
mov r13d, eax
mov eax, r15d
sub eax, ebp
mov dword [rsp + 0x40], r13d
div r13d
xor edx, edx
mov r10d, eax
mov dword [rsp + 0x58], eax
mov eax, r9d
sub eax, r8d
div r13d
mov edx, eax
mov dword [rsp + 0x54], eax
mov rax, qword [rcx]
mov dword [rsp + 0x38], edx
mov rdx, qword [rsp + 0xd0]
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r8d
mov r9d, r15d
mov r8d, ebp
mov dword [rsp + 0x20], r10d
call qword [rax + 0x58]
mov dword [rsp + 0x50], esi
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov rsi, qword [rsp + 0xd8]
test al, al
je 0x180011ce0
mov rcx, rdi
call fcn.180030d58
mov eax, 0x80040301
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [r14 + 8]
mov r8d, dword [rsp + 0xe8]
mov r9d, dword [rsp + 0x58]
mov rdx, qword [rsp + 0xd0]
mov dword [rax + 0x7c], r13d
mov eax, dword [rsp + 0x54]
mov rcx, qword [r14]
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x38], eax
mov eax, dword [r12]
mov r10, qword [rcx]
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r9d
mov r8d, r15d
mov r9d, r15d
call qword [r10 + 0x58]
mov rcx, rdi
call fcn.180030d58
xor eax, eax
jmp 0x180011e40
mov rcx, rdi
call fcn.180030d58
call qword [sym.imp.KERNEL32.dll_GetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x180011e40
movzx eax, ax
or eax, 0x80070000
jmp 0x180011e40