Function at 0x49fee0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [ebp - 0x18], ecx
mov eax, dword [0x598258]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x59825c], 0xa
setge cl
setl ah
xor ah, dl
jne 0x49ff1d
or cl, al
jne 0x4a01a7
push eax
mov dword [ebp - 0x24], esp
mov eax, dword [0x598260]
mov ecx, dword [0x598264]
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [ebp - 0x20]
cmp ecx, 0xa
setl byte [ebp - 0x14]
mov edx, 0x8e887494
mov eax, 0xd6533a68
vxorps xmm0, xmm0, xmm0
mov ecx, 0x21a34bba
mov edi, dword [ebp - 0x18]
nop dword [eax + eax]
cmp edx, 0x1af14750
jle 0x49ff80
cmp edx, 0x1af14751
je 0x49ff92
cmp edx, 0x21a34bba
jne 0x49ff60
jmp 0x4a0028
cmp edx, 0x8e887494
je 0x49ffab
cmp edx, 0xd6533a68
jne 0x49ff60
jmp 0x49ffd0
vmovups xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
mov edx, 0xd6533a68
jmp 0x49ff60
movzx ebx, byte [ebp - 0x20]
movzx edx, byte [ebp - 0x14]
mov dh, bl
xor dh, dl
mov esi, 0x1af14751
cmovne esi, eax
test dl, dl
mov edx, esi
cmovne edx, eax
test bl, bl
cmove edx, esi
jmp 0x49ff60
mov dword [ebp - 0x10], edi
mov edx, dword [ebp - 0x10]
vmovups xmmword [edx], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
mov edi, dword [0x598260]
mov esi, dword [0x598264]
lea edx, [edi - 1]
imul edx, edi
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete bl
cmp esi, 0xa
setl bh
xor bh, bl
mov edi, 0x1af14751
cmovne edi, ecx
cmp edx, 0xffffffff
mov edx, edi
cmove edx, ecx
cmp esi, 0xa
cmovge edx, edi
jmp 0x49ff58
mov eax, dword [ebp - 0x10]
mov eax, dword [0x597610]
lea ecx, [eax + 1]
imul ecx, eax
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
sete byte [ebp - 0x14]
mov edx, dword [0x597614]
mov esi, 0xbc50146f
mov ebx, 0x2b32a888
cmove ebx, esi
sete al
mov dword [ebp - 0x1c], edx
cmp edx, 0xa
setl byte [ebp - 0x10]
mov edx, 0x2b32a888
cmovge ebx, edx
setl ah
xor ah, al
cmovne ebx, esi
mov eax, 0xdb6005b8
nop word cs:[eax + eax]
cmp eax, 0xdb6005b7
jg 0x4a00a0
cmp eax, 0xbc50146f
je 0x4a00e6
cmp eax, 0xd056dfbd
jne 0x4a0080
mov eax, ebx
jmp 0x4a0080
cmp eax, 0x2b32a888
je 0x4a00df
cmp eax, 0xdb6005b8
jne 0x4a0080
movzx edx, byte [ebp - 0x14]
movzx eax, byte [ebp - 0x10]
mov dh, al
xor dh, dl
test al, al
mov eax, 0x2b32a888
mov esi, 0xd056dfbd
cmovne eax, esi
test dl, dl
mov esi, 0x2b32a888
cmove eax, esi
test dh, dh
mov edx, 0xd056dfbd
cmovne eax, edx
jmp 0x4a0080
mov eax, 0xd056dfbd
jmp 0x4a0080
test edi, ecx
sete byte [ebp - 0x14]
cmp dword [ebp - 0x1c], 0xa
setl byte [ebp - 0x10]
mov esi, 0xdb6005b8
mov ecx, 0xd056dfbd
mov edi, 0x2b32a888
nop word cs:[eax + eax]
cmp esi, 0xdb6005b7
jg 0x4a0130
cmp esi, 0xbc50146f
je 0x4a0169
cmp esi, 0xd056dfbd
jne 0x4a0110
mov esi, ebx
jmp 0x4a0110
cmp esi, 0x2b32a888
je 0x4a0162
cmp esi, 0xdb6005b8
jne 0x4a0110
movzx eax, byte [ebp - 0x14]
movzx edx, byte [ebp - 0x10]
mov ah, dl
xor ah, al
test dl, dl
mov esi, 0x2b32a888
cmovne esi, ecx
test al, al
cmove esi, edi
test ah, ah
cmovne esi, ecx
jmp 0x4a0110
mov esi, 0xd056dfbd
jmp 0x4a0110
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x10]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 0x10]
mov eax, dword [0x598258]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, dword [edx + 0x14]
sete cl
cmp dword [0x59825c], 0xa
setl dl
test dl, cl
jne 0x4a03d9
xor dl, cl
jne 0x4a03d9
mov eax, dword [0x598260]
mov ecx, dword [0x598264]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [ebp - 0x20]
cmp ecx, 0xa
setl byte [ebp - 0x14]
mov edi, 0x8e887494
mov esi, 0xd6533a68
mov ecx, 0x1af14751
vxorps xmm0, xmm0, xmm0
mov edx, 0x21a34bba
jmp 0x4a0210
movzx eax, byte [ebp - 0x20]
mov bh, byte [ebp - 0x14]
mov bl, al
xor bl, bh
test bh, bh
mov edi, 0x1af14751
cmovne edi, esi
test al, al
cmove edi, ecx
test bl, bl
cmovne edi, esi
nop word cs:[eax + eax]
cmp edi, 0x1af14750
jle 0x4a0230
cmp edi, 0x1af14751
je 0x4a028c
cmp edi, 0x21a34bba
jne 0x4a0210
jmp 0x4a02ab
cmp edi, 0x8e887494
je 0x4a01e4
cmp edi, 0xd6533a68
jne 0x4a0210
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
vmovups xmmword [eax], xmm0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov eax, dword [0x598260]
lea edi, [eax + 1]
imul edi, eax
mov eax, edi
xor eax, 0xfffffffe
test eax, edi
sete al
mov edi, 0x1af14751
cmove edi, edx
cmp dword [0x598264], 0xa
cmovge edi, ecx
setl ah
xor ah, al
cmovne edi, edx
jmp 0x4a0210
mov eax, dword [ebp - 0x18]
vmovups xmmword [eax], xmm0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov edi, 0xd6533a68
jmp 0x4a0210
mov eax, dword [0x597610]
mov ecx, dword [0x597614]
lea edx, [eax - 1]
imul edx, eax
mov eax, edx
and eax, 1
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0xbc50146f
mov esi, 0x2b32a888
cmovne esi, eax
and edx, 1
mov edi, dword [ebp - 0x10]
sete byte [ebp - 0x14]
cmovne eax, esi
mov dword [ebp - 0x1c], ecx
cmp ecx, 0xa
setl byte [ebp - 0x10]
cmovge eax, esi
mov edi, 0xdb6005b8
nop dword [eax + eax]
cmp edi, 0xdb6005b7
jg 0x4a0320
cmp edi, 0xbc50146f
je 0x4a0362
cmp edi, 0xd056dfbd
jne 0x4a0300
mov edi, eax
jmp 0x4a0300
cmp edi, 0x2b32a888
je 0x4a035b
cmp edi, 0xdb6005b8
jne 0x4a0300
movzx ecx, byte [ebp - 0x14]
mov bh, byte [ebp - 0x10]
mov bl, cl
xor bl, bh
mov esi, 0x2b32a888
mov edi, 0xd056dfbd
cmovne esi, edi
test bh, bh
mov edi, esi
mov ebx, 0xd056dfbd
cmovne edi, ebx
test cl, cl
cmove edi, esi
jmp 0x4a0300
mov edi, 0xd056dfbd
jmp 0x4a0300
test edx, edx
sete byte [ebp - 0x14]
cmp dword [ebp - 0x1c], 0xa
setl byte [ebp - 0x10]
mov edx, 0xdb6005b8
mov ecx, 0xd056dfbd
nop word [eax + eax]
cmp edx, 0xdb6005b7
jg 0x4a03a0
cmp edx, 0xbc50146f
je 0x49ff1d
cmp edx, 0xd056dfbd
jne 0x4a0380
mov edx, eax
jmp 0x4a0380
cmp edx, 0x2b32a888
je 0x4a03d2
cmp edx, 0xdb6005b8
jne 0x4a0380
movzx ebx, byte [ebp - 0x14]
movzx edx, byte [ebp - 0x10]
mov dh, bl
xor dh, dl
mov esi, 0x2b32a888
cmovne esi, ecx
test dl, dl
mov edx, esi
cmovne edx, ecx
test bl, bl
cmove edx, esi
jmp 0x4a0380
mov edx, 0xd056dfbd
jmp 0x4a0380
lea ecx, [ebx + edi]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x14]
mov edx, ecx
sub edx, edi
cmp ebx, edx
ja 0x4a0449
cmp eax, ecx
ja 0x4a0449
mov esi, dword [ebp - 0x18]
mov ecx, esi
push dword [ebp + 0xc]
call fcn.004312c0
mov dword [ebp - 0x10], esi
mov edx, 0x7a6f23c6
mov eax, dword [ebp - 0x10]
mov ecx, 0x7bfe88dc
nop
cmp edx, 0x7f3c2ae8
je 0x4a0519
cmp edx, 0x7bfe88dc
je 0x4a043d
cmp edx, 0x7a6f23c6
jne 0x4a0410
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x14], 0x10
mov edx, 0x7f3c2ae8
cmovae edx, ecx
jmp 0x4a0410
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov edx, 0x7f3c2ae8
jmp 0x4a0410
sub eax, ebx
cmp edi, eax
jbe 0x4a056d
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x10
lea esi, [ebp - 0x14]
lea eax, [ebp - 0x10]
push esi
push eax
call fcn.0040b880
add esp, 8
mov eax, dword [eax]
dec eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], getpeername
lea eax, [ebp - 0x20]
push esi
push eax
call fcn.00409760
add esp, 8
mov eax, dword [eax]
mov ecx, eax
sub ecx, edi
cmp ecx, ebx
jb 0x4a0660
push eax
push 0xf
push dword [ebp - 0x1c]
call fcn.00409550
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
push ecx
mov esi, dword [ebp - 0x18]
push esi
call fcn.0045de00
add esp, 8
mov dword [esi], eax
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
mov dword [esi + 0x14], ecx
mov esi, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov edx, 0x7a6f23c6
mov eax, dword [ebp - 0x10]
mov ecx, 0x7bfe88dc
nop
cmp edx, 0x7f3c2ae8
je 0x4a05eb
cmp edx, 0x7bfe88dc
je 0x4a050d
cmp edx, 0x7a6f23c6
jne 0x4a04e0
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x14], 0x10
mov edx, 0x7f3c2ae8
cmovae edx, ecx
jmp 0x4a04e0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov edx, 0x7f3c2ae8
jmp 0x4a04e0
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x10], ecx
mov esi, 0x7a6f23c6
mov ecx, dword [ebp - 0x10]
mov edx, 0x7bfe88dc
nop dword [eax]
cmp esi, 0x7f3c2ae8
je 0x4a0565
cmp esi, 0x7bfe88dc
je 0x4a0559
cmp esi, 0x7a6f23c6
jne 0x4a0530
mov esi, dword [ebp - 0x10]
cmp dword [esi + 0x14], 0x10
mov esi, 0x7f3c2ae8
cmovae esi, edx
jmp 0x4a0530
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
mov esi, 0x7f3c2ae8
jmp 0x4a0530
inc ebx
add eax, edi
push ebx
push ecx
push eax
jmp 0x4a05d8
mov esi, dword [ebp - 0x18]
mov ecx, esi
push dword [ebp + 0x10]
call fcn.004312c0
mov esi, dword [esi]
inc ebx
lea eax, [esi + edi]
push ebx
push esi
push eax
call fcn.00562310
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov edx, 0x7a6f23c6
mov eax, dword [ebp - 0x10]
mov ecx, 0x7bfe88dc
nop
cmp edx, 0x7f3c2ae8
je 0x4a05d5
cmp edx, 0x7bfe88dc
je 0x4a05c9
cmp edx, 0x7a6f23c6
jne 0x4a05a0
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x14], 0x10
mov edx, 0x7f3c2ae8
cmovae edx, ecx
jmp 0x4a05a0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov edx, 0x7f3c2ae8
jmp 0x4a05a0
push edi
push eax
push esi
call fcn.00562310
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 0x10], ecx
jmp 0x4a0656
push edi
push eax
push esi
call fcn.00562310
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
mov edx, 0x7a6f23c6
mov eax, dword [ebp - 0x10]
mov ecx, 0x7bfe88dc
nop dword [eax]
cmp edx, 0x7f3c2ae8
je 0x4a0645
cmp edx, 0x7bfe88dc
je 0x4a0639
cmp edx, 0x7a6f23c6
jne 0x4a0610
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x14], 0x10
mov edx, 0x7f3c2ae8
cmovae edx, ecx
jmp 0x4a0610
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov edx, 0x7f3c2ae8
jmp 0x4a0610
inc ebx
add esi, edi
push ebx
push eax
push esi
call fcn.00562310
add esp, 0xc
mov eax, dword [ebp - 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.004094c0
int3