Function at 0x140029810
Capabilities:
Check if file exists
Connect socket
Convert ip address from string
Get file attributes
Get file size
Initialize winsock library
Read and send data from client to server
Read file on windows
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2e0]
sub rsp, 0x3e0
mov rax, qword [0x14007c030]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov edi, edx
mov r12, rcx
mov qword [rbp + 0x30], rcx
xor r13d, r13d
mov dword [rbp + 0xa0], r13d
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r13
mov r14d, 2
mov r8d, r14d
lea rdx, [0x140070e24]
lea rcx, [rsp + 0x40]
call fcn.14000b050
lea rdx, [rsp + 0x40]
mov rcx, r12
call fcn.14001f750
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], r13
mov qword [rbp + socket8], 0xf
mov byte [rbp + 0xe0], r13b
mov dword [rbp + 0xa0], 0x100
cmp byte [rax], 3
jne 0x14002a323
mov rdx, qword [rax + 8]
lea rcx, [rbp + 0xe0]
call fcn.14001efb0
nop
mov esi, 0xc0
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
lea rbx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0x10
cmovae rbx, qword [rbp + 0xe0]
mov qword [rbp + 0x100], rbx
mov dword [rbp + 0x108], edi
mov qword [rbp + 0x110], r13
mov qword [rbp + 0x118], 0x1000
mov qword [rbp + 0x120], 0x1000
mov ecx, 0x202
lea rdx, [rbp + 0x130]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x140029954
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x1400299e8
xor r8d, r8d
lea edx, [r8 + 1]
mov ecx, r14d
call qword [sym.imp.WS2_32.dll_socket]
mov r15, rax
mov qword [rbp + 0x110], rax
mov word [rbp + 0xc0], r14w
movzx ecx, di
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0xc2], ax
lea r8, [rbp + 0xc4]
mov rdx, rbx
mov ecx, r14d
call qword [sym.imp.WS2_32.dll_inet_pton]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0xc0]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x140029a77
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
mov r15, r13
mov qword [rbp + 0x110], r13
mov byte [rbp + 0x10c], r15b
test ebx, ebx
je 0x140029a7e
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
nop
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_closesocket]
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x140029a41
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029a3c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a31d
call fcn.140035d80
mov qword [rbp + 0xf0], r13
mov qword [rbp + socket8], 0xf
mov byte [rbp + 0xe0], 0
mov rcx, r12
call fcn.140009fd0
lea rcx, [r12 + 8]
movzx edx, byte [r12]
call fcn.140009b90
nop
jmp 0x14002a2ed
mov byte [rbp + 0x10c], 1
test edi, edi
je 0x14002a266
nop word [rax + rax]
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
lea r8, [rbp]
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x100]
call fcn.140030450
nop
cmp qword [rbp + 0xb8], 0
je 0x14002a229
mov rbx, qword [rbp]
test rbx, rbx
je 0x14002a229
mov rdx, rbx
lea rcx, [rbp + 0xb0]
call fcn.140007920
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140007230
nop
lea rdx, [0x14007f578]
lea rcx, [rsp + 0x68]
call fcn.14002bed0
mov rcx, qword [rsp + 0x78]
test al, al
je 0x140029b14
cmp rcx, qword [0x14007f588]
je 0x14002a0d1
call fcn.140035d80
mov qword [rsp + 0x78], r13
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r13
mov r8d, 6
lea rdx, str.action
lea rcx, [rsp + 0x40]
call fcn.14000b050
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.14001f750
lea rdx, str.OPEN
mov rcx, rax
call fcn.14002c3c0
test al, al
je 0x14002a1d7
mov qword [rsp + 0x60], r13
lea rax, [rsp + 0x40]
mov qword [rbp + 0xd0], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x60], r13
mov r8d, 1
lea rdx, [0x140070ee8]
lea rcx, [rbp - 0x78]
call fcn.14000b050
lea rdx, [rbp - 0x78]
lea rcx, [rsp + 0x68]
call fcn.14001f750
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], socket
mov byte [rsp + 0x40], 0
or esi, 4
mov dword [rbp + 0xa0], esi
cmp byte [rax], 3
jne 0x14002a3b4
mov rdx, qword [rax + 8]
lea rcx, [rsp + 0x40]
call fcn.14001efb0
and esi, 0xfffffffb
or esi, 3
lea rcx, [rsp + 0x40]
call fcn.14001b540
mov rbx, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140029c22
test al, 0x10
je 0x140029c22
xor dil, dil
jmp 0x140029c33
cmp edi, 0xffffffff
jne 0x140029c2c
xor dil, dil
jmp 0x140029c33
not dil
and dil, 1
mov byte [rbp - 0x58], 0
xor eax, eax
mov qword [rbp - 0x50], rax
xor edx, edx
lea rcx, [rbp - 0x50]
call fcn.140009b90
mov byte [rbp - 0x58], 3
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
mov ecx, 0x20
call fcn.140036024
mov rbx, rax
lea rax, [rbp + 0xa8]
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], rbx
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], r13
mov r8d, 9
lea rdx, str.streaming
mov rcx, rbx
call fcn.14000b050
test rbx, rbx
jne 0x140029cb9
mov r8d, 0x4c6f
lea rdx, str.C:Users_sabanDesktopcpp_pro_tunax1packages_nlohmann.json.3.11.2_build_nativeinclude_nlohmannjson.hpp
lea rcx, str.obj___nullptr
call fcn.1400476a0
mov qword [rbp + 0xd8], r13
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], r13
mov byte [rbp - 0x40], 0
xor eax, eax
mov qword [rbp - 0x38], rax
xor edx, edx
lea rcx, [rbp - 0x38]
call fcn.140009b90
mov byte [rbp - 0x40], 4
mov byte [rbp - 0x80], dil
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], r13
lea rax, [rbp - 0x58]
mov qword [rbp + 0x10], rax
lea rax, [rbp - 0x28]
mov qword [rbp + 0x18], rax
movaps xmm0, xmmword [rbp + 0x10]
movdqa xmmword [rbp + 0xd0], xmm0
mov r8b, 1
lea rdx, [rbp + 0xd0]
lea rcx, [rbp - 0x78]
call fcn.14001eb50
mov qword [rbp - 0x68], r13
lea rax, [rbp - 0x78]
mov qword [rbp + 0x20], rax
lea rax, [rbp - 0x60]
mov qword [rbp + 0x28], rax
movaps xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp + 0xd0], xmm0
mov r8b, 1
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0xc0]
call fcn.14001eb50
nop
lea r9, [0x140007470]
mov edx, 0x18
lea r8d, [rdx - 0x17]
lea rcx, [rbp - 0x78]
call fcn.1400362e4
nop
lea r9, [0x140007470]
mov r8, r14
mov edx, 0x18
lea rcx, [rbp - 0x58]
call fcn.1400362e4
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x38]
call fcn.140008740
lea r9, [rsp + 0x60]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call fcn.1400074a0
mov rbx, rax
mov r8, qword [rsp + 0x60]
mov rdx, rax
lea rcx, [rbp + 0x100]
call fcn.140030480
mov rcx, rbx
call fcn.140035d80
mov ecx, 4
call fcn.1400362b0
mov rbx, rax
xor r9d, r9d
lea r8d, [r9 + 4]
mov rdx, rax
mov r15, qword [rbp + 0x110]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_recv]
mov rcx, rbx
call fcn.140035d80
test dil, dil
jne 0x140029e7b
lea rcx, [rbp + 0xc0]
call fcn.140009fd0
movzx edx, byte [rbp + 0xc0]
lea rcx, [rbp + 0xc8]
call fcn.140009b90
nop
lea rcx, [rsp + 0x68]
call fcn.140009fd0
movzx edx, byte [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x140029e65
nop
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x140029e50
mov edx, 0x20
mov rcx, qword [rbp + 0xb0]
call fcn.140035d80
jmp 0x140029a90
lea rax, [rsp + 0x40]
mov qword [rbp + 0xd0], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], r13
mov r8d, 1
lea rdx, [0x140070ee8]
lea rcx, [rbp - 0x20]
call fcn.14000b050
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x68]
call fcn.14001f750
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], socket
mov byte [rsp + 0x40], 0
or esi, 0x20
mov dword [rbp + 0xa0], esi
cmp byte [rax], 3
jne 0x14002a36e
mov rdx, qword [rax + 8]
lea rcx, [rsp + 0x40]
call fcn.14001efb0
and esi, 0xffffffdf
or esi, 0x18
lea rax, [rsp + 0x40]
mov qword [rbp + 0xd0], rax
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x20]
call fcn.140008de0
mov rcx, rax
call fcn.14001b540
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14002a12a
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x140029f9d
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140029f98
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a368
call fcn.140035d80
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], socket
mov byte [rsp + 0x40], 0
test rdi, rdi
je 0x14002a168
mov r14, qword [rbp + 0x120]
mov rcx, r14
call fcn.1400362b0
mov rbx, rax
mov dword [rbp + 0xa0], r13d
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0xa0]
mov r8d, r14d
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14002a032
mov r8d, dword [rbp + 0xa0]
test r8d, r8d
je 0x14002a038
xor r9d, r9d
mov rdx, rbx
mov rcx, r15
call qword [sym.imp.WS2_32.dll_send]
mov dword [rbp + 0xa0], r13d
mov qword [rsp + 0x20], r13
lea r9, [rbp + 0xa0]
mov r8d, r14d
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140029ff1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
call fcn.140035d80
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rbp + 0xc0]
call fcn.140009fd0
movzx edx, byte [rbp + 0xc0]
lea rcx, [rbp + 0xc8]
call fcn.140009b90
nop
lea rcx, [rsp + 0x68]
call fcn.140009fd0
movzx edx, byte [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002a0b5
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x14002a0a0
mov edx, 0x20
mov rcx, qword [rbp + 0xb0]
call fcn.140035d80
mov r14d, 2
jmp 0x140029a90
lea rcx, [rsp + 0x68]
call fcn.140009fd0
movzx edx, byte [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002a255
nop word [rax + rax]
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x14002a110
jmp 0x14002a255
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14002a168
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002a162
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a368
call fcn.140035d80
nop
lea rcx, [rbp + 0xc0]
call fcn.140009fd0
movzx edx, byte [rbp + 0xc0]
lea rcx, [rbp + 0xc8]
call fcn.140009b90
nop
lea rcx, [rsp + 0x68]
call fcn.140009fd0
movzx edx, byte [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002a255
nop dword [rax]
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x14002a1c0
jmp 0x14002a255
mov rcx, qword [rsp + 0x78]
call fcn.140035d80
nop
lea rcx, [rsp + 0x68]
call fcn.140009fd0
movzx edx, byte [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002a255
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x14002a212
jmp 0x14002a255
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rcx + 8]
mov qword [rax], r13
mov rcx, qword [rcx]
test rcx, rcx
je 0x14002a255
nop
mov rbx, qword [rcx]
mov edx, 0x20
call fcn.140035d80
mov rcx, rbx
test rbx, rbx
jne 0x14002a240
mov edx, 0x20
mov rcx, qword [rbp + 0xb0]
call fcn.140035d80
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
call qword [sym.imp.WS2_32.dll_WSACleanup]
nop
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_closesocket]
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x14002a2bc
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002a2b7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002a31d
call fcn.140035d80
mov qword [rbp + 0xf0], r13
mov qword [rbp + socket8], 0xf
mov byte [rbp + 0xe0], 0
mov rcx, r12
call fcn.140009fd0
lea rcx, [r12 + 8]
movzx edx, byte [r12]
call fcn.140009b90
nop
mov rcx, qword [rbp + 0x2d0]
xor rcx, rsp
call fcn.140035d60
lea r11, [rsp + 0x3e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.140047b50
nop
mov rcx, rax
call fcn.14001a100
mov qword [rsp + 0x60], rax
lea r8, [rsp + 0x60]
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp - 0x20]
call fcn.14001f530
nop
mov r8, rax
mov edx, 0x12e
lea rcx, [rbp - 0x58]
call fcn.14000bb10
lea rdx, [0x14007a490]
lea rcx, [rbp - 0x58]
call fcn.140037c24
nop
call fcn.140047b50
nop
mov rcx, rax
call fcn.14001a100
mov qword [rbp - 0x80], rax
lea r8, [rbp - 0x80]
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x80]
call fcn.14001f530
nop
mov r8, rax
mov edx, 0x12e
lea rcx, [rbp + 0x48]
call fcn.14000bb10
lea rdx, [0x14007a490]
lea rcx, [rbp + 0x48]
call fcn.140037c24
nop
mov rcx, rax
call fcn.14001a100
mov qword [rbp - 0x80], rax
lea r8, [rbp - 0x80]
lea rdx, str.type_must_be_string__but_is
lea rcx, [rbp + 0x80]
call fcn.14001f530
nop
mov r8, rax
mov edx, 0x12e
lea rcx, [rbp + 0x48]
call fcn.14000bb10
lea rdx, [0x14007a490]
lea rcx, [rbp + 0x48]
call fcn.140037c24
int3