Function at 0x451140
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [esp + 0x10], esi
cmp dword [esi + 0x14], 0xf
mov ebx, dword [esi + 0x10]
jbe 0x451164
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x451187
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x451173
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
je 0x4511e7
cmp dword [edi + 4], eax
je 0x4511e7
cmp byte [ebp + 0x10], 0
mov eax, dword [ebp + 0xc]
je 0x4511b4
cmp dword [eax + 0x10], 0
je 0x4518af
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004177a0
mov ecx, edi
call fcn.00451920
mov bl, al
mov ecx, edi
push esi
lea eax, [esp + 0x24]
push eax
call fcn.00452f90
mov ecx, dword [eax]
mov al, 1
mov ecx, dword [ecx + 0x20]
mov byte [ecx], bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esi + 0x14], 0xf
mov dword [esp + 0x10], esi
jbe 0x4511f7
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x45121a
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x451206
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
push eax
lea ecx, [edi + 0x20]
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x451233
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x24], eax
je 0x451343
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x45124f
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00464d21
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.0046215b
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x10]
je 0x4512fe
movsx ecx, byte [ecx]
push ecx
call fcn.00466aa0
add esp, 4
test eax, eax
je 0x4512b0
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00466aa0
add esp, 4
test eax, eax
jne 0x451297
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x4512fe
cmp byte [eax], 0
jne 0x4512fe
call fcn.00464d21
cmp dword [eax], 0
jne 0x4512fe
mov eax, dword [esp + 0x18]
cdq
cmp eax, dword [esp + 0x18]
jne 0x4512fe
cmp edx, dword [esp + 0x20]
jne 0x4512fe
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x20]
push eax
call fcn.00452f90
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [eax], ecx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x254
push str.ToInt
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, ebx
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4518ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x40]
mov ebx, esi
jbe 0x451350
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x451375
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x451360
lea eax, [edi + 0x40]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x45138d
mov eax, dword [edi + 0x44]
cmp dword [edi + 0x44], eax
je 0x451493
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4513a9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00464d21
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.0046215b
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cmp ecx, dword [esp + 0x10]
je 0x45144e
movsx ecx, byte [ecx]
push ecx
call fcn.00466aa0
add esp, 4
test eax, eax
je 0x45140a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00466aa0
add esp, 4
test eax, eax
jne 0x4513f1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x45144e
cmp byte [eax], 0
jne 0x45144e
call fcn.00464d21
cmp dword [eax], 0
jne 0x45144e
push esi
lea eax, [esp + 0x14]
lea ecx, [edi + 0x40]
push eax
call fcn.00452f90
mov ecx, dword [esp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [eax], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x25d
push str.ToInt64
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, ebx
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_integer_int64_option___s_
jmp 0x4518ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x60]
mov ebx, esi
jbe 0x4514a0
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4514c5
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4514b0
lea eax, [edi + 0x60]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x4514dd
mov eax, dword [edi + 0x64]
cmp dword [edi + 0x64], eax
je 0x4515f4
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4514f9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00464d21
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.0046215b
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], edx
cmp eax, dword [esp + 0x10]
je 0x4515af
movsx ecx, byte [eax]
push ecx
call fcn.00466aa0
add esp, 4
test eax, eax
je 0x45155a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00466aa0
add esp, 4
test eax, eax
jne 0x451541
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x4515af
cmp byte [eax], 0
jne 0x4515af
call fcn.00464d21
cmp dword [eax], 0
jne 0x4515af
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp edx, ecx
jne 0x4515af
test ecx, ecx
jl 0x4515af
jg 0x45158b
test eax, eax
jb 0x4515af
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x60]
push eax
call fcn.00452f90
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [eax], ecx
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x266
push str.ToUint
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, ebx
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4518ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x80]
mov ebx, esi
jbe 0x451604
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x451628
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x451610
lea eax, [edi + 0x80]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x451643
mov eax, dword [edi + 0x84]
cmp dword [edi + 0x84], eax
je 0x4516d9
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.00453a40
test al, al
jne 0x4516ae
push 0x26f
push str.ToFloat
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, ebx
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4518ef
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x80]
push eax
call fcn.00452f90
movss xmm0, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
movss dword [eax], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0xa0]
mov ebx, esi
jbe 0x4516e9
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x45170d
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4516f5
lea eax, [edi + 0xa0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x451728
mov eax, dword [edi + 0xa4]
cmp dword [edi + 0xa4], eax
je 0x4517bf
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x20]
xorps xmm0, xmm0
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.00453b10
test al, al
jne 0x451794
push 0x278
push str.ToDouble
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, ebx
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4518ef
push esi
lea eax, [esp + 0x1c]
lea ecx, [edi + 0xa0]
push eax
call fcn.00452f90
movsd xmm0, qword [esp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
movsd qword [eax], xmm0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0xc0]
mov ebx, esi
jbe 0x4517cf
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4517f8
nop dword [eax + eax]
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4517e0
lea eax, [edi + 0xc0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00452f00
mov eax, dword [eax + 4]
test eax, eax
jne 0x451813
mov eax, dword [edi + 0xc4]
cmp dword [edi + 0xc4], eax
je 0x4518a4
cmp byte [ebp + 0x10], 0
jne 0x45186a
push 0x234
push str.SetOption
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, esi
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_option____s__option_format_is___xy_.
jmp 0x4518ef
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0xc0]
push eax
call fcn.00452f90
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
je 0x451899
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x451892
mov eax, dword [eax]
push edx
push eax
call fcn.0041ae80
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x223
push str.SetOption
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnxcsrcparse_options.cc
push str._s:_s:_d
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 0x14
mov ecx, esi
call fcn.004174a0
push 2
mov esi, eax
call fcn.00460c71
add esp, 4
push esi
push str.Invalid_option____s
push eax
call fcn.004015a0
add esp, 0xc
push 0x48e8f8
push 2
call fcn.00460c71
add esp, 4
push eax
call fcn.004015a0
add esp, 8
push 0xffffffffffffffff
call fcn.0045d522
int3