Function at 0x574680
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5941fb
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x61b660]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x5c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 8]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042a4d4
add esp, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x24], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 8]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042a4d4
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x28], ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 8]
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov eax, dword [ebp - 0x20]
mov edx, 0x60
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0042a4d4
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x28], 0
je 0x57476e
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [ecx], edx
push method.CGuiCtrl.virtual_224
push 0x5748e0
mov eax, dword [ebp - 0x20]
push eax
push 0x60
mov ecx, dword [ebp - 0x28]
add ecx, 4
push ecx
call fcn.0052dbf0
mov edx, dword [ebp - 0x28]
add edx, 4
mov dword [ebp - 0x60], edx
jmp 0x574775
mov dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 0x2c], edx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x10], 0
jmp 0x5747a4
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x10]
cmp edx, dword [ecx + 8]
jge 0x5748cc
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x60
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x10]
mov dword [eax + edx], ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x10]
lea edx, [eax + ecx*4]
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x60
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x2c]
mov dword [ecx + eax + 0x30], edx
mov edx, dword [ebp - 0x5c]
add edx, 0xc
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x60
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x2c]
mov dword [ecx + eax + 0x58], edx
mov edx, dword [ebp - 0x10]
imul edx, edx, 0x60
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x1c]
mov dword [ecx + edx + 0x54], eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x60
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + ecx + 0x3c]
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x28]
mov ecx, dword [ebp - 0x10]
lea edx, [eax + ecx*4]
push edx
push 0
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x60
mov ecx, dword [ebp - 0x5c]
add eax, dword [ecx + 0x2c]
push eax
push 0x5733e0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx + 0x24]
mov edx, dword [ebp - 0x10]
mov dword [ecx + edx*4], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x5748c7
xor eax, eax
je 0x574879
push 0x63a8c0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor ecx, ecx
je 0x574887
mov dword [0x63a8d8], 0x2a7
xor edx, edx
je 0x5748ae
push str.SocketInterface.cpp
call fcn.005291f0
add esp, 4
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
push eax
push str.SocketInterface.cpp
mov ecx, 0x63a8dc
call fcn.004064c0
xor ecx, ecx
je 0x5748c3
mov edx, dword [ebp - 0x14]
push edx
push str.Error_is___ld_
call fcn.00575290
add esp, 8
xor al, al
jmp 0x5748ce
jmp 0x57479b
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret