Function at 0x140002200
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
push r14
mov r11, rcx
mov r9d, r8d
mov ecx, r8d
mov rdi, rdx
sub ecx, 0x80
je 0x14000223c
sub ecx, 0x40
je 0x140002233
cmp ecx, 0x40
jne 0x140002a0c
mov dword [r11], 0xe
jmp 0x140002243
mov dword [r11], reloc.WS2_32.dll_inet_ntoa
jmp 0x140002243
mov dword [r11], 0xa
lea rbx, [r11 + 0x10]
mov qword [rsp + 0x20], rsi
mov rsi, rbx
shr r9d, 5
sub rsi, rdi
mov qword [r11 + 8], rbx
xor r10d, r10d
lea r8, [rdx + 2]
mov r14, rbx
mov rax, rbx
nop word [rax + rax]
movzx eax, byte [r8]
movzx edx, byte [r8 + 1]
lea r8, [r8 + 4]
shl edx, 8
or edx, eax
movzx eax, byte [r8 - 5]
shl edx, 8
or edx, eax
lea eax, [r10*4]
shl edx, 8
inc r10d
movsxd rcx, eax
movzx eax, byte [rcx + rdi]
or edx, eax
mov dword [rsi + r8 - 6], edx
cmp r10d, r9d
jl 0x140002270
mov eax, dword [r11]
mov qword [rsp + 0x18], rbp
cmp eax, 0xa
je 0x1400027d2
cmp eax, 0xc
je 0x1400023dc
cmp eax, 0xe
jne 0x140002a02
movzx edx, byte [r14 + 0x1e]
lea r11, [r14 + 0x1e]
mov ebx, dword [rbx]
lea rdi, [0x14004b890]
lea rax, str.cw
lea rsi, [0x14004b8ac]
mov r10d, dword [r11 - 2]
movzx ecx, byte [r11 + 1]
lea r11, [r11 + 0x20]
movzx r8d, byte [rcx + rax]
movzx ecx, dl
shl r8d, 8
movzx edx, byte [rcx + rax]
xor r8d, edx
movzx ecx, r10b
shl r8d, 8
movzx edx, byte [rcx + rax]
mov ecx, r10d
shr ecx, 8
shl edx, 0x18
xor r8d, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor r8d, ecx
xor ebx, r8d
xor ebx, dword [rdi]
add rdi, 4
mov ecx, ebx
mov dword [r11 - 0x1e], ebx
xor ecx, dword [r11 - 0x3a]
mov dword [r11 - 0x1a], ecx
xor ecx, dword [r11 - 0x36]
mov dword [r11 - 0x16], ecx
xor ecx, dword [r11 - 0x32]
mov r8d, ecx
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr ecx, 8
mov dword [r11 - 0x12], r8d
movzx r9d, byte [rdx + rax]
shl r9d, 8
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor r9d, ecx
mov ecx, r8d
shl r9d, 8
shr rcx, 0x18
movzx edx, byte [rcx + rax]
shl edx, 0x18
xor r9d, edx
movzx ecx, r8b
movzx edx, byte [rcx + rax]
xor r9d, edx
xor r9d, dword [r11 - 0x2e]
mov dword [r11 - 0xe], r9d
xor r9d, dword [r11 - 0x2a]
mov dword [r11 - 0xa], r9d
xor r9d, dword [r11 - 0x26]
xor r10d, r9d
mov dword [r11 - 6], r9d
mov edx, r10d
mov dword [r11 - 2], r10d
shr edx, 0x10
cmp rdi, rsi
jl 0x1400022f0
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x30]
pop r14
pop rdi
ret
mov r8d, dword [r14 + 0x14]
lea rax, str.cw
movzx ecx, byte [r14 + 0x17]
movzx edi, byte [rcx + rax]
movzx ecx, byte [r14 + 0x16]
shl edi, 8
movzx edx, byte [rcx + rax]
xor edi, edx
movzx ecx, r8b
shl edi, 8
xor edi, 1
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor edi, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor edi, ecx
xor edi, dword [rbx]
mov r9d, edi
mov dword [r14 + 0x18], edi
xor r9d, dword [r14 + 4]
mov r10d, r9d
mov dword [r14 + 0x1c], r9d
xor r10d, dword [r14 + 8]
mov r11d, r10d
mov dword [r14 + 0x20], r10d
xor r11d, dword [r14 + 0xc]
mov ebx, r11d
mov dword [r14 + 0x24], r11d
xor ebx, dword [r14 + 0x10]
xor r8d, ebx
mov dword [r14 + 0x28], ebx
mov ecx, r8d
shr rcx, 0x18
mov dword [r14 + 0x2c], r8d
movzx esi, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl esi, 8
movzx ecx, byte [rdx + rax]
xor esi, ecx
movzx ecx, r8b
shl esi, 8
xor esi, 2
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor esi, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor esi, ecx
xor esi, edi
mov edi, esi
mov dword [r14 + 0x30], esi
xor edi, r9d
mov r9d, edi
mov dword [r14 + 0x34], edi
xor r9d, r10d
mov r10d, r9d
mov dword [r14 + 0x38], r9d
xor r10d, r11d
mov r11d, r10d
mov dword [r14 + 0x3c], r10d
xor r11d, ebx
mov ecx, r11d
mov dword [r14 + 0x40], r11d
xor ecx, r8d
mov r8d, ecx
shr rcx, 0x18
mov dword [r14 + 0x44], r8d
movzx ebp, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl ebp, 8
movzx ecx, byte [rdx + rax]
xor ebp, ecx
shl ebp, 8
xor ebp, 4
movzx ecx, r8b
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor ebp, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor ebp, ecx
xor ebp, esi
mov ebx, ebp
mov dword [r14 + 0x48], ebp
xor ebx, edi
mov edi, ebx
mov dword [r14 + 0x4c], ebx
xor edi, r9d
mov r9d, edi
mov dword [r14 + 0x50], edi
xor r9d, r10d
mov r10d, r9d
mov dword [r14 + 0x54], r9d
xor r10d, r11d
xor r8d, r10d
mov dword [r14 + 0x58], r10d
mov ecx, r8d
shr rcx, 0x18
mov dword [r14 + 0x5c], r8d
movzx esi, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl esi, 8
movzx ecx, byte [rdx + rax]
xor esi, ecx
movzx ecx, r8b
shl esi, 8
xor esi, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor esi, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor esi, ecx
xor esi, ebp
mov r11d, esi
mov dword [r14 + 0x60], esi
xor r11d, ebx
mov ebx, r11d
mov dword [r14 + 0x64], r11d
xor ebx, edi
mov edi, ebx
mov dword [r14 + 0x68], ebx
xor edi, r9d
mov r9d, edi
mov dword [r14 + 0x6c], edi
xor r9d, r10d
xor r8d, r9d
mov dword [r14 + 0x70], r9d
mov ecx, r8d
shr rcx, 0x18
mov dword [r14 + 0x74], r8d
movzx ebp, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl ebp, 8
movzx ecx, byte [rdx + rax]
xor ebp, ecx
movzx ecx, r8b
shl ebp, 8
xor ebp, 0x10
movzx edx, byte [rcx + rax]
mov ecx, r8d
shl edx, 0x18
xor ebp, edx
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor ebp, ecx
xor ebp, esi
mov r10d, ebp
mov dword [r14 + 0x78], ebp
xor r10d, r11d
mov r11d, r10d
mov dword [r14 + 0x7c], r10d
xor r11d, ebx
mov ebx, r11d
mov dword [r14 + 0x80], r11d
xor ebx, edi
mov edi, ebx
mov dword [r14 + 0x84], ebx
xor edi, r9d
xor r8d, edi
mov dword [r14 + 0x88], edi
mov ecx, r8d
shr rcx, 0x18
mov dword [r14 + 0x8c], r8d
movzx esi, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl esi, 8
movzx ecx, byte [rdx + rax]
xor esi, ecx
movzx ecx, r8b
shl esi, 8
xor esi, 0x20
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor esi, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor esi, ecx
xor esi, ebp
mov r9d, esi
mov dword [r14 + 0x90], esi
xor r9d, r10d
mov r10d, r9d
mov dword [r14 + 0x94], r9d
xor r10d, r11d
mov r11d, r10d
mov dword [r14 + 0x98], r10d
xor r11d, ebx
mov ebx, r11d
mov dword [r14 + 0x9c], r11d
xor ebx, edi
xor r8d, ebx
mov dword [r14 + 0xa0], ebx
mov ecx, r8d
shr rcx, 0x18
mov dword [r14 + 0xa4], r8d
movzx ebp, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl ebp, 8
movzx ecx, byte [rdx + rax]
xor ebp, ecx
movzx ecx, r8b
shl ebp, 8
xor ebp, 0x40
movzx edx, byte [rcx + rax]
mov ecx, r8d
shl edx, 0x18
xor ebp, edx
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor ebp, ecx
xor ebp, esi
mov edi, ebp
mov dword [r14 + 0xa8], ebp
xor edi, r9d
mov esi, edi
mov dword [r14 + 0xac], edi
xor esi, r10d
mov r10d, esi
mov dword [r14 + 0xb0], esi
xor r10d, r11d
mov r11d, r10d
mov dword [r14 + 0xb4], r10d
xor r11d, ebx
mov ecx, r11d
mov dword [r14 + 0xb8], r11d
xor ecx, r8d
mov r9d, ecx
shr rcx, 0x18
mov dword [r14 + 0xbc], r9d
movzx r8d, byte [rcx + rax]
mov ecx, r9d
shl r8d, 8
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor r8d, ecx
movzx ecx, r9b
shl r8d, 8
btc r8d, 7
movzx edx, byte [rcx + rax]
mov ecx, r9d
shl edx, 0x18
xor r8d, edx
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor r8d, ecx
xor r8d, ebp
mov rbp, qword [rsp + 0x18]
mov dword [r14 + 0xc0], r8d
xor r8d, edi
mov dword [r14 + 0xc4], r8d
xor r8d, esi
mov rsi, qword [rsp + 0x20]
mov dword [r14 + 0xc8], r8d
xor r8d, r10d
mov dword [r14 + 0xcc], r8d
xor r8d, r11d
mov dword [r14 + 0xd0], r8d
xor r8d, r9d
mov dword [r14 + 0xd4], r8d
mov rbx, qword [rsp + 0x30]
pop r14
pop rdi
ret
movzx ebp, byte [r14 + 0xe]
lea rsi, [r14 + 0xe]
mov edi, dword [rbx]
lea r14, [0x14004b898]
mov qword [rsp + 0x28], r15
lea rax, str.cw
lea r15, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
nop word [rax + rax]
mov r8d, dword [rsi - 2]
movzx ecx, byte [rsi + 1]
movzx r11d, byte [rcx + rax]
shl r11d, 8
movzx ecx, bpl
movzx edx, byte [rcx + rax]
xor r11d, edx
movzx ecx, r8b
shl r11d, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor r11d, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor r11d, ecx
xor r11d, dword [r14 - 8]
xor r11d, edi
mov r9d, r11d
mov dword [rsi + 2], r11d
xor r9d, dword [rsi - 0xa]
mov r10d, r9d
mov dword [rsi + 6], r9d
xor r10d, dword [rsi - 6]
mov ecx, r10d
mov dword [rsi + 0xa], r10d
xor ecx, r8d
mov r8d, ecx
shr rcx, 0x18
mov dword [rsi + 0xe], r8d
movzx ebx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl ebx, 8
movzx ecx, byte [rdx + rax]
xor ebx, ecx
movzx ecx, r8b
shl ebx, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor ebx, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor ebx, ecx
xor ebx, dword [r14 - 4]
xor ebx, r11d
mov r11d, ebx
mov dword [rsi + 0x12], ebx
xor r11d, r9d
mov r9d, r11d
mov dword [rsi + 0x16], r11d
xor r9d, r10d
mov ecx, r9d
mov dword [rsi + 0x1a], r9d
xor ecx, r8d
mov r8d, ecx
shr rcx, 0x18
mov dword [rsi + 0x1e], r8d
movzx edi, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl edi, 8
movzx ecx, byte [rdx + rax]
xor edi, ecx
movzx ecx, r8b
shl edi, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shl edx, 0x18
xor edi, edx
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor edi, ecx
xor edi, dword [r14]
xor edi, ebx
mov r10d, edi
mov dword [rsi + 0x22], edi
xor r10d, r11d
mov dword [rsi + 0x26], r10d
lea rsi, [rsi + 0x50]
mov r11d, r10d
xor r11d, r9d
mov ecx, r11d
mov dword [rsi - 0x26], r11d
xor ecx, r8d
mov r8d, ecx
shr rcx, 0x18
mov dword [rsi - 0x22], r8d
movzx ebx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl ebx, 8
movzx ecx, byte [rdx + rax]
xor ebx, ecx
movzx ecx, r8b
shl ebx, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor ebx, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor ebx, ecx
xor ebx, dword [r14 + 4]
xor ebx, edi
mov r9d, ebx
mov dword [rsi - 0x1e], ebx
xor r9d, r10d
mov r10d, r9d
mov dword [rsi - 0x1a], r9d
xor r10d, r11d
xor r8d, r10d
mov dword [rsi - 0x16], r10d
mov ecx, r8d
shr rcx, 0x18
mov ebp, r8d
mov dword [rsi - 0x12], ebp
movzx edi, byte [rcx + rax]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
shl edi, 8
movzx ecx, byte [rdx + rax]
xor edi, ecx
movzx ecx, r8b
shl edi, 8
movzx edx, byte [rcx + rax]
mov ecx, r8d
shr ecx, 8
shl edx, 0x18
xor edi, edx
movzx edx, cl
movzx ecx, byte [rdx + rax]
xor edi, ecx
xor edi, dword [r14 + 8]
add r14, 0x14
xor edi, ebx
mov ecx, edi
mov dword [rsi - 0xe], edi
xor ecx, r9d
mov dword [rsi - 0xa], ecx
xor ecx, r10d
xor ebp, ecx
mov dword [rsi - 6], ecx
mov dword [rsi - 2], ebp
shr ebp, 0x10
cmp r14, r15
jl 0x140002800
mov r15, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x30]
pop r14
pop rdi
ret