Function at 0x4101f0
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 0x410214
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x410237
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x410223
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
je 0x410297
cmp dword [edi + 4], eax
je 0x410297
cmp byte [ebp + 0x10], 0
mov eax, dword [ebp + 0xc]
je 0x410264
cmp dword [eax + 0x10], 0
je 0x41095f
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00407090
mov ecx, edi
call fcn.004109d0
mov bl, al
mov ecx, edi
push esi
lea eax, [esp + 0x24]
push eax
call fcn.00411d80
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 0x4102a7
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x4102ca
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x4102b6
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
push eax
lea ecx, [edi + 0x20]
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x4102e3
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x24], eax
je 0x4103f3
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4102ff
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433de5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00433711
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x10]
je 0x4103ae
movsx ecx, byte [ecx]
push ecx
call fcn.00433bb0
add esp, 4
test eax, eax
je 0x410360
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433bb0
add esp, 4
test eax, eax
jne 0x410347
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x4103ae
cmp byte [eax], 0
jne 0x4103ae
call fcn.00433de5
cmp dword [eax], 0
jne 0x4103ae
mov eax, dword [esp + 0x18]
cdq
cmp eax, dword [esp + 0x18]
jne 0x4103ae
cmp edx, dword [esp + 0x20]
jne 0x4103ae
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x20]
push eax
call fcn.00411d80
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x41099f
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x40]
mov ebx, esi
jbe 0x410400
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410425
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410410
lea eax, [edi + 0x40]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x41043d
mov eax, dword [edi + 0x44]
cmp dword [edi + 0x44], eax
je 0x410543
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x410459
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433de5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00433711
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cmp ecx, dword [esp + 0x10]
je 0x4104fe
movsx ecx, byte [ecx]
push ecx
call fcn.00433bb0
add esp, 4
test eax, eax
je 0x4104ba
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433bb0
add esp, 4
test eax, eax
jne 0x4104a1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x4104fe
cmp byte [eax], 0
jne 0x4104fe
call fcn.00433de5
cmp dword [eax], 0
jne 0x4104fe
push esi
lea eax, [esp + 0x14]
lea ecx, [edi + 0x40]
push eax
call fcn.00411d80
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_integer_int64_option___s_
jmp 0x41099f
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x60]
mov ebx, esi
jbe 0x410550
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410575
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410560
lea eax, [edi + 0x60]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x41058d
mov eax, dword [edi + 0x64]
cmp dword [edi + 0x64], eax
je 0x4106a4
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4105a9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433de5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00433711
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], edx
cmp eax, dword [esp + 0x10]
je 0x41065f
movsx ecx, byte [eax]
push ecx
call fcn.00433bb0
add esp, 4
test eax, eax
je 0x41060a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433bb0
add esp, 4
test eax, eax
jne 0x4105f1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x41065f
cmp byte [eax], 0
jne 0x41065f
call fcn.00433de5
cmp dword [eax], 0
jne 0x41065f
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp edx, ecx
jne 0x41065f
test ecx, ecx
jl 0x41065f
jg 0x41063b
test eax, eax
jb 0x41065f
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x60]
push eax
call fcn.00411d80
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x41099f
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x80]
mov ebx, esi
jbe 0x4106b4
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4106d8
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4106c0
lea eax, [edi + 0x80]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x4106f3
mov eax, dword [edi + 0x84]
cmp dword [edi + 0x84], eax
je 0x410789
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.00415280
test al, al
jne 0x41075e
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x41099f
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x80]
push eax
call fcn.00411d80
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 0x410799
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4107bd
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4107a5
lea eax, [edi + 0xa0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x4107d8
mov eax, dword [edi + 0xa4]
cmp dword [edi + 0xa4], eax
je 0x41086f
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x20]
xorps xmm0, xmm0
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.004153b0
test al, al
jne 0x410844
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x41099f
push esi
lea eax, [esp + 0x1c]
lea ecx, [edi + 0xa0]
push eax
call fcn.00411d80
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 0x41087f
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4108a8
nop dword [eax + eax]
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410890
lea eax, [edi + 0xc0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411cf0
mov eax, dword [eax + 4]
test eax, eax
jne 0x4108c3
mov eax, dword [edi + 0xc4]
cmp dword [edi + 0xc4], eax
je 0x410954
cmp byte [ebp + 0x10], 0
jne 0x41091a
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_option____s__option_format_is___xy_.
jmp 0x41099f
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0xc0]
push eax
call fcn.00411d80
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
je 0x410949
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x410942
mov eax, dword [eax]
push edx
push eax
call fcn.00408230
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.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e870
add esp, 4
push esi
push str.Invalid_option____s
push eax
call fcn.004010b0
add esp, 0xc
push 0x45a2e4
push 2
call fcn.0042e870
add esp, 4
push eax
call fcn.004010b0
add esp, 8
push 0xffffffffffffffff
call fcn.0042e792
int3