Function at 0x46a7c0
Capabilities:
Read file on windows
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x46a7d5
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x4ac]
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
push 0
mov eax, dword [eax + 0x30]
test eax, eax
je 0x46a7ee
push eax
jmp 0x46a7f3
push str.30000
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fdiv qword [0x4df6c8]
add esp, 8
cmp dword [esi + 0x52c], 0
fstp qword [ebp - 0x10]
jle 0x46a830
mov eax, dword [esi + 0x4ac]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x46a830
push 0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fdiv qword [0x4df6c8]
add esp, 8
fstp qword [ebp - 0x10]
push ebx
mov ebx, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x10]
push dword [ebx]
push edi
call fcn.004638a0
add esp, 8
test eax, eax
jne 0x46a8ae
movsd xmm0, qword [ebp - 0x10]
mov edx, dword [ebp + 8]
nop
mov eax, dword [esi + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x46a8ab
mov eax, dword [ebx]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
jge 0x46aa1e
mov ebx, ecx
sub ebx, eax
add eax, edi
xor edi, edi
mov dword [ebp - 4], eax
test edx, edx
je 0x46a8b5
push ebx
push eax
push edx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fileno]
add esp, 4
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x46a8a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x46a921
xor edi, edi
test esi, esi
jne 0x46a921
test ebx, ebx
jle 0x46a921
or eax, 0xffffffff
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x4b4]
mulsd xmm0, qword [0x4df6c8]
mov dword [ebp - 0x18], eax
mov eax, 1
mov word [ebp - 0x14], ax
mov eax, dword [esi + 0x4a8]
add eax, 0x14
push eax
cvttsd2si eax, xmm0
push eax
lea eax, [ebp - 0x18]
push 1
push eax
call fcn.00466e40
mov ecx, dword [esi + 0x4a8]
add esp, 0x10
cmp dword [ecx + 0x14], edi
jne 0x46a8ab
test eax, eax
jle 0x46a91d
push 0
push ebx
push dword [ebp - 4]
push dword [esi + 0x4b4]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
js 0x46aa0e
jle 0x46a8ab
xor edi, edi
jmp 0x46a921
js 0x46a8ab
xor esi, esi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x46a8ab
test esi, esi
jg 0x46a93e
jne 0x46a976
test ebx, ebx
jne 0x46a990
cmp esi, 0xfffffffe
je 0x46a8ab
lea eax, [ebp - 0x28]
push eax
push 1
call fcn.00465c50
add esp, 8
test esi, esi
jle 0x46a99e
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x10]
add dword [ebx], esi
push dword [ebx]
push edi
call fcn.004638a0
add esp, 8
test eax, eax
jne 0x46a8ae
jmp 0x46a9a4
jns 0x46a990
cmp edi, 0x2733
je 0x46a8ab
cmp edi, 0x274c
jne 0x46a8ab
lea eax, [ebp - 0x28]
push eax
push 1
call fcn.00465c50
add esp, 8
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x10]
movsd xmm0, qword [ebp - 0x10]
xorps xmm1, xmm1
comisd xmm0, xmm1
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
jb 0x46a850
mov eax, dword [ebp - 0x20]
sub eax, dword [esi + 0x4f0]
mov ecx, dword [ebp - 0x28]
sub ecx, dword [esi + 0x4e8]
mov edx, dword [ebp - 0x24]
sbb edx, dword [esi + 0x4ec]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x4e76d0]
movsd qword [ebp - 8], xmm0
call fcn.004d4ab0
movsd xmm1, qword [ebp - 8]
addsd xmm1, xmm0
movsd xmm0, qword [ebp - 0x10]
comisd xmm1, xmm0
ja 0x46a8ab
jmp 0x46a84c
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop ebx
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
pop edi
pop ebx
mov eax, 0xfffffffe
pop esi
mov esp, ebp
pop ebp
ret