Function at 0x584660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x44]
push esi
push edi
mov edi, dword [esp + 0x50]
lea esi, [eax + 3]
mov dword [ebp], eax
mov ecx, dword [edi + 8]
and ecx, 0x3fffffff
cmp ecx, esi
jge 0x5846a0
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 4
cmovl eax, ecx
push eax
push edi
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov ebx, dword [esp + 0x54]
mov dword [edi + 4], esi
mov ebp, dword [ebp]
inc ebp
mov ecx, dword [ebx + 8]
and ecx, 0x3fffffff
cmp ecx, ebp
jge 0x5846d2
add ecx, ecx
mov eax, ebp
cmp ebp, ecx
push 0x10
cmovl eax, ecx
push eax
push ebx
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov esi, dword [ebx + 4]
mov edi, ebp
sub edi, esi
shl esi, 4
add esi, dword [ebx]
test edi, edi
jle 0x584717
test esi, esi
je 0x58470f
sub esp, 0x10
mov ecx, esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00583bb0
add esi, 0x10
sub edi, 1
jne 0x5846e2
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x50]
mov edx, dword [ecx]
mov ecx, dword [ebp]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + esi*4]
mov edx, esi
mov ecx, dword [ebp]
xor esi, esi
mov dword [ecx + edx*4 + 8], eax
test edx, edx
js 0x584771
xor edi, edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx]
add ecx, edi
mov eax, dword [eax]
add eax, edi
push eax
call fcn.00583be0
mov edx, dword [esp + 0x34]
inc esi
add edi, 0x10
cmp esi, edx
jle 0x584743
lea eax, [edx + 1]
mov esi, eax
test eax, eax
je 0x5847ac
shl eax, 2
mov ecx, 0x7d8954
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
push eax
mov eax, dword [0x7d8954]
call dword [eax + 0xc]
mov edi, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x54]
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x34]
sar eax, 2
jmp 0x5847b2
xor edi, edi
mov dword [esp + 0x14], edi
test eax, eax
mov dword [esp + 0x24], edi
mov ecx, connect
mov dword [esp + 0x28], esi
cmovne ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], ecx
test esi, esi
jle 0x5847d6
mov ecx, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, 1
mov dword [esp + 0x10], edi
cmp dword [esp + 0x44], edi
jl 0x584a90
mov esi, dword [esp + 0x4c]
jmp 0x5847f4
mov edx, dword [esp + 0x34]
push dword [esp + 0x38]
movss xmm0, dword [esp + 0x4c]
lea eax, [esp + 0x28]
push ecx
movss dword [esp], xmm0
push eax
push dword [esp + 0x48]
push edx
push ebx
push ebp
push edi
push esi
call fcn.005864a0
mov dword [esp + 0x40], eax
add esp, 0x24
mov eax, dword [esp + 0x44]
cmp edi, eax
je 0x5849ef
mov ecx, dword [esi]
inc ecx
add ecx, edi
push ecx
push ebp
call fcn.005875d0
inc eax
add esp, 8
add dword [esi], eax
mov ebp, dword [esi]
mov ecx, dword [ebx + 8]
inc ebp
and ecx, 0x3fffffff
cmp ecx, ebp
jge 0x584866
add ecx, ecx
mov eax, ebp
cmp ebp, ecx
push 0x10
cmovl eax, ecx
push eax
push ebx
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov esi, dword [ebx + 4]
mov edi, ebp
sub edi, esi
shl esi, 4
add esi, dword [ebx]
test edi, edi
jle 0x5848ab
test esi, esi
je 0x5848a3
sub esp, 0x10
mov ecx, esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00583bb0
add esi, 0x10
sub edi, 1
jne 0x584876
movss xmm0, dword [esp + 0x48]
sub esp, 8
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
movss dword [esp + 4], xmm0
mov dword [esp], 0x3727c5ac
push ecx
push dword [esp + 0x44]
mov dword [ebx + 4], ebp
lea eax, [edi + 1]
mov ebp, dword [esp + 0x60]
push esi
mov esi, dword [esp + 0x60]
push ebp
push ebx
push eax
push dword [esi]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x78]
push eax
call fcn.00587920
add esp, 0x28
cmp byte [esp + 0x54], 0
jne 0x5849a3
mov eax, dword [esi]
inc eax
add eax, edi
push eax
push ebp
call fcn.00587670
or ecx, 0xffffffff
add esp, 8
sub ecx, eax
add dword [esi], ecx
mov ebp, dword [esi]
mov ecx, dword [ebx + 8]
inc ebp
and ecx, 0x3fffffff
cmp ecx, ebp
jge 0x584942
add ecx, ecx
mov eax, ebp
cmp ebp, ecx
push 0x10
cmovl eax, ecx
push eax
push ebx
push 0x7d8954
call fcn.00467b80
add esp, 0x10
mov esi, dword [ebx + 4]
mov edi, ebp
sub edi, esi
shl esi, 4
add esi, dword [ebx]
test edi, edi
jle 0x584987
test esi, esi
je 0x58497f
sub esp, 0x10
mov ecx, esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00583bb0
add esi, 0x10
sub edi, 1
jne 0x584952
mov esi, dword [esp + 0x4c]
push 1
push ebx
mov dword [ebx + 4], ebp
mov ebp, dword [esp + 0x58]
push ebp
push dword [esp + 0x1c]
push esi
call fcn.00584d60
add esp, 0x14
push dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x28]
sub esp, 8
mov dword [esp + 4], 0x358637bd
mov dword [esp], 0x358637bd
push 0xa
push 0x64
push dword [esp + 0x50]
push eax
push ebx
push ebp
push edi
push dword [esi]
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.005884c0
mov eax, dword [esp + 0x78]
add esp, 0x34
mov dword [esp + 0x10], edi
cmp edi, eax
jle 0x5847f0
cmp dword [esp + 0x1c], 0
je 0x584a90
movss xmm0, dword [esp + 0x48]
sub esp, 8
mov edi, dword [esp + 0x3c]
movss dword [esp + 4], xmm0
mov dword [esp], 0x3727c5ac
push dword [esp + 0x44]
push dword [esp + 0x44]
push edi
push ebp
push ebx
push eax
push dword [esi]
lea eax, [esp + 0x58]
push eax
call fcn.00587920
add esp, 0x28
lea eax, [esp + 0x24]
push dword [esp + 0x40]
sub esp, 8
mov dword [esp + 4], 0x358637bd
mov dword [esp], 0x358637bd
push 0xa
push 0x64
push dword [esp + 0x50]
push eax
push ebx
push ebp
push dword [esp + 0x68]
push dword [esi]
push dword [esp + 0x64]
push edi
call fcn.005884c0
movss xmm0, dword [esp + 0x7c]
lea eax, [esp + 0x58]
add esp, 0x34
push dword [esp + 0x38]
push ecx
movss dword [esp], xmm0
push eax
push dword [esp + 0x48]
push edi
push ebx
push ebp
push dword [esp + 0x60]
push esi
call fcn.005864a0
add esp, 0x24
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
js 0x584ab6
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esp + 8]
call dword [eax + 0x10]
add esp, 0x20
ret