Function at 0x140090ae0
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 rdi, r8
mov rbx, rdx
mov rsi, rcx
nop dword [rax]
mov eax, dword [0x141dcc9e8]
and eax, dword [0x141dcc9ec]
add eax, 0xbc25f283
or eax, 0x30ac2880
and eax, 0x31ac6998
cmp eax, 0xf09c917d
je 0x140090b00
mov rcx, qword [rsi + 8]
mov r14, qword [rsi + 0x10]
xor ebp, ebp
mov r8d, 0
cmp r14, 3
jb 0x140090c5b
nop dword [rax]
mov eax, dword [0x141dcc9f0]
or eax, dword [str.0Q_BL]
or eax, 0x1539df98
add eax, 0x8bdae989
cmp eax, 0xf63aac6
jb 0x140090b40
movzx r9d, byte [rcx + r14 - 2]
mov eax, r9d
and al, 0xf0
xor ebp, ebp
mov r8d, 0
cmp al, 0xa0
jne 0x140090c5b
nop dword [rax + rax]
mov eax, dword [0x141dcc9f8]
sub eax, dword [0x141dcc9fc]
or eax, 0x19669a43
imul rdx, rax, 0x274a6507
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1c
add eax, 0xd5f98fdb
cmp eax, 0xa3e8af22
jb 0x140090b80
nop word cs:[rax + rax]
mov eax, dword [0x141dcca00]
xor edx, edx
div dword [0x141dcca04]
imul rax, rax, 0x28e0ce6f
shr rax, 0x3b
xor eax, 0xe2328065
cmp eax, 0xdfc1058d
jb 0x140090bc0
xor ebp, ebp
cmp byte [rcx + r14 - 3], 0xed
mov r8d, 0
jne 0x140090c5b
nop word cs:[rax + rax]
mov eax, dword [0x141dcca08]
and eax, dword [0x141dcca0c]
or eax, 0x8083199c
and eax, 0x8cc779bd
cmp eax, 0xd0a63d77
je 0x140090c00
movzx ebp, byte [rcx + r14 - 1]
and r9d, 0x1f
and ebp, 0x3f
shl r9d, 0x10
shl ebp, 0xa
or ebp, r9d
nop word cs:[rax + rax]
mov eax, dword [0x141dcca10]
or eax, dword [0x141dcca14]
and eax, 0x90050009
cmp eax, 0x83ec48aa
je 0x140090c40
mov r8b, 1
cmp rdi, 3
jb 0x140090f20
nop word cs:[rax + rax]
mov eax, dword [0x141dcca18]
sub eax, dword [0x141dcca1c]
xor eax, 0x68bac013
and eax, 0x7ffae237
imul eax, eax, 0x69dd3301
cmp eax, 0xe241dcd4
ja 0x140090c70
movzx r9d, byte [rbx]
mov eax, dword [0x141dcca20]
xor edx, edx
div dword [0x141dcca24]
nop word cs:[rax + rax]
mov eax, dword [0x141dcca28]
and eax, dword [0x141dcca2c]
xor eax, 0x84411603
and eax, 0x8dc3165b
add eax, 0xc6ac25d1
cmp eax, 0x556703f8
ja 0x140090cb0
nop word cs:[rax + rax]
mov eax, dword [0x141dcca30]
xor eax, dword [0x141dcca34]
imul eax, eax, 0xaa925c8d
add eax, 0x4772bb83
cmp eax, 0x426b67e6
jb 0x140090ce0
cmp r9b, 0xed
jne 0x140090f46
nop dword [rax + rax]
mov eax, dword [0x141dcca38]
or eax, dword [0x141dcca3c]
and eax, 0x105180b2
cmp eax, 0x5c19a29a
je 0x140090d10
movzx r12d, byte [rbx + 1]
mov eax, r12d
and al, 0xf0
cmp al, 0xb0
jne 0x140090f46
movzx edx, byte [rbx + 2]
and r12d, 0x1f
shl r12d, 6
and edx, 0x3f
nop dword [rax]
mov eax, dword [0x141dcca40]
imul eax, dword [0x141dcca44]
imul eax, eax, 0x49ae3ae6
cmp eax, 0x53297854
je 0x140090d50
test r8b, r8b
je 0x140090f46
cmp r14, 3
jb 0x140090e06
add r14, 0xfffffffffffffffd
nop word cs:[rax + rax]
mov eax, dword [0x141dcca48]
or eax, dword [0x141dcca4c]
or eax, 0x3020511
and eax, 0xd32ba7d3
imul eax, eax, 0x207d0fbd
cmp eax, 0xef0a9e2b
ja 0x140090d90
mov eax, dword [0x141dcca50]
add eax, dword [0x141dcca54]
or eax, 0xb3394251
imul eax, eax, 0x6085d9ab
cmp eax, 0x4e7bbeb0
jne 0x140090de0
mov qword [rsi + 0x10], r14
nop word cs:[rax + rax]
mov eax, dword [0x141dcca58]
xor eax, dword [0x141dcca5c]
or eax, 0x3a30b082
add eax, 0xa90690e8
or eax, 0xd6396dc1
mov qword [rsi + 0x10], r14
cmp eax, 0x9bdcd029
je 0x140090de0
lea r8, [rdi + 1]
mov rax, qword [rsi]
mov rcx, rax
sub rcx, r14
cmp r8, rcx
ja 0x1400912cc
add r12d, 0xfc00
and r12d, 0xffc0
or r12d, ebp
or edx, r12d
lea ebp, [rdx + 0x10000]
mov r13d, ebp
shr r13d, 0x12
and r13d, 7
cmp rcx, 3
jbe 0x140091327
mov r15, qword [rsi + 8]
and edx, 0x3f
shl edx, 0x18
shl r12d, 0xa
and r12d, 0x3f0000
or r12d, edx
shr ebp, 4
and ebp, 0x3f00
or ebp, r12d
lea ecx, [r13 + rbp - 0x7f7f7f10]
mov dword [r15 + r14], ecx
add r14, 4
mov qword [rsi + 0x10], r14
add rdi, 0xfffffffffffffffd
sub rax, r14
cmp rax, rdi
jb 0x140091381
mov eax, dword [0x141dccac8]
xor edx, edx
div dword [0x141dccacc]
add rbx, 3
imul eax, eax, 0x8920bcd
mov ecx, 0xaccb33c1
imul rcx, rax
shr rcx, 0x3f
imul eax, ecx, 0x9c631c55
cmp eax, 0x907365c9
jbe 0x140090ed4
lea rcx, [r15 + r14]
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add r15, r14
add r14, rdi
nop word [rax + rax]
mov ebp, dword [0x141dccad0]
add ebp, dword [0x141dccad4]
xor ebp, 0x6100080
or ebp, 0xe8e07e6c
and ebp, 0xeff87eed
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
cmp ebp, 0x82043374
jbe 0x140090ee0
jmp 0x140091290
mov eax, dword [0x141dcca60]
xor eax, dword [0x141dcca64]
or eax, 0x859ac3d
and eax, 0x49ffecbf
cmp eax, 0x4ed09a2f
je 0x140090f20
test rdi, rdi
je 0x140091230
lea r8, [rbx + rdi]
nop word [rax + rax]
mov eax, dword [0x141dcca68]
xor eax, dword [0x141dcca6c]
imul eax, eax, 0xa2b968e7
add eax, 0xb2298336
cmp eax, 0xd093d46d
ja 0x140090f50
mov r9d, 0xe0f86637
mov rax, rbx
jmp 0x140090f8c
mov r10, rdx
nop dword [rax]
mov rax, r10
cmp r10, r8
je 0x140091230
mov edx, dword [0x141dcca70]
and edx, dword [0x141dcca74]
and edx, 0x8d003e42
imul edx, edx, 0x339b30f9
cmp edx, 0x498b1e1c
je 0x140090f8c
lea r10, [rax + 1]
movzx r11d, byte [rax]
test r11b, r11b
jns 0x140090f80
cmp r11b, 0xe0
jae 0x14009101c
mov edx, dword [0x141dcca78]
xor edx, dword [0x141dcca7c]
xor edx, 0x89441404
or edx, 0x32aa22f3
add edx, 0x36b80268
cmp edx, 0xc80eb8cb
ja 0x140090fbf
add rax, 2
cmp r10, r8
cmovne r10, rax
mov eax, dword [0x141dcca80]
xor edx, edx
div dword [0x141dcca84]
and eax, 0x6fd275ba
add eax, 0xb893816f
imul rax, r9
shr rax, 0x3e
cmp eax, 0x98b0fc27
je 0x140090ff0
jmp 0x140090f80
cmp r11b, 0xed
jne 0x1400910a0
nop word cs:[rax + rax]
mov edx, dword [0x141dcca88]
add edx, dword [0x141dcca8c]
cmp edx, 0xf385c75b
je 0x140091030
lea rdx, [rax + 2]
nop dword [rax + rax]
cmp rdx, r8
sete r11b
cmp r10, r8
sete bpl
mov r15d, dword [0x141dcca90]
or r15d, dword [0x141dcca94]
and r15d, 0x24181ced
cmp r15d, 0x6b7b136
je 0x140091050
or bpl, r11b
jne 0x140091230
cmp byte [rax + 1], 0x9f
ja 0x1400911a0
add rax, 3
mov r10, rax
jmp 0x140090f80
mov edx, dword [0x141dcca98]
sub edx, dword [0x141dcca9c]
or edx, 0x63dbd9
add edx, 0xde0ac31
imul r15, rdx, 0x68f37713
shr r15, 0x3c
lea rdx, [rax + 2]
cmp r10, r8
cmove rdx, r10
cmp r15d, 0x365b835b
je 0x1400910a0
xor eax, eax
cmp rdx, r8
setne r10b
mov ebp, dword [0x141dccaa0]
xor ebp, dword [0x141dccaa4]
imul ebp, ebp, 0x4fa97c18
and ebp, 0x37f7a3e8
cmp ebp, 0xe8fe15a8
je 0x1400910d7
mov al, r10b
add rdx, rax
cmp r11b, 0xf0
jb 0x140090f79
mov eax, dword [0x141dccaa8]
and eax, dword [0x141dccaac]
xor eax, 0x1012808
and eax, 0x2921781b
add eax, 0x69ac9f3b
cmp eax, 0x4288ac14
jb 0x140091110
xor eax, eax
cmp rdx, r8
setne r10b
mov r11d, dword [0x141dccab0]
sub r11d, dword [0x141dccab4]
and r11d, 0xebf0234b
imul r15, r11, 0x206fff0b
shr r15, 0x20
sub r11d, r15d
shr r11d, 1
add r11d, r15d
shr r11d, 0x1e
cmp r11d, 0x9c853be
je 0x140091132
mov al, r10b
add rdx, rax
nop word [rax + rax]
mov eax, dword [0x141dccab8]
add eax, dword [0x141dccabc]
imul eax, eax, 0xc37f2f37
cmp eax, 0x246ee116
je 0x140091180
jmp 0x140090f79
mov eax, dword [0x141dccae0]
sub eax, dword [0x141dccae4]
add eax, 0x3f3dfdf1
or eax, 0x2402088
and eax, 0x243e0bc
cmp eax, 0x8440f456
je 0x1400911a0
mov eax, dword [0x141dccae8]
sub eax, dword [0x141dccaec]
xor eax, 0x92e36b41
cmp eax, 0x230b51dc
jae 0x1400911e0
mov byte [rsi + 0x18], 0
nop
mov eax, dword [0x141dccaf0]
and eax, dword [0x141dccaf4]
and eax, 0x8c4020a
xor eax, 0x84c40156
or eax, 0x723beca1
mov byte [rsi + 0x18], 0
cmp eax, 0x164457d0
jb 0x1400911e0
nop word cs:[rax + rax]
mov eax, dword [0x141dccaf8]
xor eax, dword [0x141dccafc]
cmp eax, 0x6c52a1e3
je 0x140091210
nop word cs:[rax + rax]
mov eax, dword [0x141dccb00]
add eax, dword [0x141dccb04]
xor eax, 0x74c60fdd
imul rdx, rax, 0x6728705
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1a
imul eax, eax, 0x2bb09f49
cmp eax, 0xc39b8ef
jb 0x140091230
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140091270
mov rax, qword [rsi]
sub rax, r14
cmp rax, rdi
jb 0x1400912a5
add rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add r14, rdi
mov qword [rsi + 0x10], r14
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, rsi
mov rdx, r14
mov r8, rdi
call fcn.1400faca0
mov rcx, qword [rsi + 8]
mov r14, qword [rsi + 0x10]
jmp 0x14009127f
mov r15, rdx
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, rsi
mov rdx, r14
call fcn.1400faca0
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rcx, rax
sub rcx, r14
mov edx, dword [0x141dccad8]
imul edx, dword [0x141dccadc]
shr edx, 3
imul rdx, rdx, 0x108e8027
shr rdx, 0x39
or edx, 0xbfa3d68c
cmp edx, 0xbc7566c6
jbe 0x1400912f6
mov rdx, r15
jmp 0x140090e1c
mov r15, rdx
mov qword [rsp + 0x20], 1
mov r8d, 4
mov r9d, 1
mov rcx, rsi
mov rdx, r14
call fcn.1400faca0
mov eax, dword [0x141dccac0]
or eax, dword [0x141dccac4]
imul rax, rax, 0x79069ad3
shr rax, 0x3e
or eax, 0xf3a99e8
xor eax, 0x5ba25dbe
cmp eax, 0x970c3a88
ja 0x14009134a
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
mov rdx, r15
jmp 0x140090e4b
mov qword [rsp + 0x20], 1
mov r9d, 1
mov rcx, rsi
mov rdx, r14
mov r8, rdi
call fcn.1400faca0
mov r14, qword [rsi + 0x10]
xor eax, eax
test al, al
jne 0x1400913a4
mov r15, qword [rsi + 8]
jmp 0x140090e93