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

Disassembly:
sub esp, 0x82c
mov eax, dword [esp + 0x830]
push ebx
push ebp
mov edx, 5
mov ecx, dword [eax + 0x84]
mov eax, dword [0xb1f6c0]
xor ebp, ebp
push esi
test eax, eax
push edi
mov byte [esp + 0x38], 3
mov dword [esp + 0x39], ecx
mov dword [esp + 0x838], edx
jle 0x545dbc
mov ebx, 0xb1f668
push ebp
lea edx, [esp + 0x28]
push str.localip_d
push edx
call fcn.0057492c
lea edi, [esp + 0x30]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x838]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545d18
mov eax, ecx
test eax, eax
je 0x545d49
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
lea esi, [esp + 0x24]
shr ecx, 2
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 dword [sym.imp.WS2_32.dll_inet_ntoa]
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x838]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545d77
mov eax, ecx
test eax, eax
je 0x545dab
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
shr ecx, 2
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 eax, dword [0xb1f6c0]
inc ebp
add ebx, 4
cmp ebp, eax
jl 0x545ce0
mov edi, str.localport
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545ddb
mov eax, ecx
test eax, eax
je 0x545e0d
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
mov esi, str.localport
shr ecx, 2
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]
lea edx, [esp + 0x10]
mov ecx, dword [eax + 0xb8]
push ecx
push 0x59a290
push edx
call fcn.0057492c
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x44]
push eax
push ecx
call fcn.00544f50
mov edi, str.natneg
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x838]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545e62
mov eax, ecx
test eax, eax
je 0x545e9b
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
mov esi, str.natneg
shr ecx, 2
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 eax, dword [esp + 0x840]
mov esi, 0x5b7504
mov ecx, dword [eax + 0xc0]
test ecx, ecx
jne 0x545eb6
mov esi, 0x5b4924
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545ed2
mov eax, ecx
test eax, eax
je 0x545f06
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
shr ecx, 2
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 ebp, dword [esp + 0x844]
test ebp, ebp
je 0x545f8b
mov edi, str.statechanged
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545f30
mov eax, ecx
test eax, eax
je 0x545f62
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
mov esi, str.statechanged
shr ecx, 2
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
push ebp
lea eax, [esp + 0x14]
push 0x59a290
push eax
call fcn.0057492c
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.00544f50
mov edx, dword [esp + 0x84c]
add esp, 0x14
mov edi, str.gamename
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x545faa
mov eax, ecx
test eax, eax
je 0x545fe3
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
mov esi, str.gamename
shr ecx, 2
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 ebx, dword [esp + 0x840]
or ecx, 0xffffffff
xor eax, eax
lea esi, [ebx + 4]
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x546009
mov eax, ecx
test eax, eax
je 0x54603d
mov ecx, eax
lea edi, [esp + edx + 0x38]
mov edx, ecx
shr ecx, 2
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]
cmp ebp, 2
je 0x54606e
push 0
push 0xff
push 0
push 0xff
push 0
lea eax, [esp + 0x4c]
push 0xff
push eax
push ebx
call fcn.005460d0
mov edx, dword [esp + 0x858]
add esp, 0x20
jmp 0x54608e
mov ecx, 0x800
sub ecx, edx
cmp ecx, 1
jl 0x54608e
mov byte [esp + edx + 0x38], 0
mov edx, dword [esp + 0x838]
inc edx
mov dword [esp + 0x838], edx
lea eax, [ebx + 0xc4]
push 0x10
push eax
push 0
push edx
mov edx, dword [ebx]
lea ecx, [esp + 0x48]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_sendto]
call sub.KERNEL32.dll_GetTickCount
pop edi
pop esi
mov dword [ebx + 0xa8], eax
mov dword [ebx + 0xac], eax
pop ebp
pop ebx
add esp, 0x82c
ret