Function at 0x591cf9
Capabilities:
Encode data using base64
Encode data using xor
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f7bb1
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
mov eax, dword [0x648d30]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x98], edi
mov ecx, 0x660789
call fcn.004a73a0
cmp byte [edi + 0x195], 0
mov byte [edi + 0x924], 0
mov byte [edi + 0x8c6], 0
mov dword [edi + 0x14c0], 0xffffffff
mov dword [edi + 0x510], 0
mov dword [edi + 0x14a1], 0
mov dword [edi + 0x14a5], 0
mov byte [edi + 0x7fd], 0
je 0x5936bd
xor eax, eax
mov dword [edi + 0x874], 0
mov word [edi + 0x878], 1
mov dword [edi + 0x880], 0
mov dword [edi + 0x884], 0x1e0
mov dword [edi + 0x888], 0x1e0
mov word [edi + 0x8e8], 0
mov dword [edi + 0x8f4], 0
mov dword [edi + 0x7d8], 0
mov dword [edi + 0x7dc], 0
mov dword [edi + 0x7e0], eax
mov byte [edi + 0x7a6], al
mov dword [edi + 0x7b0], 0x64
mov byte [edi + 0x7b5], al
mov dword [edi + 0xea], eax
mov dword [edi + 0x7e4], 0x3f800000
mov dword [edi + 0x7f8], 1
mov dword [edi + 0x7f0], eax
mov dword [edi + 0x7f4], eax
mov dword [edi + 0x8cc], eax
mov dword [edi + 0x8d0], eax
mov dword [edi + 0x8d4], eax
mov dword [edi + 0x8dc], eax
mov dword [edi + 0x1494], eax
mov byte [edi + 0x908], al
mov dword [edi + 0x930], eax
mov dword [edi + 0x92c], eax
mov dword [edi + 0x950], 0xffffffff
mov dword [edi + 0x1498], eax
mov dword [edi + 0x14b0], eax
mov byte [edi + 0x8e0], al
mov dword [edi + 0x8e4], 0x708
mov dword [edi + 0x864], eax
mov dword [edi + 0x868], eax
mov dword [edi + 0x86c], eax
mov byte [edi + 0x870], al
movzx esi, byte [0x6564c3]
cmp byte [edi + 0x7b6], al
je 0x591ba9
movzx esi, byte [0x648ba8]
movaps xmm0, xmmword [0x6204f0]
lea eax, [edi + 0x198]
movups xmmword [eax], xmm0
mov dword [ebp - 0xac], eax
lea ecx, [edi + 0x398]
movups xmmword [eax + 0x10], xmm0
mov dword [ebp - 0x7c], ecx
mov edx, 0x10
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
lea eax, [edi + 0x1d8]
movaps xmm0, xmmword [0x6204f0]
movups xmmword [eax], xmm0
mov dword [ebp - 0xa0], eax
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
lea eax, [edi + 0x218]
movaps xmm0, xmmword [0x6204f0]
movups xmmword [eax], xmm0
mov dword [ebp - 0x9c], eax
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
lea eax, [edi + 0x258]
movaps xmm0, xmmword [0x6204f0]
movups xmmword [eax], xmm0
mov dword [ebp - 0xa4], eax
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
lea eax, [edi + 0x298]
movaps xmm0, xmmword [0x6204f0]
movups xmmword [eax], xmm0
mov dword [ebp - 0xa8], eax
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
lea eax, [edi + 0x2d8]
movaps xmm0, xmmword [0x6204f0]
movups xmmword [eax], xmm0
mov dword [ebp - 0x80], eax
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
mov dword [ecx - 0x80], 0xff00ff
lea ecx, [ecx + 4]
mov dword [ecx - 4], 0xff00ff
sub edx, 1
jne 0x591c80
lea ecx, [edi + 0x3d8]
mov edx, 0x10
mov dword [ebp - 0x70], ecx
nop dword [eax]
nop dword [eax + eax]
mov dword [ecx - 0x80], 0xff00ff
mov dword [ecx], 0xff00ff
add ecx, 4
sub edx, 1
jne 0x591cb0
movaps xmm0, xmmword [0x6204f0]
dec esi
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
cmp byte [0x6564c0], 1
jl 0x5929af
cmp esi, 3
ja case.default.0x591cf2
jmp dword [esi*4 + 0x595794]
push str.Objects_PlayerMilesM.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 0
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x66]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x65]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x591d31
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa0], eax
jne 0x591d82
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x591de4
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa4], eax
jne 0x591e35
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa8], eax
jne 0x591e91
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x591ef0
jmp 0x59369a
push str.Objects_PlayerKnux.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 1
mov dword [ebp - 0x70], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x591f80
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa0], eax
jne 0x591fd1
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x592033
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa4], eax
jne 0x592084
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa8], eax
jne 0x5920e0
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x70], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x592140
jmp 0x59369a
push str.Objects_PlayerMighty.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 2
mov dword [ebp - 0x70], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x5921d0
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa0], eax
jne 0x592221
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x592283
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa4], eax
jne 0x5922d4
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa8], eax
jne 0x592330
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x70], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x592390
jmp 0x59369a
push str.Objects_PlayerRay.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 3
mov dword [ebp - 0x70], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x592420
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa0], eax
jne 0x592471
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x5924d3
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa4], eax
jne 0x592524
mov dword [ebp - 0x70], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x70], 1
mov dword [ebp - 0xa8], eax
jne 0x592580
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x70], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x70], 1
mov dword [edi - 4], esi
jne 0x5925e0
jmp 0x59369a
push str.Objects_PlayerSonicM.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 4
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592670
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x5926c1
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592723
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x592774
mov edi, dword [ebp - 0xa8]
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x5927e0
mov eax, dword [ebp - 0x98]
add eax, 0x2d8
mov dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0x6c]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x9c], 1
mov dword [ebp - 0x6c], eax
jne 0x592842
mov edi, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 0x84], esi
mov dword [edi - 4], esi
jne 0x5928a0
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0x70]
mov dword [eax - 0x80], esi
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0x70], eax
jne 0x592900
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0x10
nop dword [eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592960
jmp 0x59369a
cmp esi, 3
ja case.default.0x5929b8
jmp dword [esi*4 + 0x5957a4]
push str.Objects_PlayerMilesC.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 5
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592a00
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x592a51
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592ab3
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x592b04
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa8], eax
jne 0x592b60
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592bc0
jmp 0x59369a
push str.Objects_PlayerKnux.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 6
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592c50
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x592ca1
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592d03
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x592d54
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa8], eax
jne 0x592db0
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592e10
jmp 0x59369a
push str.Objects_PlayerMighty.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 7
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592ea0
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x592ef1
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x592f53
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x592fa4
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa8], eax
jne 0x593000
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x593060
jmp 0x59369a
push str.Objects_PlayerRay.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 8
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x5930f0
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x593141
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x5931a3
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x5931f4
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa8]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa8], eax
jne 0x593250
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x5932b0
jmp 0x59369a
mov ecx, dword [edi + 4]
push str.newSonic
push 0x5ff3cc
mov ecx, dword [ecx + 0x18]
call fcn.004a68fb
test al, al
je 0x59331f
push str.Objects_PlayerSonicC.bin
jmp 0x593324
push str.Objects_PlayerSonicS3.bin
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x74], eax
test eax, eax
je 0x5936bd
push eax
lea ecx, [ebp - 0x94]
call fcn.004a7e6d
mov edi, dword [ebp - 0xac]
mov dword [ebp - 4], 9
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x593360
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa0], eax
jne 0x5933b1
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x593413
mov dword [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0xa4]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x6c], 1
mov dword [ebp - 0xa4], eax
jne 0x593464
mov edi, dword [ebp - 0xa8]
mov dword [ebp - 0x6c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 4], esi
jne 0x5934d0
mov eax, dword [ebp - 0x98]
add eax, 0x2d8
mov dword [ebp - 0x9c], 0x10
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0x6c]
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x9c], 1
mov dword [ebp - 0x6c], eax
jne 0x593532
mov edi, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], 0x10
nop
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x6c], 1
mov dword [edi - 0x84], esi
mov dword [edi - 4], esi
jne 0x593590
mov dword [ebp - 0x7c], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
mov dl, al
movzx ecx, byte [ebp - 0x66]
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
mov eax, dword [ebp - 0x70]
mov dword [eax - 0x80], esi
mov dword [eax], esi
add eax, 4
sub dword [ebp - 0x7c], 1
mov dword [ebp - 0x70], eax
jne 0x5935f0
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x7c], 0x10
nop dword [eax]
lea ecx, [ebp - 0x94]
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x65], al
call fcn.004a8a07
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x66], al
call fcn.004a8a07
movzx esi, byte [ebp - 0x65]
lea edi, [edi + 4]
movzx ecx, byte [ebp - 0x66]
mov dl, al
shl esi, 8
add esi, ecx
movzx eax, dl
shl esi, 8
add esi, eax
sub dword [ebp - 0x7c], 1
mov dword [edi - 4], esi
jne 0x593650
push dword [ebp - 0x74]
call fcn.004a631a
add esp, 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.004a5230
mov edi, dword [ebp - 0x98]
cmp dword [edi + 0x46c], 0
lea esi, [edi + 0x46c]
mov dword [ebp - 0xac], esi
jne 0x595610
lea eax, [edi + 0xef4]
xor esi, esi
mov dword [ebp - 0x74], eax
mov edi, eax
nop dword [eax]
nop word [eax + eax]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x6031d0]
mulsd xmm0, qword [0x603170]
movsd qword [ebp - 0x78], xmm0
call fcn.004a8453
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movsd xmm0, qword [ebp - 0x78]
xorps xmm1, xmmword [0x620570]
movss dword [edi - 0x5a0], xmm1
call fcn.004a730a
cvtsd2ss xmm0, xmm0
inc esi
lea edi, [edi + 4]
movss dword [edi - 4], xmm0
cmp esi, 0x100
jl 0x5936f0
mov edi, dword [ebp - 0x98]
mov eax, dword [edi + 0x514]
lea esi, [edi + 0x46c]
test eax, eax
jne 0x594485
cmp byte [edi + 0x4a4], 0
mov eax, 0x28
mov word [edi + 0xe4], ax
mov dword [edi + 0x14bc], eax
mov byte [edi + 0x85c], 1
jne 0x593e46
push str.ISprite___Players_Sonic.gif
push 0x68
mov dword [ebp - 0x80], 0
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0xa
test eax, eax
je 0x5937c4
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic.gif
call fcn.004a7cc4
jmp 0x5937c6
xor eax, eax
push str.ISprite___Players_Sonic3MClassic.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x593805
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic3MClassic.gif
call fcn.004a7cc4
jmp 0x593807
xor eax, eax
mov ecx, dword [esi]
push 0
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a6540
mov ecx, dword [edi + 0x470]
push 0
call fcn.004a6540
mov ecx, dword [edi + 4]
push str.newSonic
push 0x5ff3cc
mov ecx, dword [ecx + 0x18]
call fcn.004a68fb
mov ecx, dword [esi]
test al, al
je 0x59384c
push str.Classic_Sprites_Players_Sonic3M.bin
jmp 0x593851
push str.Classic_Sprites_Players_Sonic.bin
call fcn.004a8390
mov eax, dword [esi]
mov dword [ebp - 0x70], 0
cmp dword [eax + 0x30], 0
jle 0x593b8b
lea ecx, [edi + 0x4e8]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x9c], ecx
xor edi, edi
nop word [eax + eax]
mov edx, dword [eax + 0x24]
mov ecx, dword [eax + 0x28]
mov eax, 0x2aaaaaab
sub ecx, edx
mov dword [ebp - 0x7c], edx
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x5938ee
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x5938c7
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x5938f1
mov eax, dword [ebp - 0x7c]
lea esi, [edi + edi*2]
mov dword [ebp - 0x48], 0
shl esi, 4
push 8
add esi, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.004a7742
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x48]
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
cmp dword [esi + 0x18], 0x10
lea eax, [esi + 4]
mov edi, dword [esi + 0x14]
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x74], eax
jb 0x59394b
mov eax, dword [eax]
mov dword [ebp - 0x74], eax
cmp edi, 0x10
jae 0x593960
movups xmm0, xmmword [eax]
mov dword [ebp - 0x30], 0xf
movups xmmword [ebp - 0x44], xmm0
jmp 0x5939b8
mov esi, edi
mov dword [ebp - 0x7c], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x7c], 0x10
mov dword [ebp - 0x7c], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x7c], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x7c], 0x7fffffff
mov dword [ebp - 0x7c], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
lea ecx, [edi + 1]
mov dword [ebp - 0x44], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
add esp, 0x10
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x9c]
lea ecx, [ebp - 0x80]
add edi, 4
mov dword [ebp - 4], 0xd
push ecx
lea ecx, [ebp - 0x48]
push ecx
mov eax, dword [edi + 4]
mov ecx, edi
mov esi, dword [eax]
mov eax, dword [esi + 4]
push eax
push esi
mov dword [ebp - 0x74], eax
call fcn.004a522b
mov edx, dword [edi + 8]
mov ecx, 0x6666665
sub ecx, edx
cmp ecx, 1
jb 0x595787
lea ecx, [edx + 1]
mov dword [ebp - 0xb8], 0
mov dword [edi + 8], ecx
mov ecx, dword [ebp - 0x74]
mov dword [esi + 4], eax
mov dword [ebp - 0xb4], 0
mov dword [ecx], eax
mov eax, dword [ebp - 0x9c]
mov esi, dword [eax + 8]
mov esi, dword [esi]
mov dword [ebp - 0xb0], esi
mov byte [ebp - 4], 0xe
test edi, edi
jne 0x593a51
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x6c]
push 3
call eax
lea ecx, [ebp - 0xb8]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
jmp 0x593a8f
mov edi, dword [edi]
test edi, edi
je 0x593a96
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0xa8]
push 3
call eax
lea ecx, [ebp - 0xb8]
call fcn.004a54ab
mov eax, dword [edi + 4]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0xb8]
mov dword [edi + 4], eax
mov dword [ebp - 0xb8], edi
mov eax, dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
call eax
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xf
call fcn.004a672f
mov edi, eax
push 3
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x10
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0xb8]
call fcn.004a54ab
lea ecx, [ebp - 0xa4]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x90]
push esi
push edi
push eax
mov byte [ebp - 4], 0xd
call fcn.004a6cf7
push 3
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x11
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0xa0]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0x12
call fcn.004a7413
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x593b35
inc eax
push eax
push dword [ebp - 0x44]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x13
call fcn.004a7413
push 8
push dword [ebp - 0x48]
call fcn.004a7f35
mov esi, dword [ebp - 0xac]
add esp, 8
mov edi, dword [ebp - 0x80]
inc edi
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], edi
mov eax, dword [esi]
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x74], eax
cmp edi, dword [eax + 0x30]
jl 0x593880
mov edi, dword [ebp - 0x98]
push str.Classic_Sprites_Players_Super_Sonic.bin
mov ecx, eax
call fcn.004a8390
mov ecx, dword [esi]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x9c], ecx
cmp eax, dword [ecx + 0x30]
jge 0x593e22
mov dword [ebp - 0x9c], ecx
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebp - 0x70]
sub ecx, eax
mov dword [ebp - 0x74], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x593c25
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x593bfb
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x9c]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x593c28
mov eax, dword [ebp - 0x74]
lea esi, [esi + esi*2]
mov dword [ebp - 0x48], 0
shl esi, 4
push 8
add esi, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.004a7742
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x48]
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x14
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x593c85
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x593c9a
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x30], 0xf
movups xmmword [ebp - 0x44], xmm0
jmp 0x593cf6
mov esi, eax
mov dword [ebp - 0x70], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x70], 0x10
mov dword [ebp - 0x70], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov dword [ebp - 0x70], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x44], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], eax
push 2
push 0x61fab8
push 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0x15
call fcn.004a7bca
mov esi, eax
push 8
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.004a7742
add esp, 4
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x6c], 0
lea ecx, [ebp - 0x2c]
mov dword [eax], 0
push dword [ebp - 0x6c]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x2c]
push esi
mov dword [eax], ecx
call fcn.004a5d57
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x18
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0xa8]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x19
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0x1b
call fcn.004a6a6d
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1c
call fcn.004a7413
push 8
push dword [ebp - 0x48]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x80]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x9c], ecx
cmp eax, dword [ecx + 0x30]
jl 0x593bb1
mov eax, dword [ebp - 0x9c]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
jmp 0x595431
push str.ISprite___Players_Sonic1.gif
push 0x68
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x1d
test eax, eax
je 0x593e7c
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic1.gif
call fcn.004a7cc4
jmp 0x593e7e
xor eax, eax
push str.ISprite___Players_Sonic2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x1e
test eax, eax
je 0x593ebd
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic2.gif
call fcn.004a7cc4
jmp 0x593ebf
xor eax, eax
push str.ISprite___Players_Sonic3.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x1f
test eax, eax
je 0x593f02
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic3.gif
call fcn.004a7cc4
jmp 0x593f04
xor eax, eax
push str.ISprite___Players_Sonic4.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x474], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x20
test eax, eax
je 0x593f47
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_Sonic4.gif
call fcn.004a7cc4
jmp 0x593f49
xor eax, eax
push str.ISprite___Players_SonicCutsceneCPZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x478], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x21
test eax, eax
je 0x593f8c
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Players_SonicCutsceneCPZ.gif
call fcn.004a7cc4
jmp 0x593f8e
xor eax, eax
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_Sonic.bin
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x47c], eax
call fcn.004a8390
mov ecx, dword [esi]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x9c], 0
cmp dword [ecx + 0x30], 0
jle 0x594181
xor esi, esi
mov dword [ebp - 0x74], ecx
jmp 0x593fd2
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x594040
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x594019
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x594043
mov eax, dword [ebp - 0x7c]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x22
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x594075
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x59408a
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x5940e6
mov esi, eax
mov dword [ebp - 0x70], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x70], 0x10
mov dword [ebp - 0x70], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov dword [ebp - 0x70], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x80]
mov dword [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x24
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x25
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x26
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x80]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x74], ecx
cmp eax, dword [ecx + 0x30]
jl 0x593fd0
push str.Mixed_Sprites_Players_SuperSonic.bin
call fcn.004a8390
mov ecx, dword [esi]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], ecx
cmp eax, dword [ecx + 0x30]
jge 0x5943a1
mov dword [ebp - 0x70], ecx
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebp - 0x9c]
sub ecx, eax
mov dword [ebp - 0x74], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x594216
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x5941ef
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x70]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x594219
mov eax, dword [ebp - 0x74]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x27
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x59424b
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x594260
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x5942bc
mov esi, eax
mov dword [ebp - 0x70], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x70], 0x10
mov dword [ebp - 0x70], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x70], 0x7fffffff
mov dword [ebp - 0x70], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
push 2
push 0x61fab8
push 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x28
call fcn.004a7bca
push eax
lea ecx, [ebp - 0x48]
call fcn.004a63a1
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x29
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x2a
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x2b
call fcn.004a6a6d
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x2c
call fcn.004a7413
push 8
push dword [ebp - 0x48]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x2d
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x2e
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x80]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x70], ecx
cmp eax, dword [ecx + 0x30]
jl 0x5941a2
mov eax, dword [ebp - 0x70]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x474]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x478]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x47c]
call fcn.004a5875
mov ecx, dword [esi]
push 0x3b
add ecx, 0x20
call fcn.004a5e92
push 0x3c
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 0x3d
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 0x3e
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 0x3f
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 0x40
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
mov dword [eax + 0x20], 0x100
jmp 0x595431
cmp eax, 1
jne 0x5949f0
cmp byte [edi + 0x4a4], 0
mov eax, 0x20
mov word [edi + 0xe4], ax
mov dword [edi + 0x14bc], eax
jne 0x5946c8
push str.ISprite___Classic_Sprites_Players_Tails.gif
push 0x68
mov dword [ebp - 0x70], 0
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x3e
test eax, eax
je 0x5944e2
push dword [edi + 4]
mov ecx, eax
push str.Classic_Sprites_Players_Tails.gif
call fcn.004a724c
jmp 0x5944e4
xor eax, eax
push str.Classic_Sprites_Players_Tails.bin
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a8390
mov ecx, dword [esi]
push str.Classic_Sprites_Players_TailSprite.bin
call fcn.004a8390
mov ecx, dword [esi]
mov dword [ebp - 0x74], ecx
cmp dword [ecx + 0x30], 0
jle 0x595431
xor esi, esi
jmp 0x59451a
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x594588
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x594561
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x59458b
mov eax, dword [ebp - 0x7c]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x3f
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x5945bd
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x5945d2
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x59462e
mov esi, eax
mov dword [ebp - 0x80], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x80], 0x10
mov dword [ebp - 0x80], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov dword [ebp - 0x80], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0x40
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x41
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x42
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x43
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
cmp eax, dword [ecx + 0x30]
jl 0x594518
jmp 0x595431
push str.ISprite___Mixed_Sprites_Players_Tails1.gif
push 0x68
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x44
test eax, eax
je 0x5946f6
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Tails1.gif
call fcn.004a724c
jmp 0x5946f8
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Tails2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x45
test eax, eax
je 0x59472f
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Tails2.gif
call fcn.004a724c
jmp 0x594731
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Tails3.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x46
test eax, eax
je 0x59476c
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Tails3.gif
call fcn.004a724c
jmp 0x59476e
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_TailsCutsceneCPZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x474], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x47
test eax, eax
je 0x5947a9
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_TailsCutsceneCPZ.gif
call fcn.004a724c
jmp 0x5947ab
xor eax, eax
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_Tails.bin
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x478], eax
call fcn.004a8390
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_TailSprite.bin
call fcn.004a8390
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x474]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x478]
call fcn.004a5875
mov ecx, dword [esi]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], ecx
cmp dword [ecx + 0x30], 0
jle 0x595431
xor esi, esi
jmp 0x594842
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x5948b0
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x594889
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x5948b3
mov eax, dword [ebp - 0x7c]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x48
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x5948e5
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x5948fa
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x594956
mov esi, eax
mov dword [ebp - 0x80], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x80], 0x10
mov dword [ebp - 0x80], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov dword [ebp - 0x80], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0x49
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x4a
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x4b
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x4c
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
cmp eax, dword [ecx + 0x30]
jl 0x594840
jmp 0x595431
cmp eax, 2
jne 0x594de0
mov eax, 0x28
mov byte [edi + 0x4a4], 1
mov word [edi + 0xe4], ax
mov dword [edi + 0x14bc], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0xdc]
mov dword [ebp - 0x80], ecx
test ecx, ecx
je 0x594a65
mov dword [esi], ecx
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xe0]
mov dword [edi + 0x470], eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xe4]
mov dword [edi + 0x474], eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xe8]
mov dword [edi + 0x478], eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xec]
mov dword [edi + 0x47c], eax
jmp 0x594c16
push str.ISprite___Mixed_Sprites_Players_Knux1.gif
push 0x68
mov byte [edi + 0x8c5], 1
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x4d
test eax, eax
je 0x594a9a
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Knux1.gif
call fcn.004a724c
jmp 0x594a9c
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Knux2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x4e
test eax, eax
je 0x594ad3
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Knux2.gif
call fcn.004a724c
jmp 0x594ad5
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Knux3.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x4f
test eax, eax
je 0x594b10
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Knux3.gif
call fcn.004a724c
jmp 0x594b12
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_KnuxCutsceneAIZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x474], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x50
test eax, eax
je 0x594b4d
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_KnuxCutsceneAIZ.gif
call fcn.004a724c
jmp 0x594b4f
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_KnuxCutsceneHPZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x478], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x51
test eax, eax
je 0x594b8a
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_KnuxCutsceneHPZ.gif
call fcn.004a724c
jmp 0x594b8c
xor eax, eax
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_Knux.bin
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x47c], eax
call fcn.004a8390
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x474]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x478]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x47c]
call fcn.004a5875
mov ecx, dword [esi]
mov dword [ebp - 0x80], ecx
cmp dword [ecx + 0x30], 0
mov dword [ebp - 0x70], 0
jle 0x595431
xor esi, esi
jmp 0x594c32
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x74], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x594ca0
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x594c79
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x80]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x594ca3
mov eax, dword [ebp - 0x74]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x52
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x594cd5
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x594cea
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x594d46
mov esi, eax
mov dword [ebp - 0x80], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x80], 0x10
mov dword [ebp - 0x80], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov dword [ebp - 0x80], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0x53
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x54
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x55
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x56
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x80], ecx
cmp eax, dword [ecx + 0x30]
jl 0x594c30
jmp 0x595431
cmp eax, 3
jne 0x595107
push str.ISprite___Mixed_Sprites_Players_Mighty1.gif
push 0x68
mov byte [edi + 0x4a4], 1
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x57
test eax, eax
je 0x594e1e
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Mighty1.gif
call fcn.004a724c
jmp 0x594e20
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Mighty2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x58
test eax, eax
je 0x594e57
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Mighty2.gif
call fcn.004a724c
jmp 0x594e59
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Mighty2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x59
test eax, eax
je 0x594e94
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Mighty2.gif
call fcn.004a724c
jmp 0x594e96
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_MightyCutsceneCPZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x474], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x5a
test eax, eax
je 0x594ed1
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_MightyCutsceneCPZ.gif
call fcn.004a724c
jmp 0x594ed3
xor eax, eax
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_Mighty.bin
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x478], eax
call fcn.004a8390
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x474]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x478]
call fcn.004a5875
mov ecx, dword [esi]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], ecx
cmp dword [ecx + 0x30], 0
jle 0x595431
xor esi, esi
jmp 0x594f59
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x594fc7
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x594fa0
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x594fca
mov eax, dword [ebp - 0x7c]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x2c]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x5b
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x594ffc
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x595011
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0x28], xmm0
jmp 0x59506d
mov esi, eax
mov dword [ebp - 0x80], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x80], 0x10
mov dword [ebp - 0x80], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x80], 0x7fffffff
mov dword [ebp - 0x80], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x28], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0x5c
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x5d
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x90]
call fcn.004a54ab
lea ecx, [ebp - 0x6c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 4], 0x5e
call fcn.004a6a6d
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x5f
call fcn.004a7413
push 8
push dword [ebp - 0x2c]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
cmp eax, dword [ecx + 0x30]
jl 0x594f57
jmp 0x595431
cmp eax, 4
jne 0x595431
push str.ISprite___Mixed_Sprites_Players_Ray1.gif
push 0x68
mov byte [edi + 0x4a4], 1
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x60
test eax, eax
je 0x595145
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Ray1.gif
call fcn.004a724c
jmp 0x595147
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Ray2.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [esi], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x61
test eax, eax
je 0x59517e
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Ray2.gif
call fcn.004a724c
jmp 0x595180
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_Ray3.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x470], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x62
test eax, eax
je 0x5951bb
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_Ray3.gif
call fcn.004a724c
jmp 0x5951bd
xor eax, eax
push str.ISprite___Mixed_Sprites_Players_RayCutsceneCPZ.gif
push 0x68
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x474], eax
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x63
test eax, eax
je 0x5951f8
push dword [edi + 4]
mov ecx, eax
push str.Mixed_Sprites_Players_RayCutsceneCPZ.gif
call fcn.004a724c
jmp 0x5951fa
xor eax, eax
mov ecx, dword [esi]
push str.Mixed_Sprites_Players_Ray.bin
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x478], eax
call fcn.004a8390
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x470]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x474]
call fcn.004a5875
mov eax, dword [esi]
sub esp, 0x10
add eax, 0x20
mov ecx, esp
push eax
call fcn.004a6ad6
mov ecx, dword [edi + 0x478]
call fcn.004a5875
mov ecx, dword [esi]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], ecx
cmp dword [ecx + 0x30], 0
jle 0x595431
xor esi, esi
jmp 0x595282
mov esi, eax
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
sub ecx, eax
mov dword [ebp - 0x7c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x5952f0
push str.vector_subscript_out_of_range
push 0x5fe0d0
push 0
push 0x6c5
push 0x5fe5a8
push 2
call dword [sym.imp.ucrtbased.dll__CrtDbgReport]
add esp, 0x18
cmp eax, 1
jne 0x5952c9
int3
push 0
push 0x6c5
push str.c:program_files__x86_microsoft_visual_studio2017community_vc_toolsmsvc14.16.27023include_vector
push str.std::vector_struct_ISprite::Animation_class_std::allocator_struct_ISprite::Animation___::operator___
push str._vector_subscript_out_of_range_
call dword [sym.imp.ucrtbased.dll__invalid_parameter]
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov eax, dword [eax + 0x24]
jmp 0x5952f3
mov eax, dword [ebp - 0x7c]
lea esi, [esi + esi*2]
shl esi, 4
lea ecx, [ebp - 0x64]
add esi, eax
lea eax, [ebp - 0x65]
push eax
call fcn.004a8089
cmp dword [esi + 0x18], 0x10
lea ecx, [esi + 4]
mov eax, dword [esi + 0x14]
mov dword [ebp - 4], 0x64
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], ecx
jb 0x595325
mov ecx, dword [ecx]
mov dword [ebp - 0x74], ecx
cmp eax, 0x10
jae 0x59533a
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x4c], 0xf
movups xmmword [ebp - 0x60], xmm0
jmp 0x595396
mov esi, eax
mov dword [ebp - 0x6c], 0xffffffff
or esi, 0xf
mov dword [ebp - 0x6c], 0x10
mov dword [ebp - 0x6c], 0xfffffffe
cmp esi, 0x7fffffff
mov dword [ebp - 0x6c], 0x7fffffff
mov eax, 0x7fffffff
mov dword [ebp - 0x6c], 0x7fffffff
mov dword [ebp - 0x6c], esi
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.004a7742
mov ecx, dword [ebp - 0x7c]
inc ecx
mov dword [ebp - 0x60], eax
push ecx
push dword [ebp - 0x74]
push eax
call fcn.004a799a
mov eax, dword [ebp - 0x7c]
add esp, 0x10
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x70]
mov dword [ebp - 4], 0x65
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xbc]
push eax
lea ecx, [edi + 0x4e8]
call fcn.004a6dc9
push 3
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x66
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0xbc]
call fcn.004a54ab
lea ecx, [ebp - 0x9c]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0x64]
mov dword [ebp - 4], 0x67
call fcn.004a6a6d
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x68
call fcn.004a7413
push 8
push dword [ebp - 0x64]
call fcn.004a7f35
mov ecx, dword [edi + 0x46c]
lea esi, [edi + 0x46c]
mov eax, dword [ebp - 0x70]
add esp, 8
inc eax
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], ecx
cmp eax, dword [ecx + 0x30]
jl 0x595280
mov ecx, dword [esi]
push 5
add ecx, 0x20
call fcn.004a5e92
push 6
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 7
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 8
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 9
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push 0xa
mov dword [eax + 0x20], 0x100
mov ecx, dword [esi]
add ecx, 0x20
call fcn.004a5e92
push str.ISprite___Global_ShieldsOld.gif
push 0x68
mov dword [eax + 0x20], 0x100
cmp byte [edi + 0x4a4], 0
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xd4]
mov dword [edi + 0x184], eax
je 0x595506
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x69
test eax, eax
je 0x5954e9
push dword [edi + 4]
mov ecx, eax
push str.Global_ShieldsOld.gif
call fcn.004a724c
jmp 0x5954eb
xor eax, eax
push str.Global_ShieldsOld.bin
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x18c], eax
call fcn.004a8390
jmp 0x595558
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x6a
test eax, eax
je 0x595537
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Global_ShieldsOld.gif
call fcn.004a7cc4
mov ecx, eax
jmp 0x595539
xor ecx, ecx
mov dword [edi + 0x18c], ecx
movzx eax, byte [0x6564c0]
push eax
push str.Global_ShieldsOld.bin
mov dword [ebp - 4], 0xffffffff
call fcn.004a5e15
push str.ISprite___Global_Shields.gif
push 0x68
call fcn.004a5b5e
add esp, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0x6b
test eax, eax
je 0x595590
movsx ecx, byte [0x6564c0]
push ecx
push dword [edi + 4]
mov ecx, eax
push str.Global_Shields.gif
call fcn.004a7cc4
mov ecx, eax
jmp 0x595592
xor ecx, ecx
mov dword [edi + 0x190], ecx
movzx eax, byte [0x6564c0]
push eax
push str.Global_Invincible.bin
mov dword [ebp - 4], 0xffffffff
call fcn.004a5e15
movzx eax, byte [0x6564c0]
mov ecx, dword [edi + 0x190]
push eax
push str.Global_Shields.bin
call fcn.004a5e15
mov dword [ebp - 0x74], 0
mov eax, esi
mov dword [ebp - 0x7c], esi
mov edi, dword [eax]
test edi, edi
je 0x595604
mov esi, dword [edi + 8]
mov ecx, 0x100
mov edi, dword [edi + 0xc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
call fcn.004a889f
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x7c]
inc ecx
add eax, 4
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x7c], eax
cmp ecx, 8
jl 0x5955d5
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0xac]
cmp byte [edi + 0x4a4], 0
jne 0x595678
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x59565d
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x59565d
mov eax, dword [esi]
movups xmm0, xmmword [ecx]
mov eax, dword [eax + 0xc]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [eax + 0x30], xmm0
mov eax, dword [esi]
mov dword [eax + 0x14], 2
mov ecx, dword [esi]
call fcn.004a889f
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7062
mov esp, ebp
pop ebp
ret
mov cl, byte [0x6564c0]
lea eax, [edi + 0x198]
mov dword [ebp - 0x7c], eax
mov edx, 2
lea eax, [edi + 0x258]
mov dword [ebp - 0x6c], eax
mov eax, dword [edi + 0x514]
test eax, eax
je 0x5956d0
cmp eax, 1
jne 0x5956ac
lea eax, [edx + 6]
lea edx, [eax + 0x3e]
jmp 0x5956d7
cmp eax, 2
jne 0x5956b8
mov eax, 0x50
jmp 0x5956dd
cmp eax, 3
jne 0x5956c4
mov eax, 0x60
jmp 0x5956dd
cmp eax, 4
jne 0x5956d0
mov eax, 0x70
jmp 0x5956dd
mov eax, edx
mov edx, 0x40
cmp cl, 1
cmovge eax, edx
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x74], 0
nop word [eax + eax]
mov edx, dword [esi]
test edx, edx
je 0x59565d
mov esi, 6
test cl, cl
jne 0x595717
cmp dword [edi + 0x514], 1
mov esi, 3
mov ecx, 2
cmove esi, ecx
shl esi, 2
lea edi, [eax*4]
mov eax, dword [edx + 8]
push esi
push dword [ebp - 0x7c]
add eax, edi
push eax
call fcn.004a799a
push esi
mov esi, dword [ebp - 0xac]
push dword [ebp - 0x6c]
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
add eax, edi
push eax
call fcn.004a799a
mov eax, dword [esi]
add esp, 0x18
mov dword [eax + 0x14], 2
mov ecx, dword [esi]
call fcn.004a889f
mov eax, dword [ebp - 0x74]
add esi, 4
inc eax
mov dword [ebp - 0xac], esi
mov dword [ebp - 0x74], eax
cmp eax, 8
jge 0x59565d
mov cl, byte [0x6564c0]
mov edi, dword [ebp - 0x98]
mov eax, dword [ebp - 0x80]
jmp 0x5956f0
push str.list_T__too_long
call fcn.004a7c1f
nop dword [eax]
stc
sbb al, 89
add byte [edi], bh
pop ds
pop ecx
add byte [edi - 0x20ffa6df], cl
and ebx, dword [ecx]
mov edi, 0xf005929
sub al, 89
add byte [edi + 0x2e], bl
pop ecx
add byte [edi - 0x33ffa6d0], ch
int3