Function at 0x40fe40
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 0x40fe64
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x40fe87
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x40fe73
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
je 0x40fee7
cmp dword [edi + 4], eax
je 0x40fee7
cmp byte [ebp + 0x10], 0
mov eax, dword [ebp + 0xc]
je 0x40feb4
cmp dword [eax + 0x10], 0
je 0x4105af
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00406f00
mov ecx, edi
call fcn.00410620
mov bl, al
mov ecx, edi
push esi
lea eax, [esp + 0x24]
push eax
call fcn.004119d0
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 0x40fef7
mov eax, dword [esi]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x40ff1a
mov esi, dword [esp + 0x10]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x40ff06
mov esi, dword [ebp + 8]
push edx
push esi
lea eax, [esp + 0x28]
push eax
lea ecx, [edi + 0x20]
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x40ff33
mov eax, dword [edi + 0x24]
cmp dword [edi + 0x24], eax
je 0x410043
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x40ff4f
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433ca5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.004335d1
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
cmp ecx, dword [esp + 0x10]
je 0x40fffe
movsx ecx, byte [ecx]
push ecx
call fcn.00433a70
add esp, 4
test eax, eax
je 0x40ffb0
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433a70
add esp, 4
test eax, eax
jne 0x40ff97
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x40fffe
cmp byte [eax], 0
jne 0x40fffe
call fcn.00433ca5
cmp dword [eax], 0
jne 0x40fffe
mov eax, dword [esp + 0x18]
cdq
cmp eax, dword [esp + 0x18]
jne 0x40fffe
cmp edx, dword [esp + 0x20]
jne 0x40fffe
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x20]
push eax
call fcn.004119d0
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4105ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x40]
mov ebx, esi
jbe 0x410050
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410075
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410060
lea eax, [edi + 0x40]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x41008d
mov eax, dword [edi + 0x44]
cmp dword [edi + 0x44], eax
je 0x410193
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4100a9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433ca5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.004335d1
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
cmp ecx, dword [esp + 0x10]
je 0x41014e
movsx ecx, byte [ecx]
push ecx
call fcn.00433a70
add esp, 4
test eax, eax
je 0x41010a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433a70
add esp, 4
test eax, eax
jne 0x4100f1
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x41014e
cmp byte [eax], 0
jne 0x41014e
call fcn.00433ca5
cmp dword [eax], 0
jne 0x41014e
push esi
lea eax, [esp + 0x14]
lea ecx, [edi + 0x40]
push eax
call fcn.004119d0
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_integer_int64_option___s_
jmp 0x4105ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x60]
mov ebx, esi
jbe 0x4101a0
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4101c5
nop dword [eax]
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4101b0
lea eax, [edi + 0x60]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x4101dd
mov eax, dword [edi + 0x64]
cmp dword [edi + 0x64], eax
je 0x4102f4
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
cmp dword [ebx + 0x14], 0xf
jbe 0x4101f9
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
call fcn.00433ca5
push 0xa
mov dword [eax], 0
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.004335d1
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], edx
cmp eax, dword [esp + 0x10]
je 0x4102af
movsx ecx, byte [eax]
push ecx
call fcn.00433a70
add esp, 4
test eax, eax
je 0x41025a
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movsx eax, byte [eax]
push eax
call fcn.00433a70
add esp, 4
test eax, eax
jne 0x410241
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x10]
je 0x4102af
cmp byte [eax], 0
jne 0x4102af
call fcn.00433ca5
cmp dword [eax], 0
jne 0x4102af
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x18]
cmp edx, ecx
jne 0x4102af
test ecx, ecx
jl 0x4102af
jg 0x41028b
test eax, eax
jb 0x4102af
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x60]
push eax
call fcn.004119d0
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_integer_option___s_
jmp 0x4105ef
cmp dword [esi + 0x14], 0xf
lea eax, [edi + 0x80]
mov ebx, esi
jbe 0x410304
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x410328
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x410310
lea eax, [edi + 0x80]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x410343
mov eax, dword [edi + 0x84]
cmp dword [edi + 0x84], eax
je 0x4103d9
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.00414f00
test al, al
jne 0x4103ae
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4105ef
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0x80]
push eax
call fcn.004119d0
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 0x4103e9
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x41040d
movzx eax, byte [ebx + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4103f5
lea eax, [edi + 0xa0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x410428
mov eax, dword [edi + 0xa4]
cmp dword [edi + 0xa4], eax
je 0x4104bf
mov ebx, dword [ebp + 0xc]
lea edx, [esp + 0x20]
xorps xmm0, xmm0
mov ecx, ebx
movsd qword [esp + 0x20], xmm0
call fcn.00415030
test al, al
jne 0x410494
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, ebx
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_floating_point_option___s_
jmp 0x4105ef
push esi
lea eax, [esp + 0x1c]
lea ecx, [edi + 0xa0]
push eax
call fcn.004119d0
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 0x4104cf
mov ebx, dword [esi]
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x4104f8
nop dword [eax + eax]
movzx eax, byte [ecx + ebx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x4104e0
lea eax, [edi + 0xc0]
push edx
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call fcn.00411940
mov eax, dword [eax + 4]
test eax, eax
jne 0x410513
mov eax, dword [edi + 0xc4]
cmp dword [edi + 0xc4], eax
je 0x4105a4
cmp byte [ebp + 0x10], 0
jne 0x41056a
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_option____s__option_format_is___xy_.
jmp 0x4105ef
push esi
lea eax, [esp + 0x24]
lea ecx, [edi + 0xc0]
push eax
call fcn.004119d0
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0xc]
cmp ecx, eax
je 0x410599
cmp dword [eax + 0x14], 0xf
mov edx, dword [eax + 0x10]
jbe 0x410592
mov eax, dword [eax]
push edx
push eax
call fcn.004080a0
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.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
mov ecx, esi
call fcn.00402c70
push 2
mov esi, eax
call fcn.0042e730
add esp, 4
push esi
push str.Invalid_option____s
push eax
call fcn.004010b0
add esp, 0xc
push 0x45a2e4
push 2
call fcn.0042e730
add esp, 4
push eax
call fcn.004010b0
add esp, 8
push 0xffffffffffffffff
call fcn.0042e652
int3