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

Disassembly:
sub esp, 0x85c
push ebx
push ebp
mov ebp, dword [esp + 0x868]
push esi
xor esi, esi
push edi
cmp ebp, esi
mov dword [esp + 0x868], esi
jne 0x544fd4
mov ebp, dword [0x5b7468]
mov eax, dword [esp + 0x874]
mov cl, byte [eax]
cmp cl, 0x3b
jne 0x545011
mov ebp, dword [ebp + 0xd4]
cmp ebp, esi
je case.0x54512a.3
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x878]
push ecx
push edx
push eax
call ebp
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x85c
ret
cmp cl, 0x5c
jne 0x5450ce
lea eax, [esp + 0x68]
push esi
push eax
push ebp
mov dword [esp + 0x874], 1
mov byte [esp + 0x74], cl
call fcn.00545a30
lea ecx, [esp + 0x74]
push 1
push ecx
push ebp
call fcn.00545a30
lea edx, [esp + 0x80]
push 2
push edx
push ebp
call fcn.00545a30
mov edi, str.finalqueryid1.1
or ecx, 0xffffffff
xor eax, eax
add esp, 0x24
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x868]
not ecx
dec ecx
mov eax, ecx
mov ecx, 0x800
inc eax
sub ecx, edx
cmp eax, ecx
jle 0x54507b
mov eax, ecx
cmp eax, esi
je 0x5450b4
mov ecx, eax
lea edi, [esp + edx + 0x68]
mov edx, ecx
mov esi, str.finalqueryid1.1
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 + 0x868]
add ecx, eax
mov dword [esp + 0x868], ecx
mov byte [esp + ecx + 0x67], 0
mov edx, dword [esp + 0x868]
mov eax, dword [esp + 0x87c]
push 0x10
dec edx
push eax
push 0
mov dword [esp + 0x874], edx
push edx
jmp 0x545448
mov ebx, dword [esp + 0x878]
cmp ebx, 7
jl case.0x54512a.3
cmp cl, 0xfe
jne case.0x54512a.3
cmp byte [eax + 1], 0xfd
jne case.0x54512a.3
cmp dword [ebp + 0xb0], esi
jle 0x5450ff
mov dword [ebp + 0xb0], esi
mov ecx, dword [eax + 3]
mov dl, byte [eax + 2]
mov dword [esp + 0x69], ecx
sub ebx, 7
movsx ecx, dl
cmp ecx, 6
lea esi, [eax + 7]
mov byte [esp + 0x68], dl
mov dword [esp + 0x868], 5
ja case.0x54512a.3
jmp dword [ecx*4 + 0x545464]
xor eax, eax
cmp ebx, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
jl 0x545434
mov dl, byte [esi]
lea ecx, [ebx - 1]
mov byte [esp + 0x10], dl
mov ebx, dword [esp + 0x10]
test dl, dl
lea eax, [esi + 1]
je 0x545171
cmp dl, 0xff
je 0x545171
mov edx, ebx
mov dword [esp + 0x20], eax
and edx, 0xff
add eax, edx
sub ecx, edx
cmp ecx, 2
jl 0x545434
mov dl, byte [eax]
inc eax
dec ecx
mov byte [esp + 0x10], dl
mov edi, dword [esp + 0x10]
test dl, dl
je 0x54519f
cmp dl, 0xff
je 0x54519f
mov edx, edi
mov dword [esp + 0x1c], eax
and edx, 0xff
add eax, edx
sub ecx, edx
cmp ecx, 1
jl 0x545434
mov dl, byte [eax]
dec ecx
mov byte [esp + 0x10], dl
mov esi, dword [esp + 0x10]
test dl, dl
je 0x5451cb
cmp dl, 0xff
je 0x5451cb
mov edx, esi
inc eax
and edx, 0xff
mov dword [esp + 0x18], eax
sub ecx, edx
test ecx, ecx
jl 0x545434
mov eax, dword [esp + 0x20]
and ebx, 0xff
push eax
push ebx
lea ecx, [esp + 0x70]
push 0
push ecx
push ebp
call fcn.005456b0
mov edx, dword [esp + 0x30]
and edi, 0xff
push edx
push edi
lea eax, [esp + 0x84]
push 1
push eax
push ebp
call fcn.005456b0
mov ecx, dword [esp + 0x40]
and esi, 0xff
push ecx
push esi
lea edx, [esp + 0x98]
push 2
push edx
push ebp
call fcn.005456b0
add esp, 0x3c
jmp 0x545434
cmp ebx, 1
jl 0x545434
cmp ebx, 0x41
jg 0x545434
mov al, byte [esi + ebx - 1]
test al, al
jne 0x545434
lea edx, [esp + 0x24]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x545252
dec ebx
lea eax, [esp + 0x24]
lea edx, [ebp + 0x44]
push ebx
push eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
call fcn.00545550
mov ecx, dword [esp + 0x878]
lea eax, [esp + 0x34]
lea edx, [esp + ecx + 0x78]
push edx
push ebx
push eax
call fcn.00545480
mov edx, dword [esp + 0x884]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x1c
lea edi, [esp + edx + 0x68]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x868], ecx
jmp 0x545434
cmp ebx, 0x20
jle 0x5452c2
mov ebx, 0x20
mov ecx, ebx
lea edi, [esp + 0x6d]
mov edx, ecx
mov byte [esp + 0x68], 5
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add dword [esp + 0x868], ebx
jmp 0x545434
mov edx, dword [ebp + 0xb0]
or ecx, 0xffffffff
cmp edx, ecx
je case.0x54512a.3
xor edi, edi
mov dl, byte [edi + eax + 3]
cmp dl, byte [edi + ebp + 0x84]
jne case.0x54512a.3
inc edi
cmp edi, 4
jl 0x5452fa
cmp ebx, 2
jl case.0x54512a.3
mov eax, dword [ebp + 0x104]
mov dword [ebp + 0xb0], ecx
movsx edx, byte [esi]
lea ecx, [esi + 1]
push eax
push ecx
push edx
call dword [ebp + 0x9c]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x85c
ret
xor edi, edi
mov cl, byte [edi + eax + 3]
mov dl, byte [edi + ebp + 0x84]
cmp cl, dl
jne case.0x54512a.3
inc edi
cmp edi, 4
jl 0x545345
cmp ebx, 4
jl case.0x54512a.3
mov edi, dword [esi]
mov byte [esp + 0x68], 7
mov dword [esp + 0x6d], edi
mov dword [esp + 0x868], 9
xor eax, eax
lea ecx, [ebp + 0xd8]
cmp dword [ecx], edi
je 0x545434
inc eax
add ecx, 4
cmp eax, 0xa
jl 0x545385
mov eax, dword [ebp + 0x100]
mov ecx, 0xa
inc eax
add esi, 4
cdq
idiv ecx
mov byte [esp + 0x10], 0xfd
mov byte [esp + 0x11], 0xfc
mov byte [esp + 0x12], 0x1e
mov byte [esp + 0x13], 0x66
mov byte [esp + 0x14], 0x6a
mov byte [esp + 0x15], 0xb2
mov dword [ebp + 0x100], edx
mov dword [ebp + edx*4 + 0xd8], edi
lea edi, [ebx - 4]
cmp edi, ecx
jl 0x54541c
mov edx, esi
lea ecx, [esp + 0x10]
xor eax, eax
sub edx, ecx
lea ecx, [esp + eax + 0x10]
mov bl, byte [edx + ecx]
cmp bl, byte [ecx]
jne 0x54541c
inc eax
cmp eax, 6
jl 0x5453e4
mov eax, dword [ebp + 0xa0]
mov esi, dword [esi + 6]
test eax, eax
je 0x545434
mov edx, dword [ebp + 0x104]
push edx
push esi
call dword [sym.imp.WS2_32.dll_ntohl]
push eax
call dword [ebp + 0xa0]
add esp, 8
jmp 0x545434
mov eax, dword [ebp + 0xa4]
test eax, eax
je 0x545434
mov ecx, dword [ebp + 0x104]
push ecx
push edi
push esi
call eax
add esp, 0xc
mov edx, dword [esp + 0x87c]
mov eax, dword [esp + 0x868]
push 0x10
push edx
push 0
push eax
mov edx, dword [ebp]
lea ecx, [esp + 0x78]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_sendto]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x85c
ret