Function at 0x40fe10
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 0x40fe34
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x40fe57
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x40fe43
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
je 0x40feb7
cmp dword [edi + 4], eax
je 0x40feb7
cmp byte [ebp + 0x10], 0
mov eax, dword [ebp + 0xc]
je 0x40fe84
cmp dword [eax + 0x10], 0
je 0x41057f
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00405520
mov ecx, edi
call fcn.004105f0
mov bl, al
mov ecx, edi
push esi
lea eax, [esp + 0x24]
push eax
call fcn.004119c0
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 0x40fec7
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x40feea
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x40fed6
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
push eax
lea ecx, [edi + 0x20]
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x40ff03
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x24], eax
je 0x410013
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x40ff1f
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.004353a5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00434d21
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x10]
je 0x40ffce
movsx ecx, byte [ecx]
push ecx
call fcn.00435170
add esp, 4
test eax, eax
je 0x40ff80
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00435170
add esp, 4
test eax, eax
jne 0x40ff67
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x40ffce
cmp byte [eax], 0
jne 0x40ffce
call fcn.004353a5
cmp dword [eax], 0
jne 0x40ffce
mov eax, dword [esp + 0x18]
cdq
cmp eax, dword [esp + 0x18]
jne 0x40ffce
cmp edx, dword [esp + 0x20]
jne 0x40ffce
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x20]
push eax
call fcn.004119c0
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4105bf
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x40]
mov ebx, esi
jbe 0x410020
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410045
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410030
lea eax, [edi + 0x40]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x41005d
mov eax, dword [edi + 0x44]
cmp dword [edi + 0x44], eax
je 0x410163
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x410079
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.004353a5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00434d21
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cmp ecx, dword [esp + 0x10]
je 0x41011e
movsx ecx, byte [ecx]
push ecx
call fcn.00435170
add esp, 4
test eax, eax
je 0x4100da
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00435170
add esp, 4
test eax, eax
jne 0x4100c1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x41011e
cmp byte [eax], 0
jne 0x41011e
call fcn.004353a5
cmp dword [eax], 0
jne 0x41011e
push esi
lea eax, [esp + 0x14]
lea ecx, [edi + 0x40]
push eax
call fcn.004119c0
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_integer_int64_option___s_
jmp 0x4105bf
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x60]
mov ebx, esi
jbe 0x410170
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410195
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410180
lea eax, [edi + 0x60]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x4101ad
mov eax, dword [edi + 0x64]
cmp dword [edi + 0x64], eax
je 0x4102c4
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4101c9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.004353a5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.00434d21
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], edx
cmp eax, dword [esp + 0x10]
je 0x41027f
movsx ecx, byte [eax]
push ecx
call fcn.00435170
add esp, 4
test eax, eax
je 0x41022a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00435170
add esp, 4
test eax, eax
jne 0x410211
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x41027f
cmp byte [eax], 0
jne 0x41027f
call fcn.004353a5
cmp dword [eax], 0
jne 0x41027f
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp edx, ecx
jne 0x41027f
test ecx, ecx
jl 0x41027f
jg 0x41025b
test eax, eax
jb 0x41027f
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x60]
push eax
call fcn.004119c0
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4105bf
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x80]
mov ebx, esi
jbe 0x4102d4
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4102f8
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4102e0
lea eax, [edi + 0x80]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x410313
mov eax, dword [edi + 0x84]
cmp dword [edi + 0x84], eax
je 0x4103a9
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.004148c0
test al, al
jne 0x41037e
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4105bf
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x80]
push eax
call fcn.004119c0
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 0x4103b9
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4103dd
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4103c5
lea eax, [edi + 0xa0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x4103f8
mov eax, dword [edi + 0xa4]
cmp dword [edi + 0xa4], eax
je 0x41048f
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x20]
xorps xmm0, xmm0
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.004149f0
test al, al
jne 0x410464
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4105bf
push esi
lea eax, [esp + 0x1c]
lea ecx, [edi + 0xa0]
push eax
call fcn.004119c0
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 0x41049f
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4104c8
nop dword [eax + eax]
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4104b0
lea eax, [edi + 0xc0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411930
mov eax, dword [eax + 4]
test eax, eax
jne 0x4104e3
mov eax, dword [edi + 0xc4]
cmp dword [edi + 0xc4], eax
je 0x410574
cmp byte [ebp + 0x10], 0
jne 0x41053a
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_option____s__option_format_is___xy_.
jmp 0x4105bf
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0xc0]
push eax
call fcn.004119c0
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
je 0x410569
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x410562
mov eax, dword [eax]
push edx
push eax
call fcn.00406ec0
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.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402780
push 2
mov esi, eax
call fcn.0042fe80
add esp, 4
push esi
push str.Invalid_option____s
push eax
call fcn.004010b0
add esp, 0xc
push 0x45c670
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 8
push 0xffffffffffffffff
call fcn.0042fda2
int3