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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405817
mov eax, dword fs:[0]
push eax
sub esp, 0x1f4
mov eax, dword [0x409008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1b0], edi
xorps xmm0, xmm0
xor edx, edx
mov esi, 0xf
mov dword [ebp - 0x118], edx
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x114], esi
mov byte [ebp - 0x128], dl
mov dword [ebp - 4], edx
movups xmmword [ebp - 0x1ac], xmm0
mov dword [ebp - 0x19c], edx
movups xmmword [ebp - 0x194], xmm0
mov dword [ebp - 0x198], esi
mov byte [ebp - 0x1ac], dl
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x180], esi
mov byte [ebp - 0x194], dl
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x178], edx
mov dword [ebp - 0x174], edx
mov dword [ebp - 0x170], edx
movups xmmword [ebp - 0x16c], xmm0
mov dword [ebp - 0x15c], edx
movups xmmword [ebp - 0x154], xmm0
mov dword [ebp - 0x158], esi
mov byte [ebp - 0x16c], dl
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x140], esi
mov byte [ebp - 0x154], dl
mov dword [ebp - 0x13c], 0xfff1
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x12c], edx
mov byte [ebp - 4], 2
test edi, edi
je case.0x4020f6.65528
mov eax, dword [edi + 0x30]
add eax, 0xffff0010
cmp eax, 0xb
ja case.0x4020f6.65528
jmp dword [eax*4 + 0x4029a4]
mov eax, dword [edi + 0x40]
sub eax, 0xf0
shl eax, 6
add eax, dword [0x409424]
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x34]
cmp eax, ecx
je 0x402130
mov edx, dword [edi + 0x34]
nop dword [eax + eax]
cmp edx, dword [eax + 0x34]
je 0x402239
add eax, 0x44
cmp eax, ecx
jne 0x402120
lea eax, [ebp - 0x200]
push edi
mov ecx, eax
mov dword [ebp - 0x1b4], eax
call fcn.00402ec0
lea esi, [edi + 0x18]
mov byte [ebp - 4], 3
push esi
lea ecx, [ebp - 0x1e8]
call fcn.00402ec0
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x40]
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x1cc], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x1c8], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], ecx
lea eax, [ecx - 0xf0]
mov byte [ebp - 4], 4
cmp eax, 0xa
ja 0x4021b1
add ecx, 0xffffff10
lea eax, [ebp - 0x200]
shl ecx, 6
add ecx, 0x34
add ecx, dword [0x409424]
push eax
call fcn.00402dc0
lea ecx, [ebp - 0x200]
mov byte [ebp - 4], 2
call fcn.00401b00
push 8
push str.Join_ok_
mov ecx, esi
call fcn.00403130
push 6
push str.Server
mov ecx, edi
call fcn.00403130
mov ecx, edi
call fcn.004029e0
push 0
push 0x252
mov esi, eax
push esi
push dword [edi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, str.Join
push 0x403930
push dword [edi + 0x40]
call fcn.00403710
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
mov edx, str._OK_
mov ecx, eax
call fcn.00403710
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp case.0x4020f6.65528
lea esi, [edi + 0x18]
jmp 0x4021c0
mov esi, dword [edi + 0x40]
add esi, 0xffffff10
cmp esi, 0xa
ja 0x40231e
mov ecx, edi
call fcn.004029e0
mov dword [ebp - 0x1b4], eax
xor ecx, ecx
shl esi, 6
mov dword [ebp - 0x1b8], esi
mov eax, dword [ebp - 0x1b8]
mov esi, dword [0x409424]
mov dword [ebp - 0x1bc], ecx
mov ecx, dword [eax + esi + 0x38]
sub ecx, dword [eax + esi + 0x34]
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x40230f
xor ecx, ecx
mov dword [ebp - 0x1b0], ecx
nop dword [eax]
mov eax, dword [ebp - 0x1b8]
mov eax, dword [eax + esi + 0x34]
mov eax, dword [eax + ecx + 0x34]
cmp dword [edi + 0x34], eax
je 0x4022d3
push 0
push 0x252
push dword [ebp - 0x1b4]
push eax
call dword [sym.imp.WS2_32.dll_send]
mov esi, dword [0x409424]
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b8]
add ecx, 0x44
inc dword [ebp - 0x1bc]
mov dword [ebp - 0x1b0], ecx
mov ecx, dword [eax + esi + 0x38]
sub ecx, dword [eax + esi + 0x34]
mov eax, 0x78787879
imul ecx
mov ecx, dword [ebp - 0x1b0]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x1bc], eax
jb 0x4022a0
push dword [ebp - 0x1b4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push dword [edi + 0x40]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.channel:
call fcn.00403710
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
mov edx, str.__user:
mov ecx, eax
call fcn.00403710
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x40234f
mov edx, dword [edi]
push 0x403930
push dword [edi + 0x10]
mov ecx, eax
call fcn.00403c30
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
jmp case.0x4020f6.65528
mov eax, dword [0x409428]
mov ecx, dword [0x409424]
sub eax, ecx
sar eax, 6
mov dword [ebp - 0x1b4], 0
test eax, eax
je 0x40248d
xor esi, esi
mov dword [ebp - 0x1b0], esi
nop dword [eax + eax]
cmp dword [esi + ecx + 0x14], 0x10
lea eax, [esi + ecx]
mov ecx, eax
jb 0x4023ae
mov ecx, dword [eax]
push dword [eax + 0x30]
lea eax, [ebp - 0x110]
push ecx
push str._s__ID:_0x
push eax
call fcn.004036d0
lea ecx, [ebp - 0x110]
add esp, 0x10
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4023d0
mov eax, dword [ebp - 0x114]
sub ecx, edx
mov edx, dword [ebp - 0x118]
sub eax, edx
mov dword [ebp - 0x1bc], ecx
push ecx
cmp ecx, eax
ja 0x402433
cmp dword [ebp - 0x114], 0x10
lea eax, [edx + ecx]
mov dword [ebp - 0x118], eax
lea esi, [ebp - 0x128]
cmovae esi, dword [ebp - 0x128]
lea eax, [ebp - 0x110]
add esi, edx
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x1bc]
add esp, 0xc
mov byte [esi + eax], 0
mov esi, dword [ebp - 0x1b0]
jmp 0x402453
lea eax, [ebp - 0x110]
mov byte [ebp - 0x1b8], 0
push eax
push dword [ebp - 0x1b8]
push ecx
lea ecx, [ebp - 0x128]
call fcn.00403ac0
mov eax, dword [0x409428]
add esi, 0x40
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [0x409424]
inc edx
sub eax, ecx
mov dword [ebp - 0x1b4], edx
sar eax, 6
mov dword [ebp - 0x1b0], esi
cmp edx, eax
jb 0x4023a0
mov esi, dword [ebp - 0x114]
mov edx, dword [ebp - 0x118]
lea ecx, [edi + 0x18]
lea eax, [ebp - 0x128]
cmp ecx, eax
je 0x4024ab
cmp esi, 0x10
push edx
cmovae eax, dword [ebp - 0x128]
push eax
call fcn.00403130
mov ecx, edi
mov dword [edi + 0x30], 0xfff1
call fcn.004029e0
push 0
push 0x252
mov esi, eax
push esi
push dword [edi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp case.0x4020f6.65528
mov esi, dword [0x409430]
xor ecx, ecx
mov dword [ebp - 0x1b0], ecx
mov eax, 0x78787879
mov ecx, dword [0x409434]
sub ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle case.0x4020f6.65528
xor edx, edx
mov dword [ebp - 0x1b8], edx
mov eax, dword [edi + 0x38]
lea ecx, [edx + esi]
cmp eax, dword [ecx + 0x38]
jne 0x4025b9
cmp ecx, edi
je 0x402544
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x40252f
mov eax, dword [edi]
push dword [edi + 0x10]
push eax
call fcn.00403130
mov esi, dword [0x409430]
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esi, edx
mov edx, str.Nickname:
call fcn.00403710
cmp dword [esi + 0x14], 0x10
mov edx, esi
jb 0x402560
mov edx, dword [esi]
push 0x403930
push dword [esi + 0x10]
mov ecx, eax
call fcn.00403c30
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 0xc
push str.Nickname_ok_
lea ecx, [edi + 0x18]
call fcn.00403130
mov ecx, edi
call fcn.004029e0
push 0
push 0x252
mov esi, eax
push esi
push dword [edi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov esi, dword [0x409430]
add esp, 4
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [0x409434]
add edx, 0x44
inc dword [ebp - 0x1b0]
sub ecx, esi
mov dword [ebp - 0x1b8], edx
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1b8]
cmp dword [ebp - 0x1b0], eax
jl 0x402512
jmp case.0x4020f6.65528
mov eax, dword [0x409428]
xor esi, esi
mov ecx, dword [0x409424]
sub eax, ecx
sar eax, 6
test eax, eax
je case.0x4020f6.65528
xor edx, edx
mov dword [ebp - 0x1b4], edx
nop word [eax + eax]
mov eax, dword [edx + ecx + 0x30]
cmp eax, dword [edi + 0x40]
jne 0x402666
lea eax, [edi + 0x18]
lea edi, [ecx + 0x18]
add edi, edx
mov dword [ebp - 0x1bc], edi
cmp edi, eax
mov edi, dword [ebp - 0x1b0]
je 0x402666
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x40264b
mov edx, dword [eax]
push dword [eax + 0x10]
mov ecx, dword [ebp - 0x1bc]
push edx
call fcn.00403130
mov ecx, dword [0x409424]
mov edx, dword [ebp - 0x1b4]
mov eax, dword [0x409428]
inc esi
sub eax, ecx
add edx, 0x40
sar eax, 6
mov dword [ebp - 0x1b4], edx
cmp esi, eax
jb 0x402620
jmp case.0x4020f6.65528
mov eax, dword [0x409428]
xor edx, edx
mov ecx, dword [0x409424]
sub eax, ecx
sar eax, 6
mov dword [ebp - 0x1b4], edx
test eax, eax
je case.0x4020f6.65528
xor esi, esi
mov dword [ebp - 0x1b0], esi
nop dword [eax + eax]
lea eax, [esi + ecx]
mov dword [ebp - 0x1bc], eax
mov eax, dword [eax + 0x30]
cmp eax, dword [edi + 0x40]
jne 0x40271a
mov eax, dword [ebp - 0x1bc]
lea ecx, [edi + 0x18]
add eax, 0x18
cmp ecx, eax
je 0x4026e4
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x4026db
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00403130
mov ecx, edi
call fcn.004029e0
push 0
push 0x252
mov esi, eax
push esi
push dword [edi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [0x409424]
add esp, 4
mov edx, dword [ebp - 0x1b4]
mov esi, dword [ebp - 0x1b0]
mov eax, dword [0x409428]
inc edx
sub eax, ecx
mov dword [ebp - 0x1b4], edx
add esi, 0x40
sar eax, 6
mov dword [ebp - 0x1b0], esi
cmp edx, eax
jb 0x4026b0
jmp case.0x4020f6.65528
lea eax, [ebp - 0x200]
push edi
mov ecx, eax
mov dword [ebp - 0x1b4], eax
call fcn.00402ec0
lea eax, [edi + 0x18]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x1e8]
call fcn.00402ec0
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x38]
mov dword [ebp - 0x1d0], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x1cc], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x1c4], eax
lea eax, [ecx - 0xf0]
mov dword [ebp - 0x1c8], edx
mov dword [ebp - 0x1c0], ecx
cmp eax, 0xa
ja 0x4027e1
mov esi, dword [0x409424]
shl ecx, 6
add esi, ecx
mov ecx, dword [esi - 0x3bc8]
mov eax, dword [esi - 0x3bcc]
cmp eax, ecx
je 0x4027e1
nop dword [eax + eax]
cmp edx, dword [eax + 0x38]
je 0x4027ce
add eax, 0x44
cmp eax, ecx
jne 0x4027c0
jmp 0x4027e1
push eax
lea eax, [ebp - 0x1b4]
push eax
lea ecx, [esi - 0x3bcc]
call fcn.00402d30
lea ecx, [ebp - 0x200]
call fcn.00401b00
mov ecx, edi
mov dword [edi + 0x40], 0
call fcn.004029e0
push 0
push 0x252
mov esi, eax
push esi
push dword [edi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp case.0x4020f6.65528
mov esi, dword [0x409430]
mov eax, dword [0x409434]
cmp esi, eax
je case.0x4020f6.65528
mov ecx, dword [edi + 0x3c]
cmp ecx, dword [esi + 0x38]
je 0x402843
add esi, 0x44
cmp esi, eax
jne 0x402832
jmp case.0x4020f6.65528
mov ecx, edi
call fcn.004029e0
push 0
push 0x252
mov edi, eax
push edi
push dword [esi + 0x34]
call dword [sym.imp.WS2_32.dll_send]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
jmp case.0x4020f6.65528
mov ecx, edi
call fcn.00402a90
jmp case.0x4020f6.65528
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x4064b4
call fcn.00403710
cmp dword [edi + 0x14], 0x10
mov edx, edi
jb 0x402892
mov edx, dword [edi]
push dword [edi + 0x10]
mov ecx, eax
call fcn.00403c30
add esp, 4
mov edx, str.__ID:
mov ecx, eax
push 0x403930
push dword [edi + 0x38]
call fcn.00403710
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int_]
mov edx, 0x40649c
mov ecx, eax
call fcn.00403710
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [0x409430]
mov edx, dword [0x409434]
cmp eax, edx
je 0x402901
mov ecx, dword [edi + 0x38]
cmp ecx, dword [eax + 0x38]
je 0x4028ef
add eax, 0x44
cmp eax, edx
jne 0x4028e1
jmp 0x402901
push eax
lea eax, [ebp - 0x1b4]
mov ecx, 0x409430
push eax
call fcn.00402d30
mov eax, dword [0x409448]
mov edx, dword [0x40944c]
cmp eax, edx
je case.0x4020f6.65528
mov esi, dword [edi + 0x34]
lea ecx, [eax + 4]
cmp dword [eax], esi
je 0x402922
mov eax, ecx
cmp eax, edx
jne 0x402913
jmp case.0x4020f6.65528
sub edx, ecx
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
sub dword [0x40944c], 4
lea ecx, [ebp - 0x16c]
call fcn.00401b00
lea ecx, [ebp - 0x1ac]
call fcn.00401f40
mov ecx, dword [ebp - 0x114]
cmp ecx, 0x10
jb 0x402988
mov edx, dword [ebp - 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40297e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40297e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004049d8
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004049ca
mov esp, ebp
pop ebp
ret