Function at 0x40bff0
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Resolve function by parsing pe exports
Send data
Send data on socket
Send http request
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x449a28
mov eax, dword fs:[0]
push eax
sub esp, 0x2ec
mov eax, dword [0x460770]
xor eax, esp
mov dword [esp + 0x2e8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x460770]
xor eax, esp
push eax
lea eax, [esp + 0x300]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x314]
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x310]
push eax
mov dword [esp + 0x30c], 1
call fcn.0040a990
push 0x4511ab
lea ecx, [esp + 0x30]
call fcn.00401cb0
push 0x4511ab
lea ecx, [esp + 0x38]
mov byte [esp + 0x30c], 2
call fcn.00401cb0
lea ecx, [esp + 0x18]
mov byte [esp + 0x308], 3
mov eax, dword [esp + 0x310]
push ecx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov esi, esp
push eax
lea edi, [esp + 0x40]
lea ebx, [esp + 0x38]
call fcn.00401db0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040beb0
add esp, 8
test eax, eax
jne 0x40c0f1
push 0x4530d8
lea edx, [esp + 0x314]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00401830
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 4
call fcn.00404260
mov byte [esp + 0x308], 3
mov eax, dword [esp + 0x18]
jmp 0x40cd58
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebx, eax
mov dword [esp + 0x28], ebx
cmp ebx, 0xffffffff
jne 0x40c11b
push 0x10
push str.socket
mov ecx, ebp
call fcn.00402090
jmp 0x40cd74
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea ecx, [esp + 0x50]
push ecx
push 0x1006
push 0xffff
push ebx
mov dword [esp + 0x60], 0x4e20
call esi
push 4
lea edx, [esp + 0x50]
push edx
push 0x1005
push 0xffff
push ebx
call esi
mov edi, dword [esp + 0x18]
mov eax, 2
push edi
mov word [esp + 0x54], ax
call dword [sym.imp.WS2_32.dll_htons]
mov edx, dword [esp + 0x2c]
mov word [esp + 0x52], ax
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x40c18d
push 0
lea ecx, [esp + 0x30]
call fcn.00401fe0
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x40c19f
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
xor esi, esi
push 0x10
lea edx, [esp + 0x54]
push edx
push ebx
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x40c248
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 5
jl 0x40c1a5
push 0x7f
lea eax, [esp + 0x81]
push 0
push eax
mov byte [esp + 0x88], 0
call fcn.00435560
mov ecx, dword [esp + 0x60]
add esp, 0xc
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
lea edx, [esp + 0x80]
push edx
call fcn.0043257c
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x2c]
push eax
lea eax, [esp + 0x80]
push eax
push edi
push ecx
push 0x4530f8
push ebp
call fcn.00401a80
mov byte [esp + 0x320], 2
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x18
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40cd90
mov eax, dword [esp + 0x31c]
mov ecx, dword [eax - 0xc]
push ecx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov esi, esp
push eax
call fcn.00401db0
add eax, 0x10
add esp, 4
mov dword [esi], eax
push 0
mov byte [esp + 0x314], 5
mov eax, dword [esp + 0x40]
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x58], esp
mov esi, esp
push eax
call fcn.00401db0
add eax, 0x10
add esp, 4
mov dword [esi], eax
mov byte [esp + 0x31c], 6
mov eax, dword [esp + 0x40]
push edi
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov esi, esp
push eax
call fcn.00401db0
mov ecx, dword [esp + 0x338]
add esp, 4
add eax, 0x10
push ecx
lea edx, [esp + 0x58]
mov dword [esi], eax
push edx
mov byte [esp + 0x32c], 3
call fcn.0040b410
mov byte [esp + 0x32c], 7
mov eax, dword [esp + 0x340]
push 0x4511ab
push eax
call fcn.00432ae9
add esp, 0x2c
test eax, eax
setne al
test al, al
je 0x40c30d
mov eax, dword [esp + 0x31c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.004040d0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx - 8]
mov eax, 1
sub eax, dword [ecx - 4]
or edx, eax
jge 0x40c32f
push 0
lea ecx, [esp + 0x3c]
call fcn.00401fe0
mov ecx, dword [esp + 0x38]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c334
push 0
sub eax, esi
push eax
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_send]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x4511ab
lea ecx, [esp + 0x28]
mov dword [esp + 0x44], eax
call fcn.00401cb0
push 0
push 1
lea ecx, [esp + 0x104]
push ecx
push ebx
mov byte [esp + 0x318], 8
call dword [sym.imp.WS2_32.dll_recv]
mov edi, eax
test edi, edi
jle 0x40c47d
lea ebx, [edi + 1]
push ebx
call fcn.004141c0
push ebx
mov esi, eax
push 0
push esi
call fcn.00435560
push edi
lea edx, [esp + 0x110]
push edx
push esi
call fcn.00439410
add esp, 0x1c
push esi
lea ecx, [esp + 0x1c]
call fcn.00401cb0
mov byte [esp + 0x308], 9
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004040d0
mov byte [esp + 0x308], 8
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c3f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
call fcn.004141cb
add esp, 4
push 4
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00403d60
mov eax, dword [eax]
push str._r_n_r_n
push eax
call fcn.00432ae9
add esp, 8
test eax, eax
mov eax, dword [esp + 0x48]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c443
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x40c47d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x40]
cmp eax, 0xc350
ja 0x40cd0b
mov edx, dword [esp + 0x28]
push 0
push 1
lea ecx, [esp + 0x104]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
mov edi, eax
test edi, edi
jg 0x40c385
lea edi, [esp + 0x24]
call fcn.0040cfb0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
push eax
call fcn.00401db0
add eax, 0x10
add esp, 4
mov dword [esp + 0x20], eax
mov bl, 0xa
mov byte [esp + 0x308], bl
cmp dword [eax - 0xc], 0
jl 0x40c4c8
push str.HTTP_
push eax
call fcn.0043288e
add esp, 8
test eax, eax
je 0x40c4c8
sub eax, dword [esp + 0x20]
jns 0x40c552
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push 0x453150
push edx
call fcn.0040d040
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0xb
call fcn.00404260
mov byte [esp + 0x308], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c521
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x308], 8
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x40cd24
lea ecx, [esp + 0x20]
push ecx
call fcn.0040cf20
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jl 0x40c57e
push 0x452f24
push eax
call fcn.0043288e
add esp, 8
test eax, eax
je 0x40c57e
sub eax, dword [esp + 0x20]
jns 0x40c5d0
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
push 0x453150
push ecx
call fcn.0040d040
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0xc
call fcn.00404260
mov byte [esp + 0x308], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40c515
lea ecx, [esp + 0x20]
push ecx
call fcn.0040cf20
lea ebx, [esp + 0x20]
call fcn.00403f00
mov edi, eax
call fcn.00403f80
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jl 0x40c60c
push 0x452f24
push eax
call fcn.0043288e
add esp, 8
test eax, eax
je 0x40c60c
sub eax, dword [esp + 0x20]
jns 0x40c65f
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
push 0x453150
push ecx
call fcn.0040d040
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0xd
call fcn.00404260
mov byte [esp + 0x308], 0xa
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40c515
push eax
push 0
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00403cb0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x30c], 0xe
call fcn.00404260
mov byte [esp + 0x308], 0xa
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c6aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ebx, [esp + 0x20]
call fcn.00403f00
mov edi, eax
call fcn.00403f80
mov ecx, dword [esp + 0x20]
push 0x453160
push ecx
call fcn.00432ae9
add esp, 8
test eax, eax
setne al
test al, al
je 0x40c75c
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, ebx
push eax
lea ecx, [esp + 0x1c]
push 0x453164
push ecx
call fcn.0040d040
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0xf
call fcn.00404260
lea ecx, [esp + 0x18]
call fcn.0040ea80
lea ecx, [esp + 0x20]
call fcn.0040ea80
lea ecx, [esp + 0x24]
call fcn.0040ea80
lea ecx, [esp + 0x38]
call fcn.0040ea80
lea ecx, [esp + 0x34]
call fcn.0040ea80
lea ecx, [esp + 0x2c]
call fcn.0040ea80
lea ecx, [esp + 0x310]
call fcn.0040ea80
lea ecx, [esp + 0x31c]
call fcn.0040ea80
jmp 0x40ce1d
push 0x452f90
push ecx
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x44], esp
xor edi, edi
push edx
mov byte [esp + 0x3f], 0
mov dword [esp + 0x24], edi
mov esi, str.TRANSFER_ENCODING:
call fcn.00401e20
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.0040b0e0
mov eax, dword [eax]
push str.CHUNKED
push eax
call fcn.00432ae9
add esp, 0x14
cmp eax, edi
lea ecx, [esp + 0x40]
sete bl
call fcn.0040ea80
test bl, bl
je 0x40c7b7
mov byte [esp + 0x33], 1
jmp 0x40c7f6
push 0x452f90
push ecx
lea edx, [esp + 0x2c]
mov ecx, esp
mov dword [esp + 0x44], esp
push edx
mov esi, str.CONTENT_LENGTH:
call fcn.00401e20
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.0040b0e0
mov eax, dword [eax]
push eax
call fcn.004332c7
add esp, 0x10
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], eax
call fcn.0040ea80
push 0x4511ab
mov ecx, ebp
mov dword [esp + 0x4c], edi
call fcn.00402160
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x28]
push edi
push 0x1ff
lea ecx, [esp + 0x104]
push ecx
push edx
mov dword [esp + 0x50], eax
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp esi, edi
jle 0x40c95e
add dword [esp + 0x48], esi
lea ebx, [esi + 1]
push ebx
call fcn.004141c0
push ebx
mov edi, eax
push 0
push edi
call fcn.00435560
push esi
lea eax, [esp + 0x110]
push eax
push edi
call fcn.00439410
add esp, 0x1c
push edi
lea ecx, [esp + 0x48]
call fcn.00401cb0
mov byte [esp + 0x308], 0x10
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebp
call fcn.004040d0
mov byte [esp + 0x308], 0xa
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c8a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
call fcn.004141cb
add esp, 4
cmp byte [esp + 0x33], 1
jne 0x40c8e1
push 7
lea ecx, [esp + 0x40]
push ecx
mov ecx, ebp
call fcn.00403d60
mov eax, dword [eax]
or dword [esp + 0x1c], 1
push str._r_n0_r_n_r_n
push eax
call fcn.00432ae9
add esp, 8
test eax, eax
sete al
test al, al
jne 0x40c8ef
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c8f3
cmp dword [esp + 0x48], eax
jb 0x40c8f3
mov bl, 1
jmp 0x40c8f5
xor bl, bl
test byte [esp + 0x1c], 1
je 0x40c921
mov eax, dword [esp + 0x3c]
and dword [esp + 0x1c], 0xfffffffe
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c921
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
jne 0x40c95e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
cmp eax, 0x9c40
ja 0x40ccf3
push 0
push 0x1ff
lea ecx, [esp + 0x104]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
jg 0x40c833
mov ebx, dword [esp + 0x28]
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
push ebx
call edi
cmp byte [esp + 0x33], 1
jne 0x40cb8d
mov ecx, 0x452f90
mov esi, ebp
call fcn.00403c50
cmp eax, 0xffffffff
jne 0x40c9b6
push ebx
call edi
push ebp
lea eax, [esp + 0x40]
push str.http
push eax
call fcn.0040d040
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0x11
call fcn.004042e0
lea ecx, [esp + 0x3c]
jmp 0x40c70d
push ebp
lea ecx, [esp + 0x2c]
call fcn.00401e20
push 0x4511ab
mov ecx, ebp
mov byte [esp + 0x30c], 0x12
call fcn.00402160
lea esi, [esp + 0x1c]
lea edi, [esp + 0x28]
call fcn.0040d010
mov ecx, esi
push 0x4531d8
push ecx
mov byte [esp + 0x310], 0x13
call fcn.00403ed0
add esp, 8
test al, al
jne 0x40cb73
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
mov dword [esp + 0x20], eax
call fcn.00401db0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0040b2b0
mov esi, eax
add esp, 4
test esi, esi
je 0x40cb73
mov edi, dword [esp + 0x28]
cmp dword [edi - 0xc], 0
jge 0x40ca42
or eax, 0xffffffff
jmp 0x40ca5b
push 0x452f90
push edi
call fcn.0043288e
add esp, 8
test eax, eax
jne 0x40ca59
or eax, 0xffffffff
jmp 0x40ca5b
sub eax, edi
lea edx, [esp + 0x28]
add eax, 2
push edx
call fcn.0040cf20
push esi
push 0
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x34]
call fcn.00403cb0
mov ebx, eax
mov byte [esp + 0x308], 0x14
call fcn.00403f00
mov edi, eax
call fcn.00403f80
push eax
lea ecx, [esp + 0x40]
push ebp
push ecx
call fcn.00403de0
add esp, 0xc
push eax
mov ecx, ebp
mov byte [esp + 0x30c], 0x15
call fcn.00404260
mov byte [esp + 0x308], 0x14
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40cad6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov bl, 0x13
mov byte [esp + 0x308], bl
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40caff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x28]
lea eax, [esi + 2]
push ecx
call fcn.0040cf20
lea edx, [esp + 0x28]
push 0x4511ab
push edx
call fcn.00403ed0
add esp, 8
test al, al
jne 0x40cb73
mov byte [esp + 0x308], 0x12
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cb47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x1c]
lea edi, [esp + 0x28]
call fcn.0040d010
mov ecx, esi
push 0x4531d8
push ecx
mov byte [esp + 0x310], bl
call fcn.00403ed0
add esp, 8
test al, al
je 0x40ca01
lea ecx, [esp + 0x1c]
call fcn.0040ea80
lea ecx, [esp + 0x28]
mov byte [esp + 0x308], 0xa
call fcn.0040ea80
mov ecx, str.CHARSET
lea esi, [esp + 0x24]
call fcn.00403c50
test eax, eax
jl 0x40cca7
push eax
lea edx, [esp + 0x20]
push edx
mov ecx, esi
call fcn.00403c80
mov bl, 0x16
lea esi, [esp + 0x3c]
lea edi, [esp + 0x1c]
mov byte [esp + 0x308], bl
call fcn.0040d010
push eax
mov ecx, edi
mov byte [esp + 0x30c], 0x17
call fcn.00404260
mov ecx, esi
mov byte [esp + 0x308], bl
call fcn.0040ea80
mov ecx, 0x4531e4
mov esi, edi
call fcn.00403c50
inc eax
push eax
lea eax, [esp + 0x48]
push eax
mov ecx, edi
call fcn.00403c80
mov ebx, eax
mov byte [esp + 0x308], 0x18
call fcn.00403f00
mov edi, eax
call fcn.00403f80
push eax
mov ecx, esi
call fcn.00404260
lea ecx, [esp + 0x44]
mov byte [esp + 0x308], 0x16
call fcn.0040ea80
mov ecx, esi
push str.UTF_8
push ecx
call fcn.00403ed0
add esp, 8
test al, al
je 0x40cc9e
push 0x4511ab
lea ecx, [esp + 0x64]
call fcn.0040d120
mov byte [esp + 0x308], 0x19
mov edx, dword [ebp]
mov eax, dword [edx - 0xc]
push eax
push 0
mov ecx, ebp
call fcn.00402030
lea ecx, [esp + 0x64]
push ecx
mov ebx, eax
call fcn.0040a8c0
mov eax, dword [esp + 0x6c]
add esp, 8
cmp dword [esp + 0x78], 0x10
jae 0x40cc85
lea eax, [esp + 0x64]
push eax
mov ecx, ebp
call fcn.00402160
lea ecx, [esp + 0x60]
mov byte [esp + 0x308], 0x16
call fcn.0040d160
lea ecx, [esp + 0x1c]
call fcn.0040ea80
lea ecx, [esp + 0x20]
call fcn.0040ea80
lea ecx, [esp + 0x24]
call fcn.0040ea80
lea ecx, [esp + 0x38]
call fcn.0040ea80
lea ecx, [esp + 0x34]
call fcn.0040ea80
lea ecx, [esp + 0x2c]
call fcn.0040ea80
lea ecx, [esp + 0x310]
call fcn.0040ea80
lea ecx, [esp + 0x31c]
call fcn.0040ea80
mov al, 1
jmp 0x40ce1f
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x4531b0
mov ecx, ebp
call fcn.00402160
jmp 0x40c712
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
push 0x10
push 0x453134
mov ecx, ebp
call fcn.00402090
mov byte [esp + 0x308], 7
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x308], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x308], 2
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cd9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x308], 1
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cdc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x308], 0
mov eax, dword [esp + 0x310]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40cdef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x308], 0xffffffff
mov eax, dword [esp + 0x31c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ce1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0x300]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2e8]
xor ecx, esp
call fcn.00432019
add esp, 0x2f8
ret 0x10