Function at 0x7181c0
Capabilities:
Send data
Send data on socket

Disassembly:
sub esp, 0x82c
mov eax, dword [esp + 0x830]
mov ecx, dword [eax + 0x84]
push ebx
push ebp
push esi
push edi
xor ebp, ebp
cmp dword [0x9aa908], ebp
mov edi, 5
mov byte [esp + 0x38], 3
mov dword [esp + 0x39], ecx
mov dword [esp + 0x838], edi
jle 0x7182ea
mov ebx, 0x9aa7f0
nop
push ebp
lea edx, [esp + 0x28]
push str.localip_d
push edx
call fcn.007210ab
lea eax, [esp + 0x30]
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x718220
sub eax, edx
mov edx, dword [esp + 0x838]
mov ecx, 0x800
add eax, 1
sub ecx, edx
cmp eax, ecx
jle 0x718242
mov eax, ecx
test eax, eax
je 0x718273
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x838]
add ecx, eax
mov dword [esp + 0x838], ecx
mov byte [esp + ecx + 0x37], 0
mov eax, dword [ebx]
push eax
call sub.WS2_32.dll_inet_ntoa
mov ecx, eax
lea edi, [ecx + 1]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x718280
sub ecx, edi
mov edi, dword [esp + 0x838]
lea edx, [ecx + 1]
mov ecx, 0x800
sub ecx, edi
cmp edx, ecx
jle 0x7182a2
mov edx, ecx
test edx, edx
je 0x7182d8
mov esi, eax
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea edi, [esp + edi + 0x38]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov edi, dword [esp + 0x838]
add ebp, 1
add ebx, 4
cmp ebp, dword [0x9aa908]
jl 0x718200
mov ecx, 0x800
mov eax, 0xa
sub ecx, edi
cmp ecx, eax
jge 0x718300
mov eax, ecx
test eax, eax
je 0x71832e
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea edi, [esp + edi + 0x38]
mov esi, str.localport
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x838]
add ecx, eax
mov dword [esp + 0x838], ecx
mov byte [esp + ecx + 0x37], 0
mov eax, dword [esp + 0x840]
mov ecx, dword [eax + 0xc0]
push ecx
lea edx, [esp + 0x14]
push 0x803bec
push edx
call fcn.007210ab
lea eax, [esp + 0x1c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x718355
sub eax, edx
lea edx, [eax + 1]
mov eax, dword [esp + 0x838]
mov ecx, 0x800
sub ecx, eax
cmp edx, ecx
jle 0x718377
mov edx, ecx
test edx, edx
je 0x7183af
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
mov ecx, 0x800
mov edx, 7
sub ecx, eax
cmp ecx, edx
jge 0x7183c5
mov edx, ecx
test edx, edx
je 0x7183fa
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov esi, str.natneg
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
mov ecx, dword [esp + 0x840]
cmp dword [ecx + 0xc8], 0
mov esi, 0x803c28
jne 0x718414
mov esi, 0x803c24
mov ecx, esi
lea edi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x718420
sub ecx, edi
lea edx, [ecx + 1]
mov ecx, 0x800
sub ecx, eax
cmp edx, ecx
jle 0x71843b
mov edx, ecx
test edx, edx
je 0x71846f
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
mov ebp, dword [esp + 0x844]
test ebp, ebp
je 0x71853a
mov ecx, 0x800
mov edx, 0xd
sub ecx, eax
cmp ecx, edx
jge 0x718494
mov edx, ecx
test edx, edx
je 0x7184c2
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov esi, str.statechanged
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
push ebp
lea ecx, [esp + 0x14]
push 0x803bec
push ecx
call fcn.007210ab
lea eax, [esp + 0x1c]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x7184e0
sub eax, edx
lea edx, [eax + 1]
mov eax, dword [esp + 0x838]
mov ecx, 0x800
sub ecx, eax
cmp edx, ecx
jle 0x718502
mov edx, ecx
test edx, edx
je 0x71853a
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
mov ecx, 0x800
mov edx, 9
sub ecx, eax
cmp ecx, edx
jge 0x718550
mov edx, ecx
test edx, edx
je 0x718585
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov esi, str.gamename
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
mov ebx, dword [esp + 0x840]
lea esi, [ebx + 4]
mov ecx, esi
lea edi, [ecx + 1]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x718594
sub ecx, edi
lea edx, [ecx + 1]
mov ecx, 0x800
sub ecx, eax
cmp edx, ecx
jle 0x7185af
mov edx, ecx
test edx, edx
je 0x7185e3
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
cmp dword [ebx + 0xa8], 0
je 0x71876d
mov ecx, 0x800
mov edx, 9
sub ecx, eax
cmp ecx, edx
jge 0x718606
mov edx, ecx
test edx, edx
je 0x718634
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov esi, str.publicip
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov ecx, dword [ebx + 0x10c]
push ecx
lea edx, [esp + 0x14]
push 0x803bec
push edx
call fcn.007210ab
lea eax, [esp + 0x1c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x718654
sub eax, edx
mov edx, dword [esp + 0x838]
mov ecx, 0x800
add eax, 1
sub ecx, edx
cmp eax, ecx
jle 0x718676
mov eax, ecx
test eax, eax
je 0x7186ae
lea edi, [esp + edx + 0x38]
mov ecx, eax
mov edx, ecx
shr ecx, 2
lea esi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x838]
add ecx, eax
mov dword [esp + 0x838], ecx
mov byte [esp + ecx + 0x37], 0
mov edx, dword [esp + 0x838]
mov ecx, 0x800
mov eax, 0xb
sub ecx, edx
cmp ecx, eax
jge 0x7186c4
mov eax, ecx
test eax, eax
je 0x7186f2
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
shr ecx, 2
mov esi, str.publicport
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x838]
add ecx, eax
mov dword [esp + 0x838], ecx
mov byte [esp + ecx + 0x37], 0
movzx eax, word [ebx + 0x110]
push eax
lea ecx, [esp + 0x14]
push 0x803bec
push ecx
call fcn.007210ab
lea eax, [esp + 0x1c]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x718713
sub eax, edx
lea edx, [eax + 1]
mov eax, dword [esp + 0x838]
mov ecx, 0x800
sub ecx, eax
cmp edx, ecx
jle 0x718735
mov edx, ecx
test edx, edx
je 0x71876d
lea edi, [esp + eax + 0x38]
mov ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x838]
add eax, edx
mov dword [esp + 0x838], eax
mov byte [esp + eax + 0x37], 0
mov eax, dword [esp + 0x838]
cmp ebp, 2
je 0x7187b7
push 0
push 0xff
lea ecx, [esp + 0x40]
push 0
push ecx
call fcn.007171e0
push 0
push 0xff
lea edx, [esp + 0x50]
push 1
push edx
call fcn.007171e0
push 0
push 0xff
lea eax, [esp + 0x60]
push 2
push eax
call fcn.007171e0
mov eax, dword [esp + 0x868]
add esp, 0x30
jmp 0x7187d9
mov ecx, 0x800
sub ecx, eax
cmp ecx, 1
jl 0x7187d9
mov byte [esp + eax + 0x38], 0
mov eax, dword [esp + 0x838]
add eax, 1
mov dword [esp + 0x838], eax
mov ecx, dword [ebx]
push 0x10
lea edx, [ebx + 0xcc]
push edx
push 0
push eax
lea eax, [esp + 0x48]
push eax
push ecx
call sub.WS2_32.dll_sendto
call sub.KERNEL32.dll_GetTickCount
test ebp, ebp
mov dword [ebx + 0xac], eax
mov dword [ebx + 0xb0], eax
je 0x718811
mov dword [ebx + 0xb4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x82c
ret