Function at 0x14009c2e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd0
mov rbx, r8
mov r14, rdx
mov rsi, rcx
lea rcx, [rsp + 0x78]
xor r9d, r9d
call fcn.14009ca80
cmp dword [rsp + 0x78], 2
jne 0x14009c768
nop word cs:[rax + rax]
mov eax, dword [0x141dd1588]
or eax, dword [0x141dd158c]
or eax, 0x27e2e25
imul eax, eax, 0xf1867c1d
and eax, 0x2e27833
cmp eax, 0xce7ae789
je 0x14009c320
mov rdi, qword [rsp + 0x80]
xor eax, eax
nop dword [rax]
test al, al
jne 0x14009c350
mov eax, edi
and eax, 3
cmp eax, 2
jb 0x14009c768
cmp eax, 2
jne 0x14009c6c9
movabs rax, 0xffffffff00000000
and rax, rdi
nop dword [rax + rax]
mov ecx, dword [0x141dd15c8]
or ecx, dword [0x141dd15cc]
or ecx, 0xc0940463
and ecx, 0xed9424f3
cmp ecx, 0x64996e63
je 0x14009c380
movabs rcx, 0x78000000000
nop word [rax + rax]
mov edx, dword [0x141dd15d0]
and edx, dword [0x141dd15d4]
imul edx, edx, 0xfae20098
or edx, 0x872d87f7
cmp edx, 0x905df4a9
jb 0x14009c3b0
mov edx, dword [0x141dd15d8]
and edx, dword [0x141dd15dc]
xor edx, 0x2b4c09f7
add edx, 0x40b85de9
cmp edx, 0xd0560a23
ja 0x14009c3d0
cmp rax, rcx
jne 0x14009c768
lea rcx, [rsp + 0x20]
mov rdx, r14
mov r8, rbx
mov r9d, 0x200000
call fcn.14009ca80
nop
mov eax, dword [0x141dd15e0]
and eax, dword [0x141dd15e4]
xor eax, 0x85382010
and eax, 0xc5796474
xor eax, 0xdfc73eeb
cmp eax, 0x4b99ea7
jb 0x14009c410
mov rax, qword [rsp + 0x20]
nop word [rax + rax]
mov ecx, dword [0x141dd15e8]
sub ecx, dword [0x141dd15ec]
xor ecx, 0x2fcdb57b
add ecx, 0x35a5b918
or ecx, 0xc0b73649
cmp ecx, 0xbdd8f888
jb 0x14009c440
cmp eax, 2
jne 0x14009c7cd
nop
mov eax, dword [0x141dd15f8]
sub eax, dword [0x141dd15fc]
shr eax, 2
imul rax, rax, 0x46c55ff9
shr rax, 0x3c
add eax, 0xc7544893
cmp eax, 0x26abb68b
jb 0x14009c470
mov rax, qword [rsp + 0x28]
mov ecx, eax
and ecx, 3
mov edx, dword [0x141dd1600]
and edx, dword [0x141dd1604]
add edx, 0x74fbe6ad
xor edx, 0x1830210
or edx, 0xda28bcca
cmp edx, 0xd0964785
jb 0x14009c4a0
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x14009c814
test rcx, rcx
je 0x14009c814
lea rbx, [rax - 1]
mov r14, qword [rax - 1]
mov r15, qword [rax + 7]
mov r12, qword [r15]
mov eax, dword [0x141dd1608]
xor edx, edx
div dword [0x141dd160c]
nop word [rax + rax]
mov eax, dword [0x141dd1610]
or eax, dword [0x141dd1614]
imul eax, eax, 0x57093a63
and eax, 0xa27bf918
cmp eax, 0x1d76d392
jb 0x14009c500
test r12, r12
je 0x14009c574
mov eax, dword [0x141dd1618]
imul eax, dword [0x141dd161c]
imul eax, eax, 0x1119ae60
add eax, 0xf2c863f8
cmp eax, 0x43d9bd78
jae 0x14009c548
mov rcx, r14
call r12
mov ebp, dword [0x141dd1620]
or ebp, dword [0x141dd1624]
or ebp, 0x8700058
and ebp, 0xba7c01db
add ebp, 0x56a248df
mov rcx, r14
call r12
cmp ebp, 0x68e797dd
ja 0x14009c548
mov r8, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
mov r9d, 0x87c7859d
nop word cs:[rax + rax]
mov eax, dword [0x141dd1628]
xor edx, edx
div dword [0x141dd162c]
imul rax, rax, 0x707f81fb
shr rax, 0x3e
add eax, 0x93f11629
imul rax, r9
shr rax, 0x3d
cmp eax, 0xf51cd68b
ja 0x14009c590
test r8, r8
je 0x14009c664
mov eax, dword [0x141dd1630]
xor edx, edx
div dword [0x141dd1634]
add eax, 0x9cfef466
and eax, 0xfc22cc8b
imul rax, rax, 0x3fb5bc31
shr rax, 0x3d
cmp eax, 0xa5015eb9
ja 0x14009c5c6
cmp rcx, 0x11
jb 0x14009c652
mov eax, dword [0x141dd1638]
sub eax, dword [0x141dd163c]
add eax, 0x27341efb
imul rax, rax, 0xc9695c1
shr rax, 0x3b
add eax, 0x5ccf039b
cmp eax, 0x1c702147
jb 0x14009c5f6
xor eax, eax
test al, al
jne 0x14009c620
mov r14, qword [r14 - 8]
mov eax, 0xd22523fd
mov ecx, dword [0x141dd1640]
sub ecx, dword [0x141dd1644]
add ecx, 0xa4d30502
imul rcx, rax
shr rcx, 0x3d
and ecx, 1
cmp ecx, 0x5adf1a2f
ja 0x14009c62d
mov rcx, qword [0x141ddb9a0]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x141dd1648]
or eax, dword [0x141dd164c]
xor eax, 0x29cb1230
or eax, 0x5634818b
imul eax, eax, 0xaedc2740
cmp eax, 0x3cb07567
jae 0x14009c690
mov rax, qword [0x141ddb9a0]
nop
mov eax, dword [0x141dd1650]
and eax, dword [0x141dd1654]
add eax, 0xe51acf2a
xor eax, 0x41144290
and eax, 0x43546ab8
mov rcx, qword [0x141ddb9a0]
cmp eax, 0x712010b7
ja 0x14009c690
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14009c814
cmp eax, 3
jne 0x14009c79c
nop word cs:[rax + rax]
mov eax, dword [0x141dd1598]
xor eax, dword [0x141dd159c]
imul eax, eax, 0x21d470b
and eax, 0xa4701c10
cmp eax, 0x4c648372
ja 0x14009c6e0
mov eax, dword [0x141dd15a0]
xor edx, edx
div dword [0x141dd15a4]
nop dword [rax]
mov eax, dword [0x141dd15a8]
imul eax, dword [0x141dd15ac]
add eax, 0x49dc2808
imul rax, rax, 0x3fa8989d
shr rax, 0x3d
cmp eax, 0x72f3a181
je 0x14009c710
mov eax, 0x8321ba73
nop dword [rax]
mov ecx, dword [0x141dd15b0]
add ecx, dword [0x141dd15b4]
and ecx, 0x1558eec8
or ecx, 0xe2a00137
imul rcx, rax
shr rcx, 0x3c
cmp ecx, 0xc7146585
ja 0x14009c740
mov eax, dword [0x141dd15b8]
sub eax, dword [0x141dd15bc]
and eax, 0x8fc361f9
add eax, 0xaf322697
mov ecx, 0xd6c7edab
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0xc46c2bcd
jbe 0x14009c985
jmp 0x14009c9eb
mov eax, dword [0x141dd1590]
xor edx, edx
div dword [0x141dd1594]
imul rcx, rax, 0x1cfa541f
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
imul eax, eax, 0x53eaae19
cmp eax, 0x297de2a8
je 0x14009c79c
ud2
mov ecx, dword [rsp + 0x6c]
mov eax, ecx
shr eax, 0xa
nop word cs:[rax + rax]
mov edx, dword [0x141dd15f0]
and edx, dword [0x141dd15f4]
xor edx, 0xd0dcedb2
add edx, 0xd7ef739f
cmp edx, 0xa11ca8f7
jb 0x14009c7e0
mov r8d, dword [rsp + 0x70]
mov edx, r8d
ret 0xeac1
sbb eax, 0xe283c221
invalid
test dl, dl
je 0x14009c86d
mov eax, dword [0x141dd1658]
sub eax, dword [0x141dd165c]
imul eax, eax, 0xf456121e
add eax, 0xc18a4443
cmp eax, 0xf8cc2519
jbe 0x14009c840
mov qword [rsi + 8], rdi
nop word cs:[rax + rax]
mov eax, dword [0x141dd1660]
and eax, dword [0x141dd1664]
or eax, 0x8ec3ff7f
xor eax, 0x3253f6a4
mov qword [rsi + 8], rdi
cmp eax, 0x36271ec2
jb 0x14009c840
mov qword [rsi], 2
jmp 0x14009ca34
mov eax, dword [0x141dd1668]
or eax, dword [0x141dd166c]
xor eax, 0xc181845
and eax, 0x1c1e5a45
cmp eax, 0x5a426f7c
jbe 0x14009c8c0
movups xmm0, xmmword [rsp + 0x5c]
movups xmmword [rsi + 0x3c], xmm0
movups xmm0, xmmword [rsp + 0x20]
movups xmm1, xmmword [rsp + 0x30]
movups xmm2, xmmword [rsp + 0x40]
movups xmm3, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
nop word cs:[rax + rax]
mov eax, dword [0x141dd1670]
xor edx, edx
div dword [0x141dd1674]
xor eax, 0xc1bde84b
add eax, 0x4ac340fa
mov r9d, dword [rsp + 0x74]
movups xmm0, xmmword [rsp + 0x5c]
movups xmmword [rsi + 0x3c], xmm0
movups xmm0, xmmword [rsp + 0x20]
movups xmm1, xmmword [rsp + 0x30]
movups xmm2, xmmword [rsp + 0x40]
movups xmm3, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp eax, 0x574313b6
ja 0x14009c8c0
mov eax, dword [0x141dd1678]
xor edx, edx
div dword [0x141dd167c]
imul rax, rax, 0x49b049b9
shr rax, 0x3d
imul eax, eax, 0x948bb2de
cmp eax, 0x3593f24e
jne 0x14009c950
mov dword [rsi + 0x4c], ecx
mov dword [rsi + 0x50], r8d
mov dword [rsi + 0x54], r9d
nop word cs:[rax + rax]
mov eax, dword [0x141dd1680]
or eax, dword [0x141dd1684]
add eax, 0xfa4db9e9
or eax, 0x770f13ae
mov dword [rsi + 0x4c], ecx
mov dword [rsi + 0x50], r8d
mov dword [rsi + 0x54], r9d
cmp eax, 0xef17f161
jb 0x14009c950
mov rcx, rdi
call fcn.14009c040
jmp 0x14009ca34
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x50], rax
mov eax, dword [0x141dd15c0]
xor eax, dword [0x141dd15c4]
add eax, 0x518151eb
xor eax, 0x50894490
or eax, 0xae26236e
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x78]
movups xmm1, xmmword [rsp + 0x88]
movups xmm2, xmmword [rsp + 0x98]
movups xmm3, xmmword [rsp + 0xa8]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp eax, 0x70e1580c
jne 0x14009ca34
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x50], rax
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x78]
movups xmm1, xmmword [rsp + 0x88]
movups xmm2, xmmword [rsp + 0x98]
movups xmm3, xmmword [rsp + 0xa8]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
jmp 0x14009c985
mov eax, 0xd3ffe575
nop dword [rax]
mov ecx, dword [0x141dd1688]
mov edx, dword [0x141dd168c]
add ecx, edx
add ecx, 0xb206daa2
imul rcx, rax
shr rcx, 0x3e
or ecx, 0x3a915b14
cmp ecx, 0x3338aa52
jb 0x14009ca40
add rsp, 0xd0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret