Function at 0x1401dc3d0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rsp + 0x18], r8d
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x15e8]
mov eax, 0x16e8
call fcn.140194510
sub rsp, rax
xor ebx, ebx
mov rdi, rdx
mov r14, rcx
mov qword [rsp + 0x60], rbx
xorps xmm0, xmm0
mov dword [rsp + 0x70], ebx
mov esi, 0x208
mov word [rsp + 0x78], bx
mov r8d, esi
lea rcx, [rbp - 0x70]
xor edx, edx
mov r12d, r9d
movups xmmword [rbp - 0x80], xmm0
call fcn.1401e8980
movups xmm0, xmmword [0x1405e6490]
mov qword [rbp + 0x1b8], rbx
xor ecx, ecx
xorps xmm1, xmm1
mov dword [rbp + 0x1c0], ebx
movups xmmword [rbp + 0x198], xmm0
mov qword [rbp + 0x1f8], rbx
xorps xmm0, xmm0
mov dword [rbp + 0x200], ebx
movdqu xmmword [rbp + 0x1c8], xmm0
mov dword [rsp + 0x68], r12d
movdqu xmmword [rbp + 0x1e8], xmm0
movdqu xmmword [rbp + 0x208], xmm0
movdqu xmmword [rbp + 0x228], xmm0
movdqu xmmword [rbp + 0x1d8], xmm1
movdqu xmmword [rbp + 0x218], xmm1
movdqu xmmword [rbp + 0x238], xmm1
call fcn.1401b0b50
mov dword [rbp + 0x1a8], eax
call fcn.1401b0bc0
mov dword [rbp + 0x1b0], eax
cmp byte [r14 + 0x2c], bl
je 0x1401dc4ba
mov eax, dword [r14 + 0x28]
mov dword [rbp + 0x200], eax
jmp 0x1401dc513
mov r8, qword [r14 + 0x10]
cmp r8, 0x104
jbe 0x1401dc4eb
mov rax, qword [rbp + 0x1650]
mov dword [rax], ebx
mov dword [rax + 0x414], ebx
mov eax, 0x49
add rsp, 0x16e8
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
movzx eax, r8w
mov word [rbp - 0x7e], si
add ax, ax
mov rdx, r14
cmp qword [r14 + 0x18], 8
mov word [rbp - 0x80], ax
jb 0x1401dc507
mov rdx, qword [r14]
add r8, r8
lea rcx, [rbp - 0x70]
call fcn.1401e82d0
mov qword [rsp + 0x1728], r13
mov qword [rsp + 0x16e0], r15
bt r12d, 0x19
jae 0x1401dc5f6
bt r12d, 0x15
jb 0x1401dc5f6
call qword [0x1405e8a30]
mov dword [rbp + 0x15d4], 0xffffffff
mov edx, 1
mov dword [rbp + 0x254], eax
nop dword [rax]
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x254], eax
inc rdx
cmp rdx, 0x270
jb 0x1401dc560
lea rax, [rbp + 0x250]
mov dword [rbp + 0x250], 0x270
lea rcx, [rbp + 0x1620]
mov qword [rbp + 0x1620], rax
call fcn.1401dcd90
mov eax, eax
imul rcx, rax, 0xf01
cmp ecx, 0xd12
ja 0x1401dc5dd
nop word [rax + rax]
lea rcx, [rbp + 0x1620]
call fcn.1401dcd90
mov eax, eax
imul rcx, rax, 0xf01
cmp ecx, 0xd13
jb 0x1401dc5c0
shr rcx, 0x20
mov eax, 0x10f
add cx, ax
mov eax, 0xfff0
and cx, ax
mov word [rsp + 0x78], cx
lea rax, section..mmap_se
mov r15, rbx
lea r13, [0x14061b550]
sub r13, rax
lea rdx, section..veh_sec
lea rax, [0x14061e0f0]
sub rax, rdx
bt r12d, 0x14
lea r8, [r13 + 0x4e8]
cmovb r15, rax
add r8, r15
cmp byte [r14 + 0x2c], bl
je 0x1401dc63f
mov eax, dword [r14 + 0x28]
add rax, 0x10
add r8, rax
xor edx, edx
mov dword [rsp + 0x20], 0x40
mov r9d, 0x3000
mov rcx, rdi
call qword [0x1405e8ce8]
mov rsi, rax
test rax, rax
jne 0x1401dc67d
call qword [0x1405e8970]
mov rcx, qword [rbp + 0x1650]
mov dword [rcx], eax
lea eax, [rsi + 0x15]
mov dword [rcx + 0x414], ebx
jmp 0x1401dcd61
add rax, 0x2f7
lea rdx, [0x1405ceaa8]
and rax, 0xfffffffffffffff0
mov ecx, 0x1c0
mov qword [rbp + 0x1620], rax
add rax, 0xf
add rax, r13
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x40], rax
add rax, 0xf
add rax, r15
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x48], rax
add rax, 0x1cf
and rax, 0xfffffffffffffff0
mov qword [rsp + 0x50], rax
call fcn.1401d3014
xor r8d, r8d
mov qword [rsp + 0x58], rax
mov rbx, rax
test rax, rax
je 0x1401dcd36
mov qword [rax + 0x138], r8
mov qword [rax + 0x140], r8
mov qword [rax + 0x148], r8
mov qword [rax + 0x150], r8
mov qword [rax + 0x158], r8
mov qword [rax + 0x160], r8
mov qword [rax + 0x168], r8
mov qword [rax + 0x170], r8
mov qword [rax + 0x178], r8
mov qword [rax + 0x180], r8
mov qword [rax + 0x188], r8
mov qword [rax + 0x190], r8
mov qword [rax + 0x198], r8
mov qword [rax + 0x1a0], r8
mov qword [rax + 0x1a8], r8
mov qword [rax + 0x1b0], r8
mov qword [rax + 0x1b8], r8
mov rax, qword [0x1405ffd50]
mov qword [rbx], rax
mov rax, qword [0x1405ffd58]
mov qword [rbx + 8], rax
mov rax, qword [0x1405ffd70]
mov qword [rbx + 0x10], rax
mov rax, qword [0x1405ffd60]
mov qword [rbx + 0x18], rax
mov rax, qword [0x1405ffd68]
mov qword [rbx + 0x20], rax
mov rax, qword [0x1405ffd78]
mov qword [rbx + 0x28], rax
mov rax, qword [0x1405ffd88]
mov qword [rbx + 0x30], rax
mov rax, qword [0x1405ffd80]
mov qword [rbx + 0x38], rax
mov rax, qword [0x1405ffd90]
mov qword [rbx + 0x40], rax
mov rax, qword [0x1405ffd98]
mov qword [rbx + 0x48], rax
mov rax, qword [0x1405ffd08]
mov qword [rbx + 0x50], rax
mov rax, qword [0x1405ffd10]
mov qword [rbx + 0x58], rax
mov rax, qword [0x1405ffd18]
mov qword [rbx + 0x60], rax
mov rax, qword [0x1405ffd20]
mov qword [rbx + 0x68], rax
mov rax, qword [0x1405ffc90]
mov qword [rbx + 0x70], rax
mov rax, qword [0x1405ffc98]
mov qword [rbx + 0x78], rax
mov rax, qword [0x1405ffca8]
mov qword [rbx + 0x80], rax
mov rax, qword [0x1405ffc88]
mov qword [rbx + 0x88], rax
mov rax, qword [0x1405ffd28]
mov qword [rbx + 0x90], rax
mov rax, qword [0x1405ffd30]
mov qword [rbx + 0x98], rax
mov rax, qword [0x1405ffd38]
mov qword [rbx + 0xa0], rax
mov rax, qword [0x1405ffd40]
mov qword [rbx + 0xa8], rax
mov rax, qword [0x1405ffcd0]
mov qword [rbx + 0xb0], rax
mov rax, qword [0x1405ffcd8]
mov qword [rbx + 0xb8], rax
mov rax, qword [0x1405ffce0]
mov qword [rbx + 0xc0], rax
mov rax, qword [0x1405ffe18]
mov qword [rbx + 0xc8], rax
mov rax, qword [0x1405ffce8]
mov qword [rbx + 0xd0], rax
mov rax, qword [0x1405ffcf0]
mov qword [rbx + 0xd8], rax
mov rax, qword [0x1405ffcf8]
mov qword [rbx + 0xe0], rax
mov rax, qword [0x1405ffd00]
mov qword [rbx + 0xe8], rax
mov rax, qword [0x1405ffda0]
mov qword [rbx + 0xf0], rax
mov rax, qword [0x1405ffda8]
mov qword [rbx + 0xf8], rax
mov rax, qword [0x1405ffdb0]
mov qword [rbx + 0x100], rax
mov rax, qword [0x1405ffdc0]
mov qword [rbx + 0x108], rax
mov rax, qword [0x1405ffdc8]
mov qword [rbx + 0x110], rax
mov rax, qword [0x1405ffdd0]
mov qword [rbx + 0x118], rax
mov rax, qword [0x1405ffdd8]
mov qword [rbx + 0x120], rax
mov rax, qword [0x1405ffde0]
mov qword [rbx + 0x128], rax
mov rax, qword [0x1405ffdf0]
mov qword [rbx + 0x130], rax
test rbx, rbx
je 0x1401dcd36
mov rax, qword [rbp + 0x1620]
mov qword [rbx + 0x138], rax
mov rcx, rax
lea rax, section..mmap_se
sub rcx, rax
lea rax, [0x140619160]
add rax, rcx
mov qword [rbx + 0x140], rax
lea rax, [0x140619600]
add rax, rcx
mov qword [rbx + 0x148], rax
lea rax, [0x1406196f0]
add rax, rcx
mov qword [rbx + 0x150], rax
lea rax, [0x140619780]
add rax, rcx
mov qword [rbx + 0x158], rax
lea rax, [0x140619a30]
add rax, rcx
mov qword [rbx + 0x160], rax
lea rax, [0x140619d40]
add rax, rcx
mov qword [rbx + 0x168], rax
lea rax, [0x140619ee0]
add rax, rcx
mov qword [rbx + 0x170], rax
lea rax, [0x14061a210]
add rax, rcx
mov qword [rbx + 0x178], rax
lea rax, [0x14061a320]
add rax, rcx
mov qword [rbx + 0x180], rax
lea rax, [0x14061a3f0]
add rax, rcx
mov qword [rbx + 0x188], rax
lea rax, [0x14061a6b0]
add rax, rcx
mov qword [rbx + 0x190], rax
lea rax, [0x14061a850]
add rax, rcx
mov qword [rbx + 0x198], rax
lea rax, [0x14061a9d0]
add rax, rcx
mov qword [rbx + 0x1a0], rax
lea rax, [0x14061ae80]
add rax, rcx
mov qword [rbx + 0x1a8], rax
lea rax, [0x14061b1c0]
add rcx, rax
mov rax, qword [rsp + 0x48]
mov qword [rbx + 0x1b0], rcx
mov qword [rbp + 0x240], rax
test r15, r15
je 0x1401dca91
mov rax, qword [rsp + 0x40]
mov qword [rbp + 0x1b8], rax
mov dword [rbp + 0x1c0], r15d
cmp byte [r14 + 0x2c], r8b
mov r9d, 0x2e8
mov rax, qword [rbp + 0x1f8]
mov rdx, rsi
cmovne rax, qword [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x20], r8
lea r8, [rsp + 0x60]
mov qword [rbp + 0x1f8], rax
call qword [0x1405e8d78]
test eax, eax
jne 0x1401dcaf4
call qword [0x1405e8970]
mov rcx, qword [rbp + 0x1650]
mov dword [rcx + 0x414], 0
mov dword [rcx], eax
mov edx, 0x1c0
mov rcx, rbx
call fcn.140194698
jmp 0x1401dcbd8
mov r9, r13
mov qword [rsp + 0x20], 0
mov r13, qword [rbp + 0x1620]
lea r8, section..mmap_se
mov rdx, r13
mov rcx, rdi
call qword [0x1405e8d78]
test eax, eax
je 0x1401dcac9
test r15, r15
je 0x1401dcb48
mov rdx, qword [rsp + 0x40]
lea r8, section..veh_sec
mov r9, r15
mov qword [rsp + 0x20], 0
mov rcx, rdi
call qword [0x1405e8d78]
test eax, eax
je 0x1401dcac9
mov rdx, qword [rsp + 0x48]
xor r15d, r15d
mov r9d, 0x1c0
mov qword [rsp + 0x20], r15
mov r8, rbx
mov rcx, rdi
call qword [0x1405e8d78]
test eax, eax
jne 0x1401dcb90
call qword [0x1405e8970]
mov rcx, qword [rbp + 0x1650]
mov dword [rcx + 0x414], r15d
mov dword [rcx], eax
mov edx, 0x1c0
mov rcx, rbx
call fcn.140194698
jmp 0x1401dcbd8
mov edx, 0x1c0
mov rcx, rbx
call fcn.140194698
cmp byte [r14 + 0x2c], r15b
je 0x1401dcbf7
mov r9d, dword [r14 + 0x28]
mov rcx, rdi
mov r8, qword [r14 + 0x20]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x20], r15
call qword [0x1405e8d78]
test eax, eax
jne 0x1401dcbf7
call qword [0x1405e8970]
mov rcx, qword [rbp + 0x1650]
mov dword [rcx], eax
mov dword [rcx + 0x414], r15d
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [0x1405e8cf8]
mov eax, 0x10
jmp 0x1401dcd61
mov eax, dword [rbp + 0x1648]
mov ecx, r12d
mov rbx, qword [rbp + 0x1650]
or ecx, 0x3000
mov r14d, dword [rbp + 0x1630]
test r12b, 8
mov qword [rsp + 0x38], rbx
mov r9d, r14d
mov dword [rsp + 0x30], eax
cmove ecx, r12d
lea rax, [rbp + 0x1638]
mov dword [rbp + 0x1638], r15d
mov qword [rsp + 0x28], rax
mov r8, rsi
mov dword [rsp + 0x20], ecx
mov rdx, r13
mov rcx, rdi
call fcn.1401cd380
mov r15d, eax
test eax, eax
je 0x1401dcc84
cmp r14d, 3
je 0x1401dcc7c
cmp r14d, 1
jne 0x1401dcc67
cmp eax, 0x1020000a
je 0x1401dcc7c
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [0x1405e8cf8]
mov eax, r15d
jmp 0x1401dcd61
xor r15d, r15d
lea r8, [rsp + 0x60]
mov r9d, 0x2e8
mov qword [rsp + 0x20], r15
mov rdx, rsi
mov rcx, rdi
call qword [0x1405e8bd0]
test eax, eax
jne 0x1401dccdb
call qword [0x1405e8970]
mov dword [rbx + 0x414], r15d
mov dword [rbx], eax
cmp r14d, 3
je 0x1401dccd1
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [0x1405e8cf8]
mov eax, 0x1b
jmp 0x1401dcd61
cmp r14d, 3
je 0x1401dccf6
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [0x1405e8cf8]
mov eax, dword [rbp + 0x1638]
test eax, eax
je 0x1401dcd0f
mov ecx, dword [rsp + 0x70]
mov dword [rbx], ecx
mov dword [rbx + 0x414], r15d
jmp 0x1401dcd61
mov rcx, qword [rsp + 0x60]
test rcx, rcx
jne 0x1401dcd28
mov dword [rbx], r15d
lea eax, [rcx + 0x20]
mov dword [rbx + 0x414], r15d
jmp 0x1401dcd61
mov rax, qword [rbp + 0x1640]
mov qword [rax], rcx
xor eax, eax
jmp 0x1401dcd61
mov rax, qword [rbp + 0x1650]
mov r9d, 0x8000
mov rdx, rsi
mov rcx, rdi
mov dword [rax], r8d
mov dword [rax + 0x414], r8d
xor r8d, r8d
call qword [0x1405e8cf8]
mov eax, 0x17
mov r13, qword [rsp + 0x1728]
mov r15, qword [rsp + 0x16e0]
add rsp, 0x16e8
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret