Function at 0x4ef940
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x820
push ebx
push ebp
mov eax, ecx
shr eax, 0x10
test eax, eax
push esi
push edi
jne case.0x4efaa0.101
cmp ecx, 0x20
je case.0x4efaa0.101
cmp dword [0x5bfc78], 0xffffffff
je 0x4f06b8
call fcn.004f0b80
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je case.0x4efaa0.101
mov ecx, dword [0x5bfc78]
push 0
push 0x103
push 0x5efea8
push ecx
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
je case.0x4efaa0.101
cmp eax, 1
jle case.0x4efaa0.101
mov edx, dword [0x5f92ec]
push 0
push 0
mov byte [eax + 0x5efea8], 0
mov eax, dword [0x5bfc78]
push edx
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov ecx, 0x5efea8
mov dword [0x5efaa8], 0
call fcn.004ef800
test eax, eax
je case.0x4efaa0.101
cmp byte [0x5efea8], 0x20
mov esi, 0x5efea8
jne 0x4efa08
lea esp, [esp]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4efa00
cmp byte [esi], 0
je case.0x4efaa0.101
push 0x20
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je case.0x4efaa0.101
lea ebx, [eax + 1]
mov byte [eax], 0
cmp byte [ebx], 0x20
mov ebp, esi
jne 0x4efa39
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x4efa31
cmp byte [ebx], 0
je case.0x4efaa0.101
push 0x20
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x4efa6f
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x4efa68
mov edi, edi
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4efa60
cmp byte [esi], 0
jne 0x4efa6f
xor esi, esi
mov ecx, ebx
call fcn.004ef840
test eax, eax
je case.0x4efaa0.101
push ebp
call fcn.0059164b
mov ebp, eax
lea eax, [ebp - 0x64]
add esp, 4
cmp eax, 0x1e
mov dword [esp + 0x24], ebp
ja case.0x4efaa0.101
movzx ecx, byte [eax + 0x4f06fc]
jmp dword [ecx*4 + 0x4f06ec]
cmp dword [0x5c9f58], 2
je 0x4efdfe
mov eax, dword [0x5efab0]
test eax, eax
jne 0x4efac6
cmp ebp, 0x64
je 0x4efdfe
mov eax, dword [0x5efab4]
test eax, eax
jne 0x4efad8
cmp ebp, 0x6e
je 0x4efdfe
cmp ebp, 0x64
jne 0x4efb42
test byte [0x5ee6d8], 0x20
jne 0x4efdfe
mov esi, dword [0x5c81a0]
xor edi, edi
test esi, esi
je 0x4efb9a
lea ebx, [ebx]
mov eax, dword [esi + 0x520]
test eax, eax
je 0x4efb36
mov eax, dword [esi + 0x540]
test eax, eax
jne 0x4efb36
lea edx, [esi + 0x4b8]
push 0x5effb0
push edx
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4efb36
inc edi
cmp edi, 3
jg 0x4efdfe
mov esi, dword [esi + 0x890]
test esi, esi
jne 0x4efb00
jmp 0x4efb9a
cmp ebp, 0x6e
jne 0x4efb9a
test byte [0x5ee6d8], 0x10
jne 0x4efdfe
mov esi, dword [0x5c81a0]
test esi, esi
je 0x4efb9a
mov edi, edi
mov eax, dword [esi + 0x520]
test eax, eax
je 0x4efb90
mov eax, dword [esi + 0x540]
test eax, eax
je 0x4efb90
lea eax, [esi + 0x4b8]
push 0x5effb0
push eax
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4efdfe
mov esi, dword [esi + 0x890]
test esi, esi
jne 0x4efb60
mov eax, dword [0x5edfd0]
test eax, eax
je 0x4efc3d
push 0x5effb0
push ebx
push str._s_id__s
push 0x5efac0
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x5efac0
call fcn.005a2fa6
add esp, 0x14
push 0
push 0
mov edx, 0x5a4de8
mov ecx, 0x5efac0
call fcn.004bb9c0
test eax, eax
je 0x4efc3d
mov ecx, dword [str.151_rejected_n]
mov eax, dword [0x5a5dc0]
mov edx, dword [0x5a5dbc]
mov dword [0x5efea8], ecx
mov cx, word [0x5a5dc4]
mov dword [0x5efeb0], eax
mov eax, 0x5efea8
mov dword [0x5efeac], edx
mov word [0x5efeb4], cx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4efc20
push 0
sub eax, edx
mov edx, dword [0x5bfc78]
push eax
push 0x5efea8
push edx
jmp 0x4f0688
cmp ebp, 0x6e
jne 0x4efcb1
mov al, byte [0x5c9f80]
test al, al
je 0x4efdfe
mov edx, 2
mov ecx, 0x5c9f80
call fcn.00421f20
test eax, eax
je 0x4efdfe
mov eax, dword [0x5bf9fc]
test eax, eax
je 0x4efcb1
push ebx
mov edx, 0x64
mov ecx, 0x5c81a8
call fcn.00420d70
xor eax, eax
mov cl, byte [eax + 0x5c9f80]
mov byte [eax + 0x5eef00], cl
inc eax
test cl, cl
jne 0x4efc81
mov ecx, dword [0x5f92ec]
push 0
push 0x46e1c0
mov edx, 0x334
call fcn.0046c300
test eax, eax
jle 0x4efdfe
call fcn.0042e950
mov esi, eax
test esi, esi
je 0x4efdfe
push ebx
lea ecx, [esi + 0x3f0]
mov edx, 0x64
call fcn.00420d70
lea edi, [esi + 0x4b8]
push 0x5effb0
mov edx, 0x64
mov ecx, edi
call fcn.00420d70
push edi
lea ecx, [esi + 0x454]
mov edx, 0x64
call fcn.00420d70
mov ax, word [0x5bfc70]
mov ecx, dword [esp + 0x14]
mov word [esi + 0x51c], ax
mov dword [esi + 0x520], 5
mov dword [esi + 0x534], 3
mov dword [esi + 0x538], ebp
mov dword [esi + 0x88c], ecx
mov edx, dword [0x5bf984]
mov eax, edx
mov ebx, 1
cmp eax, ebx
mov dword [esi + 0x868], edx
jge 0x4efd49
mov dword [esi + 0x868], ebx
jmp 0x4efd58
cmp eax, 0x14
jle 0x4efd58
mov dword [esi + 0x868], 0x14
lea edi, [esi + 0x544]
push 0x5c9f80
mov edx, 0x104
mov ecx, edi
call fcn.00420d70
push edi
lea ecx, [esi + 0x648]
mov edx, 0x104
call fcn.00420d70
push 0x5ca088
lea ecx, [esi + 0x74c]
mov edx, 0x104
call fcn.00420d70
cmp ebp, 0x6e
jne 0x4efda8
mov dword [esi + 0x528], ebx
mov dword [esi + 0x540], ebx
jmp 0x4efdb6
xor eax, eax
mov dword [esi + 0x528], eax
mov dword [esi + 0x540], eax
mov eax, dword [0x5f35d0]
test eax, eax
je 0x4efe4c
xor eax, eax
mov ecx, 0x202
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 0xf
push str.DCCSERVER
push 0
xor edx, edx
mov dword [esp + 0x48], esi
call fcn.0051fbb0
test eax, eax
jne 0x4efe4c
xor edx, edx
mov ecx, esi
call fcn.0042ef20
mov edx, dword [0x5ab850]
mov ecx, dword [str.150_unavailable_n]
mov eax, dword [0x5ab854]
mov dword [0x5efeac], edx
mov dl, byte [0x5ab85c]
mov dword [0x5efea8], ecx
mov ecx, dword [0x5ab858]
mov dword [0x5efeb0], eax
mov eax, 0x5efea8
mov byte [0x5efeb8], dl
mov dword [0x5efeb4], ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4efe40
jmp 0x4f02f7
mov ecx, dword [0x5bfc78]
mov dword [esi + 0x888], ecx
mov dword [0x5bfc78], 0xffffffff
mov ecx, dword [esi + 0x888]
call fcn.00569850
cmp ebp, 0x6e
jne 0x4efe88
mov ecx, esi
call fcn.0042fe50
mov ecx, ebx
call fcn.004ef580
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x5bfd44]
test eax, eax
je 0x4efec3
mov eax, dword [0x5f2a54]
cmp eax, ebx
jne 0x4efea7
mov ecx, dword [0x5bfd48]
call fcn.0041f070
jmp 0x4efec3
cmp eax, 2
jne 0x4efec3
mov edx, dword [esp + 0x14]
push edx
xor edx, edx
xor ecx, ecx
call fcn.0047daa0
mov edx, ebx
mov ecx, eax
call fcn.005323b0
mov eax, dword [0x5f92ec]
push 0
push 0
push 0x8020
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, ebx
call fcn.004ef580
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je case.0x4efaa0.101
push 0x20
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je case.0x4efaa0.101
lea edi, [eax + 1]
mov byte [eax], 0
cmp byte [edi], 0x20
mov dword [esp + 0x18], esi
jne 0x4eff19
mov al, byte [edi + 1]
inc edi
cmp al, 0x20
je 0x4eff11
cmp byte [edi], 0
je case.0x4efaa0.101
mov edx, dword [esp + 0x14]
mov ecx, edi
call fcn.004ef8d0
mov eax, dword [0x5efaac]
test eax, eax
je 0x4f0204
cmp dword [0x5c9f50], 2
je 0x4f0204
test byte [0x5ee6d8], 8
jne 0x4f0204
mov eax, dword [0x5f8cd0]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4eff86
push 0x5effb0
push ebx
push str._s_id__s
push 0x5efac0
call ebp
add esp, 0x10
mov ecx, 0x5efac0
call fcn.00552da0
test eax, eax
jne 0x4effe5
mov eax, dword [0x5bfbf0]
test eax, eax
je 0x4effa2
push 0
xor edx, edx
mov ecx, edi
call fcn.004bc690
test eax, eax
jne 0x4f0204
mov eax, dword [0x5edfd0]
test eax, eax
je 0x4effe5
push 0x5effb0
push ebx
push str._s_id__s
push 0x5efac0
call ebp
push 0x5efac0
call fcn.005a2fa6
add esp, 0x14
push 0
push 0
mov edx, 0x5a4de8
mov ecx, 0x5efac0
call fcn.004bb9c0
test eax, eax
jne 0x4f012e
call fcn.00491a70
mov esi, eax
test esi, esi
je 0x4f0204
push ebx
lea ecx, [esi + 4]
mov edx, 0x64
call fcn.00420d70
lea ebx, [esi + 0xcc]
push 0x5effb0
mov edx, 0x64
mov ecx, ebx
call fcn.00420d70
push ebx
lea ecx, [esi + 0x68]
mov edx, 0x64
call fcn.00420d70
mov cx, word [0x5bfc70]
mov edx, dword [esp + 0x24]
mov eax, 1
push 0xa
mov word [esi + 0x454], cx
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x440], eax
mov dword [esi + 0x47c], eax
mov eax, dword [esp + 0x18]
push 0
push ecx
mov dword [esi + 0x480], edx
mov dword [esi + 0x4b8], eax
call fcn.005915ac
mov dword [esi + 0x464], eax
mov eax, 0x5efac0
add esp, 0xc
sub eax, edi
mov cl, byte [edi]
mov byte [edi + eax], cl
inc edi
test cl, cl
jne 0x4f0078
push 0x5c5d18
push 0x5c5c18
push 0x5c5b18
push 0x5c5b14
push 0x5efac0
call fcn.00591920
push 0x5c5d18
push 0x5c5c18
lea edi, [esi + 0x234]
push 0x5a49b4
push edi
call ebp
add esp, 0x24
push 0
push 0
lea edx, [esi + 0x130]
mov ecx, edi
call fcn.00481650
mov ecx, edi
call fcn.00421d30
test eax, eax
jne 0x4f01fb
mov eax, dword [0x5f35d0]
test eax, eax
je 0x4f0170
xor eax, eax
lea edx, [esp + 0x28]
push edx
push eax
push eax
push 0xf
mov ecx, 0x202
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
push str.DCCSERVER
push eax
xor edx, edx
mov dword [esp + 0x44], esi
call fcn.0051fbb0
test eax, eax
je 0x4f01fb
mov eax, dword [esi + 0x450]
test eax, eax
je 0x4f0170
xor edx, edx
mov ecx, esi
call fcn.00491f60
mov eax, dword [str.151_rejected_n]
mov edx, dword [0x5a5dc0]
mov ecx, dword [0x5a5dbc]
mov dword [0x5efea8], eax
mov ax, word [0x5a5dc4]
mov word [0x5efeb4], ax
mov eax, 0x5efea8
mov dword [0x5efeb0], edx
mov dword [0x5efeac], ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f0164
jmp 0x4f0677
mov edx, dword [0x5bfc78]
mov dword [esi + 0x4b0], edx
mov dword [0x5bfc78], 0xffffffff
mov ecx, dword [esi + 0x4b0]
call fcn.00569850
mov eax, dword [0x5bfd44]
test eax, eax
je 0x4f01d3
mov eax, dword [0x5f2a64]
cmp eax, 1
jne 0x4f01b1
mov ecx, dword [0x5bfd48]
call fcn.0041f070
jmp 0x4f01d3
cmp eax, 2
jne 0x4f01d3
mov eax, dword [esp + 0x14]
push eax
xor edx, edx
mov ecx, 4
call fcn.0047daa0
mov edx, 1
mov ecx, eax
call fcn.005323b0
mov ecx, dword [0x5f92ec]
push 0
push 0
push 0x8010
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, 1
call fcn.004ef580
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, esi
call fcn.00491f60
mov eax, dword [0x5ab850]
mov edx, dword [str.150_unavailable_n]
mov ecx, dword [0x5ab854]
mov dword [0x5efeac], eax
mov al, byte [0x5ab85c]
mov dword [0x5efea8], edx
mov edx, dword [0x5ab858]
mov byte [0x5efeb8], al
mov eax, 0x5efea8
mov dword [0x5efeb4], edx
mov dword [0x5efeb0], ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f0244
jmp 0x4f0677
test esi, esi
je case.0x4efaa0.101
cmp byte [esi], 0
je case.0x4efaa0.101
mov edx, edi
mov ecx, esi
call fcn.004ef8d0
mov eax, dword [0x5edfd0]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4f030c
push 0x5effb0
push ebx
push str._s_id__s
push 0x5efac0
call ebp
push 0x5efac0
call fcn.005a2fa6
add esp, 0x14
push 0
push 0
mov edx, 0x5a4de8
mov ecx, 0x5efac0
call fcn.004bb9c0
test eax, eax
je 0x4f030c
mov edx, dword [str.151_rejected_n]
mov eax, dword [0x5a5dbc]
mov ecx, dword [0x5a5dc0]
mov dword [0x5efea8], edx
mov dx, word [0x5a5dc4]
mov dword [0x5efeac], eax
mov eax, 0x5efea8
mov word [0x5efeb4], dx
mov dword [0x5efeb0], ecx
lea edx, [eax + 1]
jmp 0x4f02f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f02f0
push 0
sub eax, edx
push eax
mov eax, dword [0x5bfc78]
push 0x5efea8
push eax
jmp 0x4f0688
mov ecx, 0x5efac0
sub ecx, esi
mov al, byte [esi]
mov byte [esi + ecx], al
inc esi
test al, al
jne 0x4f0313
push 0x5c5d18
push 0x5c5c18
push 0x5c5b18
push 0x5c5b14
push 0x5efac0
call fcn.00591920
push 0x5c5d18
push 0x5c5c18
push 0x5a49b4
push 0x5efac0
call ebp
add esp, 0x24
mov ecx, 0x5efac0
call fcn.00421d30
test eax, eax
jne 0x4f062d
mov edi, dword [0x5c81a0]
test edi, edi
je 0x4f062d
mov esi, 3
lea esp, [esp]
mov eax, dword [edi + 0x540]
test eax, eax
je 0x4f03aa
cmp dword [edi + 0x520], esi
jne 0x4f03aa
lea ecx, [edi + 0x4b8]
push 0x5effb0
push ecx
call fcn.005a299c
add esp, 8
test eax, eax
je 0x4f03b9
mov edi, dword [edi + 0x890]
test edi, edi
jne 0x4f0380
jmp 0x4f062d
push 0x5efac0
lea ebx, [edi + 0x648]
push ebx
push 0x5ab844
push 0x5f14f8
call ebp
add esp, 0x10
mov edx, 1
mov ecx, 0x5f14f8
call fcn.00421f20
test eax, eax
je 0x4f062d
mov esi, dword [0x5f4f78]
test esi, esi
mov dword [esp + 0x14], 0
je 0x4f042f
lea ebp, [edi + 0x4b8]
mov eax, dword [esi + 0x33c]
test eax, eax
jle 0x4f0425
lea edx, [esi + 0xcc]
push ebp
push edx
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x4f0425
inc dword [esp + 0x14]
mov esi, dword [esi + 0x3d4]
test esi, esi
jne 0x4f0403
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0x868]
jge 0x4f062d
call fcn.00526240
test eax, eax
jne 0x4f062d
mov ecx, dword [edi + 0x88c]
call fcn.004f0af0
test eax, eax
je 0x4f062d
call fcn.00526010
mov esi, eax
test esi, esi
je 0x4f062d
lea ecx, [edi + 0x3f0]
push ecx
lea ecx, [esi + 4]
mov edx, 0x64
call fcn.00420d70
lea edx, [edi + 0x4b8]
push edx
lea ecx, [esi + 0xcc]
mov edx, 0x64
call fcn.00420d70
lea eax, [edi + 0x454]
push eax
lea ecx, [esi + 0x68]
mov edx, 0x64
call fcn.00420d70
lea ebp, [esi + 0x130]
push ebx
mov edx, 0x104
mov ecx, ebp
call fcn.00420d70
lea ebx, [esi + 0x234]
push 0x5efac0
mov edx, 0x104
mov ecx, ebx
call fcn.00420d70
mov ecx, ebp
call fcn.00422770
mov cx, word [0x5bfc70]
mov edx, dword [esp + 0x24]
push ebx
mov eax, 1
push ebp
mov word [esi + 0x354], cx
mov dword [esi + 0x374], eax
mov dword [esi + 0x3ac], eax
mov dword [esi + 0x33c], eax
mov dword [esi + 0x378], 3
mov dword [esi + 0x37c], edx
mov eax, dword [edi + 0x88c]
push 0x5a49b4
push 0x5efac0
mov dword [esi + 0x3d0], eax
call dword [sym.imp.USER32.dll_wsprintfA]
xor eax, eax
add esp, 0x10
lea edx, [esp + 0x18]
mov ecx, 0x5efac0
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
call fcn.00421690
test eax, eax
je 0x4f061a
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x364], ecx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, eax
jne 0x4f061a
cmp ecx, dword [esp + 0x1c]
jne 0x4f061a
mov edx, dword [0x5bfc78]
mov dword [esi + 0x3cc], edx
mov dword [0x5bfc78], 0xffffffff
mov ecx, dword [esi + 0x3cc]
call fcn.00569850
mov eax, dword [esi + 0x364]
mov ecx, dword [edi + 0x88c]
push eax
add ecx, 0xe00
push ecx
push str.131__s__lu_n
push 0x5efac0
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, 0x5efac0
add esp, 0x10
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f05d0
push 0
sub eax, edx
mov edx, dword [esi + 0x3cc]
push eax
push 0x5efac0
push edx
call dword [sym.imp.WSOCK32.dll_send]
mov eax, dword [0x5f92ec]
mov ecx, dword [esi + 0x3cc]
push 0x21
push 0x8014
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov ecx, 1
call fcn.004ef580
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, esi
mov dword [esi + 0x364], 0
call fcn.005269e0
mov eax, dword [0x5ab850]
mov edx, dword [str.150_unavailable_n]
mov ecx, dword [0x5ab854]
mov dword [0x5efeac], eax
mov al, byte [0x5ab85c]
mov dword [0x5efea8], edx
mov edx, dword [0x5ab858]
mov byte [0x5efeb8], al
mov eax, 0x5efea8
mov dword [0x5efeb4], edx
mov dword [0x5efeb0], ecx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f0670
mov ecx, dword [0x5bfc78]
push 0
sub eax, edx
push eax
push 0x5efea8
push ecx
call dword [sym.imp.WSOCK32.dll_send]
mov eax, dword [0x5bfc78]
cmp eax, 0xffffffff
je 0x4f06b8
push 1
push eax
call dword [sym.imp.WSOCK32.dll_shutdown]
mov edx, dword [0x5bfc78]
push edx
call dword [sym.imp.WSOCK32.dll_closesocket]
mov dword [0x5bfc78], 0xffffffff
mov eax, dword [0x5bfc74]
cmp eax, 0xffffffff
mov dword [0x5efaa8], 0
je 0x4f06e1
mov ecx, dword [0x5f92ec]
push 8
push 0x8034
push ecx
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret