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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x838
push ebx
push ebp
mov eax, ecx
shr eax, 0x10
test eax, eax
push esi
push edi
jne case.0x4e1775.101
cmp ecx, 0x20
je case.0x4e1775.101
cmp dword [0x59bc14], 0xffffffff
je 0x4e1938
call fcn.004e27f0
test eax, eax
mov dword [esp + 0x10], eax
je case.0x4e1775.101
mov ecx, dword [0x59bc14]
push 0
push 0x103
push 0x5ab540
push ecx
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
je case.0x4e1775.101
cmp eax, 1
jle case.0x4e1775.101
mov edx, dword [0x5b4314]
push 0
push 0
mov byte [eax + 0x5ab540], 0
mov eax, dword [0x59bc14]
push edx
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov ecx, 0x5ab540
mov dword [0x5ab140], 0
call fcn.004e14e0
test eax, eax
je case.0x4e1775.101
cmp byte [0x5ab540], 0x20
mov esi, 0x5ab540
jne 0x4e16df
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4e16d7
cmp byte [esi], 0
je case.0x4e1775.101
push 0x20
push esi
call fcn.00570260
add esp, 8
test eax, eax
je case.0x4e1775.101
lea edi, [eax + 1]
mov byte [eax], 0
cmp byte [edi], 0x20
mov ebx, esi
jne 0x4e1710
mov al, byte [edi + 1]
inc edi
cmp al, 0x20
je 0x4e1708
cmp byte [edi], 0
je case.0x4e1775.101
push 0x20
push edi
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x4e1744
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x4e173d
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x4e1735
cmp byte [esi], 0
jne 0x4e1744
xor esi, esi
mov ecx, edi
mov ebp, edi
call fcn.004e1520
test eax, eax
je case.0x4e1775.101
push ebx
call fcn.005705cb
mov dword [esp + 0x18], eax
add eax, 0xffffff9c
add esp, 4
cmp eax, 0x1e
ja case.0x4e1775.101
movzx ecx, byte [eax + 0x4e237c]
jmp dword [ecx*4 + 0x4e236c]
cmp dword [0x5a5708], 2
je 0x4e1b26
mov eax, dword [0x5ab148]
test eax, eax
mov ebp, dword [esp + 0x14]
jne 0x4e179f
cmp ebp, 0x64
je 0x4e1b26
mov eax, dword [0x5ab14c]
test eax, eax
jne 0x4e17b1
cmp ebp, 0x6e
je 0x4e1b26
cmp ebp, 0x64
jne 0x4e1815
test byte [0x5a9e28], 0x20
jne 0x4e1b26
mov esi, dword [0x5a3a48]
xor ebx, ebx
test esi, esi
je 0x4e186b
mov eax, dword [esi + 0x520]
test eax, eax
je 0x4e1809
mov eax, dword [esi + 0x540]
test eax, eax
jne 0x4e1809
lea edx, [esi + 0x4b8]
push 0x5ab648
push edx
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4e1809
inc ebx
cmp ebx, 3
jg 0x4e1b26
mov esi, dword [esi + 0x88c]
test esi, esi
jne 0x4e17d3
jmp 0x4e186b
cmp ebp, 0x6e
jne 0x4e186b
test byte [0x5a9e28], 0x10
jne 0x4e1b26
mov esi, dword [0x5a3a48]
test esi, esi
je 0x4e186b
mov eax, dword [esi + 0x520]
test eax, eax
je 0x4e1861
mov eax, dword [esi + 0x540]
test eax, eax
je 0x4e1861
lea eax, [esi + 0x4b8]
push 0x5ab648
push eax
call fcn.005809c6
add esp, 8
test eax, eax
je 0x4e1b26
mov esi, dword [esi + 0x88c]
test esi, esi
jne 0x4e1831
mov eax, dword [0x5a9720]
test eax, eax
je 0x4e1969
push 0x5ab648
push edi
push str._s_id__s
push 0x5ab158
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x5ab158
call fcn.00580fc6
add esp, 0x14
push 0
push 0
mov edx, 0x583d70
mov ecx, 0x5ab158
call fcn.004b0bf0
test eax, eax
je 0x4e1969
mov ecx, dword [str.151_rejected_n]
mov eax, dword [0x584c84]
mov edx, dword [0x584c80]
mov dword [0x5ab540], ecx
mov cx, word [0x584c88]
mov dword [0x5ab548], eax
mov eax, 0x5ab540
mov dword [0x5ab544], edx
mov word [0x5ab54c], cx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e18f0
push 0
sub eax, edx
mov edx, dword [0x59bc14]
push eax
push 0x5ab540
push edx
call dword [sym.imp.WSOCK32.dll_send]
mov eax, dword [0x59bc14]
cmp eax, 0xffffffff
je 0x4e1938
push 1
push eax
call dword [sym.imp.WSOCK32.dll_shutdown]
mov ecx, dword [0x59bc14]
push ecx
call dword [sym.imp.WSOCK32.dll_closesocket]
mov dword [0x59bc14], 0xffffffff
mov eax, dword [0x59bc10]
cmp eax, 0xffffffff
mov dword [0x5ab140], 0
je 0x4e1961
mov edx, dword [0x5b4314]
push 8
push 0x8034
push edx
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebp, 0x6e
jne 0x4e19e1
mov al, byte [0x5a5730]
test al, al
je 0x4e1b26
mov edx, 2
mov ecx, 0x5a5730
call fcn.0041fd10
test eax, eax
je 0x4e1b26
mov eax, dword [0x59b9a4]
test eax, eax
je 0x4e19e1
push edi
mov edx, 0x64
mov ecx, 0x5a3a50
call fcn.0041ee40
xor eax, eax
mov cl, byte [eax + 0x5a5730]
mov byte [eax + 0x5aa640], cl
inc eax
test cl, cl
jne 0x4e19b1
mov ecx, dword [0x5b4314]
push 0
push 0x4694c0
mov edx, 0x334
call fcn.004675d0
test eax, eax
jle 0x4e1b26
call fcn.0042c390
mov esi, eax
test esi, esi
je 0x4e1b26
push edi
lea ecx, [esi + 0x3f0]
mov edx, 0x64
call fcn.0041ee40
lea edi, [esi + 0x4b8]
push 0x5ab648
mov edx, 0x64
mov ecx, edi
call fcn.0041ee40
push edi
lea ecx, [esi + 0x454]
mov edx, 0x64
call fcn.0041ee40
mov ax, word [0x59bc0c]
mov ebx, dword [esp + 0x10]
mov word [esi + 0x51c], ax
mov dword [esi + 0x520], 5
mov dword [esi + 0x534], 3
mov dword [esi + 0x538], ebp
mov dword [esi + 0x888], ebx
mov ecx, dword [0x59b92c]
mov eax, ecx
cmp eax, 1
mov dword [esi + 0x868], ecx
jge 0x4e1a79
mov dword [esi + 0x868], 1
jmp 0x4e1a88
cmp eax, 0x14
jle 0x4e1a88
mov dword [esi + 0x868], 0x14
lea edi, [esi + 0x544]
push 0x5a5730
mov edx, 0x104
mov ecx, edi
call fcn.0041ee40
push edi
lea ecx, [esi + 0x648]
mov edx, 0x104
call fcn.0041ee40
push 0x5a5838
lea ecx, [esi + 0x74c]
mov edx, 0x104
call fcn.0041ee40
cmp ebp, 0x6e
jne 0x4e1ad1
mov eax, 1
jmp 0x4e1ad3
xor eax, eax
mov dword [esi + 0x528], eax
mov dword [esi + 0x540], eax
mov eax, dword [0x5ae60c]
test eax, eax
je 0x4e1b83
xor eax, eax
lea edx, [esp + 0x40]
push edx
push eax
push eax
push 0xf
mov ecx, 0x201
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
push str.DCCSERVER
push eax
xor edx, edx
mov ecx, ebx
mov dword [esp + 0x60], esi
call fcn.0050e610
test eax, eax
jne 0x4e1b83
xor edx, edx
mov ecx, esi
call fcn.0042c970
mov eax, dword [0x589ba0]
mov edx, dword [str.150_unavailable_n]
mov ecx, dword [0x589ba4]
mov dword [0x5ab544], eax
mov al, byte [0x589bac]
mov dword [0x5ab540], edx
mov edx, dword [0x589ba8]
mov byte [0x5ab550], al
mov eax, 0x5ab540
mov dword [0x5ab54c], edx
mov dword [0x5ab548], ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e1b66
mov ecx, dword [0x59bc14]
push 0
sub eax, edx
push eax
push 0x5ab540
push ecx
jmp 0x4e1908
mov eax, dword [0x59bc14]
mov dword [esi + 0x884], eax
mov dword [0x59bc14], 0xffffffff
mov ecx, dword [esi + 0x884]
call fcn.0054af90
cmp ebp, 0x6e
jne 0x4e1bc1
mov ecx, esi
call fcn.0042d850
mov ecx, 1
call fcn.004e1260
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x59bcd4]
test eax, eax
je 0x4e1bfc
mov eax, dword [0x5adb34]
cmp eax, 1
jne 0x4e1be1
mov ecx, dword [0x59bcd8]
call fcn.0041d4f0
jmp 0x4e1bfc
cmp eax, 2
jne 0x4e1bfc
push ebx
xor edx, edx
xor ecx, ecx
call fcn.004772b0
mov edx, 1
mov ecx, eax
call fcn.00520010
mov ecx, dword [0x5b4314]
push 0
push 0
push 0x8020
push ecx
jmp 0x4e1f16
test esi, esi
je case.0x4e1775.101
push 0x20
push esi
call fcn.00570260
add esp, 8
test eax, eax
je case.0x4e1775.101
lea edi, [eax + 1]
mov byte [eax], 0
cmp byte [edi], 0x20
mov dword [esp + 0x18], esi
jne 0x4e1c48
jmp 0x4e1c40
mov al, byte [edi + 1]
inc edi
cmp al, 0x20
je 0x4e1c40
cmp byte [edi], 0
je case.0x4e1775.101
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.004e15b0
mov eax, dword [0x5ab144]
test eax, eax
je 0x4e1f37
cmp dword [0x5a5700], 2
je 0x4e1f37
test byte [0x5a9e28], 8
jne 0x4e1f37
mov eax, dword [0x5b3d40]
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4e1cb5
push 0x5ab648
push ebp
push str._s_id__s
push 0x5ab158
call ebx
add esp, 0x10
mov ecx, 0x5ab158
call fcn.00539c30
test eax, eax
jne 0x4e1d14
mov eax, dword [0x59bb78]
test eax, eax
je 0x4e1cd1
push 0
xor edx, edx
mov ecx, edi
call fcn.004b18c0
test eax, eax
jne 0x4e1f37
mov eax, dword [0x5a9720]
test eax, eax
je 0x4e1d14
push 0x5ab648
push ebp
push str._s_id__s
push 0x5ab158
call ebx
push 0x5ab158
call fcn.00580fc6
add esp, 0x14
push 0
push 0
mov edx, 0x583d70
mov ecx, 0x5ab158
call fcn.004b0bf0
test eax, eax
jne 0x4e1e60
call fcn.0048f520
mov esi, eax
test esi, esi
je 0x4e1f37
push ebp
lea ecx, [esi + 4]
mov edx, 0x64
call fcn.0041ee40
lea ebp, [esi + 0xcc]
push 0x5ab648
mov edx, 0x64
mov ecx, ebp
call fcn.0041ee40
push ebp
lea ecx, [esi + 0x68]
mov edx, 0x64
call fcn.0041ee40
mov dx, word [0x59bc0c]
mov ecx, dword [esp + 0x10]
mov eax, 1
push 0xa
mov word [esi + 0x454], dx
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x440], eax
mov dword [esi + 0x47c], eax
mov eax, dword [esp + 0x18]
push 0
push edx
mov dword [esi + 0x480], eax
mov dword [esi + 0x4b8], ecx
call fcn.0057052c
mov dword [esi + 0x464], eax
mov eax, 0x5ab158
add esp, 0xc
sub eax, edi
mov cl, byte [edi]
mov byte [edi + eax], cl
inc edi
test cl, cl
jne 0x4e1da7
push 0x5a15c8
push 0x5a14c8
push 0x5a13c8
push 0x5a13c0
push 0x5ab158
call fcn.005706cf
push 0x5a15c8
push 0x5a14c8
lea edi, [esi + 0x234]
push 0x583954
push edi
call ebx
add esp, 0x24
push 0
push 0
lea edx, [esi + 0x130]
mov ecx, edi
call fcn.004810d0
mov ecx, edi
call fcn.0041fb20
test eax, eax
jne 0x4e1f2e
mov eax, dword [0x5ae60c]
test eax, eax
je 0x4e1ea4
xor eax, eax
mov ecx, 0x201
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 0xf
push str.DCCSERVER
push 0
xor edx, edx
mov dword [esp + 0x5c], esi
call fcn.0050e610
test eax, eax
je 0x4e1f2e
mov eax, dword [esi + 0x450]
test eax, eax
je 0x4e1ea4
xor edx, edx
mov ecx, esi
call fcn.0048fa10
mov ecx, dword [str.151_rejected_n]
mov eax, dword [0x584c84]
mov edx, dword [0x584c80]
mov dword [0x5ab540], ecx
mov cx, word [0x584c88]
mov dword [0x5ab548], eax
mov eax, 0x5ab540
mov dword [0x5ab544], edx
mov word [0x5ab54c], cx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e1e98
jmp 0x4e18f7
mov eax, dword [0x59bc14]
mov dword [esi + 0x4b0], eax
mov dword [0x59bc14], 0xffffffff
mov ecx, dword [esi + 0x4b0]
call fcn.0054af90
mov eax, dword [0x59bcd4]
test eax, eax
je 0x4e1f06
mov eax, dword [0x5adb44]
cmp eax, 1
jne 0x4e1ee4
mov ecx, dword [0x59bcd8]
call fcn.0041d4f0
jmp 0x4e1f06
cmp eax, 2
jne 0x4e1f06
mov ecx, dword [esp + 0x10]
push ecx
xor edx, edx
mov ecx, 4
call fcn.004772b0
mov edx, 1
mov ecx, eax
call fcn.00520010
mov edx, dword [0x5b4314]
push 0
push 0
push 0x8010
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, 1
call fcn.004e1260
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov ecx, esi
call fcn.0048fa10
mov eax, dword [str.150_unavailable_n]
mov ecx, dword [0x589ba0]
mov edx, dword [0x589ba4]
mov dword [0x5ab540], eax
mov eax, dword [0x589ba8]
mov dword [0x5ab544], ecx
mov cl, byte [0x589bac]
mov dword [0x5ab54c], eax
mov eax, 0x5ab540
mov dword [0x5ab548], edx
mov byte [0x5ab550], cl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e1f77
jmp 0x4e18f7
test esi, esi
je case.0x4e1775.101
cmp byte [esi], 0
je case.0x4e1775.101
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.004e15b0
mov eax, dword [0x5a9720]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4e202c
push 0x5ab648
push edi
push str._s_id__s
push 0x5ab158
call ebp
push 0x5ab158
call fcn.00580fc6
add esp, 0x14
push 0
push 0
mov edx, 0x583d70
mov ecx, 0x5ab158
call fcn.004b0bf0
test eax, eax
je 0x4e202c
mov eax, dword [str.151_rejected_n]
mov edx, dword [0x584c84]
mov ecx, dword [0x584c80]
mov dword [0x5ab540], eax
mov ax, word [0x584c88]
mov word [0x5ab54c], ax
mov eax, 0x5ab540
mov dword [0x5ab548], edx
mov dword [0x5ab544], ecx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e2020
jmp 0x4e1b6d
mov ecx, 0x5ab158
sub ecx, esi
mov al, byte [esi]
mov byte [esi + ecx], al
inc esi
test al, al
jne 0x4e2033
push 0x5a15c8
push 0x5a14c8
push 0x5a13c8
push 0x5a13c0
push 0x5ab158
call fcn.005706cf
push 0x5a15c8
push 0x5a14c8
push 0x583954
push 0x5ab158
call ebp
add esp, 0x24
mov ecx, 0x5ab158
call fcn.0041fb20
test eax, eax
jne 0x4e2274
mov edi, dword [0x5a3a48]
test edi, edi
je 0x4e2274
mov esi, 3
lea esp, [esp]
mov eax, dword [edi + 0x540]
test eax, eax
je 0x4e20ca
cmp dword [edi + 0x520], esi
jne 0x4e20ca
lea edx, [edi + 0x4b8]
push 0x5ab648
push edx
call fcn.005809c6
add esp, 8
test eax, eax
je 0x4e20d9
mov edi, dword [edi + 0x88c]
test edi, edi
jne 0x4e20a0
jmp 0x4e2274
push 0x5ab158
lea ebx, [edi + 0x648]
push ebx
push 0x589b94
push 0x5ac5e0
call ebp
add esp, 0x10
mov edx, 1
mov ecx, 0x5ac5e0
call fcn.0041fd10
test eax, eax
je 0x4e2274
mov esi, dword [0x5afc18]
test esi, esi
mov dword [esp + 0x10], 0
je 0x4e214f
lea ebp, [edi + 0x4b8]
mov eax, dword [esi + 0x33c]
test eax, eax
jle 0x4e2145
lea eax, [esi + 0xcc]
push ebp
push eax
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x4e2145
inc dword [esp + 0x10]
mov esi, dword [esi + 0x3cc]
test esi, esi
jne 0x4e2123
mov ecx, dword [esp + 0x10]
cmp ecx, dword [edi + 0x868]
jge 0x4e2274
call fcn.00514b00
test eax, eax
jne 0x4e2274
mov ecx, dword [edi + 0x888]
call fcn.004e2760
test eax, eax
je 0x4e2274
call fcn.005148e0
mov esi, eax
test esi, esi
je 0x4e2274
lea edx, [edi + 0x3f0]
push edx
lea ecx, [esi + 4]
mov edx, 0x64
call fcn.0041ee40
lea eax, [edi + 0x4b8]
push eax
lea ecx, [esi + 0xcc]
mov edx, 0x64
call fcn.0041ee40
lea ecx, [edi + 0x454]
push ecx
lea ecx, [esi + 0x68]
mov edx, 0x64
call fcn.0041ee40
lea ebp, [esi + 0x130]
push ebx
mov edx, 0x104
mov ecx, ebp
call fcn.0041ee40
lea ebx, [esi + 0x234]
push 0x5ab158
mov edx, 0x104
mov ecx, ebx
call fcn.0041ee40
mov ecx, ebp
call fcn.004203c0
mov dx, word [0x59bc0c]
mov eax, 1
push ebx
mov dword [esi + 0x374], eax
mov dword [esi + 0x3ac], eax
mov dword [esi + 0x33c], eax
mov eax, dword [esp + 0x18]
push ebp
mov word [esi + 0x354], dx
mov dword [esi + 0x378], 3
mov dword [esi + 0x37c], eax
mov ecx, dword [edi + 0x888]
push 0x583954
push 0x5ab158
mov dword [esi + 0x3c8], ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [esp + 0x2c]
push edx
push 0x5ab158
call fcn.005815d4
add esp, 0x18
test eax, eax
je 0x4e22c0
xor edx, edx
mov ecx, esi
call fcn.005152b0
mov eax, dword [str.150_unavailable_n]
mov ecx, dword [0x589ba0]
mov edx, dword [0x589ba4]
mov dword [0x5ab540], eax
mov eax, dword [0x589ba8]
mov dword [0x5ab544], ecx
mov cl, byte [0x589bac]
mov dword [0x5ab54c], eax
mov eax, 0x5ab540
mov dword [0x5ab548], edx
mov byte [0x5ab550], cl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e22b4
jmp 0x4e18f7
mov eax, dword [esp + 0x30]
mov dword [esi + 0x364], eax
mov ecx, dword [0x59bc14]
mov dword [esi + 0x3c4], ecx
mov dword [0x59bc14], 0xffffffff
mov ecx, dword [esi + 0x3c4]
call fcn.0054af90
mov edx, dword [esi + 0x364]
mov eax, dword [edi + 0x888]
push edx
add eax, 0xdfc
push eax
push str.131__s__lu_n
push 0x5ab158
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, 0x5ab158
add esp, 0x10
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e2320
mov ecx, dword [esi + 0x3c4]
push 0
sub eax, edx
push eax
push 0x5ab158
push ecx
call dword [sym.imp.WSOCK32.dll_send]
mov edx, dword [0x5b4314]
mov eax, dword [esi + 0x3c4]
push 0x21
push 0x8014
push edx
push eax
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov ecx, 1
call fcn.004e1260
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret