Function at 0x140005970
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rsi, rcx
vmovups ymm0, ymmword [0x14006ca78]
vmovups ymmword [rcx + 0x40], ymm0
vmovups ymm0, ymmword [0x14006ca58]
vmovups ymmword [rcx + 0x20], ymm0
vmovups ymm0, ymmword [0x14006ca38]
vmovups ymmword [rcx], ymm0
movabs rax, 0xffff00000000ffff
mov qword [rcx + 0x60], rax
lea rax, [rcx + 0x60]
mov qword [rcx + 0x68], rax
vmovups ymm0, ymmword [0x14006caa0]
vmovups ymmword [rcx + 0x70], ymm0
vmovups ymm0, ymmword [0x14006cac0]
vmovups ymmword [rcx + 0x90], ymm0
vmovups ymm0, ymmword [str._f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f_f]
vmovups ymmword [rcx + 0xb0], ymm0
vmovups ymm0, ymmword [0x14006cb00]
vmovups ymmword [rcx + 0xd0], ymm0
vmovups ymm0, ymmword [0x14006cb20]
vmovups ymmword [rcx + 0xf0], ymm0
vmovups ymm0, ymmword [0x14006cb40]
vmovups ymmword [rcx + 0x110], ymm0
vmovups ymm0, ymmword [0x14006cb60]
vmovups ymmword [rcx + 0x130], ymm0
vmovups ymm0, ymmword [0x14006cb80]
vmovups ymmword [rcx + 0x150], ymm0
movabs rax, 0x3c00000004
mov qword [rcx + 0x170], rax
mov byte [rcx + 0x178], 1
movabs rax, 0x4000000000
mov qword [rcx + 0x17c], rax
add rcx, 0x184
xor edi, edi
mov r8d, 0x1000
xor edx, edx
vzeroupper
call fcn.14003d150
movabs rax, 0x3800000007
mov qword [rsi + 0x1184], rax
mov dword [rsi + 0x118c], 0x3f
mov qword [rsp + 0x50], rsi
lea rcx, [rsi + 0x1190]
mov r8d, 0x7028
xor edx, edx
call fcn.14003d150
lea r13, [0x14007a4d4]
lea rax, [0x14007a5d4]
lea r8, [0x14007a6d4]
lea rcx, [0x14007a7d4]
lea r9, [0x14007a8d4]
lea r10, [0x1400844d4]
lea r11, [0x1400845d4]
lea rbx, [0x1400846d4]
lea r14, [0x1400847d4]
lea r15, [0x1400848d4]
lea rdx, [0x140167140]
xor r12d, r12d
nop word cs:[rax + rax]
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], rdi
mov eax, edi
and eax, 0xfffffff8
mov edi, r12d
and edi, 3
or eax, edi
lea rax, [rax + rax*4]
shl rax, 9
lea rsi, [rax + rdx]
add rsi, 0x904
mov eax, r12d
and eax, 0x3ffffffc
lea r13d, [rdi + rax*2]
mov qword [rsp + 0x58], r12
xor r12, 0x1c
xor r13d, 7
xor eax, eax
mov r10, rdx
lea r11, [0x14007a4d0]
nop word cs:[rax + rax]
mov rdi, rax
xor rdi, 0x38
lea rbp, [r12 + r12*4]
shl rbp, 8
add rbp, r11
xor ecx, ecx
sub ecx, dword [rbp + rdi*4]
mov dword [rsi + rax*4 - 0x904], ecx
mov rdx, rax
xor rdx, 7
lea rdi, [r13*4]
add rdi, r13
shl rdi, 9
add rdi, r10
mov dword [rdi + rdx*4], ecx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4]
mov dword [rsi + rax*4 - 0x900], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4], edx
add rax, 2
cmp rax, 0x40
jne 0x140005b80
xor eax, eax
mov r13, qword [rsp + 0x40]
nop word [rax + rax]
mov ecx, dword [r13 + rax*4 - 4]
mov edx, dword [r13 + rax*4]
mov dword [rsi + rax*4 + 0x277fc], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x28100], ecx
mov dword [rsi + rax*4 + 0x27800], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28100], edx
add rax, 2
cmp rax, 0x40
jne 0x140005bf0
mov qword [rsp + 0x30], r8
xor eax, eax
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x60]
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x100]
mov dword [rsi + rax*4 - 0x704], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x200], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x100]
mov dword [rsi + rax*4 - 0x700], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x200], edx
add rax, 2
cmp rax, 0x40
jne 0x140005c40
xor eax, eax
mov r8, qword [rsp + 0x28]
nop dword [rax + rax]
mov ecx, dword [r8 + rax*4 - 4]
mov edx, dword [r8 + rax*4]
mov dword [rsi + rax*4 + 0x279fc], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x28300], ecx
mov dword [rsi + rax*4 + 0x27a00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28300], edx
add rax, 2
cmp rax, 0x40
jne 0x140005ca0
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x200]
mov dword [rsi + rax*4 - 0x504], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x400], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x200]
mov dword [rsi + rax*4 - 0x500], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x400], edx
add rax, 2
cmp rax, 0x40
jne 0x140005ce0
xor eax, eax
mov r8, qword [rsp + 0x30]
nop dword [rax + rax]
mov ecx, dword [r8 + rax*4 - 4]
mov edx, dword [r8 + rax*4]
mov dword [rsi + rax*4 + 0x27bfc], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x28500], ecx
mov dword [rsi + rax*4 + 0x27c00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28500], edx
add rax, 2
cmp rax, 0x40
jne 0x140005d40
mov qword [rsp + 0x70], r9
xor eax, eax
nop word cs:[rax + rax]
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x300]
mov dword [rsi + rax*4 - 0x304], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x600], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x300]
mov dword [rsi + rax*4 - 0x300], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x600], edx
add rax, 2
cmp rax, 0x40
jne 0x140005d90
xor eax, eax
mov r9, qword [rsp + 0x38]
nop dword [rax + rax]
mov ecx, dword [r9 + rax*4 - 4]
mov edx, dword [r9 + rax*4]
mov dword [rsi + rax*4 + 0x27dfc], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x28700], ecx
mov dword [rsi + rax*4 + 0x27e00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28700], edx
add rax, 2
cmp rax, 0x40
jne 0x140005df0
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x400]
mov dword [rsi + rax*4 - 0x104], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x800], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0x400]
mov dword [rsi + rax*4 - 0x100], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x800], edx
add rax, 2
cmp rax, 0x40
jne 0x140005e30
xor eax, eax
mov r9, qword [rsp + 0x70]
nop dword [rax + rax]
mov ecx, dword [r9 + rax*4 - 4]
mov edx, dword [r9 + rax*4]
mov dword [rsi + rax*4 + 0x27ffc], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x28900], ecx
mov dword [rsi + rax*4 + 0x28000], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28900], edx
add rax, 2
cmp rax, 0x40
jne 0x140005e90
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa000]
mov dword [rsi + rax*4 + 0x276fc], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x28000], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa000]
mov dword [rsi + rax*4 + 0x27700], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28000], edx
add rax, 2
cmp rax, 0x40
jne 0x140005ed0
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [r10 + rax*4 - 4]
mov edx, dword [r10 + rax*4]
mov dword [rsi + rax*4 - 0x804], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x100], ecx
mov dword [rsi + rax*4 - 0x800], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x100], edx
add rax, 2
cmp rax, 0x40
jne 0x140005f30
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa100]
mov dword [rsi + rax*4 + 0x278fc], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x28200], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa100]
mov dword [rsi + rax*4 + 0x27900], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28200], edx
add rax, 2
cmp rax, 0x40
jne 0x140005f70
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [r11 + rax*4 - 4]
mov edx, dword [r11 + rax*4]
mov dword [rsi + rax*4 - 0x604], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x300], ecx
mov dword [rsi + rax*4 - 0x600], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x300], edx
add rax, 2
cmp rax, 0x40
jne 0x140005fd0
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa200]
mov dword [rsi + rax*4 + 0x27afc], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x28400], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa200]
mov dword [rsi + rax*4 + 0x27b00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28400], edx
add rax, 2
cmp rax, 0x40
jne 0x140006010
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [rbx + rax*4 - 4]
mov edx, dword [rbx + rax*4]
mov dword [rsi + rax*4 - 0x404], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x500], ecx
mov dword [rsi + rax*4 - 0x400], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x500], edx
add rax, 2
cmp rax, 0x40
jne 0x140006070
xor eax, eax
nop
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa300]
mov dword [rsi + rax*4 + 0x27cfc], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x28600], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa300]
mov dword [rsi + rax*4 + 0x27d00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28600], edx
add rax, 2
cmp rax, 0x40
jne 0x1400060b0
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [r14 + rax*4 - 4]
mov edx, dword [r14 + rax*4]
mov dword [rsi + rax*4 - 0x204], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x700], ecx
mov dword [rsi + rax*4 - 0x200], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x700], edx
add rax, 2
cmp rax, 0x40
jne 0x140006110
xor eax, eax
mov rcx, rax
xor rcx, 0x38
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa400]
mov dword [rsi + rax*4 + 0x27efc], edx
mov rcx, rax
xor rcx, 7
mov dword [rdi + rcx*4 + 0x28800], edx
mov rcx, rax
xor rcx, 0x39
xor edx, edx
sub edx, dword [rbp + rcx*4 + 0xa400]
mov dword [rsi + rax*4 + 0x27f00], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x28800], edx
add rax, 2
cmp rax, 0x40
jne 0x140006150
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [r15 + rax*4 - 4]
mov edx, dword [r15 + rax*4]
mov dword [rsi + rax*4 - 4], ecx
mov r12, rax
xor r12, 7
mov dword [rdi + r12*4 + 0x900], ecx
mov dword [rsi + rax*4], edx
mov rcx, rax
xor rcx, 6
mov dword [rdi + rcx*4 + 0x900], edx
add rax, 2
cmp rax, 0x40
jne 0x1400061b0
mov r12, qword [rsp + 0x58]
inc r12
mov rdi, qword [rsp + 0x48]
add edi, 2
add r13, 0x500
mov rax, qword [rsp + 0x28]
add rax, 0x500
add r8, 0x500
mov rcx, qword [rsp + 0x38]
add rcx, 0x500
add r9, 0x500
add r10, 0x500
add r11, 0x500
add rbx, 0x500
add r14, 0x500
add r15, 0x500
cmp r12, 0x20
lea rdx, [0x140167140]
jne 0x140005b10
xor r9d, r9d
lea rax, [0x14006fbe0]
lea rbp, [0x1400a91c0]
xor edx, edx
jmp 0x140006292
or r14, r13
or r15, r11
or r15, r14
mov qword [rbp + rdi*8], r15
nop word [rax + rax]
mov rdx, qword [rsp + 0x30]
inc rdx
cmp rdx, 0x40
je 0x14000645f
lea rcx, [0x14006cba0]
mov qword [rsp + 0x30], rdx
mov rcx, qword [rcx + rdx*8]
mov qword [rsp + 0x28], rcx
popcnt rcx, rcx
mov esi, 1
shl esi, cl
cmp rcx, 0x1f
je 0x140006280
mov r8, qword [rsp + 0x30]
mov rdx, r8
shl rdx, 4
mov r13, qword [rax + r8*8 + 0xe00]
mov r14, qword [rax + r8*8]
mov r15, qword [rax + r8*8 + 0xa00]
mov r11, qword [rax + r8*8 + 0x400]
lea r10, [0x14006cda0]
movsxd rdi, dword [rdx + r10 + 8]
test ecx, ecx
je 0x14000626c
cmp esi, 2
mov r8d, 1
cmovl esi, r8d
mov dword [rsp + 0x38], esi
mov rdx, qword [rdx + r10]
mov qword [rsp + 0x40], rdx
mov r10d, ecx
and r10d, 0xfffffffe
xor edx, edx
mov qword [rsp + 0x48], rdi
jmp 0x1400063e7
mov rdi, qword [rsp + 0x28]
xor r12d, r12d
xor r8d, r8d
mov rsi, rdi
neg rsi
and rsi, rdi
bt edx, r12d
mov edi, 0
cmovb rdi, rsi
or r8, rdi
mov rbx, qword [rsp + 0x40]
imul rbx, r8
shr rbx, 0x37
mov rsi, r13
and rsi, r8
movabs r12, 0x8000000000000000
or rsi, r12
tzcnt rsi, rsi
mov rsi, qword [rax + rsi*8 + 0xe00]
xor rsi, r13
mov rdi, r14
and rdi, r8
or rdi, 1
bsr rdi, rdi
mov rdi, qword [rax + rdi*8]
xor rdi, r14
or rdi, rsi
mov rsi, r15
and rsi, r8
or rsi, r12
tzcnt rsi, rsi
mov rsi, qword [rax + rsi*8 + 0xa00]
xor rsi, r15
and r8, r11
or r8, 1
bsr r8, r8
mov r8, qword [rax + r8*8 + 0x400]
xor r8, r11
or r8, rsi
or r8, rdi
add rbx, qword [rsp + 0x48]
mov qword [rbp + rbx*8], r8
inc edx
cmp edx, dword [rsp + 0x38]
je 0x140006280
cmp ecx, 1
je 0x140006330
xor r8d, r8d
xor r12d, r12d
mov rdi, qword [rsp + 0x28]
nop dword [rax + rax]
lea rsi, [rdi - 1]
and rsi, rdi
mov rbx, rdi
neg rbx
and rbx, rdi
bt edx, r12d
cmovae rbx, r9
or rbx, r8
lea rdi, [rsi - 1]
and rdi, rsi
lea r8d, [r12 + 1]
movzx ebp, r8b
mov r8, rsi
neg r8
and r8, rsi
bt edx, ebp
cmovae r8, r9
or r8, rbx
add r12d, 2
cmp r12d, r10d
jne 0x140006400
mov r12d, r10d
test cl, 1
lea rbp, [0x1400a91c0]
jne 0x14000633b
jmp 0x140006354
xor r9d, r9d
xor edx, edx
jmp 0x140006492
or r14, r13
or r15, r11
or r15, r14
mov qword [rbp + rdi*8], r15
nop word cs:[rax + rax]
mov rdx, qword [rsp + 0x30]
inc rdx
cmp rdx, 0x40
je 0x14000665f
lea rcx, [0x14006d1a0]
mov qword [rsp + 0x30], rdx
mov rcx, qword [rcx + rdx*8]
mov qword [rsp + 0x28], rcx
popcnt rcx, rcx
mov esi, 1
shl esi, cl
cmp rcx, 0x1f
je 0x140006480
mov r8, qword [rsp + 0x30]
mov rdx, r8
shl rdx, 4
mov r13, qword [rax + r8*8 + 0xc00]
mov r14, qword [rax + r8*8 + 0x200]
mov r15, qword [rax + r8*8 + 0x800]
mov r11, qword [rax + r8*8 + 0x600]
lea r10, [0x14006d3a0]
movsxd rdi, dword [rdx + r10 + 8]
test ecx, ecx
je 0x140006466
cmp esi, 2
mov r8d, 1
cmovl esi, r8d
mov dword [rsp + 0x38], esi
mov rdx, qword [rdx + r10]
mov qword [rsp + 0x40], rdx
mov r10d, ecx
and r10d, 0xfffffffe
xor edx, edx
mov qword [rsp + 0x48], rdi
jmp 0x1400065eb
mov rdi, qword [rsp + 0x28]
xor r8d, r8d
xor r12d, r12d
mov rsi, rdi
neg rsi
and rsi, rdi
bt edx, r12d
mov edi, 0
cmovb rdi, rsi
or r8, rdi
mov rbx, qword [rsp + 0x40]
imul rbx, r8
shr rbx, 0x34
mov rsi, r13
and rsi, r8
movabs r12, 0x8000000000000000
or rsi, r12
tzcnt rsi, rsi
mov rsi, qword [rax + rsi*8 + 0xc00]
xor rsi, r13
mov rdi, r14
and rdi, r8
or rdi, 1
bsr rdi, rdi
mov rdi, qword [rax + rdi*8 + 0x200]
xor rdi, r14
or rdi, rsi
mov rsi, r15
and rsi, r8
or rsi, r12
tzcnt rsi, rsi
mov rsi, qword [rax + rsi*8 + 0x800]
xor rsi, r15
and r8, r11
or r8, 1
bsr r8, r8
mov r8, qword [rax + r8*8 + 0x600]
xor r8, r11
or r8, rsi
or r8, rdi
add rbx, qword [rsp + 0x48]
mov qword [rbp + rbx*8], r8
inc edx
cmp edx, dword [rsp + 0x38]
je 0x140006480
cmp ecx, 1
je 0x140006530
xor r12d, r12d
xor r8d, r8d
mov rdi, qword [rsp + 0x28]
nop
lea rsi, [rdi - 1]
and rsi, rdi
mov rbx, rdi
neg rbx
and rbx, rdi
bt edx, r12d
cmovae rbx, r9
or rbx, r8
lea rdi, [rsi - 1]
and rdi, rsi
lea r8d, [r12 + 1]
movzx ebp, r8b
mov r8, rsi
neg r8
and r8, rsi
bt edx, ebp
cmovae r8, r9
or r8, rbx
add r12d, 2
cmp r12d, r10d
jne 0x140006600
mov r12d, r10d
test cl, 1
lea rbp, [0x1400a91c0]
jne 0x14000653b
jmp 0x140006554
lea rcx, [0x1401e2ea0]
lea rdi, section..rodata
mov r8d, 0x1200000
mov rdx, rdi
call fcn.14003cab0
lea rdx, [rdi + 0x1200000]
lea rcx, [0x1413e2ea0]
mov r8d, 0xc00
call fcn.14003cab0
lea rdx, [rdi + 0x1200c00]
lea rcx, [0x1413e3aa0]
mov r8d, 0x1800
call fcn.14003cab0
mov eax, dword [rdi + 0x1202400]
mov dword [0x1413e52a0], eax
mov rax, qword [rsp + 0x50]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret