Function at 0x52a8a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7443fc
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x8bb040]
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 - 0x48], edi
mov dword [ebp - 0x54], edi
mov esi, dword [ebp + 0x24]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push esi
push dword [ebp + 0x20]
mov dword [ebp - 0x4c], ecx
push dword [ebp + 0x1c]
mov dword [ebp - 0x68], edi
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push ecx
mov ecx, edi
call fcn.0051df10
mov dword [ebp - 4], 0
xor eax, eax
mov dword [edi], 0x815c44
mov dword [edi + 0xf8], 0x815c34
mov dword [edi + 0x210], esi
mov dword [edi + 0x214], 0
mov dword [edi + 0x218], 0
mov dword [edi + 0x21c], 0
mov dword [edi + 0x220], 0
mov dword [edi + 0x224], 0
mov dword [edi + 0x228], 0
mov dword [edi + 0x22c], 0
mov dword [edi + 0x230], 0
mov dword [edi + 0x234], 0
mov dword [edi + 0x238], 0
mov dword [edi + 0x23c], 0
mov dword [edi + 0x240], 0
mov dword [edi + 0x244], 0
mov dword [edi + 0x248], 0
mov dword [edi + 0x24c], 0
mov dword [edi + 0x250], 0
mov dword [edi + 0x254], 0
mov dword [edi + 0x258], 0
mov dword [edi + 0x25c], 0
mov dword [edi + 0x260], 0
mov dword [edi + 0x264], 0
mov dword [edi + 0x268], 0
mov dword [edi + 0x26c], 0
mov dword [edi + 0x270], 0
mov dword [edi + 0x274], 0
mov dword [edi + 0x278], 0
mov dword [edi + 0x27c], 0
mov dword [edi + 0x280], 0
mov dword [edi + 0x284], 0
mov dword [edi + 0x288], 0
mov dword [edi + 0x28c], 0
mov dword [edi + 0x290], 0
mov dword [edi + 0x294], 0
mov dword [edi + 0x298], 0
mov dword [edi + 0x29c], 0
mov dword [edi + 0x2a0], 0
mov dword [edi + 0x2a4], 0
mov dword [edi + 0x2a8], 0
mov dword [edi + 0x2ac], 0
mov dword [edi + 0x2b0], 0
mov dword [edi + 0x2b4], 0
mov dword [edi + 0x2b8], 0
mov dword [edi + 0x2bc], 0
mov dword [edi + 0x2c0], 0
mov word [edi + 0x2c4], ax
mov byte [ebp - 4], 1
mov eax, dword [esi + 0x1fc]
push ecx
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x54], eax
call fcn.00482850
mov edx, str.Extended_DPC_cartridge__six_4K_banks__4K_display_bank__1K_frequency_table_
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x100]
call fcn.004853b0
mov edx, str.8K_DPC_RAM_n
mov ecx, eax
call fcn.004853b0
mov edx, str.DPC_registers_accessible____F000____F07F_n
mov ecx, eax
call fcn.004853b0
mov edx, str.___F000____F03F__R____F040____F07F__W__n
mov ecx, eax
call fcn.004853b0
mov edx, str.Banks_accessible_at_hotspots__FFF6_to__FFFB_n
mov ecx, eax
call fcn.004853b0
mov edx, str.Startup_bank_
mov ecx, eax
call fcn.004853b0
mov ecx, eax
movzx eax, word [esi + 0x148]
push eax
add esi, 0x22a4
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_short_int_]
mov edx, 0x80a2f4
mov ecx, eax
call fcn.004853b0
mov edx, str.Ver_
mov ecx, eax
call fcn.004853b0
cmp dword [esi + 0x14], 0xf
mov ecx, dword [esi + 0x10]
jbe 0x52ab7d
mov esi, dword [esi]
push ecx
mov edx, esi
mov ecx, eax
call fcn.0048b260
add esp, 4
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0xfc]
push eax
call fcn.00483110
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0xf
mov ecx, edi
push 0xa
push dword [ebp - 0x30]
cmova eax, dword [ebp - 0x40]
push eax
sub esp, 8
mov eax, esp
push dword [ebp - 0x54]
mov dword [eax], str.Activision__Pitfall_II_
mov dword [eax + 4], 0x17
call fcn.0052a020
mov ecx, dword [edi + 0x124]
add ecx, eax
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x40]
call fcn.00481520
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.0___FFF6_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x8145d8]
mov dword [ebp - 0x24], eax
movzx eax, byte [0x8145dc]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x28]
push eax
push 0
lea ecx, [ebp - 0x60]
call fcn.0048b400
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
call fcn.00481520
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.1___FFF7_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x8145c0]
mov dword [ebp - 0x24], eax
movzx eax, byte [0x8145c4]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
mov byte [ebp - 4], 9
mov esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x58]
cmp esi, edi
je 0x52ad02
lea eax, [ebp - 0x28]
mov dword [ebp - 0x44], esi
push eax
mov ecx, esi
call fcn.00485000
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xa
lea ecx, [esi + 0x18]
push eax
call fcn.00485000
add esi, 0x30
mov dword [ebp - 0x5c], esi
jmp 0x52ad19
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.0048b400
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
call fcn.00481520
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.2___FFF8_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x8145cc]
mov dword [ebp - 0x24], eax
mov al, byte [0x8145d0]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
mov byte [ebp - 4], 0xc
cmp esi, edi
je 0x52adb0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x44], esi
push eax
mov ecx, esi
call fcn.00485000
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xd
lea ecx, [esi + 0x18]
push eax
call fcn.00485000
add esi, 0x30
mov dword [ebp - 0x5c], esi
jmp 0x52adc7
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.0048b400
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
call fcn.00481520
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.3___FFF9_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x8145fc]
mov dword [ebp - 0x24], eax
mov al, byte [0x814600]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
mov byte [ebp - 4], 0xf
cmp esi, edi
je 0x52ae5e
lea eax, [ebp - 0x28]
mov dword [ebp - 0x44], esi
push eax
mov ecx, esi
call fcn.00485000
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x10
lea ecx, [esi + 0x18]
push eax
call fcn.00485000
add esi, 0x30
mov dword [ebp - 0x5c], esi
jmp 0x52ae75
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.0048b400
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
call fcn.00481520
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.4___FFFA_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x814608]
mov dword [ebp - 0x24], eax
mov al, byte [0x81460c]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
mov byte [ebp - 4], 0x12
cmp esi, edi
je 0x52af0c
lea eax, [ebp - 0x28]
mov dword [ebp - 0x44], esi
push eax
mov ecx, esi
call fcn.00485000
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x13
lea ecx, [esi + 0x18]
push eax
call fcn.00485000
add esi, 0x30
mov dword [ebp - 0x5c], esi
jmp 0x52af23
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.0048b400
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
call fcn.00481520
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [str.5___FFFB_]
mov dword [ebp - 0x28], eax
mov eax, dword [0x8145e4]
mov dword [ebp - 0x24], eax
mov al, byte [0x8145e8]
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], 0
mov byte [ebp - 4], 0x15
cmp esi, edi
je 0x52afba
lea eax, [ebp - 0x28]
mov dword [ebp - 0x44], esi
push eax
mov ecx, esi
call fcn.00485000
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x16
lea ecx, [esi + 0x18]
push eax
call fcn.00485000
add esi, 0x30
mov dword [ebp - 0x5c], esi
jmp 0x52afcb
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
push esi
lea ecx, [ebp - 0x60]
call fcn.0048b400
lea ecx, [ebp - 0x28]
call fcn.00481520
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.00481520
push 0x1c8
call fcn.0073298e
mov edi, eax
mov dword [ebp - 0x44], edi
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x6c]
mov esi, dword [eax + 0x124]
push ecx
mov eax, esp
mov dword [eax], 0x814640
mov dword [eax + 4], 9
call fcn.006179e0
mov ecx, eax
sub esp, 8
mov eax, dword [ebp - 0x48]
mov edx, dword [eax + 0x6c]
mov eax, esp
push 0x626b4348
push 0
mov dword [eax], 0x812ffc
mov dword [eax + 4], 0xd
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x54]
push esi
push ecx
add eax, 0xfffffffe
mov ecx, edi
push eax
push 2
push edx
push dword [ebp - 0x4c]
call fcn.00638d30
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x48]
push esi
lea ecx, [eax + 0xf8]
mov dword [esi + 0x214], eax
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x60]
lea ecx, [esi + 0x5c]
mov edx, dword [esi + 0x214]
mov dword [ebp - 0x44], edx
cmp eax, dword [ecx + 8]
je 0x52b083
mov dword [eax], edx
add dword [ecx + 4], 4
jmp 0x52b08d
lea edx, [ebp - 0x44]
push edx
push eax
call fcn.004c97a0
mov ecx, dword [esi + 0x6c]
sub esp, 8
mov eax, esp
mov dword [eax], str.Counter_Registers
mov dword [eax + 4], 0x12
call fcn.006179e0
mov ecx, dword [ebp - 0x54]
mov edi, dword [esi + 0x124]
add ecx, 8
push 0x148
mov dword [ebp - 0x44], eax
add edi, ecx
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Top_Registers
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0xe
call fcn.0064dfa0
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x44]
push 0x230
add esi, 2
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 0
push 8
push 2
push 1
push 8
lea eax, [edi - 2]
mov byte [ebp - 4], 0x19
push eax
push esi
mov esi, dword [ebp - 0x48]
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x218], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x218]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Bottom_Registers
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x11
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 0
push 8
push 2
push 1
push 8
mov byte [ebp - 4], 0x1b
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x21c], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x21c]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Counter_Registers
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x12
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
mov byte [ebp - 4], 0x1d
mov esi, dword [ebp - 0x48]
lea eax, [edi - 2]
push 0
push 5
push 0x10
push 4
push 1
push 8
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x220], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x220]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Frac_Counters
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0xe
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 6
push 0x20
push 8
push 2
push 4
mov byte [ebp - 4], 0x1f
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x224], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x224]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov ecx, dword [esi + 0x224]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
add edi, 8
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Frac_Increments
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x10
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 0
push 8
push 2
push 1
push 8
mov byte [ebp - 4], 0x21
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x228], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x228]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x22
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Function_Params
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x10
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 0
push 8
push 2
push 1
push 8
mov byte [ebp - 4], 0x23
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x22c], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x22c]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Music_Counters
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0xf
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
mov byte [ebp - 4], 0x25
mov esi, dword [ebp - 0x48]
lea eax, [edi - 2]
push 0
push 6
push 0x20
push 8
push 1
push 3
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x230], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x230]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
push 0x148
add edi, eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Music_Frequencies
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x12
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x50], ecx
push 0
push 6
push 0x20
push 8
push 1
push 3
mov byte [ebp - 4], 0x27
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x234], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x234]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov eax, dword [esi + 0x124]
add eax, 4
add edi, eax
push 0x148
mov dword [ebp - 0x54], edi
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x50], esi
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Music_Waveforms
push edi
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x10
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x64], ecx
push 0
push 5
push 0x10
push 4
push 1
push 3
mov byte [ebp - 4], 0x29
lea eax, [edi - 2]
mov esi, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 0x44]
add eax, 2
push eax
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x238], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x238]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov ecx, dword [esi + 0x6c]
sub esp, 8
mov eax, esp
mov dword [eax], str.Current_random_number
mov dword [eax + 4], 0x16
call fcn.006179e0
mov ecx, dword [ebp - 0x54]
mov edi, eax
mov eax, dword [esi + 0x124]
add ecx, 4
add eax, ecx
push 0x148
mov dword [ebp - 0x44], eax
call fcn.0073298e
mov esi, eax
mov dword [ebp - 0x64], esi
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x120]
mov edx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push 0
push ecx
push edi
push dword [ebp - 0x44]
mov ecx, esi
mov dword [eax], str.Current_random_number
push 2
push edx
push dword [ebp - 0x4c]
mov dword [eax + 4], 0x16
call fcn.0064dfa0
push 0x230
mov byte [ebp - 4], 4
add edi, 2
call fcn.0073298e
mov ecx, eax
add esp, 4
mov dword [ebp - 0x64], ecx
push 0
push 6
push 0x20
push 8
push 1
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x48]
add eax, 0xfffffffe
push 1
push eax
push edi
push dword [esi + 0x118]
push dword [ebp - 0x4c]
call fcn.0053f820
mov byte [ebp - 4], 4
mov dword [esi + 0x244], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi + 0x244]
push 1
push 0
mov eax, dword [ecx]
call dword [eax + 0xf8]
mov ecx, dword [esi + 0x244]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
push 0x17c
lea esi, [eax + 0x1e]
add esi, edi
mov dword [ebp - 0x54], esi
call fcn.0073298e
mov edx, eax
mov dword [ebp - 0x64], edx
mov byte [ebp - 4], 0x2c
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
mov ecx, dword [eax + 0x6c]
push ecx
mov eax, esp
push 0
push edi
push esi
push ecx
push dword [ebp - 0x4c]
mov ecx, edx
mov dword [eax], str.Fast_Fetcher_enabled
mov dword [eax + 4], 0x14
call fcn.0064eed0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xf8]
mov esi, dword [ebp - 0x48]
push esi
mov dword [esi + 0x23c], eax
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi + 0x23c]
mov ecx, esi
push 1
mov eax, dword [esi]
mov byte [esi + 0x118], 0
mov dword [esi + 0x84], 0x103
call dword [eax + 0xf8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
mov esi, dword [ebp - 0x48]
add edi, 4
push 0x17c
add edi, dword [esi + 0x124]
call fcn.0073298e
mov edx, eax
mov dword [ebp - 0x64], edx
mov byte [ebp - 4], 0x2d
mov ecx, dword [esi + 0x6c]
push ecx
mov eax, esp
push 0
push edi
push dword [ebp - 0x54]
mov dword [eax], str.Immediate_mode_LDA
push ecx
push dword [ebp - 0x4c]
mov ecx, edx
mov dword [eax + 4], 0x12
call fcn.0064eed0
mov byte [ebp - 4], 4
mov dword [esi + 0x240], eax
push esi
lea ecx, [eax + 0xf8]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esi + 0x240]
mov ecx, esi
push 1
mov eax, dword [esi]
mov byte [esi + 0x118], 0
mov dword [esi + 0x84], 0x103
call dword [eax + 0xf8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x124]
add eax, 4
add eax, edi
push eax
push 2
call fcn.0051e080
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x52b9c2
mov edi, dword [ebp - 0x5c]
mov esi, eax
cmp esi, edi
je 0x52b979
lea esp, [esp]
lea ecx, [esi + 0x18]
call fcn.00481520
mov ecx, esi
call fcn.00481520
add esi, 0x30
cmp esi, edi
jne 0x52b960
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x60]
lea ecx, [eax + eax*2]
mov eax, edx
shl ecx, 4
cmp ecx, 0x1000
jb 0x52b9b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x52b9b8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00732c0f
add esp, 8
mov eax, dword [ebp - 0x100]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x100], 0x775a90
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x104], eax
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0x775aac
call fcn.00483030
lea ecx, [ebp - 0xfc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xf8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xb0]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov eax, dword [ebp - 0x48]
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.0073297b
mov esp, ebp
pop ebp
ret 0x20