Function at 0x14012d120
Capabilities:
Access peb ldr_data
Encode data using xor
Generate random numbers using a mersenne twister
Hash data using fnv

Disassembly:
push r13
mov eax, 0x1460
call fcn.1403611f0
sub rsp, rax
mov rax, qword [0x1403e7140]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
cmp qword [rcx + 0x830], 0
mov r13, rcx
je 0x14012d6f4
mov qword [rsp + 0x1478], rbx
mov qword [rsp + 0x1480], rbp
mov qword [rsp + 0x1488], rsi
mov qword [rsp + 0x1458], rdi
mov qword [rsp + 0x1450], r12
xor r12b, r12b
mov qword [rsp + 0x1440], r15
xor dil, dil
movaps xmmword [rsp + 0x1410], xmm8
xorps xmm8, xmm8
movaps xmmword [rsp + 0x1400], xmm9
movss xmm9, dword [0x1403c4d74]
movaps xmmword [rsp + 0x13f0], xmm10
movss xmm10, dword [0x1403c4e58]
movaps xmmword [rsp + 0x13e0], xmm11
movss xmm11, dword [0x1403c4dd8]
movaps xmmword [rsp + 0x13d0], xmm12
movss xmm12, dword [0x1403c4e40]
mov qword [rsp + 0x1448], r14
movaps xmmword [rsp + 0x1430], xmm6
movaps xmmword [rsp + 0x1420], xmm7
mov byte [rsp + 0x20], dil
nop word [rax + rax]
mov rax, qword [0x140421d08]
test rax, rax
jne 0x14012d2d5
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov ebp, dword [rcx + rbx + 0x88]
add rbp, rbx
cmp rbp, rbx
je 0x14012d2aa
mov r11d, dword [rbp + 0x18]
test r11d, r11d
je 0x14012d2aa
mov esi, dword [rbp + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r11d
mov r10d, 0xd77c479d
lea rcx, [rsi + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
movzx r8d, byte [r9]
inc r9
test r8b, r8b
je 0x14012d2a5
movsx ecx, r8b
lea r9, [r9 + 1]
sub r8b, 0x41
mov edx, ecx
or edx, 0x20
cmp r8b, 0x19
movzx r8d, byte [r9 - 1]
cmova edx, ecx
xor edx, r10d
imul r10d, edx, 0x1000193
test r8b, r8b
jne 0x14012d270
cmp r10d, 0xfc5cca01
je 0x14012d2b2
test r11d, r11d
jne 0x14012d250
mov rax, qword [rax]
jmp 0x14012d221
mov ecx, dword [rbp + 0x24]
movzx edi, byte [rsp + 0x20]
add rcx, rbx
movzx edx, word [rcx + r11*2]
mov ecx, dword [rbp + 0x1c]
add rcx, rbx
mov eax, dword [rcx + rdx*4]
add rax, rbx
mov qword [0x140421d08], rax
movzx r15d, dil
call rax
cmp dword [r13 + r15*4 + 0x870], eax
jae 0x14012d64f
mov rcx, qword [r13 + r15*8 + 0x830]
mov r14d, dword [rcx + 0x20]
inc r14d
cmp byte [r13 + 0x890], 0
je 0x14012d30c
cmp r14d, 1
je 0x14012d64f
mov rax, qword [0x1403ec2b8]
mov rdx, qword [0x1403ec2b0]
mov rcx, qword [rcx + 0x18]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x14012d6f8
mov rax, qword [rdx + rcx*8]
cmp r14d, dword [rax + 0x2c]
jb 0x14012d4ea
xor r14d, r14d
call fcn.140309d2c
mov dword [rsp + 0x34], eax
lea edx, [r14 + 1]
mov dword [rsp + 0x13b4], 0xffffffff
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x34], eax
inc rdx
cmp rdx, 0x270
jb 0x14012d360
mov dword [rsp + 0x30], 0x270
lea r8, [rsp + 0x38]
mov r9d, 0x270
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, edx
xor ecx, dword [r8 + 0x62c]
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x14012d3a0
mov ecx, dword [rsp + 0x30]
xorps xmm7, xmm7
mov edx, dword [rsp + rcx*4 + 0x34]
mov eax, edx
shr eax, 0xb
inc ecx
and eax, dword [rsp + 0x13b4]
xor edx, eax
mov dword [rsp + 0x30], ecx
mov eax, edx
lea rcx, [rsp + 0x30]
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
cvtsi2ss xmm7, rax
subss xmm7, xmm8
addss xmm7, xmm8
mulss xmm7, xmm9
mulss xmm7, xmm10
addss xmm7, xmm11
call fcn.1402b0d50
xorps xmm6, xmm6
mov eax, eax
lea rcx, [rsp + 0x30]
cvtsi2ss xmm6, rax
subss xmm6, xmm8
addss xmm6, xmm8
mulss xmm6, xmm9
mulss xmm6, xmm10
addss xmm6, xmm11
call fcn.1402b0d50
xorps xmm1, xmm1
mov eax, eax
movaps xmm0, xmm7
lea rcx, [rsp + 0x30]
mulss xmm0, xmm12
cvtsi2ss xmm1, rax
subss xmm1, xmm8
addss xmm1, xmm8
mulss xmm1, xmm9
addss xmm1, xmm8
subss xmm1, xmm0
call fcn.1402b0d50
mov rcx, qword [r13 + r15*8 + 0x830]
xorps xmm2, xmm2
mov eax, eax
movaps xmm0, xmm6
mulss xmm0, xmm12
cvtsi2ss xmm2, rax
subss xmm2, xmm8
addss xmm2, xmm8
mulss xmm2, xmm9
addss xmm2, xmm8
subss xmm2, xmm0
call fcn.1400ba740
mov rcx, qword [r13 + r15*8 + 0x830]
movaps xmm2, xmm6
movaps xmm1, xmm7
call fcn.1400ba680
mov rcx, qword [r13 + r15*8 + 0x830]
mov edx, r14d
call fcn.1400ba5d0
mov rdx, qword [0x140421d10]
test rdx, rdx
jne 0x14012d5d5
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov ebp, dword [rcx + rbx + 0x88]
add rbp, rbx
cmp rbp, rbx
je 0x14012d5aa
mov r11d, dword [rbp + 0x18]
test r11d, r11d
je 0x14012d5aa
mov esi, dword [rbp + 0x20]
dec r11d
mov r10d, 0x363917f8
lea rcx, [rsi + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
movzx r8d, byte [r9]
inc r9
test r8b, r8b
je 0x14012d5a5
nop dword [rax]
nop word [rax + rax]
movsx ecx, r8b
lea r9, [r9 + 1]
sub r8b, 0x41
mov edx, ecx
or edx, 0x20
cmp r8b, 0x19
movzx r8d, byte [r9 - 1]
cmova edx, ecx
xor edx, r10d
imul r10d, edx, 0x1000193
test r8b, r8b
jne 0x14012d570
cmp r10d, 0x62a3a09a
je 0x14012d5b2
test r11d, r11d
jne 0x14012d543
mov rax, qword [rax]
jmp 0x14012d520
mov ecx, dword [rbp + 0x24]
movzx edi, byte [rsp + 0x20]
add rcx, rbx
movzx edx, word [rcx + r11*2]
mov ecx, dword [rbp + 0x1c]
add rcx, rbx
mov edx, dword [rcx + rdx*4]
add rdx, rbx
mov qword [0x140421d10], rdx
mov rcx, qword [r13 + r15*8 + 0x830]
mov rax, qword [0x1403ec2b8]
mov r9, qword [0x1403ec2b0]
sub rax, r9
mov r8, qword [rcx + 0x18]
sar rax, 3
cmp rax, r8
jbe 0x14012d6f8
mov rax, qword [r9 + r8*8]
mov ecx, dword [rcx + 0x20]
add rcx, rcx
mov rax, qword [rax + 0x30]
mov ebx, dword [rax + rcx*8]
call rdx
add eax, ebx
mov dword [r13 + r15*4 + 0x870], eax
test r14d, r14d
jne 0x14012d64c
call fcn.1403676cc
mov r8d, eax
mov eax, 0x10624dd3
imul r8d
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x3e8
sub r8d, ecx
add dword [r13 + r15*4 + 0x870], r8d
mov r12b, 1
inc dil
mov byte [rsp + 0x20], dil
cmp dil, 8
jne 0x14012d200
movaps xmm6, xmmword [rsp + 0x1430]
movzx eax, r12b
mov r12, qword [rsp + 0x1450]
movaps xmm7, xmmword [rsp + 0x1420]
mov r14, qword [rsp + 0x1448]
movaps xmm8, xmmword [rsp + 0x1410]
movaps xmm9, xmmword [rsp + 0x1400]
movaps xmm10, xmmword [rsp + 0x13f0]
mov r15, qword [rsp + 0x1440]
movaps xmm11, xmmword [rsp + 0x13e0]
mov rdi, qword [rsp + 0x1458]
mov rsi, qword [rsp + 0x1488]
mov rbp, qword [rsp + 0x1480]
mov rbx, qword [rsp + 0x1478]
movaps xmm12, xmmword [rsp + 0x13d0]
mov rcx, qword [rsp + 0x13c0]
xor rcx, rsp
call fcn.140360560
add rsp, 0x1460
pop r13
ret
xor al, al
jmp 0x14012d6da
call fcn.140080b80
int3