Function at 0x47ac00
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 0x47ac46
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 [0x514590]
comisd xmm1, xmm0
movsd qword [ebp - 0x20], xmm0
jb 0x47ac69
push 0
push str.30000
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fdiv qword [0x514590]
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.00476750
mov eax, dword [ebp - 0x2c]
mov esi, 0x3b9aca00
movsd xmm1, qword [ebp - 0x20]
add esp, 8
mulsd xmm1, qword [0x520260]
xorps xmm0, xmm0
mul esi
movlpd qword [ebp - 0x18], xmm0
movsd xmm0, qword [0x520268]
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 0x47acd7
subsd xmm1, xmm0
comisd xmm0, xmm1
jbe 0x47acd7
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
add esi, edi
adc ebx, 0x80000000
jmp 0x47acdd
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
movaps xmm0, xmm1
call fcn.00509ab0
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 0x47adf6
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4a8]
mov edx, dword [ebp + 8]
cmp dword [eax + 0x14], 0
jne 0x47adf6
mov esi, dword [ebp + 0x10]
add esi, edi
xor edi, edi
test edx, edx
je 0x47ad58
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 0x47ad44
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x47add6
xor edi, edi
test esi, esi
jne 0x47add6
test ebx, ebx
jne 0x47ae9a
jmp 0x47add6
mov eax, dword [ecx + 0x4b4]
movsd xmm0, qword [ebp - 0x20]
mulsd xmm0, qword [0x514590]
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.00477940
mov edx, dword [ebp + 0xc]
add esp, 0x10
mov ecx, dword [edx + 0x4a8]
cmp dword [ecx + 0x14], edi
jne 0x47ae9a
test eax, eax
jle 0x47adce
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 0x47ae6c
jle 0x47ae9a
xor edi, edi
jmp 0x47add6
js 0x47ae9a
xor esi, esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x4a8]
cmp dword [eax + 0x14], 0
jne 0x47ae9a
test esi, esi
jg 0x47ae59
jne 0x47adff
test ebx, ebx
jne 0x47ae05
mov edi, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
js 0x47ae86
movsd xmm0, qword [ebp - 0x20]
comisd xmm0, xmmword [0x515cd0]
jb 0x47adf3
lea eax, [ebp - 0x40]
push eax
push 2
call fcn.00476750
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 0x47adf3
jb 0x47ae51
cmp esi, dword [ebp - 0x14]
ja 0x47adf3
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
jmp 0x47ae63
mov edi, dword [ebp - 4]
add edi, esi
sub ebx, esi
mov dword [ebp - 4], edi
test ebx, ebx
jle 0x47adf6
jmp 0x47acfd
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 0x47ae9a
cmp edi, 0x274c
je 0x47adf3
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