Function at 0x140016bd0
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 rsi, rdx
mov eax, dword [0x141dc2948]
xor edx, edx
div dword [0x141dc294c]
nop word cs:[rax + rax]
mov eax, dword [0x141dc2950]
xor edx, edx
div dword [0x141dc2954]
xor eax, 0xdf7d635e
imul eax, eax, 0x32534767
cmp eax, 0x80d6ac8d
je 0x140016c00
movzx r8d, byte [rcx]
cmp r8b, byte [rsi]
jne 0x14001745d
nop dword [rax]
mov eax, dword [0x141dc2958]
imul eax, dword [0x141dc295c]
imul eax, eax, 0x5a5e27ab
add eax, 0x977259dd
cmp eax, 0x5142c52e
jb 0x140016c30
nop
mov eax, dword [0x141dc2960]
and eax, dword [0x141dc2964]
or eax, 0x8950c176
add eax, 0xaea1b007
xor eax, 0xff141494
cmp eax, 0xb8c35dd9
ja 0x140016c50
mov dil, 1
lea rax, [r8 - 2]
cmp rax, 0xe
ja case.default.0x140016c91
lea rdx, [0x141dbb3ac]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
mov eax, dword [0x141dc2968]
sub eax, dword [0x141dc296c]
and eax, 0x8a5ee1d5
add eax, 0x722490a1
cmp eax, 0xa6024a26
jb case.0x140016c91.2
cmp r8d, 2
jne case.default.0x140016c91
mov r8, qword [rcx + 0x18]
nop dword [rax + rax]
mov eax, dword [0x141dc2a08]
and eax, dword [0x141dc2a0c]
imul eax, eax, 0xfc8578e9
add eax, 0x6bc558f4
imul rax, rax, 0x1a263fdb
shr rax, 0x3c
cmp eax, 0x90829440
ja 0x140016cd0
mov rax, qword [rsi + 0x18]
nop dword [rax]
mov edx, dword [0x141dc2a10]
xor edx, dword [0x141dc2a14]
add edx, 0x9ed947e5
or edx, 0xbc99fa57
cmp edx, 0x6685fe08
jb 0x140016d00
cmp r8, rax
jne 0x14001745d
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rcx + 0x10]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
sete dil
jmp case.default.0x140016c91
mov eax, dword [0x141dc2970]
xor eax, dword [0x141dc2974]
imul eax, eax, 0xa2e22cd8
add eax, 0xd0394d9c
cmp eax, 0x1d50af1d
jb case.0x140016c91.3
nop
mov eax, dword [0x141dc2978]
xor edx, edx
div dword [0x141dc297c]
add eax, 0x37bacd3
imul rdx, rax, 0x16768617
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
xor eax, 0xa5b340d1
cmp eax, 0x699d7288
jb 0x140016d70
cmp r8d, 3
jne case.default.0x140016c91
mov eax, dword [0x141dc2a18]
xor edx, edx
div dword [0x141dc2a1c]
nop dword [rax + rax]
mov eax, dword [0x141dc2a20]
sub eax, dword [0x141dc2a24]
imul rax, rax, 0x5018aedf
shr rax, 0x3e
cmp eax, 0x3843d742
je 0x140016dc0
jmp 0x1400172c8
mov eax, dword [0x141dc2980]
xor eax, dword [0x141dc2984]
or eax, 0x98392cc3
cmp eax, 0xfea57969
je case.0x140016c91.4
nop dword [rax + rax]
mov eax, dword [0x141dc2988]
sub eax, dword [0x141dc298c]
and eax, 0x83688e98
add eax, 0xb5fae062
and eax, 0xa5838c50
cmp eax, 0xd1559da2
ja 0x140016e10
cmp r8d, 4
jne case.default.0x140016c91
movzx eax, word [rcx + 2]
movzx ecx, word [rsi + 2]
nop word cs:[rax + rax]
mov edx, dword [0x141dc2a28]
imul edx, dword [0x141dc2a2c]
or edx, 0x81001809
xor edx, 0x44000
and edx, 0x811cda09
cmp ax, cx
sete dil
cmp edx, 0xdb3b0338
je 0x140016e50
jmp case.default.0x140016c91
mov eax, dword [0x141dc29a8]
xor edx, edx
div dword [0x141dc29ac]
and eax, 0xc6a27c29
xor eax, 0x652a3744
imul eax, eax, 0x74712756
cmp eax, 0x217b22b0
je case.0x140016c91.6
cmp r8d, 6
jne case.default.0x140016c91
nop
mov eax, dword [0x141dc2a38]
xor edx, edx
div dword [0x141dc2a3c]
add eax, 0x57020ff6
or eax, 0xc3ad91d
and eax, 0x7f7adb9d
cmp eax, 0xd38f3ce7
ja 0x140016ec0
mov rax, qword [rcx + 8]
mov rcx, qword [rsi + 8]
xor edx, edx
nop
cmp rax, rcx
sete dil
test dl, dl
jne 0x140016ef0
jmp case.default.0x140016c91
mov eax, dword [0x141dc29b8]
imul eax, dword [0x141dc29bc]
or eax, 0xa13b09b1
and eax, 0xef7f2fbf
cmp eax, 0x870daeb2
je case.0x140016c91.9
cmp r8d, 9
jne case.default.0x140016c91
nop dword [rax + rax]
mov eax, dword [0x141dc2a48]
mov edx, dword [0x141dc2a4c]
add eax, edx
add eax, 0x71c1c8
imul rax, rax, 0x4c6b2117
shr rax, 0x3e
xor eax, 0x4b9bf4a7
cmp eax, 0x20e3ef79
jb 0x140016f30
movzx eax, byte [rcx + 1]
nop
mov ecx, dword [0x141dc2a50]
xor ecx, dword [0x141dc2a54]
xor ecx, 0x7ff2ea9c
imul edx, ecx, 0x55c04a94
add edx, 0x5017f3c4
test al, al
sete dil
cmp byte [rsi + 1], 0
setne cl
cmp edx, 0x3245dff0
jb 0x140016f60
xor dil, cl
nop word cs:[rax + rax]
mov eax, dword [0x141dc2a58]
sub eax, dword [0x141dc2a5c]
imul eax, eax, 0x4922ea96
and eax, 0x57255126
cmp eax, 0x6ca82b84
jae 0x140016fa0
jmp case.default.0x140016c91
mov eax, dword [0x141dc29e8]
imul eax, dword [0x141dc29ec]
or eax, 0x9a7afa0b
imul eax, eax, 0x78c52cd1
add eax, 0x4700437e
cmp eax, 0x93afb44e
ja case.0x140016c91.13
cmp r8d, 0xd
jne case.default.0x140016c91
mov eax, dword [0x141dc2a88]
xor edx, edx
div dword [0x141dc2a8c]
nop dword [rax]
mov eax, dword [0x141dc2a90]
sub eax, dword [0x141dc2a94]
xor eax, 0x88d8a8bc
imul rax, rax, 0x51a476ab
shr rax, 0x3e
or eax, 0xb564fd30
cmp eax, 0x5348b4f7
jb 0x140017010
mov eax, dword [0x141dc2a98]
xor edx, edx
div dword [0x141dc2a9c]
nop word cs:[rax + rax]
mov eax, dword [0x141dc2aa0]
xor eax, dword [0x141dc2aa4]
and eax, 0x55a177b3
mov rdx, qword [rcx + 8]
cmp rdx, qword [rsi + 8]
sete dil
cmp eax, 0x3ac44b8c
je 0x140017050
jmp case.default.0x140016c91
mov eax, dword [0x141dc29f0]
xor edx, edx
div dword [0x141dc29f4]
and eax, 0x3607010
or eax, 0xac930f6d
imul eax, eax, 0xc88a782a
cmp eax, 0x60d8edb5
jb case.0x140016c91.14
cmp r8d, 0xe
jne case.default.0x140016c91
nop
mov eax, dword [0x141dc2aa8]
sub eax, dword [0x141dc2aac]
shr eax, 3
imul rax, rax, 0x21be8ba3
shr rax, 0x37
not eax
and eax, 0xa04a0043
cmp eax, 0xf6c57a07
je 0x1400170b0
mov rbx, qword [rcx + 0x18]
cmp rbx, qword [rsi + 0x18]
jne 0x14001745d
mov r14, qword [rcx + 0x10]
mov r15, qword [rsi + 0x10]
xor r13d, r13d
nop word cs:[rax + rax]
mov eax, dword [0x141dc2ab0]
xor edx, edx
div dword [0x141dc2ab4]
add eax, 0x660f1f5e
or eax, 0xf9d86beb
cmp r13, rbx
sete dil
cmp eax, 0x5adfd96f
je 0x140017100
cmp r13, rbx
je case.default.0x140016c91
lea rbp, [r13 + 1]
nop word cs:[rax + rax]
mov eax, dword [0x141dc2ab8]
mov ecx, dword [0x141dc2abc]
add eax, ecx
add eax, 0x95917fe8
xor eax, 0xc33966fc
cmp eax, 0x4ad213bf
ja 0x140017140
shl r13, 5
lea rsi, [r14 + r13]
xor eax, eax
test al, al
je 0x140017180
lea rdx, [r15 + r13]
mov rcx, rsi
call fcn.140016bd0
nop dword [rax]
mov r12d, dword [0x141dc2ac0]
sub r12d, dword [0x141dc2ac4]
and r12d, 0x880a0428
or r12d, 0x57e0db15
xor r12d, 0xf0b7be37
lea rdx, [r15 + r13]
mov rcx, rsi
call fcn.140016bd0
cmp r12d, 0x9e632eb
jb 0x140017180
mov r13, rbp
test al, al
jne 0x140017100
jmp case.default.0x140016c91
mov eax, dword [0x141dc29b0]
imul eax, dword [0x141dc29b4]
add eax, 0x5f9bfa35
and eax, 0xd03b1900
imul eax, eax, 0xe8450c48
cmp eax, 0x494f70e3
je case.0x140016c91.8
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140017200
cmp r8d, 8
jne case.default.0x140016c91
movsd xmm0, qword [rsi + 8]
cmpeqsd xmm0, qword [rcx + 8]
movq rdi, xmm0
and edi, 1
jmp case.default.0x140016c91
mov eax, dword [0x141dc29c0]
xor edx, edx
div dword [0x141dc29c4]
imul eax, eax, 0xc42f3758
add eax, 0xab8ae1d0
and eax, 0xd54087b0
cmp eax, 0xd77faa78
ja case.0x140016c91.10
nop word cs:[rax + rax]
mov eax, dword [0x141dc29c8]
or eax, dword [0x141dc29cc]
imul eax, eax, 0x7b95fe41
add eax, 0xbb6d3936
cmp eax, 0xc171de45
ja 0x140017260
cmp r8d, 0xa
jne case.default.0x140016c91
nop dword [rax + rax]
mov eax, dword [0x141dc2a60]
or eax, dword [0x141dc2a64]
add eax, 0x1fc39558
or eax, 0x256fa52a
cmp eax, 0x232eda23
je 0x140017290
nop dword [rax]
mov eax, dword [0x141dc2a68]
or eax, dword [0x141dc2a6c]
and eax, 0xc2262738
cmp eax, 0x46a5591a
je 0x1400172b0
movzx eax, byte [rcx + 1]
cmp al, byte [rsi + 1]
sete dil
jmp case.default.0x140016c91
mov eax, dword [0x141dc29d8]
xor eax, dword [0x141dc29dc]
and eax, 0x76c5bae1
xor eax, 0x357ce1ee
imul eax, eax, 0x6cc2ee2c
cmp eax, 0xa3db52c
je case.0x140016c91.12
nop word cs:[rax + rax]
mov eax, dword [0x141dc29e0]
or eax, dword [str.8_v.v]
xor eax, 0x458f18ce
add eax, 0xd851854d
imul rax, rax, 0x3d55bad7
shr rax, 0x3d
cmp eax, 0xf0c0474c
je 0x140017310
cmp r8d, 0xc
jne case.default.0x140016c91
mov eax, dword [0x141dc2a78]
xor r8d, r8d
xor edx, edx
div dword [0x141dc2a7c]
nop word cs:[rax + rax]
test r8b, r8b
jne 0x140017360
mov eax, dword [rcx + 4]
mov ecx, dword [rsi + 4]
nop dword [rax + rax]
mov edx, dword [0x141dc2a80]
imul edx, dword [0x141dc2a84]
imul edx, edx, 0xb4a43a3e
cmp eax, ecx
sete dil
cmp edx, 0x2d68cda8
je 0x140017370
jmp case.default.0x140016c91
mov eax, dword [0x141dc29f8]
sub eax, dword [0x141dc29fc]
and eax, 0x906d90de
xor eax, 0x4654202f
imul eax, eax, 0xf37ebff2
cmp eax, 0xed9a02a0
ja case.0x140016c91.15
nop word cs:[rax + rax]
mov eax, dword [0x141dc2a00]
xor edx, edx
div dword [0x141dc2a04]
and eax, 0xe6015410
xor eax, 0x50b11504
or eax, 0x94ea26b
cmp eax, 0x2eadca7e
jb 0x1400173d0
cmp r8d, 0xf
jne case.default.0x140016c91
mov rbx, qword [rcx + 8]
mov eax, dword [0x141dc2ac8]
sub eax, dword [0x141dc2acc]
add eax, 0x7cbbae2c
mov ecx, 0xd616b17b
imul rcx, rax
shr rcx, 0x3d
cmp ecx, 0x7cf17a48
jne 0x140017430
mov rdx, qword [rsi + 8]
mov rcx, rbx
call fcn.1400dda00
mov ebp, dword [0x141dc2ad0]
sub ebp, dword [0x141dc2ad4]
or ebp, 8
and ebp, 0x1000100e
mov rdx, qword [rsi + 8]
mov rcx, rbx
call fcn.1400dda00
mov edi, eax
cmp ebp, 0xd0370dbc
ja 0x140017430
jmp case.default.0x140016c91
xor edi, edi
mov eax, edi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc2990]
xor edx, edx
div dword [0x141dc2994]
mov eax, dword [0x141dc2998]
xor eax, dword [0x141dc299c]
add eax, 0xf6b701fc
and eax, 0x4d6c092
cmp eax, 0x1b16ce0d
je 0x140017480
nop dword [rax]
mov eax, dword [0x141dc29a0]
sub eax, dword [0x141dc29a4]
or eax, 0xefd17bcd
xor eax, 0xc092d9d4
add eax, 0x909dee05
cmp eax, 0xfe975b89
ja 0x1400174a0
cmp r8d, 5
jne case.default.0x140016c91
mov eax, dword [rcx + 4]
cmp eax, dword [rsi + 4]
sete dil
nop word cs:[rax + rax]
mov eax, dword [0x141dc2a30]
or eax, dword [0x141dc2a34]
or eax, 0x7efd7f7f
add eax, 0x9fbea239
cmp eax, 0x530f7f5f
jbe 0x1400174e0
jmp case.default.0x140016c91
cmp r8d, 7
jne case.default.0x140016c91
movss xmm0, dword [rcx + 4]
movss xmm1, dword [rsi + 4]
cmpeqss xmm0, xmm1
movd edi, xmm0
and edi, 1
nop word cs:[rax + rax]
mov eax, dword [0x141dc2a40]
sub eax, dword [0x141dc2a44]
imul rax, rax, 0xc5803a7
shr rax, 0x3a
or eax, 0x68e34058
imul eax, eax, 0x523a90f9
cmp eax, 0x46a361af
jae 0x140017530
jmp case.default.0x140016c91
mov eax, 0xd2dab645
nop word cs:[rax + rax]
mov edx, dword [0x141dc29d0]
or edx, dword [0x141dc29d4]
imul rdx, rax
shr rdx, 0x3a
add edx, 0xdfc01f7e
cmp edx, 0xb5a8c013
jb 0x140017570
cmp r8d, 0xb
jne case.default.0x140016c91
movzx eax, word [rcx + 2]
cmp ax, word [rsi + 2]
sete dil
nop dword [rax + rax]
mov eax, dword [0x141dc2a70]
add eax, dword [0x141dc2a74]
imul eax, eax, 0x134a819
imul rax, rax, 0x3605b597
shr rax, 0x3d
or eax, 0x1e4a722e
cmp eax, 0xe16ed8d8
ja 0x1400175b0
jmp case.default.0x140016c91
xor eax, eax
test al, al
jne 0x1400175e0
cmp r8d, 0x10
jne case.default.0x140016c91
mov rbx, qword [rcx + 8]
mov rsi, qword [rsi + 8]
mov eax, dword [0x141dc2ad8]
imul eax, dword [0x141dc2adc]
or eax, 0x8d1ef060
add eax, 0xf1ca6210
imul rax, rax, 0x2354d899
shr rax, 0x3d
cmp eax, 0xcc05b32a
jbe 0x140017630
mov rcx, rbx
mov rdx, rsi
call fcn.1400dda00
nop word [rax + rax]
mov eax, dword [0x141dc2ae0]
xor edx, edx
div dword [0x141dc2ae4]
mov ebp, eax
mov rcx, rbx
mov rdx, rsi
call fcn.1400dda00
mov edi, eax
cmp ebp, 0xa35a4f08
je 0x140017630
jmp case.default.0x140016c91