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

Disassembly:
push r15
mov eax, 0x1948
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.004453d0
sub rsp, rax
lea rsi, [rsp + 0x5a0]
mov rbp, r8
mov r12, rcx
mov qword [rsp + 0x19a8], r9
lea rbx, [rsp + 0xf70]
mov rcx, rsi
mov r13, rdx
lea rdx, str.Origin
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
lea rcx, [rbp + 0x40]
mov rdx, rsi
call sym._ZN7httplib6detail16get_header_valueERKSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_NS0_2ciESaISt4pairIK
mov rcx, rbx
mov rdx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
lea rdi, [rsp + 0x410]
lea rdx, str.Access_Control_Allow_Origin
mov rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x19a8]
mov r8, rbx
mov rdx, rdi
call method.httplib::Response.set_header_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov rcx, qword [rsp + 0x410]
lea rax, [rdi + 0x10]
cmp rcx, rax
je 0x4155a0
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xf70]
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x4155b6
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x5a0]
lea rax, [rsi + 0x10]
cmp rcx, rax
je 0x4155cc
call sym.operator_delete_void_
mov r13, qword [r13]
lea rdx, [rbp + 0x70]
mov r8, rbx
mov rcx, rsi
mov dword [rsp + 0x20], 0
mov r9d, 1
mov qword [rsp + 0xf80], 0
add r13, 0x760
call fcn.0047f3c0
mov rax, qword [r12]
lea r15, [rsp + 0xe0]
mov r9, r13
mov r8, rsi
mov rcx, r15
mov rdx, qword [rax]
call sym._ZL33oaicompat_completion_params_parsePK11llama_modelRKN8nlohmann16json_abi_v3_11_310basic_jsonINS3_11ordered_mapESt6vectorNSt
mov rcx, rsi
call fcn.004823b0
mov rax, qword [rsp + 0xf80]
test rax, rax
je 0x415640
mov r8d, 3
mov rdx, rbx
mov rcx, rbx
call rax
mov rax, qword [r12]
lea rcx, [rax + 0xa40]
call method.server_queue.get_new_id__
mov r13d, eax
mov rax, qword [r12]
mov edx, r13d
lea rcx, [rax + 0xb00]
call method.server_response.add_waiting_task_id_int_
mov rdx, r15
mov rcx, rbx
mov rbp, qword [r12]
call fcn.004804d0
mov dword [rsp + 0x28], 0
mov r9, rbx
mov edx, r13d
mov rcx, rbp
mov dword [rsp + 0x20], 0
mov r8d, 0xffffffff
call sym._ZN14server_context18request_completionEiiN8nlohmann16json_abi_v3_11_310basic_jsonINS1_11ordered_mapESt6vectorNSt7__cxx1112bas
mov rcx, rbx
call fcn.004823b0
mov edx, 0x18
mov rcx, rdi
call sym.std::__cxx11::basic_stringstream_char__std::char_traits_char___std::allocator_char___::basic_stringstream_std::_Ios_Openmode_
lea rcx, [rdi + 0x10]
mov r8d, 9
lea rdx, str.chatcmpl_
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
movzx eax, byte [0x0053f0f8]
test al, al
jne 0x4156e3
lea rcx, [0x0053f0f8]
call sym.__cxa_guard_acquire
test eax, eax
jne 0x415b70
lea rdx, str.mt19937
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rdx, rbx
mov rcx, rsi
call sym.std::random_device::_M_init_pretr1_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov rcx, qword [rsp + 0xf70]
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x415713
call sym.operator_delete_void_
mov rcx, rsi
call sym.std::random_device::_M_getval_pretr1__
mov dword [rsp + 0xf70], eax
mov ecx, 1
mov edx, eax
nop dword [rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul eax, eax, 0x6c078965
lea edx, [rax + rcx]
mov dword [rbx + rcx*4], edx
add rcx, 1
cmp rcx, 0x270
jne 0x415730
lea rbp, [rsp + 0x380]
mov r8d, 0x20
mov edx, 0x20
mov qword [rsp + 0x1930], 0x270
lea rax, [rbp + 0x10]
mov rcx, rbp
mov qword [rsp + 0x380], rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::_M_construct_unsigned_long_long__char_
lea r11, [0x0053f100]
xor r10d, r10d
jmp 0x4157f1
lea rdx, [rax + 1]
mov eax, dword [rsp + rax*4 + 0xf70]
mov qword [rsp + 0x1930], rdx
mov edx, eax
shr edx, 0xb
xor eax, edx
mov edx, eax
shl edx, 7
and edx, 0x9d2c5680
xor eax, edx
mov edx, eax
shl edx, 0xf
and edx, 0xefc60000
xor eax, edx
mov edx, eax
shr edx, 0x12
xor eax, edx
xor edx, edx
div qword [0x0053f108]
mov rax, qword [r11]
movzx edx, byte [rax + rdx]
mov rax, qword [rsp + 0x380]
mov byte [rax + r10], dl
add r10, 1
cmp r10, 0x20
je 0x415820
mov rax, qword [rsp + 0x1930]
cmp rax, 0x26f
jbe 0x415790
mov rcx, rbx
call fcn.004a6e10
mov rax, qword [rsp + 0x1930]
jmp 0x415790
mov r8, qword [rsp + 0x388]
lea rcx, [rdi + 0x10]
mov rdx, qword [rsp + 0x380]
call sym.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, qword [rsp + 0x380]
lea rax, [rbp + 0x10]
cmp rcx, rax
je 0x41584f
call sym.operator_delete_void_
lea rax, [rsp + 0x130]
lea rdx, [rdi + 0x18]
mov rcx, rax
mov qword [rsp + 0x40], rax
call sym.std::__cxx11::basic_stringbuf_char__std::char_traits_char___std::allocator_char___::str___const
mov rcx, rdi
call sym.std::__cxx11::basic_stringstream_char__std::char_traits_char___std::allocator_char___::basic_stringstream__
lea rdx, str.stream
mov rcx, rbx
mov byte [rsp + 0x5a0], 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov r8, rsi
mov rdx, rbx
mov rcx, r15
call sym._Z10json_valueIbET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS2_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_t
mov rcx, qword [rsp + 0xf70]
mov r14d, eax
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x4158ae
call sym.operator_delete_void_
test r14b, r14b
jne 0x415980
mov rax, qword [r12]
lea rcx, [rsp + 0x150]
mov r8d, r13d
mov qword [rsp + 0x48], rcx
lea rdx, [rax + 0xb00]
call method.server_response.recv_int_
cmp byte [rsp + 0x169], 0
jne 0x4158f8
movzx eax, byte [rsp + 0x168]
test al, al
mov byte [rsp + 0x88], al
jne 0x415ba0
mov rax, qword [rsp + 0x48]
mov rcx, rbx
lea rdx, [rax + 8]
call fcn.004804d0
mov rcx, qword [rsp + 0x19a8]
mov rdx, rbx
call sym._ZZ4mainENKUlRN7httplib8ResponseEN8nlohmann16json_abi_v3_11_310basic_jsonINS3_11ordered_mapESt6vectorNSt7__cxx1112basic_string
mov rcx, rbx
call fcn.004823b0
mov rcx, qword [r12]
mov edx, r13d
add rcx, 0xb00
call method.server_response.remove_waiting_task_id_int_
mov rcx, qword [rsp + 0x48]
add rcx, 8
call fcn.004823b0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x130]
add rax, 0x10
cmp rcx, rax
je 0x41595d
call sym.operator_delete_void_
mov rcx, r15
call fcn.004823b0
nop
add rsp, 0x1948
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r12]
lea rcx, [rsi + 0x10]
mov dword [rsp + 0x5a0], r13d
mov rdx, qword [rsp + 0x130]
mov r8, qword [rsp + 0x138]
mov qword [rsp + 0x5a8], rax
lea rax, [rsi + 0x20]
mov qword [rsp + 0x5b0], rax
add r8, rdx
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3684_
mov rax, qword [r12]
lea rcx, [rbx + 0x10]
mov dword [rsp + 0x410], r13d
lea rdx, [sym._ZNSt14_Function_base13_Base_managerIZZ4mainENKUlRKN7httplib7RequestERNS1_8ResponseEE15_clES4_S6_EUlbE0_E10_M_managerERSt9_Any]
mov r8, qword [rsp + 0x5b8]
movq xmm0, rdx
mov rdx, qword [rsp + 0x5b0]
mov qword [rsp + 0x418], rax
lea rax, [method.std._Function_handler_void__bool___main::lambda_httplib::Request_const__httplib::Response_17::operator___httplib::Request_const__httplib::Response__const::lambda_bool_2_::_M_invoke_std::_Any_data_const__bool_]
movq xmm1, rax
mov eax, dword [rsp + 0x5a0]
add r8, rdx
punpcklqdq xmm0, xmm1
movaps xmmword [rsp + 0x420], xmm0
mov dword [rsp + 0xf70], eax
mov rax, qword [rsp + 0x5a8]
mov qword [rsp + 0xf78], rax
lea rax, [rbx + 0x20]
mov qword [rsp + 0xf80], rax
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3684_
mov ecx, 0x30
mov qword [rsp + 0x390], 0
call sym.operator_new_unsigned_long_long_
mov r12, rax
mov eax, dword [rsp + 0xf70]
mov rdx, qword [rsp + 0xf80]
lea rcx, [r12 + 0x10]
mov r8, qword [rsp + 0xf88]
mov dword [r12], eax
mov rax, qword [rsp + 0xf78]
add r8, rdx
mov qword [r12 + 8], rax
lea rax, [r12 + 0x20]
mov qword [r12 + 0x10], rax
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char__char__char__std::forward_iterator_tag___clone_.constprop.3684_
lea rdx, [sym._ZNSt14_Function_base13_Base_managerIZZ4mainENKUlRKN7httplib7RequestERNS1_8ResponseEE15_clES4_S6_EUlyRNS1_8DataSinkEE_E10_M_ma]
mov qword [rsp + 0x380], r12
lea rax, [sym._ZNSt17_Function_handlerIFbyRN7httplib8DataSinkEEZZ4mainENKUlRKNS0_7RequestERNS0_8ResponseEE15_clES6_S8_EUlyS2_E_E9_M_invokeER]
movq xmm0, rdx
lea r14, [rsp + 0x330]
movq xmm2, rax
lea rdx, str.text_event_stream
mov rcx, r14
punpcklqdq xmm0, xmm2
movaps xmmword [rsp + 0x390], xmm0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x19a8]
mov r9, rdi
mov r8, rbp
mov rdx, r14
call sym._ZN7httplib8Response28set_chunked_content_providerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFbyRNS_8D
mov rcx, qword [rsp + 0x330]
add r14, 0x10
cmp rcx, r14
je 0x415b01
call sym.operator_delete_void_
mov rax, qword [rsp + 0x390]
test rax, rax
je 0x415b1c
mov r8d, 3
mov rdx, rbp
mov rcx, rbp
call rax
mov rcx, qword [rsp + 0xf80]
add rbx, 0x20
cmp rcx, rbx
je 0x415b32
call sym.operator_delete_void_
mov rax, qword [rsp + 0x420]
test rax, rax
je 0x415b4d
mov r8d, 3
mov rdx, rdi
mov rcx, rdi
call rax
mov rcx, qword [rsp + 0x5b0]
add rsi, 0x20
cmp rcx, rsi
je 0x415942
call sym.operator_delete_void_
jmp 0x415942
lea rdx, [0x00517368]
lea rcx, [0x0053f100]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
lea rcx, [0x0053f0f8]
call sym.__cxa_guard_release
lea rcx, [sym.__tcf_2]
call sym.atexit
jmp 0x4156e3
mov rax, qword [rsp + 0x48]
lea rdx, [rax + 8]
lea rax, [rsp + 0x100]
mov rcx, rax
mov qword [rsp + 0x70], rax
call fcn.004804d0
lea rax, [rsp + 0x2a0]
lea rdx, str.stopped_word
mov rcx, rax
mov qword [rsp + 0x58], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
cmp byte [rsp + 0x100], 1
jne 0x415bfa
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x70]
call fcn.00402f70
test rax, rax
setne r14b
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x2a0]
add rax, 0x10
cmp rcx, rax
je 0x415c15
call sym.operator_delete_void_
lea rdx, str.stopped_eos
mov rcx, rbx
mov byte [rsp + 0x1f0], 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x1f0]
mov rdx, rbx
mov r8, rax
mov qword [rsp + 0x90], rax
call sym._Z10json_valueIbET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS2_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_t
mov rcx, qword [rsp + 0xf70]
mov byte [rsp + 0x38], al
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x415c66
call sym.operator_delete_void_
lea rdx, str.tokens_predicted
mov rcx, rbx
mov dword [rsp + 0x210], 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x210]
mov rdx, rbx
mov r8, rax
mov qword [rsp + 0x80], rax
call sym._Z10json_valueIiET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS2_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_t
mov rcx, qword [rsp + 0xf70]
mov dword [rsp + 0xa8], eax
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x415cbd
call sym.operator_delete_void_
lea rdx, str.tokens_evaluated
mov rcx, rbx
mov dword [rsp + 0x240], 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x240]
mov rdx, rbx
mov r8, rax
mov qword [rsp + 0x68], rax
call sym._Z10json_valueIiET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS2_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_t
mov rcx, qword [rsp + 0xf70]
mov dword [rsp + 0xc8], eax
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x415d11
call sym.operator_delete_void_
lea rdx, [0x005123a4]
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
lea rdx, str.content
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rdx, qword [rsp + 0x70]
lea rax, [rsp + 0x170]
mov r9, rsi
mov r8, rbx
mov rcx, rax
mov qword [rsp + 0xb0], rax
call sym._Z10json_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS8_11ordered
mov rcx, qword [rsp + 0xf70]
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x415d68
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x5a0]
lea rax, [rsi + 0x10]
cmp rcx, rax
je 0x415d7e
call sym.operator_delete_void_
lea rax, [rsp + 0x190]
lea rdx, str.length
mov rcx, rax
mov qword [rsp + 0x98], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
cmp byte [rsp + 0x38], 0
jne 0x416a00
test r14b, r14b
jne 0x416a00
lea rax, [rsp + 0x2d0]
lea rdx, str.finish_reason
mov rcx, rax
mov qword [rsp + 0x60], rax
call fcn.00481190
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x2e0], 0
mov rdx, qword [rsp + 0x98]
lea rcx, [rax + 0x18]
call fcn.00481f40
mov rax, qword [rsp + 0x60]
mov rcx, rbx
mov qword [rsp + 0x2f8], 0
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xd0]
mov rdx, rax
mov qword [rsp + 0x38], rax
call fcn.00406380
lea rax, [rsp + 0x300]
mov qword [rsp + 0xf80], 0
lea rdx, str.index
mov rcx, rax
mov qword [rsp + 0x50], rax
call fcn.004819b0
mov r14, qword [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x310], 0
lea rcx, [r14 + 0x18]
call sym._ZN8nlohmann16json_abi_v3_11_36detail8json_refINS0_10basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char
mov rdx, qword [rsp + 0x38]
lea rcx, [rbx + 0x18]
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], 2
call fcn.00406380
lea r14, [rsp + 0x330]
mov qword [rsp + 0xf98], 0
lea rdx, str.message
mov rcx, r14
call fcn.00481af0
lea rdx, str.content
mov rcx, rdi
mov qword [rsp + 0x340], 0
call fcn.00481af0
mov rdx, qword [rsp + 0xb0]
lea rcx, [rdi + 0x18]
mov qword [rsp + 0x420], 0
call fcn.00481f40
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
mov qword [rsp + 0x438], 0
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], 2
call fcn.00406380
lea rdx, str.role
mov rcx, rsi
mov qword [rsp + 0x390], 0
call fcn.00481910
mov qword [rsp + 0x5b0], 0
lea rcx, [rsi + 0x18]
lea rdx, str.assistant
call fcn.00480f10
mov rdx, qword [rsp + 0x38]
lea rcx, [rbp + 0x18]
mov qword [rsp + 0x5c8], 0
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xd8], 2
call fcn.00406380
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x270]
mov qword [rsp + 0x3a8], 0
mov rcx, rax
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0x78], rax
call fcn.00406380
mov rdx, qword [rsp + 0x78]
lea rcx, [r14 + 0x18]
call fcn.00480290
mov rdx, qword [rsp + 0x38]
lea rcx, [rbx + 0x30]
mov qword [rsp + 0x358], 0
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], 2
call fcn.00406380
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd0], rbx
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xfb0], 0
mov qword [rsp + 0xd8], 3
call fcn.00406380
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
call fcn.00480290
mov rax, qword [rsp + 0x58]
mov r8d, 2
mov qword [rsp + 0x2b0], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd8], 1
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0x110]
mov rcx, rax
mov qword [rsp + 0xa0], rax
call fcn.004069c0
mov rcx, qword [rsp + 0x58]
call fcn.004823b0
mov rcx, qword [rsp + 0x68]
call fcn.004823b0
lea rcx, [rbx + 0x30]
call fcn.004823b0
lea rcx, [rbx + 0x18]
call fcn.004823b0
mov rcx, rbx
call fcn.004823b0
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
mov rcx, qword [rsp + 0x78]
call fcn.004823b0
lea rcx, [rbp + 0x18]
call fcn.004823b0
mov rcx, rbp
call fcn.004823b0
lea rcx, [rsi + 0x18]
call fcn.004823b0
mov rcx, rsi
call fcn.004823b0
lea rcx, [rdi + 0x18]
call fcn.004823b0
mov rcx, rdi
call fcn.004823b0
mov r11, qword [rsp + 0x50]
lea rcx, [r11 + 0x18]
call fcn.004823b0
mov rcx, qword [rsp + 0x50]
call fcn.004823b0
mov r11, qword [rsp + 0x60]
lea rcx, [r11 + 0x18]
call fcn.004823b0
mov rcx, qword [rsp + 0x60]
call fcn.004823b0
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__time64]
mov rcx, qword [rsp + 0x80]
lea rdx, str.choices
mov qword [rsp + 0x88], rax
call fcn.00481af0
mov r11, qword [rsp + 0x80]
mov qword [rsp + 0x220], 0
mov rdx, qword [rsp + 0xa0]
lea rcx, [r11 + 0x18]
call fcn.004804d0
mov r11, qword [rsp + 0x80]
mov rcx, rbp
mov qword [rsp + 0x238], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], r11
call fcn.00406380
mov rcx, qword [rsp + 0x68]
lea rdx, str.created
mov qword [rsp + 0x390], 0
call fcn.00481af0
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x250], 0
mov byte [rsp + 0x258], 0
mov qword [rsp + 0x260], 0
lea rcx, [rdx + 0x20]
xor edx, edx
call fcn.0047df30
mov rdx, qword [rsp + 0x68]
mov byte [rsp + 0x258], 5
mov r11, qword [rsp + 0x88]
lea rax, [rdx + 0x18]
mov rcx, rax
mov qword [rsp + 0x260], r11
mov qword [rsp + 0x88], rax
call fcn.00404060
mov rax, qword [rsp + 0x88]
mov rcx, rax
call fcn.00404060
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp + 0x18]
mov qword [rsp + 0x268], 0
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], rdx
mov rdx, qword [rsp + 0x38]
call fcn.00406380
mov rcx, qword [rsp + 0x78]
lea rdx, [0x00513a42]
mov qword [rsp + 0x3a8], 0
call fcn.004819b0
lea rdx, [rsp + 0x1d0]
mov qword [rsp + 0x280], 0
mov r11, rdx
mov rcx, r11
mov qword [rsp + 0xc0], r11
lea rdx, str.gpt_3.5_turbo_0613
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rcx, qword [rsp + 0x90]
lea rdx, [0x00513a42]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov r9, qword [rsp + 0xc0]
lea rdx, [rsp + 0x1b0]
mov r8, qword [rsp + 0x90]
mov r10, rdx
mov rdx, r15
mov rcx, r10
mov qword [rsp + 0xb8], r10
call sym._Z10json_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEET_RKN8nlohmann16json_abi_v3_11_310basic_jsonINS8_11ordered
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xb8]
add rcx, 0x18
call fcn.00482260
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x298], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], rcx
lea rcx, [rbp + 0x30]
call fcn.00406380
mov rcx, qword [rsp + 0x58]
lea rdx, [0x0051318b]
mov qword [rsp + 0x3c0], 0
call fcn.00481a50
mov rax, qword [rsp + 0x58]
xor edx, edx
mov qword [rsp + 0x2b0], 0
mov byte [rsp + 0x2b8], 0
mov qword [rsp + 0x2c0], 0
lea rcx, [rax + 0x20]
call fcn.0047df30
mov ecx, 0x20
mov byte [rsp + 0x2b8], 3
call sym.operator_new_unsigned_long_long_
mov rcx, rax
mov qword [rsp + 0x88], rax
lea rdx, str.chat.completion
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x88]
add rax, 0x18
mov qword [rsp + 0x2c0], rcx
mov rcx, rax
mov qword [rsp + 0x88], rax
call fcn.00404060
mov rax, qword [rsp + 0x88]
mov rcx, rax
call fcn.00404060
mov rax, qword [rsp + 0x58]
lea rcx, [rbp + 0x48]
mov qword [rsp + 0x2c8], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], rax
call fcn.00406380
mov rcx, qword [rsp + 0x60]
lea rdx, str.usage
mov qword [rsp + 0x3d8], 0
call fcn.004819b0
mov rax, qword [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x2e0], 0
mov byte [rsp + 0x300], 0
mov qword [rsp + 0x308], 0
lea rcx, [rax + 8]
call fcn.0047df30
mov ecx, 0x20
mov byte [rsp + 0x300], 3
call sym.operator_new_unsigned_long_long_
lea r8, [0x005156bd]
mov rcx, rax
lea rax, [rax + 0x10]
mov qword [rsp + 0x88], rcx
mov qword [rcx], rax
lea rdx, [r8 - 0x11]
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag___clone_.constprop.3682_
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x308], rdx
call fcn.00404060
mov rcx, qword [rsp + 0x50]
call fcn.00404060
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x310], 0
mov edx, dword [rsp + 0xa8]
lea rcx, [rax + 0x18]
call sym._ZN8nlohmann16json_abi_v3_11_36detail8json_refINS0_10basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char
mov rax, qword [rsp + 0x50]
mov rcx, r14
mov qword [rsp + 0xd8], 2
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd0], rax
call fcn.00406380
lea rdx, [0x00515069]
mov rcx, rdi
mov qword [rsp + 0x340], 0
call fcn.00481190
mov edx, dword [rsp + 0xc8]
lea rcx, [rdi + 0x18]
mov qword [rsp + 0x420], 0
call sym._ZN8nlohmann16json_abi_v3_11_36detail8json_refINS0_10basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char
mov rdx, qword [rsp + 0x38]
lea rcx, [r14 + 0x18]
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], 2
call fcn.00406380
lea rdx, str.total_tokens
mov rcx, rsi
mov qword [rsp + 0x358], 0
call fcn.004810f0
mov edx, dword [rsp + 0xa8]
lea rcx, [rsi + 0x18]
mov qword [rsp + 0x5b0], 0
add edx, dword [rsp + 0xc8]
call sym._ZN8nlohmann16json_abi_v3_11_36detail8json_refINS0_10basic_jsonINS0_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char
mov rdx, qword [rsp + 0x38]
lea rcx, [r14 + 0x30]
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xd8], 2
call fcn.00406380
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0x120]
mov qword [rsp + 0x370], 0
mov rcx, rax
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], 3
mov qword [rsp + 0xa8], rax
call fcn.00406380
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xa8]
add rcx, 0x18
call fcn.00480290
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x2f8], 0
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xd0], rcx
lea rcx, [rbp + 0x60]
call fcn.00406380
lea rcx, [rbx + 8]
xor edx, edx
mov qword [rsp + 0x3f0], 0
mov byte [rsp + 0xf70], 0
mov qword [rsp + 0xf78], 0
call fcn.0047df30
mov ecx, 0x20
mov byte [rsp + 0xf70], 3
call sym.operator_new_unsigned_long_long_
lea r8, [0x00514cc8]
mov rcx, rax
lea rax, [rax + 0x10]
mov qword [rsp + 0x88], rcx
mov qword [rcx], rax
lea rdx, [r8 - 2]
call method.void_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_construct_char_const__char_const__char_const__std::forward_iterator_tag___clone_.constprop.3682_
mov rdx, qword [rsp + 0x88]
mov rcx, rbx
mov qword [rsp + 0xf78], rdx
call fcn.00404060
mov rcx, rbx
call fcn.00404060
mov rdx, qword [rsp + 0x40]
lea rcx, [rbx + 0x18]
mov qword [rsp + 0xf80], 0
call fcn.00481c30
mov rdx, qword [rsp + 0x38]
lea rcx, [rbp + 0x78]
mov qword [rsp + 0xf98], 0
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], 2
call fcn.00406380
mov rdx, qword [rsp + 0x38]
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x408], 0
mov rcx, rax
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], 6
mov qword [rsp + 0x88], rax
call fcn.00406380
lea rax, [rbp + 0x90]
mov qword [rsp + 0xc8], rbx
mov rbx, rax
nop
sub rbx, 0x18
mov rcx, rbx
call fcn.004823b0
cmp rbx, rbp
jne 0x416760
mov rbx, qword [rsp + 0xc8]
lea rcx, [rbx + 0x18]
call fcn.004823b0
mov rcx, rbx
call fcn.004823b0
mov rax, qword [rsp + 0x60]
lea rcx, [rax + 0x18]
call fcn.004823b0
mov rcx, qword [rsp + 0x60]
call fcn.004823b0
mov rcx, qword [rsp + 0xa8]
call fcn.004823b0
lea rcx, [r14 + 0x30]
call fcn.004823b0
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
lea rcx, [rsi + 0x18]
call fcn.004823b0
mov rcx, rsi
call fcn.004823b0
lea rcx, [rdi + 0x18]
call fcn.004823b0
mov rcx, rdi
call fcn.004823b0
mov r14, qword [rsp + 0x50]
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
mov r14, qword [rsp + 0x58]
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
mov r14, qword [rsp + 0x78]
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x1b0]
add rax, 0x10
cmp rcx, rax
je 0x41684b
call sym.operator_delete_void_
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x1f0]
add rax, 0x10
cmp rcx, rax
je 0x416869
call sym.operator_delete_void_
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x1d0]
add rax, 0x10
cmp rcx, rax
je 0x416887
call sym.operator_delete_void_
mov r14, qword [rsp + 0x68]
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
mov r14, qword [rsp + 0x80]
lea rcx, [r14 + 0x18]
call fcn.004823b0
mov rcx, r14
call fcn.004823b0
cmp byte [0x0053f080], 0
je 0x4168f3
mov rdx, qword [rsp + 0x70]
mov rcx, rbx
call fcn.004804d0
mov rcx, qword [rsp + 0x88]
lea rdx, [0x005173b7]
call fcn.00482c00
mov rcx, rax
mov rdx, rbx
call fcn.004824c0
mov rcx, rbx
call fcn.004823b0
mov rcx, qword [rsp + 0x50]
lea rdx, str.completion_probabilities
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
cmp byte [rsp + 0x100], 1
mov r14, qword [rsp + 0x300]
je 0x416a20
mov rax, qword [rsp + 0x50]
add rax, 0x10
cmp r14, rax
je 0x416930
mov rcx, r14
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xa0]
call fcn.004823b0
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x190]
add rax, 0x10
cmp rcx, rax
je 0x41695b
call sym.operator_delete_void_
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x170]
add rax, 0x10
cmp rcx, rax
je 0x416979
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x70]
call fcn.004823b0
lea rdx, str.application_json__charsetutf_8
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rdx, qword [rsp + 0x88]
mov r8d, 1
mov rcx, rsi
call fcn.00407260
mov rcx, qword [rsp + 0x19a8]
mov r8, rbx
mov rdx, rsi
call method.httplib::Response.set_content_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov rcx, qword [rsp + 0x5a0]
add rsi, 0x10
cmp rcx, rsi
je 0x4169d1
call sym.operator_delete_void_
mov rcx, qword [rsp + 0xf70]
add rbx, 0x10
cmp rcx, rbx
je 0x4169e7
call sym.operator_delete_void_
mov rcx, qword [rsp + 0x88]
call fcn.004823b0
jmp 0x415921
mov rcx, qword [rsp + 0x98]
lea rdx, str.stop
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::assign_char_const_
jmp 0x415db1
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
call fcn.00402fe0
mov rdx, qword [rsp + 0x50]
add rdx, 0x10
cmp r14, rdx
je 0x416a4e
mov rcx, r14
mov byte [rsp + 0x50], al
call sym.operator_delete_void_
movzx eax, byte [rsp + 0x50]
test al, al
je 0x416930
mov rdx, qword [rsp + 0x38]
mov r8d, 2
mov rcx, rsi
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xd8], 0
call fcn.004069c0
lea rdx, str.completion_probabilities
mov rcx, rbx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const___clone_.isra.1540_
mov rdx, qword [rsp + 0x70]
mov r9, rsi
mov r8, rbx
mov rcx, rdi
call sym._Z10json_valueIN8nlohmann16json_abi_v3_11_310basic_jsonINS1_11ordered_mapESt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsI
mov rcx, qword [rsp + 0x88]
lea rdx, str.completion_probabilities
call fcn.00482c00
mov rdx, rdi
mov rcx, rax
call fcn.004824c0
mov rcx, rdi
call fcn.004823b0
mov rcx, qword [rsp + 0xf70]
lea rax, [rbx + 0x10]
cmp rcx, rax
je 0x416adc
call sym.operator_delete_void_
mov rcx, rsi
call fcn.004823b0
jmp 0x416930