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

Disassembly:
sub esp, 0x18
push ebx
push edi
push 0
call fcn.00409633
mov edi, eax
mov ebx, edx
pop ecx
mov dword [esp + 8], edi
mov dword [esp + 0x14], ebx
cmp edi, dword [0x44a688]
jne 0x4054c8
cmp ebx, dword [0x44a68c]
je 0x405768
and dword [esp + 0xc], 0
cmp dword [0x460c98], 0
push esi
mov esi, dword [0x460c8c]
mov dword [0x44a688], edi
mov dword [0x44a68c], ebx
jbe 0x405767
push ebp
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov eax, dword [esi + 0x44]
sub eax, 0
je 0x4056dd
dec eax
je 0x40562b
dec eax
je 0x405624
dec eax
je 0x40562b
dec eax
je 0x405524
dec eax
je 0x40562b
jmp 0x405741
mov ax, word [esi + 0x4e]
inc ax
movzx eax, ax
push eax
call sub.WSOCK32.dll_htons
mov word [0x448f40], ax
cmp dword [esi + 0x40], 0x150
jge 0x40557d
push 0x12
pop eax
push eax
mov dword [0x449874], eax
call sub.WSOCK32.dll_htons
mov word [0x448f42], ax
mov eax, dword [0x460c88]
movzx eax, word [eax + ebp]
push eax
call sub.WSOCK32.dll_htons
mov word [0x448f44], ax
mov eax, dword [0x460c88]
add eax, 2
add eax, ebp
push eax
push 0x448f46
jmp 0x4055da
push 0x11
pop eax
push eax
mov dword [0x449874], eax
call sub.WSOCK32.dll_htons
mov word [0x448f42], ax
movzx eax, word [esi + 0x4c]
push eax
call sub.WSOCK32.dll_htons
and dword [0x449874], 0
push 0
mov word [0x448f44], ax
call sub.WSOCK32.dll_htons
mov word [0x448f46], ax
mov eax, dword [0x460c88]
movzx eax, word [eax + ebp]
push eax
call sub.WSOCK32.dll_htons
mov word [0x448f48], ax
mov eax, dword [0x460c88]
add eax, 2
add eax, ebp
push eax
push 0x448f4a
call fcn.00409ff0
pop ecx
pop ecx
push 4
push esi
push 0x449854
call fcn.0040ba80
mov eax, dword [0x460c88]
add esp, 0xc
add eax, 2
add eax, ebp
push 0x10
push 0x449850
push 0
push eax
call fcn.0040a180
pop ecx
add eax, 0xb
push eax
push 0x448f40
push dword [0x448f3c]
call sub.WSOCK32.dll_sendto
jmp 0x405741
mov dword [esi + 0x44], 3
test byte [esi + 0x1c], 8
jne 0x405741
mov ecx, edi
mov eax, ebx
sub ecx, dword [esi + 0x38]
sbb eax, dword [esi + 0x3c]
mov dword [esp + 0x24], eax
js 0x405741
jg 0x405654
cmp ecx, 0x3c
jbe 0x405741
movzx eax, byte [esi + 3]
push eax
movzx eax, byte [esi + 2]
push eax
movzx eax, byte [esi + 1]
push eax
movzx eax, byte [esi]
push eax
push str.COMM_BETA__0.3d._0.3d._0.3d._0.3d_gestoert.
push 0x449740
call fcn.00409bd1
push 0x449740
call fcn.00408d8a
imul edi, dword [esi + 4], 0x3c
add esp, 0x1c
and dword [esi + 0x44], 0
and dword [esi + 0x38], 0
and dword [esi + 0x3c], 0
mov ebp, dword [esp + 0x14]
add edi, 0x449878
xor ebx, ebx
movzx eax, byte [edi]
lea ecx, [ebp + 1]
cmp eax, ecx
jne 0x4056cc
push ebx
mov byte [edi], 0
push dword [esi + 4]
push str.COMM_TERM__0.2d__0.2d_gestoert
push 0x449740
call fcn.00409bd1
push 0x449740
call fcn.00408d8a
add esp, 0x14
inc ebx
inc edi
cmp ebx, 0x3c
jl 0x40569f
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x40573d
mov eax, dword [esi + 0x38]
or eax, dword [esi + 0x3c]
je 0x405741
xor edx, edx
test byte [esi + 0x1c], 0x40
je 0x4056f4
mov ecx, 0x12c
jmp 0x4056f7
push 0x3c
pop ecx
sub edi, dword [esi + 0x38]
mov eax, ebx
sbb eax, dword [esi + 0x3c]
cmp eax, edx
jl 0x40573d
jg 0x405709
cmp edi, ecx
jbe 0x40573d
movzx eax, byte [esi + 3]
mov edi, 0x449740
push eax
movzx eax, byte [esi + 2]
push eax
movzx eax, byte [esi + 1]
push eax
movzx eax, byte [esi]
push eax
push str.COMM_BETA__0.3d._0.3d._0.3d._0.3d_gestoert.
push edi
call fcn.00409bd1
push edi
call fcn.00408d8a
and dword [esi + 0x38], 0
add esp, 0x1c
and dword [esi + 0x3c], 0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add esi, 0xd8
inc eax
add ebp, 0x102
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
cmp eax, dword [0x460c98]
jb 0x4054f4
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x18
ret