Function at 0x140001a40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x430]
sub rsp, 0x530
mov rax, qword [0x14000b040]
xor rax, rsp
mov qword [rbp + 0x420], rax
mov rdi, r9
mov rsi, r8
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x60], rcx
xor r12d, r12d
lea rcx, [rsp + 0x78]
call fcn.140001270
nop
mov r15, qword [rbp - 0x78]
mov qword [rsp + 0x30], r15
lea rcx, [r15 + 1]
call fcn.1400034b0
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova rdx, qword [rsp + 0x78]
lea r8, [r15 + 1]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r15 + 1]
call fcn.1400034b0
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova rdx, qword [rsp + 0x78]
lea r8, [r15 + 1]
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, vtable.AES.0
mov qword [rbp - 0x60], rax
mov byte [rbp - 0x58], r12b
mov qword [rbp + 0x36c], r12
mov dword [rbp + 0x374], r12d
test rsi, rsi
je 0x140002792
mov eax, 0x10
mov dword [rbp + 0x36c], eax
mov dword [rbp + 0x370], eax
movups xmm0, xmmword [rdi]
movups xmmword [rbp + 0x378], xmm0
movsxd r8, eax
mov rdx, rdi
lea rcx, [rbp + 0x398]
call sub.VCRUNTIME140.dll_memcpy
mov r14d, dword [rbp + 0x370]
mov ecx, dword [rbp + 0x36c]
cmp ecx, 0x10
je 0x140001b68
mov edi, 0xe
cmp ecx, 0x18
jne 0x140001b86
mov eax, 0xc
cmp r14d, 0x20
cmovne edi, eax
jmp 0x140001b86
cmp r14d, 0x10
jne 0x140001b75
mov edi, 0xa
jmp 0x140001b86
mov edi, 0xe
mov eax, 0xc
cmp r14d, 0x18
cmove edi, eax
mov dword [rbp + 0x374], edi
mov dword [rsp + 0x20], edi
mov eax, r14d
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r13, eax
mov ebx, r12d
mov r12, r13
test edi, edi
js 0x140001be7
lea r14, [rbp - 0x54]
nop dword [rax]
test r13d, r13d
jle 0x140001bcc
mov r8, r13
shl r8, 2
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov edi, dword [rbp + 0x374]
inc ebx
add r14, 0x20
cmp ebx, edi
jle 0x140001bb0
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
mov ecx, dword [rbp + 0x36c]
xor ebx, ebx
test edi, edi
js 0x140001c2b
lea r14, [rbp + 0x18c]
test r13d, r13d
jle 0x140001c10
mov r8, r13
shl r8, 2
xor edx, edx
mov rcx, r14
call sub.VCRUNTIME140.dll_memset
mov edi, dword [rbp + 0x374]
inc ebx
add r14, 0x20
cmp ebx, edi
jle 0x140001bf4
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
mov ecx, dword [rbp + 0x36c]
lea r15d, [rdi + 1]
imul r15d, r13d
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd rbx, eax
lea r8, [rbp + 0x3b8]
test eax, eax
jle 0x140001c90
mov r9d, ebx
nop
movzx edx, byte [rsi]
movzx eax, byte [rsi + 1]
movzx ecx, byte [rsi + 2]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
shl edx, 8
movzx eax, byte [rsi + 3]
or edx, eax
mov dword [r8], edx
lea rsi, [rsi + 4]
lea r8, [r8 + 4]
sub r9, 1
jne 0x140001c50
mov edi, dword [rbp + 0x374]
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
xor r10d, r10d
xor r11d, r11d
test rbx, rbx
jle 0x140001d00
nop dword [rax + rax]
cmp r10d, r15d
jge 0x140001eda
mov eax, r10d
cdq
idiv r13d
movsxd r8, eax
movsxd r9, edx
lea rcx, [r9 + r8*8]
mov eax, dword [rbp + r11*4 + 0x3b8]
mov dword [rbp + rcx*4 - 0x54], eax
mov eax, dword [rbp + 0x374]
sub eax, r8d
cdqe
lea rcx, [r9 + rax*8]
mov eax, dword [rbp + r11*4 + 0x3b8]
mov dword [rbp + rcx*4 + 0x18c], eax
inc r11
inc r10d
cmp r11, rbx
jl 0x140001ca0
mov edi, dword [rbp + 0x374]
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
cmp r10d, r15d
jge 0x140001eeb
lea rdi, [0x140007e20]
lea r12, [0x140000000]
nop word [rax + rax]
mov r9d, dword [rbp + rbx*4 + 0x3b4]
movsxd rdx, r9d
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx r8d, byte [rcx + r12 + 0x68b0]
movsx eax, byte [rdi]
xor r8d, eax
shl r8d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x68b0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r12 + 0x68b0]
xor r8d, eax
shl r8d, 8
mov eax, r9d
shr rax, 0x18
movzx eax, byte [rax + r12 + 0x68b0]
xor r8d, eax
xor dword [rbp + 0x3b8], r8d
lea rdi, [rdi + 1]
mov ecx, 1
cmp ebx, 8
je 0x140001dd0
cmp rcx, rbx
jge 0x140001e7b
nop word [rax + rax]
mov eax, dword [rbp + rcx*4 + 0x3b4]
xor dword [rbp + rcx*4 + 0x3b8], eax
inc rcx
cmp rcx, rbx
jl 0x140001db0
xor r11d, r11d
jmp 0x140001e83
mov eax, dword [rbp + rcx*4 + 0x3b4]
xor dword [rbp + rcx*4 + 0x3b8], eax
inc rcx
cmp rcx, 4
jl 0x140001dd0
mov eax, dword [rbp + 0x3c4]
movsxd rdx, eax
mov ecx, eax
shr rcx, 0x18
movsx r8d, byte [rcx + r12 + 0x68b0]
shl r8d, 8
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x68b0]
xor r8d, eax
shl r8d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x68b0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r12 + 0x68b0]
xor r8d, eax
xor dword [rbp + 0x3c8], r8d
mov ecx, 5
cmp rbx, rcx
jle 0x140001e7b
nop word [rax + rax]
mov eax, dword [rbp + rcx*4 + 0x3b4]
xor dword [rbp + rcx*4 + 0x3b8], eax
inc rcx
cmp rcx, rbx
jl 0x140001e60
xor r11d, r11d
jmp 0x140001e83
xor r11d, r11d
test rbx, rbx
jle 0x140001ece
cmp r10d, r15d
jge 0x140001ed7
mov eax, r10d
cdq
idiv r13d
movsxd r8, eax
movsxd r9, edx
lea rcx, [r9 + r8*8]
mov eax, dword [rbp + r11*4 + 0x3b8]
mov dword [rbp + rcx*4 - 0x54], eax
mov eax, dword [rbp + 0x374]
sub eax, r8d
cdqe
lea rcx, [r9 + rax*8]
mov eax, dword [rbp + r11*4 + 0x3b8]
mov dword [rbp + rcx*4 + 0x18c], eax
inc r11
inc r10d
cmp r11, rbx
jl 0x140001e83
cmp r10d, r15d
jl 0x140001d20
mov r12, r13
mov edi, dword [rbp + 0x374]
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
mov esi, 1
cmp edi, esi
jle 0x140001f90
lea rbx, [rbp + 0x1ac]
nop
test r12, r12
jle 0x140001f77
mov r10, rbx
mov r11, r12
lea rdi, [0x140000000]
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r10]
movsxd r9, eax
mov edx, eax
shr rdx, 0x18
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov r8d, dword [rdi + rdx*4 + 0x8240]
xor r8d, dword [rdi + rcx*4 + 0x69b0]
mov rax, r9
sar rax, 8
movzx ecx, al
xor r8d, dword [rdi + rcx*4 + 0x71b0]
movzx eax, r9b
xor r8d, dword [rdi + rax*4 + 0x7e40]
mov dword [r10], r8d
lea r10, [r10 + 4]
sub r11, 1
jne 0x140001f20
mov edi, dword [rbp + 0x374]
inc esi
add rbx, 0x20
cmp esi, edi
jl 0x140001f00
mov dword [rsp + 0x20], edi
mov r14d, dword [rbp + 0x370]
mov byte [rbp - 0x58], 1
mov r15, qword [rsp + 0x30]
test r15, r15
je 0x140002792
movsxd rcx, r14d
xor edx, edx
mov rax, r15
div rcx
test rdx, rdx
jne 0x140002792
xor esi, esi
mov dword [rsp + 0x24], esi
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rbx
mov r13, qword [rsp + 0x50]
mov qword [rsp + 0x28], r13
test rax, rax
je 0x140002792
nop dword [rax]
mov r9, rbx
cmp byte [rbp - 0x58], 0
je 0x140002652
cmp r14d, 0x10
jne 0x140002382
movzx r8d, byte [rbx]
shl r8d, 0x18
movzx eax, byte [rbx + 1]
shl eax, 0x10
or r8d, eax
movzx eax, byte [rbx + 2]
shl eax, 8
or r8d, eax
movzx eax, byte [rbx + 3]
or r8d, eax
xor r8d, dword [rbp + 0x18c]
movzx esi, byte [rbx + 4]
shl esi, 0x18
movzx eax, byte [rbx + 5]
shl eax, 0x10
or esi, eax
movzx eax, byte [rbx + 6]
shl eax, 8
or esi, eax
movzx eax, byte [rbx + 7]
or esi, eax
xor esi, dword [rbp + 0x190]
movzx r15d, byte [rbx + 8]
shl r15d, 0x18
movzx eax, byte [rbx + 9]
shl eax, 0x10
or r15d, eax
movzx eax, byte [rbx + 0xa]
shl eax, 8
or r15d, eax
movzx eax, byte [rbx + 0xb]
or r15d, eax
xor r15d, dword [rbp + 0x194]
movzx ecx, byte [rbx + 0xc]
shl ecx, 0x18
movzx eax, byte [rbx + 0xd]
shl eax, 0x10
or ecx, eax
movzx eax, byte [rbx + 0xe]
shl eax, 8
or ecx, eax
movzx r12d, byte [rbx + 0xf]
or r12d, ecx
xor r12d, dword [rbp + 0x198]
cmp edi, 1
jle 0x1400021eb
lea r14, [rbp + 0x1b4]
lea r13d, [rdi - 1]
lea rdi, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
movsxd r9, r12d
movsxd r10, r15d
movsxd r11, esi
mov edx, r8d
shr rdx, 0x18
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov ebx, dword [rdi + rdx*4 + 0x79c0]
xor ebx, dword [rdi + rcx*4 + 0x54b0]
mov rax, r10
sar rax, 8
movzx ecx, al
xor ebx, dword [rdi + rcx*4 + 0x64b0]
movzx eax, r11b
xor ebx, dword [rdi + rax*4 + 0x75b0]
xor ebx, dword [r14 - 8]
movsxd r8, r8d
mov edx, esi
shr rdx, 0x18
mov rax, r9
sar rax, 8
movzx ecx, al
mov esi, dword [rdi + rdx*4 + 0x79c0]
xor esi, dword [rdi + rcx*4 + 0x64b0]
mov rax, r8
sar rax, 0x10
movzx ecx, al
xor esi, dword [rdi + rcx*4 + 0x54b0]
movzx eax, r10b
xor esi, dword [rdi + rax*4 + 0x75b0]
xor esi, dword [r14 - 4]
mov edx, r15d
shr rdx, 0x18
mov rax, r8
sar rax, 8
movzx ecx, al
mov r15d, dword [rdi + rdx*4 + 0x79c0]
xor r15d, dword [rdi + rcx*4 + 0x64b0]
mov rax, r11
sar rax, 0x10
movzx ecx, al
xor r15d, dword [rdi + rcx*4 + 0x54b0]
movzx eax, r9b
xor r15d, dword [rdi + rax*4 + 0x75b0]
xor r15d, dword [r14]
mov ecx, r12d
shr rcx, 0x18
sar r10, 0x10
movzx eax, r10b
mov r12d, dword [rdi + rcx*4 + 0x79c0]
xor r12d, dword [rdi + rax*4 + 0x54b0]
sar r11, 8
movzx eax, r11b
xor r12d, dword [rdi + rax*4 + 0x64b0]
movzx eax, r8b
xor r12d, dword [rdi + rax*4 + 0x75b0]
xor r12d, dword [r14 + 4]
mov r8d, ebx
lea r14, [r14 + 0x20]
sub r13, 1
jne 0x1400020c0
mov edi, dword [rsp + 0x20]
mov r14d, dword [rbp + 0x370]
mov r13, qword [rsp + 0x28]
movsxd rax, edi
shl rax, 5
lea rbx, [rbp + 0x18c]
add rbx, rax
mov edx, dword [rbx]
mov ecx, r8d
shr rcx, 0x18
mov eax, edx
sar eax, 0x18
lea rdi, [0x140000000]
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13], al
movsxd r9, r12d
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 1], al
movsxd r11, r15d
mov rax, r11
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 2], al
movsxd r10, esi
movzx eax, r10b
xor dl, byte [rax + rdi + 0x53b0]
mov byte [r13 + 3], dl
mov edx, dword [rbx + 4]
mov ecx, esi
shr rcx, 0x18
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 4], al
movsxd r8, r8d
mov rax, r8
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 5], al
mov rax, r9
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 6], al
movzx eax, r11b
xor dl, byte [rax + rdi + 0x53b0]
mov byte [r13 + 7], dl
mov edx, dword [rbx + 8]
mov ecx, r15d
shr rcx, 0x18
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 8], al
mov rax, r10
sar rax, 0x10
movzx ecx, al
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 9], al
mov rax, r8
sar rax, 8
movzx ecx, al
mov eax, edx
sar eax, 8
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 0xa], al
movzx eax, r9b
xor dl, byte [rax + rdi + 0x53b0]
mov byte [r13 + 0xb], dl
mov edx, dword [rbx + 0xc]
mov ecx, r12d
shr rcx, 0x18
mov eax, edx
sar eax, 0x18
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 0xc], al
sar r11, 0x10
movzx ecx, r11b
mov eax, edx
sar eax, 0x10
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 0xd], al
sar r10, 8
movzx ecx, r10b
mov eax, edx
sar eax, 8
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r13 + 0xe], al
movzx eax, r8b
xor dl, byte [rax + rdi + 0x53b0]
mov byte [r13 + 0xf], dl
jmp 0x140002644
mov eax, r14d
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd rbx, eax
xor eax, eax
cmp ebx, 4
je 0x1400023a1
cmp ebx, 6
setne al
inc rax
shl rax, 5
lea rcx, [0x140000000]
mov r12d, dword [rax + rcx + 0x7dcc]
mov dword [rsp + 0x48], r12d
mov r15d, dword [rax + rcx + 0x7dd4]
mov r13d, dword [rax + rcx + 0x7ddc]
mov dword [rsp + 0x4c], r13d
lea r10, [rbp + 0x3f8]
xor r11d, r11d
test ebx, ebx
jle 0x140002436
nop dword [rax]
movzx r8d, byte [r9]
movzx eax, byte [r9 + 1]
movzx ecx, byte [r9 + 2]
mov rdx, r10
shl r8d, 8
or r8d, eax
shl r8d, 8
or r8d, ecx
shl r8d, 8
movzx eax, byte [r9 + 3]
or r8d, eax
mov dword [r10], r8d
lea r9, [r9 + 4]
add r10, 4
xor r8d, dword [rbp + r11*4 + 0x18c]
mov dword [rdx], r8d
inc r11
cmp r11, rbx
jl 0x1400023e0
mov edi, dword [rbp + 0x374]
mov r14d, dword [rbp + 0x370]
mov dword [rsp + 0x20], 1
cmp edi, 1
jle 0x140002566
lea eax, [rbx*4]
cdqe
mov qword [rsp + 0x60], rax
mov rax, 0xfffffffffffffdb4
mov qword [rsp + 0x40], rax
xor r11d, r11d
test ebx, ebx
jle 0x140002521
mov r10d, r12d
mov edi, r15d
sub edi, r12d
mov r14d, r13d
sub r14d, r12d
lea r13, [rbp + 0x3f8]
add r13, rax
lea r12, [0x140000000]
nop dword [rax]
lea eax, [rdi + r10]
cdq
idiv ebx
movsxd rax, edx
mov ecx, dword [rbp + rax*4 + 0x3f8]
sar rcx, 8
movzx r8d, cl
lea eax, [r14 + r10]
cdq
idiv ebx
movsxd rax, edx
movzx ecx, byte [rbp + rax*4 + 0x3f8]
mov r9d, dword [r12 + r8*4 + 0x64b0]
xor r9d, dword [r12 + rcx*4 + 0x75b0]
mov eax, r10d
cdq
idiv ebx
movsxd rax, edx
mov ecx, dword [rbp + rax*4 + 0x3f8]
sar rcx, 0x10
movzx eax, cl
xor r9d, dword [r12 + rax*4 + 0x54b0]
movzx eax, byte [rbp + r11*4 + 0x3fb]
xor r9d, dword [r12 + rax*4 + 0x79c0]
xor r9d, dword [r13 + r11*4]
mov dword [rbp + r11*4 + 0x3d8], r9d
inc r10d
inc r11
cmp r11, rbx
jl 0x140002490
mov r12d, dword [rsp + 0x48]
mov r13d, dword [rsp + 0x4c]
mov r8, qword [rsp + 0x60]
lea rdx, [rbp + 0x3d8]
lea rcx, [rbp + 0x3f8]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rsp + 0x20]
inc ecx
mov dword [rsp + 0x20], ecx
mov rax, qword [rsp + 0x40]
add rax, 0x20
mov qword [rsp + 0x40], rax
mov edi, dword [rbp + 0x374]
cmp ecx, edi
jl 0x140002461
mov r14d, dword [rbp + 0x370]
xor r10d, r10d
test ebx, ebx
jle 0x14000263f
movsxd rax, edi
mov r9, qword [rsp + 0x28]
sub r12d, r15d
sub r13d, r15d
shl rax, 5
lea r11, [rbp + 0x18c]
add r11, rax
lea rdi, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [r11 + r10*4]
movzx ecx, byte [rbp + r10*4 + 0x3fb]
mov eax, r8d
sar eax, 0x18
xor al, byte [rcx + rdi + 0x53b0]
mov byte [r9], al
lea eax, [r12 + r15]
cdq
idiv ebx
movsxd rax, edx
mov ecx, dword [rbp + rax*4 + 0x3f8]
sar rcx, 0x10
movzx edx, cl
mov eax, r8d
sar eax, 0x10
xor al, byte [rdx + rdi + 0x53b0]
mov byte [r9 + 1], al
mov eax, r15d
cdq
idiv ebx
movsxd rax, edx
mov ecx, dword [rbp + rax*4 + 0x3f8]
sar rcx, 8
movzx edx, cl
mov eax, r8d
sar eax, 8
xor al, byte [rdx + rdi + 0x53b0]
mov byte [r9 + 2], al
lea eax, [r15 + r13]
cdq
idiv ebx
movsxd rax, edx
movzx ecx, byte [rbp + rax*4 + 0x3f8]
xor r8b, byte [rcx + rdi + 0x53b0]
mov byte [r9 + 3], r8b
lea r9, [r9 + 4]
inc r15d
inc r10
cmp r10, rbx
jl 0x1400025a0
mov r13, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov esi, dword [rsp + 0x24]
mov r15, qword [rsp + 0x30]
lea r8, [rbp + 0x398]
mov rax, r13
cmp byte [rbp - 0x58], 0
je 0x140002741
xor r9d, r9d
test r14d, r14d
jle 0x140002741
cmp r14d, 0x40
jb 0x14000271a
lea ecx, [r14 - 1]
movsxd rdx, ecx
lea r10, [rdx + r13]
lea rcx, [rbp + 0x398]
add rcx, rdx
cmp r13, rcx
ja 0x1400026a2
lea rcx, [rbp + 0x398]
cmp r10, rcx
jae 0x14000271a
mov ecx, r14d
and ecx, 0x8000003f
jge 0x1400026b4
dec ecx
or ecx, 0xffffffc0
inc ecx
mov edx, r14d
sub edx, ecx
nop dword [rax]
movdqu xmm1, xmmword [rax]
movdqu xmm0, xmmword [r8]
xorps xmm1, xmm0
movdqu xmmword [rax], xmm1
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm0, xmmword [r8 + 0x10]
xorps xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
movdqu xmm1, xmmword [rax + 0x20]
movdqu xmm0, xmmword [r8 + 0x20]
xorps xmm1, xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmm1, xmmword [rax + 0x30]
movdqu xmm0, xmmword [r8 + 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax + 0x30], xmm1
add r8, 0x40
add rax, 0x40
add r9d, 0x40
cmp r9d, edx
jl 0x1400026c0
cmp r9d, r14d
jge 0x140002741
sub r8, rax
mov edx, r14d
sub edx, r9d
nop dword [rax + rax]
movzx ecx, byte [rax + r8]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x140002730
movsxd r8, r14d
mov rdx, rbx
lea rcx, [rbp + 0x398]
call sub.VCRUNTIME140.dll_memcpy
movsxd r14, dword [rbp + 0x370]
add rbx, r14
mov qword [rsp + 0x38], rbx
add r13, r14
mov qword [rsp + 0x28], r13
inc esi
mov dword [rsp + 0x24], esi
xor edx, edx
mov rax, r15
div r14
mov rcx, rax
movsxd rax, esi
cmp rax, rcx
jae 0x140002792
mov edi, dword [rbp + 0x374]
mov dword [rsp + 0x20], edi
jmp 0x140001fe0
mov rdi, qword [rsp + 0x50]
movzx r9d, byte [rdi + r15 - 1]
lea edx, [r15 - 1]
movsx rax, r9b
mov r8, r15
sub r8, rax
movsxd rax, edx
cmp rax, r8
jb 0x1400027f7
lea rcx, [rax + rdi]
cmp byte [rcx], r9b
jne 0x1400027ce
mov byte [rcx], 0
dec edx
dec rcx
movsxd rax, edx
cmp rax, r8
jae 0x1400027b7
jmp 0x1400027f7
mov r8, r15
xor edx, edx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140002cc0
mov rcx, rax
lea rdx, [0x140002e80]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rdx, rdi
mov rbx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.1400017b0
mov rcx, qword [rsp + 0x58]
call fcn.140002f60
mov rcx, rdi
call fcn.140002f60
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x140002859
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002854
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002854
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140002f60
mov rax, rbx
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.140002f40
mov rbx, qword [rsp + 0x580]
add rsp, 0x530
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret