Function at 0x140039bf0
Capabilities:
Read and send data from client to server
Read file on windows
Send data

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x410]
sub rsp, 0x510
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x568], rbx
mov rax, qword [0x140104508]
xor rax, rsp
mov qword [rbp + 0x400], rax
mov r14, r8
mov r13, rdx
mov qword [rbp - 0x28], rdx
mov r15, rcx
mov qword [rbp - 8], r8
mov rax, qword [0x140104018]
mov qword [rsp + 0x40], rax
mov rbx, qword [r8]
xor r12d, r12d
cmp dword [rbx - 0xc], r12d
jl 0x140039c5f
mov qword [rbp - 0x48], rbx
lock inc dword [rbx - 0xc]
jmp 0x140039c84
mov qword [rbp - 0x48], rax
test rbx, rbx
jne 0x140039c6d
mov eax, r12d
jmp 0x140039c76
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rbp - 0x48]
call fcn.140001a10
lea r8, [rsp + 0x40]
lea rdx, [rbp - 0x48]
mov rcx, r15
call fcn.140038220
test eax, eax
jne 0x140039d28
mov rax, qword [0x140104018]
mov qword [rsp + 0x70], rax
lea rdi, [0x1400d34b0]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x140039ccb
movzx edx, di
lea rcx, [rsp + 0x70]
call fcn.140001ff0
jmp 0x140039d07
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x140039d07
mov edx, ebx
lea rcx, [rsp + 0x70]
call fcn.140001970
test eax, eax
je 0x140039d07
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rsp + 0x70]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
nop
mov rsi, 0xffffffffffffffff
jmp 0x14003a534
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r12
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp - 0x40]
call fcn.140031120
test rax, rax
jne 0x140039de0
mov rax, qword [0x140104018]
mov qword [rsp + 0x78], rax
lea rdi, [0x1400d3510]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x140039d79
movzx edx, di
lea rcx, [rsp + 0x78]
call fcn.140001ff0
jmp 0x140039db5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x140039db5
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140001970
test eax, eax
je 0x140039db5
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rsp + 0x78]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rsp + 0x78]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
nop
lea rcx, [rbp - 0x40]
call fcn.1400018c0
nop
mov rsi, 0xffffffffffffffff
jmp 0x14003a534
mov dword [rsp + 0x50], r12d
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140039df0
lea r9, [rsp + 0x50]
mov rdx, rax
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
jne 0x140039e8d
mov rax, qword [0x140104018]
mov qword [rbp - 0x80], rax
lea rdi, [0x1400d3580]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x140039e3b
movzx edx, di
lea rcx, [rbp - 0x80]
call fcn.140001ff0
jmp 0x140039e75
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x140039e75
mov edx, ebx
lea rcx, [rbp - 0x80]
call fcn.140001970
test eax, eax
je 0x140039e75
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rbp - 0x80]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x80]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
jmp 0x14003a52a
mov eax, dword [rsp + 0x50]
add dword [r15 + 0x5c], eax
mov eax, dword [r15 + 0x5c]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
mulss xmm1, dword [0x1400d230c]
mov eax, dword [r15 + 0x58]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
divss xmm1, xmm0
cvttss2si edx, xmm1
xor r8d, r8d
mov rcx, qword [r15 + 0x28]
call fcn.1400022e0
mov r8, r14
lea rdx, [rbp - 0x20]
lea rcx, [r15 + 0x18]
call fcn.14000e8f0
mov rcx, qword [rbp - 0x20]
cmp rcx, qword [r15 + 0x18]
jne 0x140039f61
mov rax, qword [0x140104018]
mov qword [rbp - 0x78], rax
lea rdi, [0x1400d35d0]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x140039f0f
movzx edx, di
lea rcx, [rbp - 0x78]
call fcn.140001ff0
jmp 0x140039f49
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x140039f49
mov edx, ebx
lea rcx, [rbp - 0x78]
call fcn.140001970
test eax, eax
je 0x140039f49
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rbp - 0x78]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x78]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
jmp 0x14003a52a
add rcx, 0x28
xor edx, edx
call fcn.140001c10
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400058f0
nop
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14003a02a
mov rax, qword [0x140104018]
mov qword [rbp - 0x70], rax
lea rdi, [0x1400d3628]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x140039fd8
movzx edx, di
lea rcx, [rbp - 0x70]
call fcn.140001ff0
jmp 0x14003a012
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x14003a012
mov edx, ebx
lea rcx, [rbp - 0x70]
call fcn.140001970
test eax, eax
je 0x14003a012
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rbp - 0x70]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x70]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
jmp 0x14003a507
mov dword [rsp + 0x68], r12d
mov rcx, qword [r15 + 0x28]
call fcn.140001fb0
test al, al
jne 0x14003a507
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x68]
mov r8d, 0x400
lea rdx, [rbp]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14003a483
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x14003a12a
mov dword [rsp + 0x6c], r12d
lea r9, [rsp + 0x6c]
lea rdx, [rbp]
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
je 0x14003a0ac
mov edx, dword [rsp + 0x6c]
mov rcx, r15
call fcn.140039ba0
mov rcx, qword [r15 + 0x28]
call fcn.140001fb0
test al, al
je 0x14003a040
jmp 0x14003a507
mov rax, qword [0x140104018]
mov qword [rbp - 0x68], rax
lea rdi, [0x1400d36d0]
mov rax, rdi
shr rax, 0x10
test ax, ax
jne 0x14003a0d8
movzx edx, di
lea rcx, [rbp - 0x68]
call fcn.140001ff0
jmp 0x14003a112
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x14003a112
mov edx, ebx
lea rcx, [rbp - 0x68]
call fcn.140001970
test eax, eax
je 0x14003a112
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
mov rcx, qword [rbp - 0x68]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x68]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
jmp 0x14003a507
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [0x140104018]
mov qword [rsp + 0x58], rbx
mov rdx, r14
lea rcx, [rbp - 0x18]
call fcn.140005880
mov rdi, rax
mov qword [rsp + 0x48], rax
mov r12, qword [r15 + 0x38]
cmp rbx, r12
je 0x14003a228
lea rcx, [rbx - 0xc]
mov r8d, dword [rcx]
mov rdx, qword [0x140104010]
test r8d, r8d
jns 0x14003a178
cmp rcx, rdx
jne 0x14003a184
cmp dword [r12 - 0xc], 0
jge 0x14003a201
movsxd r13, dword [r12 - 8]
cmp r8d, 1
jg 0x14003a195
cmp r13d, dword [rbx - 4]
jle 0x14003a1cc
cmp rcx, rdx
je 0x14003a1b6
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a1aa
call fcn.1400bf5e4
mov rax, qword [0x140104018]
mov qword [rsp + 0x58], rax
mov edx, r13d
lea rcx, [rsp + 0x58]
call fcn.140001970
mov rbx, qword [rsp + 0x58]
test eax, eax
je 0x14003a1fb
lea rdi, [r13*2]
lea eax, [r13 + 1]
movsxd rdx, eax
add rdx, rdx
mov r9, rdi
mov r8, r12
mov rcx, rbx
call fcn.1400029b0
mov dword [rbx - 8], r13d
xor eax, eax
mov word [rbx + rdi], ax
mov rdi, qword [rsp + 0x48]
mov r13, qword [rbp - 0x28]
jmp 0x14003a228
cmp rcx, rdx
je 0x14003a216
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a216
call fcn.1400bf5e4
mov rax, qword [r15 + 0x38]
mov qword [rsp + 0x58], rax
lock inc dword [rax - 0xc]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rdi]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x14003a254
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a24f
mov rcx, qword [rdi]
sub rcx, 0xc
call fcn.1400bf5e4
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
lea rcx, [rbp - 0x40]
call fcn.140031120
test rax, rax
jne 0x14003a30e
mov rax, qword [0x140104018]
mov qword [rbp - 0x60], rax
lea r12, [0x1400d3720]
mov rax, r12
shr rax, 0x10
test ax, ax
jne 0x14003a296
movzx edx, r12w
lea rcx, [rbp - 0x60]
call fcn.140001ff0
jmp 0x14003a2d0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
test eax, eax
je 0x14003a2d0
mov edx, edi
lea rcx, [rbp - 0x60]
call fcn.140001970
test eax, eax
je 0x14003a2d0
mov r9, rdi
add r9, r9
lea eax, [rdi + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, r12
mov rcx, qword [rbp - 0x60]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x60]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
nop
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140104010]
je 0x14003a507
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a507
call fcn.1400bf5e4
jmp 0x14003a507
mov r8, rsi
inc r8
cmp byte [rax + r8], 0
jne 0x14003a311
lea r9, [rsp + 0x50]
mov rdx, rax
mov rcx, r13
call qword [sym.imp.WININET.dll_InternetWriteFile]
test eax, eax
jne 0x14003a3d9
mov rax, qword [0x140104018]
mov qword [rbp - 0x58], rax
lea r12, [0x1400d3790]
mov rax, r12
shr rax, 0x10
test ax, ax
jne 0x14003a361
movzx edx, r12w
lea rcx, [rbp - 0x58]
call fcn.140001ff0
jmp 0x14003a39b
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rdi, eax
test eax, eax
je 0x14003a39b
mov edx, edi
lea rcx, [rbp - 0x58]
call fcn.140001970
test eax, eax
je 0x14003a39b
mov r9, rdi
add r9, r9
lea eax, [rdi + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, r12
mov rcx, qword [rbp - 0x58]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x58]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
nop
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140104010]
je 0x14003a507
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a507
call fcn.1400bf5e4
jmp 0x14003a507
mov edx, dword [rsp + 0x50]
mov rcx, r15
call fcn.140039ba0
nop
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140104010]
je 0x14003a404
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a404
call fcn.1400bf5e4
nop
mov rcx, qword [rsp + 0x60]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x14003a427
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a427
call fcn.1400bf5e4
nop
lea rcx, [rbp - 0x40]
call fcn.1400018c0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x14003a454
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a454
call fcn.1400bf5e4
nop
mov rax, qword [r14]
add rax, 0xfffffffffffffff4
cmp rax, qword [0x140104010]
je 0x14003a479
lock xadd dword [rax], esi
sub esi, 1
jg 0x14003a479
mov rcx, qword [r14]
sub rcx, 0xc
call fcn.1400bf5e4
mov eax, 1
jmp 0x14003a57e
mov rax, qword [0x140104018]
mov qword [rbp - 0x50], rax
lea r12, [0x1400d3670]
mov rax, r12
shr rax, 0x10
test ax, ax
jne 0x14003a4b0
movzx edx, r12w
lea rcx, [rbp - 0x50]
call fcn.140001ff0
jmp 0x14003a4ea
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rbx, eax
test eax, eax
je 0x14003a4ea
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.140001970
test eax, eax
je 0x14003a4ea
mov r9, rbx
add r9, r9
lea eax, [rbx + 1]
movsxd rdx, eax
add rdx, rdx
mov r8, r12
mov rcx, qword [rbp - 0x50]
call fcn.1400029b0
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x50]
mov rcx, qword [r15 + 0x28]
call fcn.140002330
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rsp + 0x60]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x14003a52a
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a52a
call fcn.1400bf5e4
nop
lea rcx, [rbp - 0x40]
call fcn.1400018c0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140104010]
je 0x14003a557
mov eax, esi
lock xadd dword [rcx], eax
sub eax, 1
jg 0x14003a557
call fcn.1400bf5e4
nop
mov rax, qword [r14]
add rax, 0xfffffffffffffff4
cmp rax, qword [0x140104010]
je 0x14003a57c
lock xadd dword [rax], esi
sub esi, 1
jg 0x14003a57c
mov rcx, qword [r14]
sub rcx, 0xc
call fcn.1400bf5e4
xor eax, eax
mov rcx, qword [rbp + 0x400]
xor rcx, rsp
call fcn.1400bf680
mov rbx, qword [rsp + 0x568]
add rsp, 0x510
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret