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

Disassembly:
sub esp, 0x44
mov eax, dword [esp + 0x48]
push ebx
push esi
push edi
movzx esi, word [eax + 5]
mov ebx, edx
mov dword [esp + 0x4c], ecx
test si, si
je 0x422a62
movzx edi, word [eax + 7]
test di, di
je 0x422a62
movzx ecx, word [eax + 1]
xor edx, edx
push ebp
xor ebp, ebp
mov dword [esp + 0x14], edx
and dword [esp + 0x18], ebp
lea eax, [ecx + esi]
mov dword [esp + 0x10], ebp
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
push 0x60
mov ax, word [eax + 3]
add ax, di
mov edi, ecx
movzx eax, ax
mov ecx, esi
pop esi
mov dword [esp + 0x38], eax
cmp si, cx
mov eax, ecx
mov dword [esp + 0x3c], edi
cmovb eax, esi
mov dword [esp + 0x40], esi
movzx eax, ax
mov dword [esp + 0x44], eax
cmp di, word [esp + 0x48]
jae 0x422a47
test ax, ax
je 0x4229fc
mov ebp, dword [esp + 0x58]
movzx ecx, ax
movzx eax, byte [ebx + 0x30]
imul eax, ecx
movzx esi, word [ebp + 3]
mov dword [esp + 0x30], ecx
push 0x60
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
sub eax, esi
movzx eax, ax
cmp word [esp + 0x44], ax
mov ecx, eax
pop eax
cmovb ecx, eax
movzx eax, cx
mov dword [esp + 0x20], eax
cmp si, word [esp + 0x38]
jae 0x4229c6
test ax, ax
je 0x4229c6
mov ebp, dword [esp + 0x20]
mov cl, byte [ebx + 0x30]
movzx eax, si
movzx esi, word [ebx + 8]
mov dword [esp + 0x24], eax
movzx eax, di
mov edi, dword [esp + 0x24]
dec edi
movzx edx, bp
mov ebp, dword [esp + 0x58]
add edi, edx
mov edx, dword [esp + 0x14]
imul edi, esi
imul esi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
movzx eax, cl
add edi, dword [esp + 0x28]
add esi, dword [esp + 0x28]
imul edi, eax
imul esi, eax
cmp byte [ebp], 0
je 0x422867
cmp cl, 1
jne 0x4227d1
mov edx, esi
cmp esi, edi
ja 0x42278c
mov eax, dword [ebx + 0x18]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x4c], eax
cmp ecx, eax
jae 0x422782
mov ebp, dword [ebx + 0x14]
sub ebp, dword [ebx + 0x18]
mov al, byte [ecx + ebp]
cmp al, byte [ecx]
jne 0x422867
inc ecx
cmp ecx, dword [esp + 0x4c]
jb 0x422770
add edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x18]
cmp edx, edi
jbe 0x422759
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
add esi, dword [esp + 0x20]
mov edi, dword [esp + 0x38]
mov eax, edi
sub eax, esi
mov dword [esp + 0x34], esi
movzx eax, ax
cmp word [esp + 0x40], ax
mov ecx, eax
push 0x60
pop eax
cmovb ecx, eax
cmp si, di
mov edi, dword [esp + 0x3c]
movzx eax, cx
mov dword [esp + 0x20], eax
jb 0x4226f0
jmp 0x4229ca
cmp cl, 2
jne 0x42281b
mov edx, esi
cmp esi, edi
ja 0x4229b9
mov eax, dword [ebx + 0x18]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x4c], eax
cmp ecx, eax
jae 0x42280c
mov ebp, dword [ebx + 0x14]
sub ebp, dword [ebx + 0x18]
mov ax, word [ecx + ebp]
cmp ax, word [ecx]
jne 0x422867
add ecx, 2
cmp ecx, dword [esp + 0x4c]
jb 0x4227fa
add edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x18]
cmp edx, edi
jbe 0x4227e3
jmp 0x42278c
cmp cl, 4
jne 0x4229bd
mov edx, esi
cmp esi, edi
ja 0x42278c
mov eax, dword [ebx + 0x18]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x4c], eax
cmp ecx, eax
jae 0x422858
mov ebp, dword [ebx + 0x14]
sub ebp, dword [ebx + 0x18]
mov eax, dword [ecx + ebp]
cmp eax, dword [ecx]
jne 0x422867
add ecx, 4
cmp ecx, dword [esp + 0x4c]
jb 0x422848
add edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x18]
cmp edx, edi
jbe 0x422831
jmp 0x42278c
movzx eax, byte [ebx + 0x41]
mov ebp, dword [esp + 0x1c]
imul eax, eax, 0x2400
cmp dword [ebx + 0x4c], 5
je 0x422882
mov dword [0x42952c], eax
jmp 0x422885
add ebp, 0x31
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x10]
add ebp, eax
add edx, 0xc
add edx, ebp
mov dword [esp + 0x1c], ebp
call fcn.00418586
mov ebp, dword [esp + 0x10]
test al, al
je 0x422790
mov ax, word [esp + 0x3c]
lea edx, [ebp + 0xc]
mov ch, al
add edx, dword [esp + 0x18]
mov cl, ah
mov eax, dword [esp + 0x18]
mov word [eax + ebp], cx
mov ax, word [esp + 0x34]
mov ch, al
mov cl, ah
mov eax, dword [esp + 0x18]
mov word [eax + ebp + 2], cx
mov ax, word [esp + 0x44]
mov ch, al
mov cl, ah
mov eax, dword [esp + 0x18]
mov word [eax + ebp + 4], cx
mov ax, word [esp + 0x20]
mov ch, al
mov cl, ah
mov eax, dword [esp + 0x18]
mov word [eax + ebp + 6], cx
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0x50]
mov dword [ecx + ebp + 8], eax
cmp dword [ebx + 0x4c], 5
je 0x422917
push dword [esp + 0x2c]
mov ecx, ebx
push edi
push esi
call fcn.0042256b
jmp 0x42296f
movzx eax, byte [ebx + 0x41]
sub eax, 1
je 0x422977
sub eax, 1
je 0x422953
dec eax
sub eax, 1
je 0x422935
and dword [esp + 0x1c], 0
jmp 0x422790
mov ecx, dword [esp + 0x20]
movzx eax, cx
mov ecx, ebx
push eax
push dword [esp + 0x34]
push dword [esp + 0x2c]
push dword [esp + 0x34]
push edx
call fcn.004222b8
jmp 0x42296f
mov ecx, dword [esp + 0x20]
movzx eax, cx
mov ecx, ebx
push eax
push dword [esp + 0x34]
push dword [esp + 0x2c]
push dword [esp + 0x34]
push edx
call fcn.00421e33
mov ebp, eax
mov dword [esp + 0x1c], ebp
jmp 0x422999
mov ecx, dword [esp + 0x20]
movzx eax, cx
mov ecx, ebx
push eax
push dword [esp + 0x34]
push dword [esp + 0x2c]
push dword [esp + 0x34]
push edx
call fcn.004218ba
mov ebp, eax
mov dword [esp + 0x1c], eax
test ebp, ebp
je 0x42278c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add eax, 0xc
add eax, ebp
inc edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
jmp 0x4229bd
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
jmp 0x422794
mov ebp, dword [esp + 0x10]
add edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov eax, esi
sub eax, edi
mov dword [esp + 0x3c], edi
movzx eax, ax
cmp word [esp + 0x40], ax
mov ecx, eax
push 0x60
pop eax
cmovb ecx, eax
movzx eax, cx
mov dword [esp + 0x44], eax
cmp di, si
jb 0x4226a1
jmp 0x422a00
mov ebp, dword [esp + 0x10]
test edx, edx
je 0x422a47
mov esi, dword [esp + 0x50]
xor eax, eax
mov word [esp + 0x58], ax
mov ah, dl
mov al, dh
push 0
mov word [esp + 0x5e], ax
lea eax, [esp + 0x5c]
push 4
push eax
push esi
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 4
jne 0x422a43
push dword [esp + 0x18]
mov edx, ebp
mov ecx, esi
call fcn.0041bd49
test al, al
je 0x422a43
xor ebx, ebx
inc ebx
jmp 0x422a4a
xor ebx, ebx
jmp 0x422a4a
push 2
pop ebx
test ebp, ebp
je 0x422a5d
push ebp
push 0
push dword [0x42ac50]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, ebx
pop ebp
jmp 0x422a64
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x44
ret 4