Function at 0x140017af0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r9, rdx
nop word cs:[rax + rax]
mov eax, dword [0x141dc0c70]
sub eax, dword [0x141dc0c74]
imul eax, eax, 0xc6d9865c
add eax, 0x694f8ae0
and eax, 0xbebf4aa4
cmp eax, 0x79566d23
je 0x140017b10
movzx r8d, byte [rcx]
cmp r8b, byte [r9]
jne 0x1400181cf
mov eax, dword [0x141dc0c78]
xor eax, dword [0x141dc0c7c]
add eax, 0x1139135e
cmp eax, 0xec1c8be3
ja 0x140017b40
mov sil, 1
lea rax, [r8 - 2]
cmp rax, 0xe
ja case.default.0x140017b77
lea rdx, [0x141db919c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov eax, dword [0x141dc0c80]
xor edx, edx
div dword [0x141dc0c84]
imul eax, eax, 0xc64d0f31
cmp eax, 0x58fea230
je case.0x140017b77.2
nop dword [rax + rax]
mov eax, dword [0x141dc0c88]
imul eax, dword [0x141dc0c8c]
xor eax, 0xe5dd8c65
imul rax, rax, 0x1009541d
shr rax, 0x3b
imul eax, eax, 0x967e66f6
cmp eax, 0x397ba9e0
ja 0x140017ba0
cmp r8d, 2
jne case.default.0x140017b77
mov r8, qword [rcx + 0x18]
nop dword [rax + rax]
mov eax, dword [0x141dc0ce0]
sub eax, dword [0x141dc0ce4]
or eax, 0xd7befd51
and eax, 0xf7feffd3
cmp eax, 0x89c1292d
je 0x140017be0
cmp r8, qword [r9 + 0x18]
jne 0x1400181cf
nop word [rax + rax]
mov eax, dword [0x141dc0ce8]
sub eax, dword [0x141dc0cec]
imul rax, rax, 0x70cdfc09
shr rax, 0x3e
imul eax, eax, 0x6491f508
cmp eax, 0x8eb30b54
ja 0x140017c10
mov rdx, qword [r9 + 0x10]
mov rcx, qword [rcx + 0x10]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
sete sil
mov ecx, 0xb019286b
nop dword [rax]
mov eax, dword [0x141dc0cf0]
xor edx, edx
div dword [0x141dc0cf4]
add eax, 0x8ea0da91
imul rax, rcx
shr rax, 0x3e
add eax, 0x96de5f6
cmp eax, 0xc23df360
ja 0x140017c50
jmp case.default.0x140017b77
mov eax, dword [0x141dc0c90]
imul eax, dword [0x141dc0c94]
imul rax, rax, 0x3bd9f159
shr rax, 0x3b
cmp eax, 0xf2a8f586
je case.0x140017b77.5
cmp r8d, 5
jne case.default.0x140017b77
nop dword [rax]
mov eax, dword [0x141dc0d18]
sub eax, dword [0x141dc0d1c]
cmp eax, 0x831822d1
je 0x140017cb0
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d20]
and eax, dword [0x141dc0d24]
imul rdx, rax, 0xf3d0a4f
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1d
add eax, 0x318945f
xor eax, 0xa62b9c5d
cmp eax, 0x4678abe3
jb 0x140017cd0
mov eax, dword [r9 + 4]
cmp dword [rcx + 4], eax
sete sil
jmp case.default.0x140017b77
mov eax, dword [0x141dc0cc0]
xor eax, dword [0x141dc0cc4]
imul eax, eax, 0xbb2ea595
or eax, 0x2795ab75
xor eax, 0x4ee9f96a
cmp eax, 0x3d41665b
jb case.0x140017b77.10
nop word cs:[rax + rax]
mov eax, dword [0x141dc0cc8]
imul eax, dword [0x141dc0ccc]
add eax, 0x7ecdbcc9
imul rax, rax, 0x7ae7abbd
shr rax, 0x3e
imul eax, eax, 0x440e719b
cmp eax, 0x6456fdcd
ja 0x140017d50
cmp r8d, 0xa
jne case.default.0x140017b77
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d48]
xor eax, dword [0x141dc0d4c]
or eax, 0x10024180
and eax, 0x1a0a4790
imul eax, eax, 0x468ce40b
cmp eax, 0xdc049d35
jb 0x140017d90
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d50]
imul eax, dword [0x141dc0d54]
and eax, 0xcdcf7a82
xor eax, 0xdabccc0c
add eax, 0x1fb35337
cmp eax, 0xfee671e4
ja 0x140017dc0
movzx eax, byte [rcx + 1]
cmp al, byte [r9 + 1]
sete sil
jmp case.default.0x140017b77
mov eax, dword [0x141dc0cd0]
and eax, dword [0x141dc0cd4]
imul eax, eax, 0xfe85b1a8
cmp eax, 0xd9d19cdc
je case.0x140017b77.15
cmp r8d, 0xf
jne case.default.0x140017b77
nop word cs:[rax + rax]
mov eax, dword [0x141dc0da0]
xor eax, dword [0x141dc0da4]
imul eax, eax, 0x7a834e63
imul rax, rax, 0x48b02ed9
shr rax, 0x3e
or eax, 0x38f1bee4
cmp eax, 0x9f9826f2
ja 0x140017e30
jmp 0x14001824e
cmp r8d, 4
jne case.default.0x140017b77
nop dword [rax + rax]
mov eax, dword [0x141dc0d08]
xor edx, edx
div dword [0x141dc0d0c]
and eax, 0x63c0c46a
imul eax, eax, 0x5de6caf2
and eax, 0x796b33c8
cmp eax, 0xadd017a3
ja 0x140017e70
movzx eax, word [rcx + 2]
cmp ax, word [r9 + 2]
sete sil
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d10]
and eax, dword [0x141dc0d14]
or eax, 0x917d51ee
imul rax, rax, 0x4a877bcf
shr rax, 0x3d
cmp eax, 0x296fb699
jae 0x140017eb0
jmp case.default.0x140017b77
mov eax, dword [0x141dc0c98]
xor edx, edx
div dword [0x141dc0c9c]
nop word cs:[rax + rax]
mov eax, dword [0x141dc0ca0]
or eax, dword [0x141dc0ca4]
add eax, 0xbc352597
shr eax, 1
imul rax, rax, 0x43f3fd5b
shr rax, 0x3d
or eax, 0xdf3e5898
cmp eax, 0xb9dc3ff2
jb 0x140017ef0
xor eax, eax
nop dword [rax]
test al, al
jne 0x140017f20
cmp r8d, 6
jne case.default.0x140017b77
jmp 0x140018067
mov eax, dword [0x141dc0cb0]
xor edx, edx
div dword [0x141dc0cb4]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140017f50
nop word cs:[rax + rax]
mov eax, dword [0x141dc0cb8]
xor edx, edx
div dword [0x141dc0cbc]
shr eax, 5
imul rax, rax, 0x8c5e36d
shr rax, 0x30
add eax, 0x211070fa
xor eax, 0x36656b5e
cmp eax, 0x1e0706e
jb 0x140017f60
cmp r8d, 9
jne case.default.0x140017b77
movzx eax, byte [rcx + 1]
nop dword [rax + rax]
mov ecx, dword [0x141dc0d40]
and ecx, dword [0x141dc0d44]
imul ecx, ecx, 0x4a0d59e3
imul rcx, rcx, 0x23cb4d0d
shr rcx, 0x3c
or ecx, 0xc757d934
cmp ecx, 0x63b439
jb 0x140017fa0
test al, al
sete al
cmp byte [r9 + 1], 0
setne sil
xor sil, al
jmp case.default.0x140017b77
cmp r8d, 0xb
jne case.default.0x140017b77
mov eax, 0xd03de415
mov edx, dword [0x141dc0d58]
xor edx, dword [0x141dc0d5c]
add edx, 0x52bdcabf
imul rdx, rax
shr rdx, 0x3e
add edx, 0x98575163
cmp edx, 0xef6baa6d
ja 0x140017ff0
movzx eax, word [rcx + 2]
cmp ax, word [r9 + 2]
sete sil
jmp case.default.0x140017b77
cmp r8d, 0xd
jne case.default.0x140017b77
mov r8d, 0xf924e629
nop word [rax + rax]
mov eax, dword [0x141dc0d60]
xor edx, edx
div dword [0x141dc0d64]
add eax, 0x9c28448b
or eax, 0xae1bd432
imul rax, r8
shr rax, 0x3c
cmp eax, 0x3306e08b
ja 0x140018040
mov rax, qword [rcx + 8]
cmp rax, qword [r9 + 8]
sete sil
jmp case.default.0x140017b77
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x140018080
cmp r8d, 0xe
jne case.default.0x140017b77
nop
mov eax, dword [0x141dc0d68]
or eax, dword [0x141dc0d6c]
or eax, 0x91102a0c
xor eax, 0x21f90a84
imul eax, eax, 0x5bdb79ba
cmp eax, 0x8039fba3
jb 0x140018090
mov r14, qword [rcx + 0x10]
mov r15, qword [rcx + 0x18]
mov eax, dword [0x141dc0d70]
xor edx, edx
div dword [0x141dc0d74]
nop dword [rax]
mov eax, dword [0x141dc0d78]
imul eax, dword [0x141dc0d7c]
xor eax, 0x73c6aae0
imul eax, eax, 0x73c09f71
add eax, 0x5c5649c4
cmp eax, 0x2aa45356
jb 0x1400180d0
mov r12, qword [r9 + 0x10]
mov eax, dword [0x141dc0d80]
xor edx, edx
div dword [0x141dc0d84]
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d88]
xor eax, dword [0x141dc0d8c]
add eax, 0x64a795d5
or eax, 0x45fa44cf
and eax, 0xd5fe7dff
cmp eax, 0x1cf1919a
jb 0x140018110
cmp r15, qword [r9 + 0x18]
jne 0x1400181cf
xor r13d, r13d
cmp r13, r15
sete sil
je case.default.0x140017b77
mov rdi, r13
shl rdi, 5
lea rbx, [r14 + rdi]
mov eax, dword [0x141dc0d90]
xor eax, dword [0x141dc0d94]
add rdi, r12
and eax, 0x803b800
imul eax, eax, 0xdb68b38d
cmp eax, 0x7d53500e
jne 0x140018183
mov rcx, rbx
mov rdx, rdi
call fcn.140017af0
inc r13
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d98]
xor eax, dword [0x141dc0d9c]
imul eax, eax, 0x20cbd1fb
or eax, 0xb72c9ae2
imul rbp, rax, 0x63677e41
shr rbp, 0x3e
mov rcx, rbx
mov rdx, rdi
call fcn.140017af0
cmp ebp, 0x6657e303
ja 0x140018190
test al, al
jne 0x14001813f
jmp case.default.0x140017b77
xor esi, esi
mov eax, esi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1400181f0
nop word cs:[rax + rax]
mov eax, dword [0x141dc0cd8]
or eax, dword [0x141dc0cdc]
add eax, 0x99191f1f
and eax, 0xb7a90506
cmp eax, 0xad701628
ja 0x140018200
cmp r8d, 0x10
jne case.default.0x140017b77
nop word cs:[rax + rax]
mov eax, dword [0x141dc0da8]
xor eax, dword [0x141dc0dac]
imul eax, eax, 0xa266f15
add eax, 0x5191ed80
cmp eax, 0xa65ed22c
ja 0x140018230
mov rcx, qword [rcx + 8]
mov rdx, qword [r9 + 8]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400dc460
cmp r8d, 3
jne case.default.0x140017b77
nop word cs:[rax + rax]
mov eax, dword [0x141dc0cf8]
add eax, dword [0x141dc0cfc]
imul eax, eax, 0x27e911c6
cmp eax, 0x22aed19a
je 0x140018280
movzx eax, byte [rcx + 1]
xor ecx, ecx
nop
cmp al, byte [r9 + 1]
sete sil
test cl, cl
jne 0x1400182a0
mov ecx, 0xb8e3e71f
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d00]
xor edx, edx
div dword [0x141dc0d04]
imul rax, rcx
shr rax, 0x3f
or eax, 0x794e12ac
cmp eax, 0x426efd15
jbe 0x1400182c0
jmp case.default.0x140017b77
cmp r8d, 7
jne case.default.0x140017b77
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d28]
xor edx, edx
div dword [0x141dc0d2c]
or eax, 0xd5dd2046
add eax, 0xd8a8e3c2
cmp eax, 0x17cd30cb
jb 0x140018300
movss xmm0, dword [rcx + 4]
nop word cs:[rax + rax]
mov eax, dword [0x141dc0d30]
xor eax, dword [0x141dc0d34]
movss xmm1, dword [r9 + 4]
cmpeqss xmm1, xmm0
movd esi, xmm1
and esi, 1
cmp eax, 0xaea238a0
je 0x140018330
jmp case.default.0x140017b77
xor eax, eax
nop dword [rax]
test al, al
jne 0x140018360
nop word cs:[rax + rax]
mov eax, dword [0x141dc0ca8]
add eax, dword [0x141dc0cac]
or eax, 0x41c1210
xor eax, 0x30200000
and eax, 0x747c1250
cmp eax, 0xf3ef80e9
je 0x140018370
cmp r8d, 8
jne case.default.0x140017b77
movsd xmm0, qword [r9 + 8]
cmpeqsd xmm0, qword [rcx + 8]
movq rsi, xmm0
and esi, 1
mov eax, 0xa6db1b73
nop word cs:[rax + rax]
mov ecx, dword [0x141dc0d38]
and ecx, dword [0x141dc0d3c]
imul ecx, ecx, 0xf71cc7e4
add ecx, 0x1adb7c40
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0xfcd565c0
ja 0x1400183c0
jmp case.default.0x140017b77
cmp r8d, 0xc
jne case.default.0x140017b77
xor eax, eax
nop dword [rax]
test al, al
jne 0x140018400
mov eax, dword [rcx + 4]
mov cl, 1
nop dword [rax]
cmp eax, dword [r9 + 4]
sete sil
test cl, cl
je 0x140018410
jmp case.default.0x140017b77