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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov edx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov eax, dword [edx + 0x4ac]
xor edi, edi
mov dword [ebp - 4], edi
mov eax, dword [eax + 0x30]
test eax, eax
je 0x46a156
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
xorps xmm1, xmm1
add esp, 4
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm0, qword [0x4df6c8]
comisd xmm1, xmm0
movsd qword [ebp - 0x20], xmm0
jb 0x46a179
push 0
push str.30000
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fdiv qword [0x4df6c8]
add esp, 8
fstp qword [ebp - 0x28]
movsd xmm0, qword [ebp - 0x28]
movsd qword [ebp - 0x20], xmm0
lea eax, [ebp - 0x30]
push eax
push 2
call fcn.00465c50
mov eax, dword [ebp - 0x2c]
mov esi, 0x3b9aca00
movsd xmm1, qword [ebp - 0x20]
add esp, 8
mulsd xmm1, qword [0x4e76d8]
xorps xmm0, xmm0
mul esi
movlpd qword [ebp - 0x18], xmm0
movsd xmm0, qword [0x4e76e0]
mov ecx, eax
mov eax, dword [ebp - 0x30]
mul esi
mov ebx, eax
add ecx, edx
mov eax, dword [ebp - 0x28]
cdq
add ebx, eax
mov dword [ebp - 8], ebx
adc ecx, edx
comisd xmm1, xmm0
mov dword [ebp - 0xc], ecx
jb 0x46a1e7
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x46a1e7
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
add esi, edi
adc ebx, 0x80000000
jmp 0x46a1ed
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
movaps xmm0, xmm1
call fcn.004d49b0
add eax, esi
mov dword [ebp - 0x14], eax
adc edx, ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x10], edx
test ebx, ebx
jle 0x46a306
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4a8]
mov edx, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jne 0x46a306
mov esi, dword [ebp + 0x10]
add esi, edi
xor edi, edi
test edx, edx
je 0x46a268
push ebx
push esi
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 0x46a254
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x46a2e6
xor edi, edi
test esi, esi
jne 0x46a2e6
test ebx, ebx
jne 0x46a3aa
jmp 0x46a2e6
mov eax, dword [ecx + 0x4b4]
movsd xmm0, qword [ebp - 0x20]
mulsd xmm0, qword [0x4df6c8]
mov dword [ebp - 0x28], eax
mov eax, 1
mov word [ebp - 0x24], ax
mov eax, dword [ecx + 0x4a8]
add eax, 0x14
push eax
cvttsd2si eax, xmm0
push eax
lea eax, [ebp - 0x28]
push 1
push eax
call fcn.00466e40
mov edx, dword [ebp + 0xc]
add esp, 0x10
mov ecx, dword [edx + 0x4a8]
cmp dword [ecx + 0x14], edi
jne 0x46a3aa
test eax, eax
jle 0x46a2de
push 0
push ebx
push esi
push dword [edx + 0x4b4]
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
js 0x46a37c
jle 0x46a3aa
xor edi, edi
jmp 0x46a2e6
js 0x46a3aa
xor esi, esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x46a3aa
test esi, esi
jg 0x46a369
jne 0x46a30f
test ebx, ebx
jne 0x46a315
mov edi, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
js 0x46a396
movsd xmm0, qword [ebp - 0x20]
comisd xmm0, xmmword [0x4de320]
jb 0x46a303
lea eax, [ebp - 0x40]
push eax
push 2
call fcn.00465c50
mov eax, dword [ebp - 0x3c]
mov esi, 0x3b9aca00
mul esi
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x40]
mul esi
add ecx, edx
mov esi, eax
mov eax, dword [ebp - 0x38]
cdq
add esi, eax
adc ecx, edx
sub esi, dword [ebp - 8]
sbb ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x10]
ja 0x46a303
jb 0x46a361
cmp esi, dword [ebp - 0x14]
ja 0x46a303
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
jmp 0x46a373
mov edi, dword [ebp - 4]
add edi, esi
sub ebx, esi
mov dword [ebp - 4], edi
test ebx, ebx
jle 0x46a306
jmp 0x46a20d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [ebp - 4]
or eax, 0xffffffff
test edi, edi
cmove edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x2733
je 0x46a3aa
cmp edi, 0x274c
je 0x46a303
mov edi, dword [ebp - 4]
or eax, 0xffffffff
test edi, edi
cmove edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret