Function at 0x140004700
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
movups xmmword [rsp + 0x30], xmm6
movups xmmword [rsp + 0x40], xmm7
movups xmmword [rsp + 0x50], xmm8
xor r13d, r13d
lea rdi, [0x140051f00]
mov eax, dword [rcx + 0x3f900]
lea rsi, [rcx + 0x3e900]
mov rbp, rcx
mov r15, rdx
mov r14, rsi
test eax, eax
je 0x140004766
sub eax, 1
movsxd rdx, eax
cmp qword [rbp + rdx*8 + 0x3e900], r15
jae 0x140004a5f
mov dword [rbp + 0x3f900], eax
add r13, 1
test eax, eax
jne 0x140004744
mov r11d, dword [rbp + 0x3f904]
cmp r11d, 0xfa3
jg 0x140004a83
mov rax, qword [rbp + 0x3f908]
xor r8d, r8d
lea r10, [rax + 0x780]
movsxd rax, r11d
lea r9, [r14 + rax*4]
cmp r10, r15
jae 0x140004a42
lea rcx, [r9 - 0x3e900]
nop word [rax + rax]
mov eax, dword [rcx]
add rcx, 0x3e90
not eax
mov edx, eax
movzx ebx, al
shr edx, 0x18
mov edx, dword [rdi + rdx*4]
add edx, dword [rdi + rbx*4]
movzx ebx, ah
shr eax, 0x10
movzx eax, al
add edx, dword [rdi + rbx*4]
add edx, dword [rdi + rax*4]
add r8d, edx
cmp rcx, r9
jne 0x1400047a8
add r11d, 1
mov qword [rbp + 0x3f908], r10
lea r9, [rcx + 4]
add r10, 0x780
cmp r11d, 0xfa4
jne 0x140004792
mov dword [rbp + 0x3f904], 0xfa4
add r13, r8
mov rax, qword [rbp + 0x3f908]
lea r12, [rax + 0x754e00]
cmp r12, r15
jae 0x140004a2f
lea rax, [rbp + 0x3e90]
movdqu xmm6, xmmword [0x140052960]
pcmpeqd xmm7, xmm7
lea rbx, [0x140051f00]
mov qword [rsp + 0x28], rax
lea rsi, [rbp + 0x42790]
mov rcx, rbp
call dbg.primegen_sieve
mov r10, qword [rsp + 0x28]
mov rcx, rbp
xor r8d, r8d
add qword [rbp + 0x3f910], 0x1f480
nop
mov qword [rsp + 0x20], rcx
mov rax, rcx
pxor xmm4, xmm4
nop dword [rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
pxor xmm0, xmm7
movdqa xmm2, xmm0
movdqa xmm1, xmm0
movdqa xmm3, xmm0
psrld xmm2, 0x10
psrld xmm1, 8
pand xmm3, xmm6
pand xmm2, xmm6
psrld xmm0, 0x18
pand xmm1, xmm6
pshufd xmm5, xmm2, 0x55
movd edx, xmm2
movd ecx, xmm5
movdqa xmm5, xmm2
punpckhdq xmm5, xmm2
pshufd xmm2, xmm2, 0xff
movd xmm8, dword [rbx + rcx*4]
movd r9d, xmm5
movd r11d, xmm2
movd xmm2, dword [rbx + r11*4]
movd xmm5, dword [rbx + r9*4]
punpckldq xmm5, xmm2
movd xmm2, dword [rbx + rdx*4]
movd edx, xmm1
punpckldq xmm2, xmm8
punpcklqdq xmm2, xmm5
pshufd xmm5, xmm1, 0x55
movd ecx, xmm5
movdqa xmm5, xmm1
punpckhdq xmm5, xmm1
pshufd xmm1, xmm1, 0xff
movd xmm8, dword [rbx + rcx*4]
movd r9d, xmm5
movd r11d, xmm1
movd xmm1, dword [rbx + r11*4]
movd xmm5, dword [rbx + r9*4]
punpckldq xmm5, xmm1
movd xmm1, dword [rbx + rdx*4]
movd edx, xmm3
punpckldq xmm1, xmm8
punpcklqdq xmm1, xmm5
paddd xmm2, xmm1
pshufd xmm1, xmm3, 0x55
movd ecx, xmm1
movdqa xmm1, xmm3
punpckhdq xmm1, xmm3
movd xmm5, dword [rbx + rcx*4]
movd r9d, xmm1
pshufd xmm1, xmm3, 0xff
movd r11d, xmm1
movd xmm3, dword [rbx + r9*4]
movd xmm1, dword [rbx + r11*4]
punpckldq xmm3, xmm1
movd xmm1, dword [rbx + rdx*4]
movd edx, xmm0
punpckldq xmm1, xmm5
punpcklqdq xmm1, xmm3
pshufd xmm3, xmm0, 0x55
movd ecx, xmm3
movdqa xmm3, xmm0
punpckhdq xmm3, xmm0
pshufd xmm0, xmm0, 0xff
movd xmm5, dword [rbx + rcx*4]
movd r9d, xmm3
movd r11d, xmm0
movd xmm0, dword [rbx + r11*4]
movd xmm3, dword [rbx + r9*4]
punpckldq xmm3, xmm0
movd xmm0, dword [rbx + rdx*4]
punpckldq xmm0, xmm5
punpcklqdq xmm0, xmm3
paddd xmm0, xmm1
paddd xmm0, xmm2
paddd xmm4, xmm0
cmp r10, rax
jne 0x140004870
movdqa xmm0, xmm4
mov rcx, qword [rsp + 0x20]
add r10, 0x3e90
psrldq xmm0, 8
paddd xmm0, xmm4
add rcx, 0x3e90
movdqa xmm1, xmm0
psrldq xmm1, 4
paddd xmm0, xmm1
movd eax, xmm0
add r8d, eax
cmp rsi, r10
jne 0x140004860
mov qword [rbp + 0x3f908], r12
add r12, 0x754e00
add r13, r8
cmp r12, r15
jb 0x140004841
mov rcx, rbp
call dbg.primegen_fill
mov eax, dword [rbp + 0x3f900]
jmp 0x140004740
mov dword [rbp + 0x3f904], r11d
mov rcx, rbp
add r13, r8
call dbg.primegen_fill
mov eax, dword [rbp + 0x3f900]
jmp 0x140004740
movups xmm6, xmmword [rsp + 0x30]
movups xmm7, xmmword [rsp + 0x40]
mov rax, r13
movups xmm8, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r11d, 0xfa4
je 0x140004804
mov rcx, rbp
call dbg.primegen_fill
mov eax, dword [rbp + 0x3f900]
jmp 0x140004740