Function at 0x14012f730
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.1403633e0
sub rsp, rax
mov rax, qword [0x1403e9140]
xor rax, rsp
mov qword [rsp + 0x13c0], rax
cmp qword [rcx + 0x838], 0
mov r13, rcx
je 0x14012fd04
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 [0x1403c6df4]
movaps xmmword [rsp + 0x13f0], xmm10
movss xmm10, dword [0x1403c6ed8]
movaps xmmword [rsp + 0x13e0], xmm11
movss xmm11, dword [0x1403c6e58]
movaps xmmword [rsp + 0x13d0], xmm12
movss xmm12, dword [0x1403c6ec0]
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 [0x140423d08]
test rax, rax
jne 0x14012f8e5
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 0x14012f8ba
mov r11d, dword [rbp + 0x18]
test r11d, r11d
je 0x14012f8ba
mov esi, dword [rbp + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r11d
mov r10d, 0xba073602
lea rcx, [rsi + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
movzx r8d, byte [r9]
inc r9
test r8b, r8b
je 0x14012f8b5
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 0x14012f880
cmp r10d, 0x8372526c
je 0x14012f8c2
test r11d, r11d
jne 0x14012f860
mov rax, qword [rax]
jmp 0x14012f831
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 [0x140423d08], rax
movzx r15d, dil
call rax
cmp dword [r13 + r15*4 + 0x878], eax
jae 0x14012fc5f
mov rcx, qword [r13 + r15*8 + 0x838]
mov r14d, dword [rcx + 0x20]
inc r14d
cmp byte [r13 + 0x898], 0
je 0x14012f91c
cmp r14d, 1
je 0x14012fc5f
mov rax, qword [0x1403ee2b8]
mov rdx, qword [0x1403ee2b0]
mov rcx, qword [rcx + 0x18]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x14012fd08
mov rax, qword [rdx + rcx*8]
cmp r14d, dword [rax + 0x2c]
jb 0x14012fafa
xor r14d, r14d
call fcn.14030bf1c
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 0x14012f970
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 0x14012f9b0
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.1402b3180
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.1402b3180
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.1402b3180
mov rcx, qword [r13 + r15*8 + 0x838]
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.1400bdcd0
mov rcx, qword [r13 + r15*8 + 0x838]
movaps xmm2, xmm6
movaps xmm1, xmm7
call fcn.1400bdc10
mov rcx, qword [r13 + r15*8 + 0x838]
mov edx, r14d
call fcn.1400bdb60
mov rdx, qword [0x140423d10]
test rdx, rdx
jne 0x14012fbe5
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 0x14012fbba
mov r11d, dword [rbp + 0x18]
test r11d, r11d
je 0x14012fbba
mov esi, dword [rbp + 0x20]
dec r11d
mov r10d, 0x97645b68
lea rcx, [rsi + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
movzx r8d, byte [r9]
inc r9
test r8b, r8b
je 0x14012fbb5
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 0x14012fb80
cmp r10d, 0xe5d8f50a
je 0x14012fbc2
test r11d, r11d
jne 0x14012fb53
mov rax, qword [rax]
jmp 0x14012fb30
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 [0x140423d10], rdx
mov rcx, qword [r13 + r15*8 + 0x838]
mov rax, qword [0x1403ee2b8]
mov r9, qword [0x1403ee2b0]
sub rax, r9
mov r8, qword [rcx + 0x18]
sar rax, 3
cmp rax, r8
jbe 0x14012fd08
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 + 0x878], eax
test r14d, r14d
jne 0x14012fc5c
call fcn.1403698bc
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 + 0x878], r8d
mov r12b, 1
inc dil
mov byte [rsp + 0x20], dil
cmp dil, 8
jne 0x14012f810
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.140362750
add rsp, 0x1460
pop r13
ret
xor al, al
jmp 0x14012fcea
call fcn.1400839b0
int3