Function at 0x435ff0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rsi, rcx
mov rcx, qword [rcx + 0x110]
test rcx, rcx
je 0x43601f
call sym.llama_grammar_free
mov qword [rsi + 0x110], 0
mov rax, qword [rsi + 0x150]
cmp qword [rsi + 0x148], rax
je 0x436194
lea rcx, [rsp + 0x20]
mov r12, 0xfffffffffffffffc
lea rdx, [rsi + 0x118]
call method.grammar_parser::parse_state.c_rules__
mov rbx, qword [rsi + 0x128]
lea r13, [rsp + 0x40]
mov dword [rsp + 0x50], 0x746f6f72
lea rbp, [r13 + 0x10]
mov byte [rsp + 0x54], 0
lea r14, [rsi + 0x120]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], 4
mov rdi, r14
test rbx, rbx
jne 0x4360c9
lea rcx, [0x00525ce0]
call sym.std::__throw_out_of_range_char_const_
mov r8d, 4
mov rdx, rbp
call sym.memcmp
test eax, eax
jne 0x4360e3
lea rax, [r15 - 4]
cmp rax, 0x7fffffff
jg 0x4360e7
cmp rax, 0xffffffff80000000
jge 0x4360e3
nop word [rax + rax]
mov rbx, qword [rbx + 0x18]
test rbx, rbx
je 0x4360f3
mov r15, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x20]
cmp r15, 4
ja 0x436091
test r15, r15
mov rax, r12
jne 0x4361f4
test eax, eax
js 0x4360c0
mov rdi, rbx
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x4360c9
cmp r14, rdi
je 0x436085
mov rbx, qword [rdi + 0x28]
mov rdx, qword [rdi + 0x20]
cmp rbx, 3
jbe 0x436210
lea rcx, [r13 + 0x10]
mov r8d, 4
call sym.memcmp
test eax, eax
jne 0x43613d
mov ebp, 4
sub rbp, rbx
cmp rbp, 0x7fffffff
jg 0x436145
cmp rbp, 0xffffffff80000000
jl 0x436085
mov eax, ebp
test eax, eax
js 0x436085
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov r8d, dword [rdi + 0x40]
sub rdx, rcx
sar rdx, 3
call sym.llama_grammar_init
mov rcx, qword [rsp + 0x40]
add r13, 0x10
mov rbx, rax
cmp rcx, r13
je 0x436175
call sym.operator_delete_void_
test rbx, rbx
je 0x43623c
mov rcx, qword [rsp + 0x20]
mov qword [rsi + 0x110], rbx
test rcx, rcx
je 0x436194
call sym.operator_delete_void_
mov rax, qword [rsi + 0x168]
mov rcx, qword [rsi + 0x160]
cmp rcx, rax
je 0x4361c1
sub rax, 4
xor edx, edx
sub rax, rcx
shr rax, 2
lea r8, [rax*4 + 4]
call sym.memset
mov rax, qword [rsi + 0x178]
cmp rax, qword [rsi + 0x180]
je 0x4361d8
mov qword [rsi + 0x180], rax
mov qword [rsi + 0x190], 0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, r15
mov rdx, rbp
call sym.memcmp
test eax, eax
jne 0x4360e3
lea rax, [r15 - 4]
jmp 0x4360e3
test rbx, rbx
mov ebp, 4
je 0x43613b
lea rcx, [r13 + 0x10]
mov r8, rbx
call sym.memcmp
test eax, eax
jne 0x43613d
sub rbp, rbx
mov eax, ebp
jmp 0x43613d
mov ecx, 0x10
call sym.__cxa_allocate_exception
lea rdx, str.Failed_to_initialize_llama_grammar
mov rcx, rax
mov rsi, rax
call sym.std::runtime_error::runtime_error_char_const_
lea r8, [sym.std::runtime_error::runtime_error__]
mov rcx, rsi
lea rdx, sym.imp.libstdc_6.dll_vtable_for_std::__cxx11::basic_stringbuf_char__std::char_traits_char___std::allocator_char___
call sym.__cxa_throw
mov rcx, qword [rsp + 0x40]
add r13, 0x10
mov rbx, rax
cmp rcx, r13
je 0x436296
call sym.operator_delete_void_
jmp 0x436296
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x4362a5
call sym.operator_delete_void_
mov rcx, rbx
call sym._Unwind_Resume
nop
nop