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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10011e44
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf8
mov eax, dword [0x10016004]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x64], edx
mov esi, ecx
push 0x20
mov dword [ebp - 0x88], 0
call fcn.10010951
mov edi, eax
add esp, 4
mov dword [ebp - 0x60], edi
xorps xmm0, xmm0
mov dword [ebp - 4], 0
movups xmmword [edi], xmm0
push esi
lea ecx, [ebp - 0x108]
movups xmmword [edi + 0x10], xmm0
call fcn.10003b70
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xf0]
push str.config.ini
mov edx, eax
mov dword [ebp - 0x88], 1
call fcn.10003f40
add esp, 4
mov dword [ebp - 4], 2
mov ecx, edi
push eax
mov dword [ebp - 0x88], 3
call fcn.10004ba0
mov dword [ebp - 0x88], eax
lea ecx, [ebp - 0xf0]
call fcn.100043a0
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], 0xffffffff
call fcn.100043a0
push 0xa
push str.Sonic_BEye
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x65]
xor ecx, ecx
test edi, edi
je 0x1000c331
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000c320
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000c49a
cmp eax, dword [edi + 4]
je 0x1000c49a
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000c49a
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x66]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000c3a5
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000c391
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000c45f
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop word [eax + eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000c3dc
mov edx, dword [edi + 8]
cmp byte [ebp - 0x66], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000c44a
sub esi, 4
jb 0x1000c408
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000c40d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000c3f7
cmp esi, 0xfffffffc
je 0x1000c441
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000c43a
cmp esi, 0xfffffffd
je 0x1000c441
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000c43a
cmp esi, 0xfffffffe
je 0x1000c441
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000c43a
cmp esi, 0xffffffff
je 0x1000c441
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000c441
sbb eax, eax
or eax, 1
jmp 0x1000c443
xor eax, eax
test eax, eax
je 0x1000c457
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000c45c
mov edi, dword [edi + 4]
jmp 0x1000c3d0
mov eax, dword [ebp - 0x6c]
jmp 0x1000c461
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000c490
cmp edi, eax
je 0x1000c490
add edi, 0x20
cmp dword [edi + 0x14], 0x10
jb 0x1000c474
mov edi, dword [edi]
push str.true
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov esi, dword [ebp - 0x84]
add esp, 8
test eax, eax
sete al
jmp 0x1000c49c
mov esi, dword [ebp - 0x84]
mov al, 1
jmp 0x1000c49c
mov al, 1
cmp byte [ebp - 0x65], 0
mov byte [0x10124738], al
je 0x1000c4d6
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000c4cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000c510
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000c506
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
push 0xe
push str.DC_CrystalRing
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000c593
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000c582
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000c6fa
cmp eax, dword [edi + 4]
je 0x1000c6fa
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000c6fa
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000c607
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000c5f3
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000c6bf
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop dword [eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000c63c
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000c6aa
sub esi, 4
jb 0x1000c668
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000c66d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000c657
cmp esi, 0xfffffffc
je 0x1000c6a1
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000c69a
cmp esi, 0xfffffffd
je 0x1000c6a1
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000c69a
cmp esi, 0xfffffffe
je 0x1000c6a1
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000c69a
cmp esi, 0xffffffff
je 0x1000c6a1
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000c6a1
sbb eax, eax
or eax, 1
jmp 0x1000c6a3
xor eax, eax
test eax, eax
je 0x1000c6b7
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000c6bc
mov edi, dword [edi + 4]
jmp 0x1000c630
mov eax, dword [ebp - 0x6c]
jmp 0x1000c6c1
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000c6f0
cmp edi, eax
je 0x1000c6f0
add edi, 0x20
cmp dword [edi + 0x14], 0x10
jb 0x1000c6d4
mov edi, dword [edi]
push str.true
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov esi, dword [ebp - 0x84]
add esp, 8
test eax, eax
sete al
jmp 0x1000c6fc
mov esi, dword [ebp - 0x84]
mov al, 1
jmp 0x1000c6fc
mov al, 1
cmp byte [ebp - 0x66], 0
mov byte [0x10124739], al
je 0x1000c736
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000c72c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000c770
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000c766
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
push 0xc
push str.EnableBright
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov dword [ebp - 4], 7
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000c7f3
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000c7e2
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000c95a
cmp eax, dword [edi + 4]
je 0x1000c95a
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000c95a
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000c867
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000c853
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000c91f
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop dword [eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000c89c
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000c90a
sub esi, 4
jb 0x1000c8c8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000c8cd
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000c8b7
cmp esi, 0xfffffffc
je 0x1000c901
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000c8fa
cmp esi, 0xfffffffd
je 0x1000c901
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000c8fa
cmp esi, 0xfffffffe
je 0x1000c901
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000c8fa
cmp esi, 0xffffffff
je 0x1000c901
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000c901
sbb eax, eax
or eax, 1
jmp 0x1000c903
xor eax, eax
test eax, eax
je 0x1000c917
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000c91c
mov edi, dword [edi + 4]
jmp 0x1000c890
mov eax, dword [ebp - 0x6c]
jmp 0x1000c921
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000c950
cmp edi, eax
je 0x1000c950
add edi, 0x20
cmp dword [edi + 0x14], 0x10
jb 0x1000c934
mov edi, dword [edi]
push str.true
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov esi, dword [ebp - 0x84]
add esp, 8
test eax, eax
sete al
jmp 0x1000c95c
mov esi, dword [ebp - 0x84]
mov al, 1
jmp 0x1000c95c
mov al, 1
cmp byte [ebp - 0x66], 0
mov byte [0x1012473a], al
je 0x1000c996
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000c98c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000c9d0
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000c9c6
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
push 0xd
push str.SuperAnimated
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000ca53
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000ca42
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000cbba
cmp eax, dword [edi + 4]
je 0x1000cbba
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000cbba
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000cac7
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000cab3
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000cb7f
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop dword [eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000cafc
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000cb6a
sub esi, 4
jb 0x1000cb28
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000cb2d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000cb17
cmp esi, 0xfffffffc
je 0x1000cb61
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000cb5a
cmp esi, 0xfffffffd
je 0x1000cb61
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000cb5a
cmp esi, 0xfffffffe
je 0x1000cb61
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000cb5a
cmp esi, 0xffffffff
je 0x1000cb61
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000cb61
sbb eax, eax
or eax, 1
jmp 0x1000cb63
xor eax, eax
test eax, eax
je 0x1000cb77
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000cb7c
mov edi, dword [edi + 4]
jmp 0x1000caf0
mov eax, dword [ebp - 0x6c]
jmp 0x1000cb81
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000cbb0
cmp edi, eax
je 0x1000cbb0
add edi, 0x20
cmp dword [edi + 0x14], 0x10
jb 0x1000cb94
mov edi, dword [edi]
push str.true
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov esi, dword [ebp - 0x84]
add esp, 8
test eax, eax
sete al
jmp 0x1000cbbc
mov esi, dword [ebp - 0x84]
mov al, 1
jmp 0x1000cbbc
mov al, 1
cmp byte [ebp - 0x66], 0
mov byte [0x1012473b], al
je 0x1000cbf6
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000cbec
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000cc30
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000cc26
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
push 0xa
push str.BrightEyes
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov edx, 0x811c9dc5
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000ccb3
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000cca2
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000ce1a
cmp eax, dword [edi + 4]
je 0x1000ce1a
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000ce1a
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000cd27
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000cd13
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000cddf
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop dword [eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000cd5c
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000cdca
sub esi, 4
jb 0x1000cd88
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000cd8d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000cd77
cmp esi, 0xfffffffc
je 0x1000cdc1
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000cdba
cmp esi, 0xfffffffd
je 0x1000cdc1
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000cdba
cmp esi, 0xfffffffe
je 0x1000cdc1
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000cdba
cmp esi, 0xffffffff
je 0x1000cdc1
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000cdc1
sbb eax, eax
or eax, 1
jmp 0x1000cdc3
xor eax, eax
test eax, eax
je 0x1000cdd7
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000cddc
mov edi, dword [edi + 4]
jmp 0x1000cd50
mov eax, dword [ebp - 0x6c]
jmp 0x1000cde1
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000ce10
cmp edi, eax
je 0x1000ce10
add edi, 0x20
cmp dword [edi + 0x14], 0x10
jb 0x1000cdf4
mov edi, dword [edi]
push str.true
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
mov esi, dword [ebp - 0x84]
add esp, 8
test eax, eax
sete al
jmp 0x1000ce1c
mov esi, dword [ebp - 0x84]
mov al, 1
jmp 0x1000ce1c
mov al, 1
cmp byte [ebp - 0x66], 0
mov byte [0x1012473c], al
je 0x1000ce56
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000ce4c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000ce90
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000ce86
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
push 7
push str.Regular
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.100042b0
mov dword [ebp - 4], 0xa
lea ecx, [ebp - 0xa0]
push 7
push str.Disable
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
call fcn.100042b0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x84]
push 0xc
push str.StretchShoes
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
mov byte [ebp - 4], 0xd
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov edx, 0x811c9dc5
mov edi, dword [ebp - 0x1c]
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000cf73
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000cf62
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000d0c4
cmp eax, dword [edi + 4]
je 0x1000d0c4
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000d0c4
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000cfe7
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000cfd3
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x60], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000d0a1
nop word [eax + eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000d01c
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea eax, [ebp - 0x84]
cmovne eax, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000d08a
sub esi, 4
jb 0x1000d048
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x1000d04d
add eax, 4
add edx, 4
sub esi, 4
jae 0x1000d037
cmp esi, 0xfffffffc
je 0x1000d081
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x1000d07a
cmp esi, 0xfffffffd
je 0x1000d081
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x1000d07a
cmp esi, 0xfffffffe
je 0x1000d081
mov cl, byte [eax + 2]
cmp cl, byte [edx + 2]
jne 0x1000d07a
cmp esi, 0xffffffff
je 0x1000d081
mov al, byte [eax + 3]
cmp al, byte [edx + 3]
je 0x1000d081
sbb eax, eax
or eax, 1
jmp 0x1000d083
xor eax, eax
test eax, eax
je 0x1000d099
mov esi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x60]
cmp edi, dword [eax]
je 0x1000d09e
mov edi, dword [edi + 4]
jmp 0x1000d010
mov eax, dword [ebp - 0x6c]
jmp 0x1000d0a3
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000d0b6
cmp edi, eax
je 0x1000d0b6
mov esi, dword [ebp - 0x84]
add edi, 0x20
jmp 0x1000d0ca
mov esi, dword [ebp - 0x84]
lea edi, [ebp - 0xa0]
jmp 0x1000d0ca
lea edi, [ebp - 0xa0]
lea ecx, [ebp - 0xc0]
push edi
call fcn.10005b70
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x10
jb 0x1000d10a
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d100
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
cmp byte [ebp - 0x66], 0
movups xmm0, xmmword [ebp - 0xc0]
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [ebp - 0xb0]
movq qword [ebp - 0x34], xmm0
mov byte [ebp - 4], 0xc
je 0x1000d15b
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d151
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000d192
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000d188
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x1000d1d0
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d1c6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
setae byte [ebp - 0x66]
cmovae edx, eax
cmp ecx, 7
jne 0x1000d264
mov edi, ecx
mov esi, str.Regular
sub edi, 4
jb 0x1000d211
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1000d216
add edx, 4
add esi, 4
sub edi, 4
jae 0x1000d200
cmp edi, 0xfffffffc
je 0x1000d24a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x1000d243
cmp edi, 0xfffffffd
je 0x1000d24a
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x1000d243
cmp edi, 0xfffffffe
je 0x1000d24a
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x1000d243
cmp edi, 0xffffffff
je 0x1000d24a
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x1000d24a
sbb eax, eax
or eax, 1
jmp 0x1000d24c
xor eax, eax
mov edi, dword [0x10124740]
xor edx, edx
test eax, eax
mov eax, dword [ebp - 0x44]
cmove edi, edx
mov dword [0x10124740], edi
jmp 0x1000d26a
mov edi, dword [0x10124740]
cmp byte [ebp - 0x66], 0
lea edx, [ebp - 0x44]
mov dword [ebp - 0x6c], edi
cmovne edx, eax
cmp ecx, 0xc
jne 0x1000d2ea
mov edi, ecx
mov esi, str.LSShoeMorphs
sub edi, 4
jb 0x1000d299
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1000d29e
add edx, 4
add esi, 4
sub edi, 4
jae 0x1000d288
cmp edi, 0xfffffffc
je 0x1000d2d2
mov al, byte [edx]
cmp al, byte [esi]
jne 0x1000d2cb
cmp edi, 0xfffffffd
je 0x1000d2d2
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x1000d2cb
cmp edi, 0xfffffffe
je 0x1000d2d2
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x1000d2cb
cmp edi, 0xffffffff
je 0x1000d2d2
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x1000d2d2
sbb eax, eax
or eax, 1
jmp 0x1000d2d4
xor eax, eax
mov edi, dword [ebp - 0x6c]
test eax, eax
mov eax, 1
cmove edi, eax
mov eax, dword [ebp - 0x44]
mov dword [0x10124740], edi
cmp byte [ebp - 0x66], 0
lea edx, [ebp - 0x44]
cmovne edx, eax
cmp ecx, 7
jne 0x1000d35f
mov esi, str.Disable
sub ecx, 4
jb 0x1000d314
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1000d319
add edx, 4
add esi, 4
sub ecx, 4
jae 0x1000d303
cmp ecx, 0xfffffffc
je 0x1000d34d
mov al, byte [edx]
cmp al, byte [esi]
jne 0x1000d346
cmp ecx, 0xfffffffd
je 0x1000d34d
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x1000d346
cmp ecx, 0xfffffffe
je 0x1000d34d
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x1000d346
cmp ecx, 0xffffffff
je 0x1000d34d
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x1000d34d
sbb eax, eax
or eax, 1
jmp 0x1000d34f
xor eax, eax
test eax, eax
mov ecx, 2
cmove edi, ecx
mov dword [0x10124740], edi
push 0xa
push str.SuperSonic
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
call fcn.100042b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xa0]
push 0xa
push str.SuperSonic
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
call fcn.100042b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x84]
push 0xb
push str.SuperSkin_S
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x2c]
push 9
push str.S_Options
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov edx, 0x811c9dc5
mov edi, dword [ebp - 0x1c]
cmovae esi, dword [ebp - 0x2c]
setae byte [ebp - 0x66]
xor ecx, ecx
test edi, edi
je 0x1000d441
nop
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x1000d430
mov edi, dword [ebp - 0x88]
lea eax, [ebp - 0x2c]
push edx
push eax
lea eax, [ebp - 0xa8]
mov ecx, edi
push eax
call fcn.10006ed0
mov esi, dword [ebp - 0x84]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000d592
cmp eax, dword [edi + 4]
je 0x1000d592
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x6c], eax
test eax, eax
je 0x1000d592
cmp dword [ebp - 0x70], 0x10
lea edi, [ebp - 0x84]
mov edx, 0x811c9dc5
cmovae edi, esi
setae byte [ebp - 0x65]
mov esi, dword [ebp - 0x74]
xor ecx, ecx
test esi, esi
je 0x1000d4b5
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x1000d4a1
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
and ecx, edx
mov edi, dword [eax + ecx*8 + 4]
lea ecx, [eax + ecx*8]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
cmp edi, eax
je 0x1000d56f
mov eax, dword [ecx]
mov dword [ebp - 0x60], eax
nop word [eax + eax]
cmp dword [edi + 0x1c], 0x10
lea edx, [edi + 8]
jb 0x1000d4ec
mov edx, dword [edi + 8]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x84]
cmovne ecx, dword [ebp - 0x84]
cmp esi, dword [edi + 0x18]
jne 0x1000d55a
sub esi, 4
jb 0x1000d518
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000d51d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1000d507
cmp esi, 0xfffffffc
je 0x1000d551
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000d54a
cmp esi, 0xfffffffd
je 0x1000d551
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000d54a
cmp esi, 0xfffffffe
je 0x1000d551
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000d54a
cmp esi, 0xffffffff
je 0x1000d551
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000d551
sbb eax, eax
or eax, 1
jmp 0x1000d553
xor eax, eax
test eax, eax
je 0x1000d567
mov esi, dword [ebp - 0x74]
cmp edi, dword [ebp - 0x60]
je 0x1000d56c
mov edi, dword [edi + 4]
jmp 0x1000d4e0
mov eax, dword [ebp - 0x6c]
jmp 0x1000d571
mov eax, dword [ebp - 0x6c]
xor edi, edi
test edi, edi
je 0x1000d584
cmp edi, eax
je 0x1000d584
mov esi, dword [ebp - 0x84]
add edi, 0x20
jmp 0x1000d598
mov esi, dword [ebp - 0x84]
lea edi, [ebp - 0xa0]
jmp 0x1000d598
lea edi, [ebp - 0xa0]
lea ecx, [ebp - 0xc0]
push edi
call fcn.10005b70
mov ecx, dword [ebp - 0x48]
cmp ecx, 0x10
jb 0x1000d5d8
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d5ce
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
cmp byte [ebp - 0x66], 0
movups xmm0, xmmword [ebp - 0xc0]
movups xmmword [ebp - 0x5c], xmm0
movq xmm0, qword [ebp - 0xb0]
movq qword [ebp - 0x4c], xmm0
mov byte [ebp - 4], 0x10
je 0x1000d629
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d61f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x1000d660
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x1000d656
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push esi
call fcn.10010cbe
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x1000d69e
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000d694
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
setae byte [ebp - 0x65]
cmovae ecx, eax
cmp edx, 0xa
jne 0x1000d727
mov edi, edx
mov esi, str.SuperSonic
sub edi, 4
jb 0x1000d6d4
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1000d6d9
add ecx, 4
add esi, 4
sub edi, 4
jae 0x1000d6c3
cmp edi, 0xfffffffc
je 0x1000d70d
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x1000d706
cmp edi, 0xfffffffd
je 0x1000d70d
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1000d706
cmp edi, 0xfffffffe
je 0x1000d70d
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1000d706
cmp edi, 0xffffffff
je 0x1000d70d
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x1000d70d
sbb eax, eax
or eax, 1
jmp 0x1000d70f
xor eax, eax
mov edi, dword [0x10124f28]
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0x5c]
cmove edi, ecx
mov dword [0x10124f28], edi
jmp 0x1000d72d
mov edi, dword [0x10124f28]
cmp byte [ebp - 0x65], 0
lea ecx, [ebp - 0x5c]
cmovne ecx, eax
cmp edx, 8
jne 0x1000d7a2
mov esi, str.HyperNew
sub edx, 4
jb 0x1000d757
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x1000d75c
add ecx, 4
add esi, 4
sub edx, 4
jae 0x1000d746
cmp edx, 0xfffffffc
je 0x1000d790
mov al, byte [ecx]
cmp al, byte [esi]
jne 0x1000d789
cmp edx, 0xfffffffd
je 0x1000d790
mov al, byte [ecx + 1]
cmp al, byte [esi + 1]
jne 0x1000d789
cmp edx, 0xfffffffe
je 0x1000d790
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
jne 0x1000d789
cmp edx, 0xffffffff
je 0x1000d790
mov al, byte [ecx + 3]
cmp al, byte [esi + 3]
je 0x1000d790
sbb eax, eax
or eax, 1
jmp 0x1000d792
xor eax, eax
test eax, eax
mov eax, 1
cmove edi, eax
mov dword [0x10124f28], edi
push 0xa
push str.HyperSonic
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.100042b0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x84]
push 0xb
push str.Hyper_Sonic
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
call fcn.100042b0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc0]
push 0xb
push str.HyperSkin_S
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
call fcn.100042b0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0xa0]
push 9
push str.S_Options
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
call fcn.100042b0
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x15
call fcn.10007020
mov edx, dword [ebp - 0x90]
mov ecx, eax
call fcn.10006fe0
mov edi, dword [ebp - 0x88]
mov ecx, edi
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.10006e50
cmp eax, dword [edi + 4]
je 0x1000d8b5
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1000d8b5
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.10004ac0
jmp 0x1000d8c7
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xd8]
call fcn.10005b70
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10005af0
lea ecx, [ebp - 0xd8]
call fcn.100043a0
lea ecx, [ebp - 0xa0]
call fcn.100043a0
lea ecx, [ebp - 0xc0]
call fcn.100043a0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x12
call fcn.100043a0
mov edx, str.Super_Sonic
lea ecx, [ebp - 0x2c]
call fcn.1000e710
mov esi, dword [0x1008d1c8]
xor ecx, ecx
test al, al
mov edx, str.Hyper_New
cmovne esi, ecx
lea ecx, [ebp - 0x2c]
call fcn.1000e710
test al, al
mov eax, 1
push ecx
cmovne esi, eax
mov ecx, edi
mov dword [0x1008d1c8], esi
call fcn.10003a50
mov esi, dword [ebp - 0x64]
push str.systemDXR_DefaultsDXR_SONIC.PVMX
push str.systemSONIC.PVM
mov eax, dword [esi + 0x48]
call eax
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsDXR_SON_EFF.PVMX
push str.systemSON_EFF.PVM
call eax
mov eax, dword [0x10124f28]
add esp, 0x10
test eax, eax
jne 0x1000d989
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsSUPERSONIC_DXR.PVMX
push str.systemSUPERSONIC.PVM
call eax
mov eax, dword [0x10124f28]
add esp, 8
cmp eax, 1
jne 0x1000d9a0
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsDXR_HYPER.PVMX
push str.systemSUPERSONIC.PVM
call eax
add esp, 8
mov eax, dword [0x1008d1c8]
test eax, eax
jne 0x1000d9cf
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsSUPERSONIC_DXR.PVMX
push str.systemHYPERSONIC.PVM
call eax
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsSUPERSONIC_DXR.PVMX
push str.systemHYPERSONIC_DC.PVM
call eax
mov eax, dword [0x1008d1c8]
add esp, 0x10
cmp eax, 1
jne 0x1000d9f5
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsDXR_HYPER.PVMX
push str.systemHYPERSONIC.PVM
call eax
mov eax, dword [esi + 0x48]
push str.systemDXR_DefaultsDXR_HYPER.PVMX
push str.systemHYPERSONIC_DC.PVM
call eax
add esp, 0x10
mov eax, dword [0x38f6e80]
mov dword [eax + 0x58], 0x100b43bc
mov eax, dword [0x38f6e80]
mov dword [eax + 0x5c], 0x100bff24
mov eax, dword [0x38f6e80]
mov dword [eax + 0x60], 0x100bf9b4
mov eax, dword [0x38f6e80]
mov dword [eax + 0x64], 0x100be5f4
mov eax, dword [0x38f6e80]
mov dword [eax + 0x68], 0x100bee08
mov eax, dword [0x38f6e80]
mov dword [eax + 0x6c], 0x100bf30c
mov eax, dword [0x38f6e80]
mov dword [eax + 0x70], 0x100c1b74
mov eax, dword [0x38f6e80]
mov dword [eax + 0x74], 0x100c15bc
mov eax, dword [0x38f6e80]
mov dword [eax + 0x78], 0x100c01e0
mov eax, dword [0x38f6e80]
mov dword [eax + 0x7c], 0x100c09f4
mov eax, dword [0x38f6e80]
mov dword [eax + 0x80], 0x100c0e3c
mov eax, dword [0x38f6e80]
mov dword [eax + 0x84], 0x100c3514
mov eax, dword [0x38f6e80]
mov dword [eax + 0x88], 0x100c3384
mov eax, dword [0x38f6e80]
mov dword [eax + 0x8c], 0x100c1e30
mov eax, dword [0x38f6e80]
mov dword [eax + 0x90], 0x100c23ec
mov eax, dword [0x38f6e80]
mov dword [eax + 0x94], 0x100c2b2c
mov eax, dword [0x38f6e80]
mov dword [eax + 0x98], 0x100c4ea4
mov eax, dword [0x38f6e80]
mov dword [eax + 0x9c], 0x100c4d14
mov eax, dword [0x38f6e80]
mov dword [eax + 0xa0], 0x100c37a8
mov eax, dword [0x38f6e80]
mov dword [eax + 0xa4], 0x100c3d64
mov eax, dword [0x38f6e80]
mov dword [eax + 0xa8], 0x100c44a4
mov eax, dword [0x38f6e80]
mov dword [eax + 0xb0], 0x100ce174
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xb8]
mov dword [eax + 4], 0x100cd73c
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [eax + 0xc], 0x14
mov eax, dword [0x38f6e80]
mov dword [eax + 0xbc], 0x100c6fdc
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xc4]
mov dword [eax + 4], 0x100cd73c
mov eax, dword [0x38f6e80]
mov dword [eax + 0xe0], 0x100ae068
mov eax, dword [0x38f6e80]
mov dword [eax + 0xe4], 0x100b01e8
mov eax, dword [0x38f6e80]
mov dword [eax + 0x108], 0x100e02ec
mov eax, dword [0x38f6e80]
mov dword [eax + 0x10c], 0x100ce174
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x38]
mov dword [eax], 0x100e02ec
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x54]
mov dword [eax], 0x100ce174
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x208]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x20c]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x210]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x214]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x228]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x22c]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x230]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x234]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x238]
mov dword [eax], 0x100b0564
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x23c]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x240]
mov dword [eax], 0x100b43bc
mov eax, dword [0x38f6ee8]
mov dword [eax + 8], 0x100df154
mov eax, dword [0x38f6ee8]
mov dword [eax + 0xc], 0x100dec3c
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x10], 0x100de964
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x14], 0x100de44c
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x18], 0x100de174
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x1c], 0x100ddb94
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x20], 0x100cd73c
mov eax, dword [0x38f6ee8]
mov dword [eax + 0x24], 0x100cccfc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x2c]
mov dword [eax + 4], 0x100a577c
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x40]
mov dword [eax + 4], 0x100a5770
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x98]
mov dword [eax + 4], 0x10099d54
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0xa0]
mov dword [eax + 4], 0x10099d48
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0xcc]
mov dword [eax + 4], 0x1008ee6c
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0xd0]
mov dword [eax + 4], 0x1008ee60
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0xd4]
mov dword [eax + 4], 0x1008d1cc
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x208]
mov dword [eax + 4], 0x100b0558
call fcn.1000c080
call fcn.1000e7a0
mov edx, 0x100b3f00
mov ecx, 0x55e65c
call fcn.1000e800
mov edx, 0x100b3f00
mov ecx, 0x55e751
call fcn.1000e800
mov edx, 0x100b3ec0
mov ecx, 0x55e712
call fcn.1000e800
mov edx, 0x100b3e80
mov ecx, 0x55e7cd
call fcn.1000e800
mov edx, 0x100b3e78
mov ecx, 0x55f2b3
call fcn.1000e800
mov edx, 0x100b3e78
mov ecx, 0x55f1d1
call fcn.1000e800
mov edx, 0x100b3dd8
mov ecx, 0x55f1dc
call fcn.1000e800
cmp byte [0x10125a11], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x64], 0x100b3dd8
jne 0x1000de05
call edi
mov dword [0x10125a14], eax
mov byte [0x10125a11], 1
jmp 0x1000de0a
mov eax, dword [0x10125a14]
mov esi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea ecx, [ebp - 0x64]
push 0
push 4
push ecx
push 0x55f2be
push eax
call esi
cmp byte [0x10125a11], 0
mov dword [ebp - 0x60], 0x100b3dd8
jne 0x1000de40
call edi
mov dword [0x10125a14], eax
mov byte [0x10125a11], 1
jmp 0x1000de45
mov eax, dword [0x10125a14]
push 0
push 4
lea ecx, [ebp - 0x60]
push ecx
push 0x55f677
push eax
call esi
cmp byte [0x10125a11], 0
mov dword [ebp - 0x64], 0x100b3d38
jne 0x1000de75
call edi
mov dword [0x10125a14], eax
mov byte [0x10125a11], 1
jmp 0x1000de7a
mov eax, dword [0x10125a14]
push 0
push 4
lea ecx, [ebp - 0x64]
push ecx
push 0x55f669
push eax
call esi
mov eax, dword [0x10124744]
mov ecx, dword [0x10013724]
mov edx, dword [0x10013728]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [0x10124740]
cmp eax, 1
jne 0x1000debe
mov edx, 0x1000b570
mov ecx, 0x493500
call fcn.1000e8b0
mov eax, dword [0x10124740]
cmp eax, 2
jne 0x1000decf
lea edx, [ebp - 0x65]
mov byte [ebp - 0x65], 0xc3
call fcn.1000e860
cmp byte [0x10124738], 0
je 0x1000df11
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xbc]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x48], 1
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xbc]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x84], 0xa
cmp byte [0x10124739], 0
je 0x1000df92
or dword [0x100c5b4c], 0x2400000
mov dword [0x100c5b48], 0x5b
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xfc]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
or dword [eax + 0x24], 0x2400000
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0xfc]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [eax + 0x20], 0x15
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0x100]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
or dword [eax + 0x10], 0x400000
mov eax, dword [0x38f6e80]
mov eax, dword [eax + 0x100]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [eax + 0xc], 0x15
cmp byte [0x1012473a], 0
je 0x1000e02d
or dword [0x100bab8c], 0x2000000
or dword [0x100b7cdc], 0x2000000
or dword [0x100c524c], 0x2000000
or dword [0x100c36a0], 0x2000000
or dword [0x100c3510], 0x2000000
or dword [0x100c234c], 0x2000000
or dword [0x100c5030], 0x2000000
or dword [0x100c4ea0], 0x2000000
or dword [0x100c3cc4], 0x2000000
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x238]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
or dword [eax + 0x10], 0x2000000
mov eax, dword [0x38f6e7c]
mov eax, dword [eax + 0x238]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
or dword [eax + 0x24], 0x2000000
cmp byte [0x1012473c], 0
je 0x1000e04a
or dword [0x100b8814], 0x2000000
or dword [0x100b832c], 0x2000000
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x1000e07a
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000e070
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000e0da
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x1000e0b2
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x5c]
mov edx, eax
cmp ecx, 0x1000
jb 0x1000e0a8
mov eax, dword [edx - 4]
add ecx, 0x23
sub edx, eax
mov dword [ebp - 0x64], eax
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x1000e0da
mov eax, dword [ebp - 0x64]
push ecx
push eax
call fcn.10010cbe
add esp, 8
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x1000e0ea
mov edx, dword [ebp - 0x44]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x1000e0e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000e0e0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10010cbe
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10010943
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret