Function at 0x1402f9120
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x140367bb8]
xor rax, rsp
mov qword [rbp + 0x108], rax
mov rdi, qword [rbp + 0x178]
mov r14, r9
mov rsi, qword [rbp + 0x170]
mov r12, r8
mov r15, rdx
mov r13, rcx
test rcx, rcx
je 0x1402f99ba
test rdx, rdx
je 0x1402f99ba
cmp rdx, 0x10
jb 0x1402f99ba
test r15b, 0xf
jne 0x1402f99ba
xor eax, eax
xorps xmm0, xmm0
mov qword [rbp + 0x40], rax
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0x30], xmm0
test r9, r9
je 0x1402f91a8
mov qword [r9], rax
mov eax, 0x21
lea rcx, [rbp + 0xe0]
cmp rdi, rax
mov r8, rdi
mov rdx, rsi
cmova r8, rax
call sub.VCRUNTIME140.dll_memcpy
xorps xmm0, xmm0
lea rax, [rbp + 0x60]
xor edx, edx
movups xmmword [rbp + 0x60], xmm0
xor r8d, r8d
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
movups xmmword [rbp + 0xd0], xmm0
nop dword [rax]
nop dword [rax + rax]
movsxd rcx, edx
xor r9d, r9d
cmp rcx, rdi
cmovb r9d, edx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
test r8d, r8d
jne 0x1402f9273
add dl, 5
mov byte [rax], dl
lea edx, [r9 + 1]
movsxd rcx, edx
xor r9d, r9d
cmp rcx, rdi
cmovb r9d, edx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
xor dl, byte [rax]
mov byte [rax + 1], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 2]
test ecx, ecx
jne 0x1402f929d
add dl, 5
jmp 0x1402f92a0
xor dl, byte [rax - 1]
mov byte [rax], dl
lea edx, [r9 + 1]
movsxd rcx, edx
xor r9d, r9d
cmp rcx, rdi
cmovb r9d, edx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 1]
test ecx, ecx
jne 0x1402f9246
add dl, 5
jmp 0x1402f9248
xor dl, byte [rax + 1]
mov byte [rax + 2], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 3]
test ecx, ecx
jne 0x1402f92cb
add dl, 5
jmp 0x1402f92ce
xor dl, byte [rax + 2]
mov byte [rax + 3], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 4]
test ecx, ecx
jne 0x1402f92f9
add dl, 5
jmp 0x1402f92fc
xor dl, byte [rax + 3]
mov byte [rax + 4], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 5]
test ecx, ecx
jne 0x1402f9327
add dl, 5
jmp 0x1402f932a
xor dl, byte [rax + 4]
mov byte [rax + 5], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 6]
test ecx, ecx
jne 0x1402f9355
add dl, 5
jmp 0x1402f9358
xor dl, byte [rax + 5]
mov byte [rax + 6], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 7]
test ecx, ecx
jne 0x1402f9383
add dl, 5
jmp 0x1402f9386
xor dl, byte [rax + 6]
mov byte [rax + 7], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 8]
test ecx, ecx
jne 0x1402f93b1
add dl, 5
jmp 0x1402f93b4
xor dl, byte [rax + 7]
mov byte [rax + 8], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 9]
test ecx, ecx
jne 0x1402f93df
add dl, 5
jmp 0x1402f93e2
xor dl, byte [rax + 8]
mov byte [rax + 9], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xa]
test ecx, ecx
jne 0x1402f940d
add dl, 5
jmp 0x1402f9410
xor dl, byte [rax + 9]
mov byte [rax + 0xa], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xb]
test ecx, ecx
jne 0x1402f943b
add dl, 5
jmp 0x1402f943e
xor dl, byte [rax + 0xa]
mov byte [rax + 0xb], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xc]
test ecx, ecx
jne 0x1402f9469
add dl, 5
jmp 0x1402f946c
xor dl, byte [rax + 0xb]
mov byte [rax + 0xc], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xd]
test ecx, ecx
jne 0x1402f9497
add dl, 5
jmp 0x1402f949a
xor dl, byte [rax + 0xc]
mov byte [rax + 0xd], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xe]
test ecx, ecx
jne 0x1402f94c5
add dl, 5
jmp 0x1402f94c8
xor dl, byte [rax + 0xd]
mov byte [rax + 0xe], dl
lea ecx, [r9 + 1]
movsxd rdx, r9d
xor r9d, r9d
inc rdx
cmp rdx, rdi
cmovb r9d, ecx
movsxd rcx, r9d
movzx edx, byte [rcx + rsi]
lea ecx, [r8 + 0xf]
test ecx, ecx
jne 0x1402f94f3
add dl, 5
jmp 0x1402f94f6
xor dl, byte [rax + 0xe]
mov byte [rax + 0xf], dl
add r8d, 0x10
add rax, 0x10
lea edx, [r9 + 1]
cmp r8d, 0x80
jb 0x1402f9210
movzx ecx, byte [rbp + 0xe1]
lea rax, [rbp + 0x60]
shr rcx, 3
lea rdx, [rbp + 0x60]
add rax, rcx
cmp rcx, 0x10
lea rcx, [rbp + 0x48]
cmovae rdx, rax
lea rax, [rdx + 0xf]
cmp rcx, rax
ja 0x1402f954f
lea rax, [rbp + 0x57]
cmp rax, rdx
jb 0x1402f954f
movups xmm0, xmmword [rdx]
movups xmmword [rbp + 0x48], xmm0
jmp 0x1402f9556
movups xmm0, xmmword [rdx]
movups xmmword [rbp + 0x48], xmm0
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x110
call sub.VCRUNTIME140.dll_memset
lea rax, [rbp + 0x60]
mov dword [rsp + 0x24], 0xc0
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x20]
lea rax, [rbp + 0x48]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x38], rax
call fcn.1402fa670
mov r9d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x30]
mov r8, r13
lea rcx, [rsp + 0x20]
call fcn.1402faa70
xor eax, eax
lea rdx, [0x140310f50]
xor r8d, r8d
xor r9d, r9d
nop word [rax + rax]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx]
mov byte [rbp + r9 + 0x60], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 1]
mov byte [rbp + r9 + 0x61], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 2]
mov byte [rbp + r9 + 0x62], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 3]
mov byte [rbp + r9 + 0x63], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 4]
mov byte [rbp + r9 + 0x64], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 5]
mov byte [rbp + r9 + 0x65], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 6]
mov byte [rbp + r9 + 0x66], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 7]
mov byte [rbp + r9 + 0x67], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 8]
mov byte [rbp + r9 + 0x68], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 9]
mov byte [rbp + r9 + 0x69], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xa]
mov byte [rbp + r9 + 0x6a], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xb]
mov byte [rbp + r9 + 0x6b], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xc]
mov byte [rbp + r9 + 0x6c], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xd]
mov byte [rbp + r9 + 0x6d], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xe]
mov byte [rbp + r9 + 0x6e], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0xf]
mov byte [rbp + r9 + 0x6f], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x10]
mov byte [rbp + r9 + 0x70], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x11]
mov byte [rbp + r9 + 0x71], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x12]
mov byte [rbp + r9 + 0x72], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x13]
mov byte [rbp + r9 + 0x73], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x14]
mov byte [rbp + r9 + 0x74], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x15]
mov byte [rbp + r9 + 0x75], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x16]
mov byte [rbp + r9 + 0x76], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x17]
mov byte [rbp + r9 + 0x77], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x18]
mov byte [rbp + r9 + 0x78], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x19]
mov byte [rbp + r9 + 0x79], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x1a]
mov byte [rbp + r9 + 0x7a], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x1b]
mov byte [rbp + r9 + 0x7b], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x1c]
mov byte [rbp + r9 + 0x7c], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx + 0x1d]
mov byte [rbp + r9 + 0x7d], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
movsxd rax, ecx
lea r9, [r9 + 0x20]
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx - 2]
mov byte [rbp + r9 + 0x5e], al
lea eax, [rcx + 1]
xor ecx, ecx
cmp eax, 8
cmovl ecx, eax
add r8d, 0x20
movsxd rax, ecx
movzx eax, byte [rbp + rax + 0x30]
xor al, byte [r9 + rdx - 1]
mov byte [rbp + r9 + 0x5f], al
lea eax, [rcx + 1]
cmp r8d, 0x80
jb 0x1402f95c0
lea rax, [rbp + 0x60]
mov qword [rsp + 0x24], 0x80
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x20]
lea rax, [rbp + 0x48]
mov qword [rsp + 0x38], rax
call fcn.1402fa670
lea r9d, [r15 - 0x10]
mov rdx, r12
lea r8, [r13 + 0x10]
lea rcx, [rsp + 0x20]
call fcn.1402fab80
mov eax, eax
test r14, r14
je 0x1402f99c6
mov qword [r14], rax
jmp 0x1402f99c6
test r14, r14
je 0x1402f99c6
mov qword [r9], 0
mov rcx, qword [rbp + 0x108]
xor rcx, rsp
call fcn.1402fa650
add rsp, 0x210
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret