Function at 0x140001638
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
mov r10, r8
mov r9, rcx
test rcx, rcx
je 0x140001b8e
test r8, r8
je 0x140001b8e
lea eax, [rdx - 0x80]
test eax, 0xffffff3f
jne 0x140001b87
cmp edx, 0x140
je 0x140001b87
mov r8d, 0xc0
lea r14d, [r8 - 0x40]
cmp edx, r14d
jne 0x14000169f
mov dword [r10 + 0xf0], 0xa
jmp 0x1400016b4
mov eax, recv
cmp edx, r8d
lea ecx, [rax - 2]
cmove eax, ecx
mov dword [r10 + 0xf0], eax
movzx eax, byte [r9 + 1]
lea rbx, [r10 + 4]
movzx esi, byte [r9]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 2]
shl esi, 8
xor esi, eax
movzx eax, byte [r9 + 3]
shl esi, 8
xor esi, eax
mov dword [r10], esi
movzx eax, byte [r9 + 5]
movzx ebp, byte [r9 + 4]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 6]
shl ebp, 8
xor ebp, eax
movzx eax, byte [r9 + 7]
shl ebp, 8
xor ebp, eax
mov dword [rbx], ebp
movzx eax, byte [r9 + 9]
movzx r11d, byte [r9 + 8]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xa]
shl r11d, 8
xor r11d, eax
movzx eax, byte [r9 + 0xb]
shl r11d, 8
xor r11d, eax
mov dword [r10 + 8], r11d
movzx eax, byte [r9 + 0xd]
movzx edi, byte [r9 + 0xc]
shl edi, 8
xor edi, eax
movzx eax, byte [r9 + 0xe]
shl edi, 8
xor edi, eax
movzx eax, byte [r9 + 0xf]
shl edi, 8
xor edi, eax
mov dword [r10 + 0xc], edi
cmp edx, r14d
jne 0x140001855
lea r9, str.ccccwwww
mov eax, edi
shr rax, 0x10
mov r14d, 0xff000000
movzx ecx, al
mov r15d, 0xff0000
mov eax, edi
mov r12d, 0xff00
shr rax, 8
mov r8d, dword [r9 + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edi
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dil
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x10], r8d
xor r8d, ebp
mov dword [r10 + 0x14], r8d
xor r8d, r11d
mov dword [r10 + 0x18], r8d
lea r11, [0x1400c00c4]
xor r8d, edi
mov dword [r10 + 0x1c], r8d
lea rbx, [rbx + 0x10]
mov r8d, dword [rbx + 8]
mov eax, r8d
shr rax, 8
movzx ecx, al
mov eax, r8d
shr rax, 0x10
mov edx, dword [r9 + rcx*4]
and edx, r15d
movzx ecx, al
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor edx, eax
mov eax, r8d
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor edx, eax
movzx eax, r8b
mov ecx, dword [r9 + rax*4]
lea rax, [0x1400c00e8]
and ecx, r12d
xor edx, ecx
xor edx, dword [rbx - 4]
xor edx, dword [r11]
add r11, 4
mov dword [rbx + 0xc], edx
xor edx, dword [rbx]
mov dword [rbx + 0x10], edx
xor edx, dword [rbx + 4]
mov dword [rbx + 0x14], edx
xor edx, r8d
mov dword [rbx + 0x18], edx
cmp r11, rax
jne 0x1400017df
jmp 0x140001b83
movzx eax, byte [r9 + 0x11]
movzx ecx, byte [r9 + 0x10]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x12]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x13]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x10], ecx
movzx eax, byte [r9 + 0x15]
movzx ecx, byte [r9 + 0x14]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x16]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x17]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x14], ecx
cmp edx, r8d
jne 0x1400019c6
mov edx, ecx
lea r9, str.ccccwwww
mov eax, ecx
mov r14d, 0xff000000
shr rax, 0x10
mov r15d, 0xff0000
movzx ecx, al
mov r12d, 0xff00
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
btc r8d, 0x18
movzx ecx, al
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x18], r8d
xor r8d, ebp
mov dword [r10 + 0x1c], r8d
xor r8d, r11d
mov dword [r10 + 0x20], r8d
lea r11, [0x1400c00c4]
xor r8d, edi
mov dword [r10 + 0x24], r8d
add r10, 0x28
mov eax, dword [r10 - 0x18]
xor eax, dword [r10 - 4]
mov dword [r10], eax
xor eax, dword [r10 - 0x14]
mov dword [r10 + 4], eax
lea r10, [r10 + 0x18]
mov edx, dword [r10 - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [r9 + rcx*4]
and r8d, r15d
movzx ecx, al
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
lea rax, [0x1400c00e0]
and ecx, r12d
xor r8d, ecx
xor r8d, dword [r10 - 0x28]
xor r8d, dword [r11]
add r11, 4
mov dword [r10 - 0x10], r8d
xor r8d, dword [r10 - 0x24]
mov dword [r10 - 0xc], r8d
xor r8d, dword [r10 - 0x20]
mov dword [r10 - 8], r8d
xor r8d, dword [r10 - 0x1c]
mov dword [r10 - 4], r8d
cmp r11, rax
jne 0x140001931
jmp 0x140001b83
movzx eax, byte [r9 + 0x19]
movzx ecx, byte [r9 + 0x18]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1a]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1b]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x18], ecx
movzx eax, byte [r9 + 0x1d]
movzx ecx, byte [r9 + 0x1c]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1e]
shl ecx, 8
xor ecx, eax
movzx eax, byte [r9 + 0x1f]
shl ecx, 8
xor ecx, eax
mov dword [r10 + 0x1c], ecx
cmp edx, 0x100
jne 0x140001b83
mov edx, ecx
lea r9, str.ccccwwww
mov eax, ecx
mov r14d, 0xff000000
shr rax, 0x10
mov r15d, 0xff0000
movzx ecx, al
mov r12d, 0xff00
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
btc r8d, 0x18
and r8d, r14d
mov eax, dword [r9 + rcx*4]
and eax, r15d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
and ecx, r12d
xor r8d, ecx
xor r8d, esi
mov dword [r10 + 0x20], r8d
xor r8d, ebp
xor r11d, r8d
mov dword [r10 + 0x24], r8d
mov dword [r10 + 0x28], r11d
xor r11d, edi
mov dword [r10 + 0x2c], r11d
add r10, 0x30
lea r11, [0x1400c00c4]
mov edx, dword [r10 - 4]
mov eax, edx
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 8
mov r8d, dword [r9 + rcx*4]
movzx ecx, al
and r8d, r15d
mov eax, dword [r9 + rcx*4]
and eax, r12d
xor r8d, eax
mov eax, edx
shr rax, 0x18
mov ecx, dword [r9 + rax*4]
and ecx, r14d
movzx eax, dl
xor r8d, ecx
movzx ecx, byte [r9 + rax*4]
xor r8d, ecx
xor r8d, dword [r10 - 0x20]
mov dword [r10], r8d
xor r8d, dword [r10 - 0x1c]
mov dword [r10 + 4], r8d
xor r8d, dword [r10 - 0x18]
mov dword [r10 + 8], r8d
xor r8d, dword [r10 - 0x14]
mov dword [r10 + 0xc], r8d
lea r10, [r10 + 0x20]
mov edx, dword [r10 - 0x14]
mov eax, edx
shr rax, 8
movzx ecx, al
mov eax, edx
shr rax, 0x10
mov r8d, dword [r9 + rcx*4]
and r8d, r15d
movzx ecx, al
mov eax, dword [r9 + rcx*4]
and eax, r14d
xor r8d, eax
mov eax, edx
shr rax, 0x18
movzx eax, byte [r9 + rax*4]
xor r8d, eax
movzx eax, dl
mov ecx, dword [r9 + rax*4]
lea rax, [0x1400c00dc]
and ecx, r12d
xor r8d, ecx
xor r8d, dword [r10 - 0x30]
xor r8d, dword [r11]
add r11, 4
mov dword [r10 - 0x10], r8d
xor r8d, dword [r10 - 0x2c]
mov dword [r10 - 0xc], r8d
xor r8d, dword [r10 - 0x28]
mov dword [r10 - 8], r8d
xor r8d, dword [r10 - 0x24]
mov dword [r10 - 4], r8d
cmp r11, rax
jne 0x140001aa5
xor eax, eax
jmp 0x140001b91
mov eax, 0xfffffffe
jmp 0x140001b91
or eax, 0xffffffff
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret