Function at 0x4068e0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov dword [ebp - 4], 0x45ed10
mov ebx, dword [ebp - 4]
push esi
push edi
mov edi, dword [ebp - 4]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x406942
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.0042ec30
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 4], ecx
test esi, esi
je 0x406939
sub edi, ecx
jmp 0x406920
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov ecx, dword [ebp - 4]
cmp edx, dword [ebx + 0xf]
jb 0x406920
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
mov ebx, dword [ebp + 0xc]
lea eax, [ebx + 2]
mov dword [ebp - 8], eax
jmp 0x406950
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x406970
test cl, cl
je 0x40696c
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x406970
add eax, 2
add edi, 2
test cl, cl
jne 0x406950
xor eax, eax
jmp 0x406975
sbb eax, eax
or eax, 1
test eax, eax
je 0x406b20
mov dword [ebp - 4], 0x45ed34
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x4069d2
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.0042ec30
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 4], ecx
test esi, esi
je 0x4069c9
sub edi, ecx
nop
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov ecx, dword [ebp - 4]
cmp edx, dword [ebx + 0xf]
jb 0x4069b0
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
mov eax, dword [ebp - 8]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x4069f5
test cl, cl
je 0x4069f1
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x4069f5
add eax, 2
add edi, 2
test cl, cl
jne 0x4069d5
xor eax, eax
jmp 0x4069fa
sbb eax, eax
or eax, 1
test eax, eax
je 0x406b1d
mov dword [ebp - 4], 0x45ed10
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x406a56
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.0042ec30
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 4], ecx
test esi, esi
je 0x406a4d
sub edi, ecx
mov eax, edx
add ecx, edx
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov ecx, dword [ebp - 4]
cmp edx, dword [ebx + 0xf]
jb 0x406a34
mov eax, dword [ebx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
mov ebx, dword [ebp + 0xc]
add ebx, 0x12
mov dword [ebp - 0xc], ebx
mov eax, ebx
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x406a81
test cl, cl
je 0x406a7d
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x406a81
add eax, 2
add edi, 2
test cl, cl
jne 0x406a61
xor eax, eax
jmp 0x406a86
sbb eax, eax
or eax, 1
test eax, eax
je 0x406b1d
mov dword [ebp - 4], 0x45ed34
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 4]
add edi, 0x14
mov dword [ebp - 8], esi
cmp byte [esi + 0x13], 0
je 0x406af0
mov esi, dword [esi + 0xf]
lea eax, [esi + 1]
push eax
call fcn.0042ec30
add esp, 4
mov ecx, eax
xor edx, edx
mov dword [ebp - 4], ecx
test esi, esi
mov esi, dword [ebp - 8]
je 0x406ae5
mov ebx, eax
sub edi, ebx
mov eax, edx
lea ecx, [edx + ebx]
and eax, 7
inc edx
mov al, byte [eax + esi + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
cmp edx, dword [esi + 0xf]
jb 0x406ac8
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
mov edi, edi
mov al, byte [ebx]
cmp al, byte [edi]
jne 0x406b10
test al, al
je 0x406b0c
mov al, byte [ebx + 1]
cmp al, byte [edi + 1]
jne 0x406b10
add ebx, 2
add edi, 2
test al, al
jne 0x406af0
xor eax, eax
jmp 0x406b15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x406bc0
mov ebx, dword [ebp + 0xc]
movzx eax, word [ebx + 0x22]
lea esi, [ebx + 2]
mov edi, dword [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.00408ca0
test eax, eax
movzx eax, word [ebx + 0x22]
push eax
push esi
jne 0x406b5c
push str.Error_StartServerForServer:_IP_s__t_Port_d_
push 4
push 0x474174
call fcn.00406e00
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.StartServerForServer:_IP_s__t_Port_d_
push 4
push 0x474174
call fcn.00406e00
movzx eax, word [ebx]
add esp, 0x14
cmp eax, 2
je 0x406b7d
cmp eax, 1
jne 0x406bb2
movzx eax, word [ebx + 0x24]
lea esi, [ebx + 0x12]
push eax
push esi
mov ecx, edi
call fcn.00408cc0
test eax, eax
movzx eax, word [ebx + 0x24]
push eax
push esi
jne 0x406b9e
push str.Error_StartServerForUser:_IP_s__t_Port_d_
jmp 0x406b42
push str.StartServerForUser:__IP_s__t_Port_d_
push 4
push 0x474174
call fcn.00406e00
add esp, 0x14
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0
push 0
push str.Not_IP_register_is_not_exist._this_server_will_be_closed
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call fcn.0042ec10
int3