Function at 0x100012f0
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Get socket status
Initialize winsock library
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100620cc
mov eax, dword fs:[0]
push eax
sub esp, 0x940
mov eax, dword [0x1007a010]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ebx, ecx
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
mov edi, edx
mov dword [ebp - 0x830], ebx
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x898], esi
cmp eax, ecx
je 0x10001374
mov edx, dword [ebp - 0x83c]
push edx
push ecx
call fcn.10004da0
mov ecx, dword [ebp - 0x83c]
mov edi, dword [ebx + 4]
push ecx
mov dword [ebp - 0x834], eax
call fcn.10004e90
mov edx, dword [ebp - 0x834]
mov edi, dword [ebp - 0x828]
add esp, 0xc
mov dword [ebx + 4], edx
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp eax, ecx
je 0x100013a0
mov edx, dword [ebp - 0x83c]
push edx
push ecx
call fcn.10004df0
mov edi, dword [esi + 4]
add esp, 8
mov ebx, eax
call fcn.10003930
mov edi, dword [ebp - 0x828]
mov dword [esi + 4], ebx
mov eax, dword [edi + 4]
sub eax, dword [edi]
test eax, 0xffffffe0
je 0x100019c9
lea ecx, [ebp - 0x824]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
xor ebx, ebx
cmp eax, ebx
je 0x10001432
push str.error:_CheckEmailServers::CheckAvailableServers__:_WSAStartup___fail
push 0x1007ca40
call fcn.100044c0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.10002b00
mov edx, dword [esi]
mov eax, dword [edx + 4]
add eax, esi
xor edi, edi
test byte [eax + 0xc], 6
jne 0x1000140a
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x1000140a
mov edi, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp edi, ebx
je 0x100019c9
mov eax, dword [ecx + 0xc]
or eax, edi
cmp dword [ecx + 0x38], ebx
jne 0x10001426
or eax, 4
push ebx
push eax
call fcn.10001120
jmp 0x100019c9
push 0x3c
mov dword [ebp - 0x844], ebx
call fcn.10046eee
add esp, 4
cmp eax, ebx
je 0x1000250a
mov dword [ebp - 0x848], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x848]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x848]
mov dword [eax + 8], eax
mov edx, dword [ebp - 0x848]
mov byte [edx + 0x38], 1
mov eax, dword [ebp - 0x848]
mov byte [eax + 0x39], 1
mov dword [ebp - 4], ebx
mov ecx, dword [edi + 4]
mov dword [ebp - 0x834], ebx
mov ebx, dword [edi]
sub ecx, ebx
sar ecx, 5
test ecx, ecx
je 0x10001706
mov dword [ebp - 0x82c], 0
lea ecx, [ecx]
add ebx, dword [ebp - 0x82c]
push 1
push 0x1006b1c8
push ebx
call fcn.10003180
cmp eax, 0xffffffff
je 0x100016da
mov ecx, dword [ebx + 0x10]
dec ecx
cmp eax, ecx
je 0x100016da
inc eax
push eax
lea esi, [ebp - 0x2b0]
mov ecx, ebx
call fcn.10002ab0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x2a0], 0
jne 0x10001501
mov byte [ebp - 4], 0
cmp dword [ebp - 0x29c], 0x10
jb 0x100016bf
mov eax, dword [ebp - 0x2b0]
push eax
jmp 0x100016b7
lea ecx, [ebp - 0x838]
push ecx
lea edi, [ebp - 0x2b0]
lea eax, [ebp - 0x84c]
call fcn.10002f70
mov edi, dword [ebp - 0x838]
cmp edi, dword [ebp - 0x848]
je 0x10001580
lea eax, [ebx + 0x1c]
push eax
push ebx
lea esi, [ebp - 0x350]
call fcn.10004770
add esp, 8
add edi, 0x28
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.10002dd0
cmp dword [ebp - 0x33c], 0x10
jb 0x10001560
mov edx, dword [ebp - 0x350]
push edx
call fcn.10046e92
add esp, 4
mov dword [ebp - 0x33c], 0xf
mov dword [ebp - 0x340], 0
mov byte [ebp - 0x350], 0
jmp 0x100016a3
xor eax, eax
mov dword [ebp - 0x8b4], eax
mov dword [ebp - 0x8b0], eax
mov dword [ebp - 0x8ac], eax
lea eax, [ebx + 0x1c]
push eax
push ebx
lea esi, [ebp - 0x300]
mov byte [ebp - 4], 3
call fcn.10004770
add esp, 8
mov ecx, eax
lea edi, [ebp - 0x8b4]
mov byte [ebp - 4], 4
call fcn.10002dd0
mov byte [ebp - 4], 3
cmp dword [ebp - 0x2ec], 0x10
jb 0x100015d8
mov eax, dword [ebp - 0x300]
push eax
call fcn.10046e92
add esp, 4
lea ecx, [ebp - 0x8b4]
push ecx
lea edx, [ebp - 0x2b0]
push edx
lea eax, [ebp - 0x37c]
mov ebx, 0xf
xor edi, edi
push eax
mov dword [ebp - 0x2ec], ebx
mov dword [ebp - 0x2f0], edi
mov byte [ebp - 0x300], 0
call fcn.100047b0
add esp, 0xc
push eax
lea ecx, [ebp - 0x84c]
mov byte [ebp - 4], 5
call fcn.10004c90
push eax
lea ecx, [ebp - 0x8cc]
push ecx
lea edx, [ebp - 0x84c]
push edx
call fcn.10004870
lea esi, [ebp - 0x37c]
call fcn.100025d0
mov dword [ebp - 0x318], ebx
mov dword [ebp - 0x31c], edi
mov byte [ebp - 0x32c], 0
mov dword [ebp - 0x310], edi
mov dword [ebp - 0x30c], edi
mov dword [ebp - 0x308], edi
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 6
call fcn.100034c0
mov edi, dword [ebp - 0x830]
lea ecx, [ebp - 0x330]
call fcn.10002cd0
lea esi, [ebp - 0x330]
call fcn.10002620
lea esi, [ebp - 0x8b4]
call fcn.10003350
mov byte [ebp - 4], 0
cmp dword [ebp - 0x29c], 0x10
jb 0x100016bf
mov ecx, dword [ebp - 0x2b0]
push ecx
call fcn.10046e92
add esp, 4
mov byte [ebp - 0x2b0], 0
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 0xf
mov ecx, dword [ebp - 0x828]
mov ebx, dword [ecx]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x834]
add dword [ebp - 0x82c], 0x20
sub edx, ebx
inc eax
sar edx, 5
mov dword [ebp - 0x834], eax
cmp eax, edx
jb 0x100014a0
mov edi, dword [ebp - 0x830]
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
xor eax, eax
mov dword [ebp - 0x88c], eax
mov dword [ebp - 0x82c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100017f8
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [ebp - 0x82c]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
sub esi, eax
cmp esi, 0x20
jbe 0x1000175e
mov esi, 0x20
xor ebx, ebx
test esi, esi
je 0x100017ba
lea eax, [eax + eax*2]
shl eax, 4
mov dword [ebp - 0x828], eax
mov eax, dword [edi]
add eax, dword [ebp - 0x828]
push 0
push 0
push eax
push 0x10002660
lea edx, [ebp - 0x88c]
push 0
push 0
mov dword [eax], edx
call fcn.10046df2
add esp, 0x18
test eax, eax
je 0x10001998
cmp eax, 0xffffffff
je 0x10001998
add dword [ebp - 0x828], 0x30
mov dword [ebp + ebx*4 - 0x94c], eax
inc ebx
cmp ebx, esi
jb 0x10001770
push 0xffffffffffffffff
push 1
lea eax, [ebp - 0x94c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
mov ebx, dword [ebp - 0x82c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ebx, esi
add ecx, edx
mov dword [ebp - 0x82c], ebx
cmp ebx, ecx
jb 0x10001736
push str.success:_CheckEmailServers::CheckAvailableServers__:_resolve_mx_address_complete
push 0x1007ca40
call fcn.100044c0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.10002b00
mov eax, dword [esi]
mov eax, dword [eax + 4]
xor edx, edx
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x1000183e
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
xor edx, edx
cmp eax, 0xffffffff
jne 0x1000183e
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
cmp ebx, edx
je 0x1000185f
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], edx
jne 0x10001856
or eax, 4
push edx
push eax
call fcn.10001120
xor edx, edx
mov dword [ebp - 0x85c], edx
mov dword [ebp - 0x858], edx
mov dword [ebp - 0x854], edx
mov dword [ebp - 0x888], edx
mov dword [ebp - 0x884], edx
mov dword [ebp - 0x880], edx
mov byte [ebp - 4], 9
mov ecx, dword [edi + 4]
sub ecx, dword [edi]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
xor ebx, ebx
add eax, edx
je 0x10001914
mov dword [ebp - 0x828], ebx
jmp 0x100018b0
mov ecx, dword [ebp - 0x830]
mov ecx, dword [ecx]
add ecx, dword [ebp - 0x828]
xor edx, edx
mov esi, dword [ecx + 0x20]
mov eax, dword [ecx + 0x24]
sub eax, esi
sar eax, 2
test eax, eax
je 0x100018e1
nop
cmp dword [esi], 0
jne 0x100019e9
inc edx
add esi, 4
cmp edx, eax
jb 0x100018d0
lea edi, [ebp - 0x888]
call fcn.10002cd0
mov eax, dword [ebp - 0x830]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
add dword [ebp - 0x828], 0x30
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
inc ebx
add ecx, edx
cmp ebx, ecx
jb 0x100018b0
push 0x280
xor esi, esi
lea edx, [ebp - 0x294]
push esi
push edx
call fcn.1004acc0
add esp, 0xc
mov dword [ebp - 0x830], esi
mov dword [ebp - 0x86c], esi
mov dword [ebp - 0x868], esi
mov dword [ebp - 0x864], esi
mov byte [ebp - 4], 0xb
jmp 0x10001950
mov ebx, dword [ebp - 0x85c]
xor eax, eax
mov dword [ebp - 0x828], eax
mov dword [ebp - 0x82c], eax
mov eax, dword [ebp - 0x830]
lea eax, [eax + eax*2]
add eax, eax
lea edi, [ebp - 0x294]
lea esi, [ebx + eax*8 + 0x20]
lea esp, [esp]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x10001a77
test eax, eax
jne 0x10001b74
jmp 0x10001a7d
mov dword [ebp - 4], 7
mov eax, dword [ebp - 0x848]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x834]
lea esi, [ebp - 0x84c]
call fcn.10003970
mov edx, dword [ebp - 0x848]
push edx
call fcn.10046e92
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1004677e
mov esp, ebp
pop ebp
ret 4
lea edi, [ebp - 0x85c]
call fcn.10002cd0
mov ecx, dword [ebp - 0x858]
sub ecx, dword [ebp - 0x85c]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
lea esi, [edx + ecx - 1]
lea esi, [esi + esi*2]
shl esi, 4
add esi, dword [ebp - 0x85c]
xor eax, eax
mov edx, dword [esi + 0x24]
sub edx, dword [esi + 0x20]
sar edx, 2
test edx, edx
je 0x100018ec
mov edx, dword [esi + 0x20]
mov ecx, edx
cmp dword [ecx], 0
je 0x10001a51
mov edi, dword [esi + 0x24]
sub edi, edx
inc eax
sar edi, 2
add ecx, 4
cmp eax, edi
jb 0x10001a37
jmp 0x100018ec
lea ecx, [edx + eax*4]
mov eax, dword [esi + 0x24]
lea edx, [ecx + 4]
sub eax, edx
sar eax, 2
add eax, eax
add eax, eax
push eax
push edx
push ecx
call fcn.10046910
add esp, 0xc
add dword [esi + 0x24], 0xfffffffc
jmp 0x100018ec
mov dword [edi], 0
mov ecx, dword [ebp - 0x858]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [ebp - 0x830], ecx
jb 0x10001aa9
inc dword [ebp - 0x828]
jmp 0x10001b74
mov edx, dword [esi + 4]
sub edx, dword [esi]
test edx, 0xfffffffc
je 0x10001b6b
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebx, eax
lea eax, [ebp - 0x894]
push eax
push 0x8004667e
push ebx
mov dword [edi], ebx
mov dword [ebp - 0x894], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
jne 0x1000212d
mov edx, dword [esi]
mov ecx, dword [ebp - 0x830]
mov dword [edi + 0xc], eax
mov eax, dword [edx]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 4]
lea edx, [ecx + 4]
sub eax, edx
sar eax, 2
add eax, eax
add eax, eax
push eax
push edx
push ecx
call fcn.10046910
add dword [esi + 4], 0xfffffffc
movzx edx, word [0x1007b6b0]
add esp, 0xc
mov ecx, 2
push edx
mov word [ebp - 0x2e0], cx
call dword [sym.imp.WS2_32.dll_htons]
push 0x10
lea ecx, [ebp - 0x2e0]
mov word [ebp - 0x2de], ax
mov eax, dword [edi + 8]
push ecx
push ebx
mov dword [ebp - 0x2dc], eax
call dword [sym.imp.WS2_32.dll_connect]
mov ebx, dword [ebp - 0x85c]
inc dword [ebp - 0x830]
add esi, 0x30
mov eax, dword [ebp - 0x82c]
inc eax
add edi, 0x14
mov dword [ebp - 0x82c], eax
cmp eax, 0x20
jb 0x10001980
cmp dword [ebp - 0x828], 0x20
jae 0x10002202
mov dword [ebp - 0x834], 0
lea edi, [ebp - 0x294]
lea ebx, [ebx]
mov esi, dword [edi]
test esi, esi
je 0x10002107
xor ebx, ebx
push 0x100
lea edx, [ebp - 0x480]
push ebx
mov dword [ebp - 0x8a0], ebx
push edx
mov dword [ebp - 0x8a4], ebx
mov dword [ebp - 0x8a0], 0xc8
mov dword [ebp - 0x484], ebx
call fcn.1004acc0
mov ecx, dword [ebp - 0x484]
add esp, 0xc
xor eax, eax
cmp ecx, ebx
jbe 0x10001c0e
lea esp, [esp]
cmp dword [ebp + eax*4 - 0x480], esi
je 0x10001c0e
inc eax
cmp eax, ecx
jb 0x10001c00
cmp eax, ecx
jne 0x10001c24
cmp ecx, 0x40
jae 0x10001c24
mov dword [ebp + eax*4 - 0x480], esi
inc dword [ebp - 0x484]
push 0x100
lea eax, [ebp - 0x690]
push ebx
push eax
mov dword [ebp - 0x694], ebx
call fcn.1004acc0
mov ecx, dword [ebp - 0x694]
add esp, 0xc
xor eax, eax
cmp ecx, ebx
jbe 0x10001c5e
jmp 0x10001c50
cmp dword [ebp + eax*4 - 0x690], esi
je 0x10001c5e
inc eax
cmp eax, ecx
jb 0x10001c50
cmp eax, ecx
jne 0x10001c74
cmp ecx, 0x40
jae 0x10001c74
mov dword [ebp + eax*4 - 0x690], esi
inc dword [ebp - 0x694]
push 0x100
lea ecx, [ebp - 0x588]
push ebx
push ecx
mov dword [ebp - 0x58c], ebx
call fcn.1004acc0
mov ecx, dword [ebp - 0x58c]
add esp, 0xc
xor eax, eax
cmp ecx, ebx
jbe 0x10001cae
jmp 0x10001ca0
cmp dword [ebp + eax*4 - 0x588], esi
je 0x10001cae
inc eax
cmp eax, ecx
jb 0x10001ca0
cmp eax, ecx
jne 0x10001cc4
cmp ecx, 0x40
jae 0x10001cc4
mov dword [ebp + eax*4 - 0x588], esi
inc dword [ebp - 0x58c]
lea edx, [ebp - 0x8a4]
push edx
lea eax, [ebp - 0x58c]
push eax
lea ecx, [ebp - 0x484]
push ecx
lea edx, [ebp - 0x694]
push edx
push ebx
call dword [sym.imp.WS2_32.dll_select]
mov dword [ebp - 0x838], eax
cmp eax, ebx
je 0x10001ff9
cmp eax, 0xffffffff
je 0x10001f96
cmp dword [ebp - 0x484], 1
jne 0x10001e86
cmp dword [ebp - 0x480], esi
jne 0x10001e86
mov ecx, dword [ebp - 0x858]
sub ecx, dword [ebp - 0x85c]
mov esi, dword [edi + 4]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ebx, [edi + 4]
add eax, edx
mov dword [ebp - 0x838], esi
cmp esi, eax
jae 0x10002456
mov esi, dword [ebp - 0x868]
mov edx, dword [ebp - 0x86c]
cmp ebx, esi
jae 0x10001dc5
cmp edx, ebx
ja 0x10001dc5
mov ecx, dword [ebp - 0x864]
sub ebx, edx
sar ebx, 2
cmp esi, ecx
jne 0x10001dba
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10002500
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10001dba
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x10001d9a
xor ecx, ecx
jmp 0x10001d9c
add ecx, edx
cmp ecx, eax
jae 0x10001da2
mov ecx, eax
push ecx
lea esi, [ebp - 0x86c]
call fcn.10010860
mov esi, dword [ebp - 0x868]
mov edx, dword [ebp - 0x86c]
test esi, esi
je 0x10001e20
mov ecx, dword [edx + ebx*4]
mov dword [esi], ecx
jmp 0x10001e20
mov ecx, dword [ebp - 0x864]
cmp esi, ecx
jne 0x10001e18
mov eax, esi
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10002500
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10001e18
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x10001dfe
xor ecx, ecx
jmp 0x10001e00
add ecx, edx
cmp ecx, eax
jae 0x10001e06
mov ecx, eax
push ecx
lea esi, [ebp - 0x86c]
call fcn.10010860
mov esi, dword [ebp - 0x868]
test esi, esi
je 0x10001e20
mov edx, dword [ebx]
mov dword [esi], edx
mov eax, dword [ebp - 0x838]
mov ecx, dword [ebp - 0x85c]
add esi, 4
lea eax, [eax + eax*2]
add eax, eax
mov ebx, dword [ecx + eax*8 + 0x20]
mov dword [ebp - 0x868], esi
lea esi, [ecx + eax*8 + 0x20]
mov ecx, dword [esi + 4]
cmp ebx, ecx
je 0x10001e6e
mov eax, ecx
sub eax, ecx
sar eax, 2
add eax, eax
add eax, eax
push eax
push ecx
push ebx
mov dword [ebp - 0x838], eax
call fcn.10046910
add esp, 0xc
add ebx, dword [ebp - 0x838]
mov dword [esi + 4], ebx
mov esi, dword [edi]
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0
cmp dword [ebp - 0x58c], 1
jne 0x10002107
mov esi, dword [edi]
cmp dword [ebp - 0x588], esi
jne 0x10002107
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
cmp eax, 0x5dc
jbe 0x10002107
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [edi + 0xc]
xor ebx, ebx
inc eax
mov dword [edi], ebx
cmp eax, 3
jb 0x10001f2e
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x85c]
lea eax, [eax + eax*2]
add eax, eax
mov edx, dword [ecx + eax*8 + 0x24]
sub edx, dword [ecx + eax*8 + 0x20]
lea esi, [ecx + eax*8 + 0x20]
mov dword [edi + 0xc], ebx
test edx, 0xfffffffc
jne 0x10001f07
mov dword [edi], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 4], ebx
jmp 0x10002107
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [esi + 4]
mov dword [edi + 8], ecx
lea ecx, [eax + 4]
sub edx, ecx
sar edx, 2
add edx, edx
add edx, edx
push edx
push ecx
push eax
call fcn.10046910
add esp, 0xc
add dword [esi + 4], 0xfffffffc
jmp 0x10001f31
mov dword [edi + 0xc], eax
push ebx
push 1
push 2
mov dword [ebp - 0x89c], 1
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
lea eax, [ebp - 0x89c]
push eax
push 0x8004667e
push esi
mov dword [edi], esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov edx, dword [edi + 0xc]
movzx eax, word [edx*2 + 0x1007b6b0]
mov ecx, 2
push eax
mov word [ebp - 0x2d0], cx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [edi + 8]
mov word [ebp - 0x2ce], ax
mov dword [ebp - 0x2cc], ecx
lea edx, [ebp - 0x2d0]
jmp 0x100020f4
push str.socket_error
push 0x1007ca40
call fcn.100044c0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.10002b00
mov eax, dword [esi]
mov eax, dword [eax + 4]
xor ebx, ebx
test byte [eax + esi + 0xc], 6
jne 0x10001fd8
mov eax, dword [eax + esi + 0x38]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x10001fd8
mov ebx, 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
add ecx, esi
test ebx, ebx
je 0x10001ff9
mov eax, dword [ecx + 0xc]
or eax, ebx
cmp dword [ecx + 0x38], 0
jne 0x10001ff1
or eax, 4
push 0
push eax
call fcn.10001120
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x10]
cmp eax, 0x5dc
ja 0x10002016
cmp dword [ebp - 0x838], 0xffffffff
jne 0x10002107
mov esi, dword [edi]
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [edi + 0xc]
xor ebx, ebx
inc eax
mov dword [edi], ebx
cmp eax, 3
jb 0x10002091
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0x85c]
add edx, edx
mov ecx, dword [eax + edx*8 + 0x24]
sub ecx, dword [eax + edx*8 + 0x20]
lea esi, [eax + edx*8 + 0x20]
mov dword [edi + 0xc], ebx
test ecx, 0xfffffffc
jne 0x1000206a
mov dword [edi], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 4], ebx
jmp 0x10002107
mov eax, dword [esi]
mov edx, dword [eax]
mov dword [edi + 8], edx
mov edx, dword [esi + 4]
lea ecx, [eax + 4]
sub edx, ecx
sar edx, 2
add edx, edx
add edx, edx
push edx
push ecx
push eax
call fcn.10046910
add esp, 0xc
add dword [esi + 4], 0xfffffffc
jmp 0x10002094
mov dword [edi + 0xc], eax
push ebx
push 1
push 2
mov dword [ebp - 0x870], 1
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
lea eax, [ebp - 0x870]
push eax
push 0x8004667e
push esi
mov dword [edi], esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov edx, dword [edi + 0xc]
movzx eax, word [edx*2 + 0x1007b6b0]
mov ecx, 2
push eax
mov word [ebp - 0x2c0], cx
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [edi + 8]
mov word [ebp - 0x2be], ax
mov dword [ebp - 0x2bc], ecx
lea edx, [ebp - 0x2c0]
push 0x10
push edx
push esi
call dword [sym.imp.WS2_32.dll_connect]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x834]
inc eax
add edi, 0x14
mov dword [ebp - 0x834], eax
cmp eax, 0x20
jb 0x10001bb0
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10001950
cmp ebx, 0xffffffff
jne 0x10002146
mov eax, dword [ebp - 0x82c]
lea eax, [eax + eax*4]
mov dword [ebp + eax*4 - 0x294], 0
lea edi, [ebp - 0x294]
mov ebx, 0x20
mov esi, dword [edi]
test esi, esi
je 0x10002167
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
add edi, 0x14
dec ebx
jne 0x10002151
mov eax, dword [ebp - 0x86c]
test eax, eax
je 0x10002180
push eax
call fcn.10046e92
add esp, 4
mov esi, dword [ebp - 0x888]
test esi, esi
je 0x100021aa
mov ecx, dword [ebp - 0x83c]
mov edi, dword [ebp - 0x884]
push ecx
mov eax, esi
call fcn.10004e90
add esp, 4
push esi
call fcn.10046e92
add esp, 4
mov esi, dword [ebp - 0x85c]
test esi, esi
je 0x100021d4
mov edx, dword [ebp - 0x83c]
mov edi, dword [ebp - 0x858]
push edx
mov eax, esi
call fcn.10004e90
add esp, 4
push esi
call fcn.10046e92
add esp, 4
mov dword [ebp - 4], 0xc
mov eax, dword [ebp - 0x848]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x874]
lea esi, [ebp - 0x84c]
call fcn.10003970
mov eax, dword [ebp - 0x848]
push eax
jmp 0x100019c1
mov eax, dword [ebp - 0x868]
sub eax, dword [ebp - 0x86c]
mov dword [ebp - 0x82c], 0
sar eax, 2
mov dword [ebp - 0x870], eax
test eax, eax
je 0x100023b8
lea esp, [esp]
mov ecx, dword [ebp - 0x86c]
mov edx, dword [ebp - 0x82c]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x85c]
lea eax, [eax + eax*2]
add eax, eax
lea esi, [ecx + eax*8 + 4]
push esi
lea eax, [ebp - 0x84c]
call fcn.10003a30
mov dword [ebp - 0x828], eax
cmp eax, dword [ebp - 0x848]
je 0x10002331
mov edi, dword [eax + 0x1c]
add eax, 0xc
mov ecx, 0x10
mov dword [ebp - 0x834], edi
cmp dword [eax + 0x14], ecx
jb 0x10002284
mov eax, dword [eax]
mov ebx, dword [esi + 0x10]
mov edx, ebx
cmp edx, ebx
jae 0x1000228d
mov edx, ebx
cmp ebx, edi
jb 0x10002295
mov edx, edi
cmp dword [esi + 0x14], ecx
jb 0x1000229c
mov esi, dword [esi]
mov ecx, eax
cmp edx, 4
jb 0x100022b7
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x100022bb
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x100022a3
test edx, edx
je 0x1000230a
movzx eax, byte [esi]
movzx edi, byte [ecx]
sub eax, edi
jne 0x100022f6
cmp edx, 1
jbe 0x10002304
movzx eax, byte [esi + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x100022f6
cmp edx, 2
jbe 0x10002304
movzx eax, byte [esi + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x100022f6
cmp edx, 3
jbe 0x10002304
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov edi, dword [ebp - 0x834]
sar eax, 0x1f
or eax, 1
jmp 0x1000230c
mov edi, dword [ebp - 0x834]
xor eax, eax
test eax, eax
jne 0x10002322
cmp ebx, edi
jae 0x10002319
or eax, 0xffffffff
jmp 0x10002320
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sets al
test al, al
jne 0x10002331
lea eax, [ebp - 0x828]
jmp 0x10002343
mov edx, dword [ebp - 0x848]
mov dword [ebp - 0x890], edx
lea eax, [ebp - 0x890]
mov esi, dword [eax]
cmp esi, dword [ebp - 0x848]
je 0x10002399
mov eax, dword [esi + 0x2c]
sub eax, dword [esi + 0x28]
xor ebx, ebx
sar eax, 5
test eax, eax
je 0x10002399
mov dword [ebp - 0x828], ebx
jmp 0x10002370
mov ecx, dword [esi + 0x28]
add ecx, dword [ebp - 0x828]
mov edi, dword [ebp - 0x898]
call fcn.10002ea0
mov ecx, dword [esi + 0x2c]
sub ecx, dword [esi + 0x28]
add dword [ebp - 0x828], 0x20
inc ebx
sar ecx, 5
cmp ebx, ecx
jb 0x10002370
mov eax, dword [ebp - 0x82c]
inc eax
mov dword [ebp - 0x82c], eax
cmp eax, dword [ebp - 0x870]
jb 0x10002230
mov ebx, dword [ebp - 0x85c]
cmp dword [ebp - 0x86c], 0
je 0x100023d0
mov edx, dword [ebp - 0x86c]
push edx
call fcn.10046e92
add esp, 4
mov esi, dword [ebp - 0x888]
test esi, esi
je 0x100023fa
mov eax, dword [ebp - 0x874]
mov edi, dword [ebp - 0x884]
push eax
mov eax, esi
call fcn.10004e90
add esp, 4
push esi
call fcn.10046e92
add esp, 4
test ebx, ebx
je 0x1000241e
mov ecx, dword [ebp - 0x874]
mov edi, dword [ebp - 0x858]
push ecx
mov eax, ebx
call fcn.10004e90
add esp, 4
push ebx
call fcn.10046e92
add esp, 4
mov dword [ebp - 4], 0xe
mov ecx, dword [ebp - 0x848]
mov eax, dword [ecx]
push ecx
push eax
lea edi, [ebp - 0x878]
lea esi, [ebp - 0x84c]
call fcn.10003970
mov edx, dword [ebp - 0x848]
push edx
call fcn.10046e92
add esp, 4
mov al, 1
jmp 0x100019cb
lea edi, [ebp - 0x294]
mov ebx, 0x20
mov esi, dword [edi]
test esi, esi
je 0x10002477
push 2
push esi
call dword [sym.imp.WS2_32.dll_shutdown]
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
add edi, 0x14
dec ebx
jne 0x10002461
mov eax, dword [ebp - 0x86c]
test eax, eax
je 0x10002490
push eax
call fcn.10046e92
add esp, 4
mov esi, dword [ebp - 0x888]
test esi, esi
je 0x100024ba
mov eax, dword [ebp - 0x878]
mov edi, dword [ebp - 0x884]
push eax
mov eax, esi
call fcn.10004e90
add esp, 4
push esi
call fcn.10046e92
add esp, 4
mov esi, dword [ebp - 0x85c]
test esi, esi
je 0x100024e4
mov ecx, dword [ebp - 0x878]
mov edi, dword [ebp - 0x858]
push ecx
mov eax, esi
call fcn.10004e90
add esp, 4
push esi
call fcn.10046e92
add esp, 4
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x848]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x8b8]
jmp 0x100019af
push str.vector_T__too_long
call fcn.1003217e
lea eax, [ebp - 0x83c]
push eax
lea ecx, [ebp - 0x8c4]
mov dword [ebp - 0x83c], ebx
call fcn.10046815
push 0x10073888
lea ecx, [ebp - 0x8c4]
push ecx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.1004a731
int3