Function at 0x1401b05f0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r15, qword [rcx]
mov r13, qword [rcx + 8]
mov r8, qword [rcx + 0x18]
mov r11, qword [rcx + 0x20]
movzx r14d, word [r8 + 0x3d2]
mov rdi, qword [rcx + 0x28]
nop
mov eax, dword [0x1415ca408]
xor edx, edx
div dword [0x1415ca40c]
or eax, 0xa04d3140
add eax, 0x473fcb69
imul rax, rax, 0x192b78c3
shr rax, 0x39
cmp eax, 0xa53445a1
ja 0x1401b0620
mov qword [rsp + 0x20], r8
movzx ebx, word [rdi + 0x3d2]
mov eax, dword [0x1415ca410]
xor edx, edx
div dword [0x1415ca414]
mov edx, 0x949e00f3
lea rax, [r14 + 1]
mov qword [rsp + 0x28], rax
or rax, rbx
nop word cs:[rax + rax]
mov r8d, dword [0x1415ca418]
xor r8d, dword [0x1415ca41c]
or r8d, 0x3ccbc88
imul r8, rdx
shr r8, 0x3c
mov r9d, r8d
not r9d
mov r10d, r8d
and r10d, 0xfffffffe
and r9d, 0x18d51161
imul r9d, r10d
mov r10d, r8d
and r10d, 1
or r8d, 0x18d51161
imul r8d, r10d
add r8d, r9d
cmp r8d, 0x7ca66303
ja 0x1401b0680
mov rdx, qword [rsp + 0x28]
mov r12d, edx
mov qword [rsp + 0x30], rbx
and r12d, ebx
add r12, rax
cmp r12d, 0xc
jae 0x1401b09f9
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0xa0], r11
movzx esi, word [r15 + 0x3d2]
mov rdi, qword [rcx + 0x10]
mov eax, dword [0x1415ca428]
mov ecx, dword [0x1415ca42c]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
imul eax, eax, 0xfb19f3ce
imul rax, rax, 0x82a43bb
shr rax, 0x3b
or eax, 0x35e920b4
cmp eax, 0xed0aeb4b
mov r8, qword [rsp + 0x20]
jbe 0x1401b0826
mov word [r8 + 0x3d2], r12w
imul rax, rdi, 0x38
lea rcx, [r15 + rax]
add rcx, 0x168
mov rdx, qword [r15 + rax + 0x198]
mov qword [rsp + 0x80], rdx
movups xmm0, xmmword [r15 + rax + 0x168]
movups xmm1, xmmword [r15 + rax + 0x178]
movups xmm2, xmmword [r15 + rax + 0x188]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rdx, [r15 + rax + 0x1a0]
mov rax, rsi
not rax
lea rax, [rax + rdi*2]
not rax
lea r8, [rdi + rax]
dec r8
mov eax, r8d
not eax
and eax, 0x38
mov r9, r8
and r9, 0xffffffffffffffc7
imul r9, rax
mov eax, r8d
and eax, 0x38
or r8, 0x38
imul r8, rax
add r8, r9
call fcn.14022aa10
mov r8, qword [rsp + 0x20]
imul rax, r14, 0x38
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [r8 + rax + 0x168], xmm0
movups xmmword [r8 + rax + 0x178], xmm1
movups xmmword [r8 + rax + 0x188], xmm2
mov rcx, qword [rsp + 0x80]
mov qword [r8 + rax + 0x198], rcx
movabs rax, 0xcd08de38b14d439a
imul rbx, rdi, 0x38
lea rcx, [r15 + rbx]
add rcx, 0x168
mov qword [rsp + 0x38], rcx
mov rcx, rdi
xor rcx, 1
mov qword [rsp + 0xb0], rcx
not rax
mov qword [rsp + 0xa8], rax
lea rax, [r8 + 0x168]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x40], r14
imul r14, r14, 0x38
mov qword [rsp + 0x88], r12
mov rbp, rdi
nop word cs:[rax + rax]
mov eax, dword [0x1415ca434]
add eax, dword [0x1415ca430]
imul edi, eax, 0xb42cc576
or edi, 0x28908400
and edi, 0x28d8a400
mov rax, qword [rsp + 0x88]
mov word [r8 + 0x3d2], ax
mov rax, qword [r15 + rbx + 0x198]
mov qword [rsp + 0x80], rax
movups xmm0, xmmword [r15 + rbx + 0x168]
movups xmm1, xmmword [r15 + rbx + 0x178]
movups xmm2, xmmword [r15 + rbx + 0x188]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0xa8]
movabs rcx, 0xcd08de38b14d439a
xor rax, rcx
mov rcx, rax
and rcx, rbp
xor rcx, rax
mov eax, esi
and eax, ecx
xor rcx, rsi
lea r13, [rcx + rax*2]
mov eax, r13d
not eax
mov rcx, r13
and rcx, 0xffffffffffffffc7
and eax, 0x38
imul rax, rcx
mov ecx, r13d
and ecx, 0x38
mov r8, r13
or r8, 0x38
imul r8, rcx
mov ecx, ebp
and ecx, 1
mov rdx, qword [rsp + 0xb0]
lea r12, [rdx + rcx*2]
add r8, rax
imul rax, r12, 0x38
lea rdx, [r15 + rax]
add rdx, 0x168
mov rcx, qword [rsp + 0x38]
call fcn.14022aa10
mov r8, qword [rsp + 0x20]
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [r8 + r14 + 0x168], xmm0
movups xmmword [r8 + r14 + 0x178], xmm1
movups xmmword [r8 + r14 + 0x188], xmm2
mov rax, qword [rsp + 0x80]
mov qword [r8 + r14 + 0x198], rax
cmp edi, 0xf841174
jb 0x1401b0890
mov qword [rsp + 0x38], rsi
mov eax, dword [0x1415ca438]
xor edx, edx
div dword [0x1415ca43c]
mov ecx, 0xf405d209
imul rcx, rax
shr rcx, 0x3c
imul eax, ecx, 0x693b1222
or eax, 0xa8bc394d
cmp eax, 0xea9a70c6
mov rbx, qword [rsp + 0x30]
jbe 0x1401b0a58
jmp 0x1401b0b7f
xor eax, eax
test al, al
je 0x1401b0a01
ud2
xor eax, eax
nop word cs:[rax + rax]
ud2
mov eax, dword [0x1415ca440]
xor edx, edx
div dword [str.kwAe]
shr eax, 2
imul r14, rax, 0x75e9aacb
shr r14, 0x38
xor r14d, 0x7680e090
add r14d, 0xd613728a
mov rdi, qword [rsp + 0x48]
lea rdx, [rdi + 0x168]
mov rsi, rbp
mov rbp, qword [rsp + 0x28]
imul rcx, rbp, 0x38
add rcx, qword [rsp + 0x90]
mov eax, ebx
not eax
and eax, 0x38
mov r9d, ebx
and r9d, 0xffffffc7
imul r9, rax
mov eax, ebx
and eax, 0x38
mov r8, rbx
or r8, 0x38
imul r8, rax
add r8, r9
call fcn.14022aa10
mov rax, rsi
shl rax, 5
lea rcx, [r15 + rax]
movups xmm0, xmmword [r15 + rax]
movups xmm1, xmmword [r15 + rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rdx, r12
shl rdx, 5
add rdx, r15
mov r8, r13
shl r8, 5
call fcn.14022aa10
mov rax, qword [rsp + 0x40]
shl rax, 5
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
movups xmmword [rdx + rax], xmm0
movups xmmword [rdx + rax + 0x10], xmm1
mov rcx, rbp
mov rbp, rsi
shl rcx, 5
add rcx, rdx
mov r8, rbx
shl r8, 5
mov rdx, rdi
call fcn.14022aa10
lea rcx, [r15 + r12*8]
add rcx, 0x3d8
mov eax, ebp
and eax, 2
mov rdx, rsi
xor rdx, 2
lea rax, [rdx + rax*2]
lea rdx, [r15 + rax*8]
add rdx, 0x3d8
lea r8, [r13*8]
call fcn.14022aa10
cmp r14d, 0x6f175967
jbe 0x1401b0c5e
mov rdi, qword [rsp + 0x48]
lea rdx, [rdi + 0x168]
mov r14, qword [rsp + 0x28]
imul rcx, r14, 0x38
add rcx, qword [rsp + 0x90]
mov eax, ebx
not eax
and eax, 0x38
mov r9d, ebx
and r9d, 0xffffffc7
imul r9, rax
mov eax, ebx
and eax, 0x38
mov r8, rbx
or r8, 0x38
imul r8, rax
add r8, r9
call fcn.14022aa10
mov rax, rbp
shl rax, 5
lea rcx, [r15 + rax]
movups xmm0, xmmword [r15 + rax]
movups xmm1, xmmword [r15 + rax + 0x10]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rdx, r12
shl rdx, 5
add rdx, r15
mov r8, r13
shl r8, 5
call fcn.14022aa10
mov rax, qword [rsp + 0x40]
shl rax, 5
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
mov rdx, qword [rsp + 0x20]
movups xmmword [rdx + rax], xmm0
movups xmmword [rdx + rax + 0x10], xmm1
mov rcx, r14
shl rcx, 5
add rcx, rdx
mov r8, rbx
shl r8, 5
mov rdx, rdi
call fcn.14022aa10
lea rcx, [r15 + r12*8]
add rcx, 0x3d8
lea rdx, [r15 + rbp*8]
add rdx, 0x3e8
lea r8, [r13*8]
call fcn.14022aa10
jmp 0x1401b0a58
mov rbx, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x38]
cmp r12, r11
mov r13, qword [rsp + 0x88]
jae 0x1401b0d8a
mov r8, rbp
not r8
lea rcx, [r8 + r11]
mov edx, 0xa7eccd43
mov rax, r11
xor rax, 0xfffffffffffffffe
nop dword [rax]
mov r9d, dword [0x1415ca448]
imul r9d, dword [0x1415ca44c]
mov r10d, r9d
not r10d
or r10d, 0x66faa492
add r9d, r10d
inc r9d
imul r9, rdx
shr r9, 0x3f
or r9d, 0xeebb3734
cmp r9d, 0xc0157b7a
jb 0x1401b0ca0
mov edx, r11d
and edx, 0xfffffffe
lea rax, [rax + rdx*2]
and r8, rax
xor rax, rbp
add r8, r8
test cl, 3
je 0x1401b0d34
not bpl
add bpl, r11b
movzx edx, bpl
and edx, 3
mov rcx, r12
nop word cs:[rax + rax]
mov r9, qword [r15 + r12*8 + 0x3d8]
inc rcx
mov qword [r9 + 0x160], r15
mov word [r9 + 0x3d0], r12w
mov r12, rcx
dec rdx
jne 0x1401b0d10
jmp 0x1401b0d37
mov rcx, r12
sub r8, rax
mov eax, dword [0x1415ca450]
xor edx, edx
div dword [0x1415ca454]
nop dword [rax + rax]
mov eax, dword [0x1415ca458]
mov edx, dword [0x1415ca45c]
add eax, edx
add eax, 0xd2030616
mov edx, eax
not edx
and edx, 0x21e2d3b0
and eax, 0xde1d2c4f
sub eax, edx
add eax, 0x74ee5761
cmp eax, 0x4dcab0c3
jb 0x1401b0d50
cmp r8, 3
jae 0x1401b1030
mov eax, dword [0x1415ca470]
xor edx, edx
div dword [0x1415ca474]
mov r9, qword [rsp + 0x30]
mov rbp, rdi
mov eax, dword [0x1415ca478]
mov ecx, dword [0x1415ca47c]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
or eax, 0xcb185658
imul eax, eax, 0xfa1c8511
add eax, 0x62c85a72
cmp eax, 0x1453bf5f
jb 0x1401b0da0
movzx eax, word [r15 + 0x3d2]
dec eax
mov word [r15 + 0x3d2], ax
cmp qword [rsp + 0x98], 2
jb 0x1401b0fe5
lea r14, [rbp + 0x3d8]
mov rax, rbx
lea r15, [rbx + rsi*8]
add r15, 0x3d8
mov rsi, rbx
lea r12, [r9*8 + 8]
nop word cs:[rax + rax]
mov ecx, dword [0x1415ca480]
mov edx, dword [0x1415ca484]
mov eax, ecx
not eax
mov r8d, edx
not r8d
mov r9d, eax
and r9d, 0x1b4c0c29
and ecx, 0xe4b3f3d6
or ecx, r9d
or eax, r8d
and r8d, 0x1b4c0c29
and edx, 0xe4b3f3d6
or edx, r8d
xor edx, ecx
not eax
or eax, edx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x2083397c
and ecx, 0xdf7cc683
imul ecx, edx
mov edx, eax
and edx, 0xdf7cc683
or eax, 0xdf7cc683
imul eax, edx
add eax, ecx
add eax, 0x744ccfc
cmp eax, 0x7f02d2d7
jb 0x1401b0e30
mov eax, dword [0x1415ca488]
and eax, dword [0x1415ca48c]
add eax, 0xacf257c4
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xd6448810
and ecx, 0x29bb77ef
imul ecx, edx
mov edx, eax
and edx, 0x29bb77ef
or eax, 0x29bb77ef
imul eax, edx
add eax, ecx
cmp eax, 0xea8398e7
jbe 0x1401b0f00
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14022aa10
nop word cs:[rax + rax]
mov eax, dword [0x1415ca490]
mov ecx, dword [0x1415ca494]
xor ecx, eax
not ecx
and ecx, eax
imul edi, ecx, 0x31f3bc56
add edi, 0xdac74fa9
and edi, 0xed0d4e7a
mov rcx, r15
mov rdx, r14
mov r8, r12
call fcn.14022aa10
cmp edi, 0xdb338abf
jb 0x1401b0f00
mov r14, qword [rsp + 0x30]
lea eax, [r14 + 1]
and eax, 3
mov rdi, qword [rsp + 0x28]
je 0x1401b0fa0
mov r11, qword [rsp + 0x40]
lea rcx, [r11 + 1]
lea r8, [rsi + r11*8]
add r8, 0x3e0
xor edx, edx
nop word cs:[rax + rax]
mov r9, qword [r8 + rdx*8]
mov qword [r9 + 0x160], rsi
lea r10d, [rcx + rdx]
mov word [r9 + 0x3d0], r10w
inc rdx
cmp rax, rdx
jne 0x1401b0f70
lea rdi, [r11 + rdx]
inc rdi
nop word cs:[rax + rax]
mov eax, dword [0x1415ca498]
or eax, dword [0x1415ca49c]
mov ecx, eax
not ecx
and ecx, 0x9f4f54b7
mov edx, eax
and edx, 0x60b0ab48
imul edx, ecx
mov ecx, eax
and ecx, 0x9f4f54b7
or eax, 0x9f4f54b7
imul eax, ecx
add eax, edx
cmp eax, 0xcdc8571e
je 0x1401b0fa0
cmp r14w, 3
jae 0x1401b11af
mov eax, dword [0x1415ca4b0]
mov ecx, dword [0x1415ca4b4]
mov edx, eax
and edx, ecx
or eax, ecx
not eax
or eax, edx
not eax
mov ecx, eax
and ecx, 0xc626300
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0xc626300
imul rax, rax, 0x479432d9
shr rax, 0x3e
add eax, 0x95ed3231
cmp eax, 0x316e1c54
jae 0x1401b131c
jmp 0x1401b134e
mov rax, rcx
neg rax
jmp 0x1401b1051
add rcx, 4
add rax, 0xfffffffffffffffc
cmp r11, rcx
je 0x1401b0d8a
mov edx, dword [0x1415ca460]
mov r8d, dword [0x1415ca464]
not edx
not r8d
or r8d, edx
xor r8d, 0xf5ce33bf
imul rdx, r8, 0x158ad28f
shr rdx, 0x3b
add edx, 0x2d425195
cmp edx, 0x7805b26e
ja 0x1401b1143
nop word [rax + rax]
mov edx, dword [0x1415ca468]
sub edx, dword [0x1415ca46c]
or edx, 0x14dfc3be
add edx, 0x833609b2
mov r8d, edx
and r8d, 0xfb23fcc1
xor r8d, 0x58b58331
and edx, 0x58218001
or edx, r8d
mov r8d, ecx
and r8d, 1
mov r9, rcx
or r9, 1
add r9, r8
lea r8d, [rcx + 2]
mov r10, qword [r15 + rcx*8 + 0x3d8]
mov qword [r10 + 0x160], r15
mov word [r10 + 0x3d0], cx
mov r10, qword [r15 + r9*8 + 0x3d8]
mov qword [r10 + 0x160], r15
mov word [r10 + 0x3d0], r9w
lea r9d, [rcx + 3]
mov r10, qword [r15 + rcx*8 + 0x3e8]
mov qword [r10 + 0x160], r15
mov word [r10 + 0x3d0], r8w
mov r8, qword [r15 + rcx*8 + 0x3f0]
mov qword [r8 + 0x160], r15
mov word [r8 + 0x3d0], r9w
cmp edx, 0x3076b9a0
jae 0x1401b1040
mov rdx, qword [r15 + rcx*8 + 0x3d8]
mov qword [rdx + 0x160], r15
mov word [rdx + 0x3d0], cx
mov rdx, qword [r15 + rcx*8 + 0x3e0]
mov qword [rdx + 0x160], r15
lea r8d, [rcx + 1]
mov word [rdx + 0x3d0], r8w
mov rdx, qword [r15 + rcx*8 + 0x3e8]
mov qword [rdx + 0x160], r15
lea r8d, [rcx + 2]
mov word [rdx + 0x3d0], r8w
mov rdx, qword [r15 + rcx*8 + 0x3f0]
mov qword [rdx + 0x160], r15
lea r8d, [rcx + 3]
mov word [rdx + 0x3d0], r8w
jmp 0x1401b1090
lea rax, [rdi - 4]
mov rcx, rdi
neg rcx
neg r13
jmp 0x1401b11de
add rdi, 4
add rcx, 0xfffffffffffffffc
lea rdx, [rax + r13]
add rdx, 4
add rax, 4
cmp rdx, 0xfffffffffffffffd
je 0x1401b0fe5
mov edx, dword [0x1415ca4a0]
imul edx, dword [0x1415ca4a4]
xor edx, 0xd167f131
imul edx, edx, 0x365c4b88
not edx
or edx, 0x7ac2d312
cmp edx, 0x942cb490
mov rsi, rbx
jb 0x1401b12ab
nop
mov edx, dword [0x1415ca4a8]
and edx, dword [0x1415ca4ac]
add edx, 0xd62509a7
imul rdx, rdx, 0x4c7226a9
shr rdx, 0x3e
imul edx, edx, 0x27042e94
lea r8d, [rax + 4]
lea r9d, [rax + 5]
lea r10d, [rax + 6]
mov r11, qword [rsi + rax*8 + 0x3f8]
mov qword [r11 + 0x160], rsi
mov word [r11 + 0x3d0], r8w
lea r8d, [rax + 7]
mov r11, qword [rsi + rax*8 + 0x400]
mov qword [r11 + 0x160], rsi
mov word [r11 + 0x3d0], r9w
mov r9, qword [rsi + rax*8 + 0x408]
mov qword [r9 + 0x160], rsi
mov word [r9 + 0x3d0], r10w
mov r9, qword [rsi + rax*8 + 0x410]
mov qword [r9 + 0x160], rsi
mov word [r9 + 0x3d0], r8w
cmp edx, 0x316bb664
jbe 0x1401b11c0
mov rdx, qword [rsi + rax*8 + 0x3f8]
mov qword [rdx + 0x160], rsi
lea r8d, [rax + 4]
mov word [rdx + 0x3d0], r8w
mov rdx, qword [rsi + rax*8 + 0x400]
mov qword [rdx + 0x160], rsi
lea r8d, [rax + 5]
mov word [rdx + 0x3d0], r8w
mov rdx, qword [rsi + rax*8 + 0x408]
mov qword [rdx + 0x160], rsi
lea r8d, [rax + 6]
mov word [rdx + 0x3d0], r8w
mov rdx, qword [rsi + rax*8 + 0x410]
mov qword [rdx + 0x160], rsi
lea r8d, [rax + 7]
mov word [rdx + 0x3d0], r8w
jmp 0x1401b1210
mov eax, dword [0x1415ca4b8]
mov ecx, dword [0x1415ca4bc]
add eax, ecx
add eax, 0x24d3c67b
mov ecx, eax
xor ecx, 0x33300120
and ecx, eax
and ecx, 0xff360b60
mov r14, qword [0x1415d3918]
cmp ecx, 0xcc8f54a8
jbe 0x1401b1357
mov rax, qword [0x1415d3918]
jmp 0x1401b131c
xor eax, eax
test al, al
je 0x1401b136b
mov rcx, r14
xor edx, edx
mov r8, rbp
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor edi, edi
nop dword [rax]
mov rcx, r14
xor edx, edx
mov r8, rbp
call fcn.140219910
test dil, dil
jne 0x1401b1370
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1401b1390
mov rax, rbx
mov rdx, qword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret