Function at 0x43a010
Capabilities:
Create thread
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x55d68c]
xor eax, ebp
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x21c], ecx
push 0x56bcb8
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x56bca0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x56bcd0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call fcn.0043f7e0
push 0
push 0
push 0x439ec0
call fcn.00457fcd
add esp, 0xc
cmp eax, 0xffffffff
jne 0x43a06f
mov eax, 4
jmp 0x43a449
call fcn.0042e2b0
cmp eax, 0xffffffff
jne 0x43a083
mov eax, 5
jmp 0x43a449
call fcn.004d7a80
call fcn.00476bb0
call fcn.004d7c30
mov dword [ebp - 0x10], 0
call fcn.004d5a50
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.004d48f0
add esp, 4
mov ecx, dword [ebp - 0x21c]
mov dword [ecx + 0x150], eax
mov dword [ebp - 8], 0
push 0
push 0
mov edx, dword [ebp - 0x21c]
mov eax, dword [edx + 0x150]
push eax
call fcn.004d3a40
add esp, 0xc
push 0x54d9e4
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringA]
push eax
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx + 0x150]
push edx
call fcn.004d3a30
add esp, 8
push 0x54d9f0
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringA]
mov dword [ebp - 0x68], eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x68]
push eax
call fcn.00472640
add esp, 8
mov dword [ebp - 0x5c], eax
push 0
push 0
push 0
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.0046fd20
add esp, 0x10
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax + 0x150]
push ecx
call fcn.004d7a10
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x5c], 0
je 0x43a163
mov edx, dword [ebp - 0x5c]
push edx
call fcn.0046de40
add esp, 4
mov dword [ebp - 0x5c], 0
push 0x54df78
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringA]
mov dword [ebp - 0xc], eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc]
push eax
call fcn.00472640
add esp, 8
mov dword [ebp - 0x64], eax
push 0x54e6cc
call dword [sym.imp.VMProtectSDK32.dll_VMProtectDecryptStringA]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x64]
push ecx
call fcn.00476dd0
add esp, 0x10
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x64], 0
je 0x43a1ba
mov edx, dword [ebp - 0x64]
push edx
call fcn.0046de40
add esp, 4
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx + 0x150]
push edx
call fcn.004d78d0
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax + 0x150]
push ecx
call fcn.004d2e30
add esp, 4
mov dword [ebp - 8], eax
push 0
call fcn.004390f0
add esp, 4
push eax
call fcn.0045638f
add esp, 4
mov dword [ebp - 0x1f8], 0
push 0x18c
push 0
lea edx, [ebp - 0x1f4]
push edx
call fcn.004611e0
add esp, 0xc
mov dword [ebp - 0x1fc], 0
jmp 0x43a23c
mov eax, dword [ebp - 0x1fc]
add eax, 1
mov dword [ebp - 0x1fc], eax
cmp dword [ebp - 0x1fc], 0x64
jge 0x43a259
call fcn.004563a1
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp + ecx*4 - 0x1f8], eax
jmp 0x43a22d
push 0x190
lea edx, [ebp - 0x1f8]
push edx
call fcn.00476bc0
add esp, 8
push 0x54e6d8
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax + 0x150]
push ecx
call fcn.004d3440
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x21c]
mov dword [edx + 0x108], 0xffffffff
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x4c], 0x17
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x44], 6
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x30]
push edx
call fcn.0043c430
add esp, 8
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x30]
call fcn.00402c60
push eax
push 0
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.WS2_32.dll_socket]
mov edx, dword [ebp - 0x21c]
mov dword [edx + 0x108], eax
mov eax, dword [ebp - 0x21c]
cmp dword [eax + 0x108], 0xffffffff
jne 0x43a360
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x20c], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov eax, dword [ebp - 0x20c]
jmp 0x43a449
mov dword [ebp - 0x208], 1
push 4
lea ecx, [ebp - 0x208]
push ecx
push 0x1b
push 0x29
mov edx, dword [ebp - 0x21c]
mov eax, dword [edx + 0x108]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x18]
push ecx
mov edx, dword [ebp - 0x21c]
mov eax, dword [edx + 0x108]
push eax
call dword [sym.imp.WS2_32.dll_bind]
mov dword [ebp - 0x204], eax
cmp dword [ebp - 0x204], 0
je 0x43a3ea
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx + 0x108]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp - 0x210], 0xfffffffd
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov eax, dword [ebp - 0x210]
jmp 0x43a449
push 0xa
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax + 0x108]
push ecx
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
jne 0x43a41e
mov dword [ebp - 0x214], 0xfffffffc
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov eax, dword [ebp - 0x214]
jmp 0x43a449
mov edx, dword [ebp - 0x21c]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x21c]
mov edx, dword [eax + 0x18]
call edx
mov dword [ebp - 0x218], 0
lea ecx, [ebp - 0x30]
call fcn.00402c40
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00455328
mov esp, ebp
pop ebp
ret 0xc