Function at 0x532dab
Capabilities:
Execute command
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f4663
mov eax, dword fs:[0]
push eax
mov eax, 0x10b8
call fcn.004a5037
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 - 0x1018], edi
mov ecx, 0x65ce9e
mov dword [ebp - 0x1028], 0
call fcn.004a73a0
cmp byte [0x6564c0], 1
mov eax, dword [edi + 0x210]
jl 0x532e7d
mov dword [edi + 0x2d0], str.Mixed_Stages_Special_Tileconfig.bin
mov dword [edi + 0x2dc], str.Mixed_Stages_Special_Stageconfig.bin
mov dword [edi + 0x2d8], str.Mixed_Stages_Special_16x16Tiles.gif
cmp eax, 0xf
ja case.default.0x532d77
jmp dword [eax*4 + 0x535640]
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene1.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene2.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene3.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene4.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene5.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene6.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene7.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene8.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene9.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene10.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene11.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene12.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene13.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene14.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene15.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_Scene16.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Mixed_Stages_Special_SceneRandom.bin
jmp 0x532f87
mov dword [edi + 0x2d0], str.Classic_Stages_Special_Tileconfig.bin
mov dword [edi + 0x2dc], str.Classic_Stages_Special_Stageconfig.bin
mov dword [edi + 0x2d8], str.Classic_Stages_Special_16x16Tiles.gif
cmp eax, 0xf
ja case.default.0x532ea4
jmp dword [eax*4 + 0x535680]
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene1.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene2.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene3.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene4.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene5.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene6.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene7.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene8.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene9.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene10.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene11.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene12.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene13.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene14.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene15.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_Scene16.bin
jmp 0x532f87
mov dword [edi + 0x2d4], str.Classic_Stages_Special_SceneRandom.bin
push 0x2518
call fcn.004a7dbe
mov esi, eax
add esp, 4
test esi, esi
je 0x532fe5
push 0x2518
push 0
push esi
call fcn.004a5ff5
add esp, 0xc
push 0x4a7490
push fcn.004a7468
push 0xa
push 0x68
lea eax, [esi + 4]
mov dword [ebp - 4], 0
push eax
call fcn.004a596a
mov dword [esi + 0x2404], 0
mov dword [esi + 0x2408], 0
mov dword [ebp - 4], 0xffffffff
jmp 0x532fe7
xor esi, esi
push 0x68
mov dword [edi + 0x1c], esi
call fcn.004a891c
add esp, 4
mov dword [ebp - 0x105c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x533017
push dword [edi + 4]
mov ecx, eax
push dword [edi + 0x2d8]
call fcn.004a724c
jmp 0x533019
xor eax, eax
push 0
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0x20], eax
call fcn.004a6540
push 8
mov dword [ebp - 4], 2
mov dword [ebp - 0xff8], 0
mov dword [ebp - 0xfe4], 0
mov dword [ebp - 0xfe0], 0
call fcn.004a7742
mov dword [ebp - 0xff8], eax
lea ecx, [ebp - 0xff8]
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xff8]
mov dword [eax], ecx
mov dword [ebp - 0xfe4], 0
mov dword [ebp - 0xfe0], 0xf
mov byte [ebp - 0xff4], 0
push 0
push 0x5ff192
mov dword [ebp - 4], 3
call fcn.004a8039
push 0xa000
mov dword [ebp - 0xfdc], 0x400
call fcn.004a5b95
mov ecx, dword [edi + 0x20]
mov edx, eax
add esp, 4
mov dword [ebp - 0xfcc], edx
cmp word [ecx + 4], 0x10
jbe 0x533184
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xffc], ecx
mov eax, ecx
mov dword [ebp - 0x1088], 0x10
and eax, 0x1f
mov dword [ebp - 0x108c], 0x10
shl eax, 4
mov dword [ebp - 0x1094], eax
mov eax, ecx
sar eax, 1
and eax, 0xfffffff0
mov dword [ebp - 0x107c], 0xfffffff8
mov dword [ebp - 0x1090], eax
movups xmm0, xmmword [ebp - 0x1094]
mov dword [ebp - 0x1080], 0xfffffff8
movups xmmword [esi + edx], xmm0
movups xmm0, xmmword [ebp - 0x1084]
movups xmmword [esi + edx + 0x10], xmm0
movq xmm0, qword [ebp - 0x1074]
movq qword [esi + edx + 0x20], xmm0
mov ecx, dword [edi + 8]
mov eax, dword [ebp - 0xfcc]
add eax, esi
push eax
mov edx, dword [ecx]
push dword [edi + 0x20]
call dword [edx + 0x14]
mov ecx, dword [ebp - 0xffc]
add esi, 0x28
inc ecx
mov dword [ebp - 0xffc], ecx
cmp esi, 0xa000
jge 0x533227
mov edx, dword [ebp - 0xfcc]
jmp 0x5330e1
xor eax, eax
xor esi, esi
mov dword [ebp - 0xffc], eax
nop
shl eax, 4
mov dword [ebp - 0x1090], eax
mov dword [ebp - 0x1094], 0
mov dword [ebp - 0x1088], 0x10
mov dword [ebp - 0x108c], 0x10
movups xmm0, xmmword [ebp - 0x1094]
mov dword [ebp - 0x107c], 0xfffffff8
mov dword [ebp - 0x1080], 0xfffffff8
movups xmmword [esi + edx], xmm0
movups xmm0, xmmword [ebp - 0x1084]
movups xmmword [esi + edx + 0x10], xmm0
movq xmm0, qword [ebp - 0x1074]
movq qword [esi + edx + 0x20], xmm0
mov ecx, dword [edi + 8]
mov eax, dword [ebp - 0xfcc]
add eax, esi
push eax
mov edx, dword [ecx]
push dword [edi + 0x20]
call dword [edx + 0x14]
mov eax, dword [ebp - 0xffc]
add esi, 0x28
inc eax
mov dword [ebp - 0xffc], eax
cmp esi, 0xa000
jge 0x533227
mov edx, dword [ebp - 0xfcc]
jmp 0x533190
mov ecx, dword [edi + 0x20]
lea eax, [ebp - 0xff8]
push eax
add ecx, 0x20
call fcn.004a7427
push dword [edi + 0x2d0]
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x1014], eax
test eax, eax
je 0x5355b8
push eax
lea ecx, [ebp - 0x1044]
call fcn.004a7e6d
lea ecx, [ebp - 0x1044]
mov byte [ebp - 4], 4
call fcn.004a76a2
push eax
call fcn.004a6545
add esp, 4
lea ecx, [ebp - 0x1044]
call fcn.004a72d8
push dword [ebp - 0x1014]
mov esi, eax
call fcn.004a631a
push 0x9800
call fcn.004a5b95
mov ecx, dword [edi + 0x1c]
push 0x9800
mov dword [ecx + 0x414], eax
call fcn.004a5b95
mov ecx, dword [edi + 0x1c]
add esp, 0xc
xor edx, edx
mov dword [ecx + 0x418], eax
nop dword [eax]
mov eax, dword [edi + 0x1c]
movups xmm0, xmmword [esi + edx]
mov eax, dword [eax + 0x414]
movups xmmword [eax + edx], xmm0
mov eax, dword [edi + 0x1c]
movups xmm0, xmmword [esi + edx + 0x10]
mov eax, dword [eax + 0x414]
movups xmmword [eax + edx + 0x10], xmm0
mov eax, dword [edi + 0x1c]
cmp byte [esi + edx + 0x20], 0
setne cl
mov eax, dword [eax + 0x414]
mov byte [eax + edx + 0x20], cl
mov eax, dword [edi + 0x1c]
mov ecx, dword [eax + 0x414]
mov eax, dword [esi + edx + 0x21]
mov dword [ecx + edx + 0x21], eax
mov al, byte [esi + edx + 0x25]
mov byte [ecx + edx + 0x25], al
add edx, 0x26
cmp edx, 0x9800
jl 0x5332c0
xor edx, edx
nop
mov eax, dword [edi + 0x1c]
movups xmm0, xmmword [esi + edx + 0x9800]
mov eax, dword [eax + 0x418]
movups xmmword [eax + edx], xmm0
mov eax, dword [edi + 0x1c]
movups xmm0, xmmword [esi + edx + 0x9810]
mov eax, dword [eax + 0x418]
movups xmmword [eax + edx + 0x10], xmm0
mov eax, dword [edi + 0x1c]
cmp byte [esi + edx + 0x9820], 0
setne cl
mov eax, dword [eax + 0x418]
mov byte [eax + edx + 0x20], cl
mov eax, dword [edi + 0x1c]
mov ecx, dword [eax + 0x418]
mov eax, dword [esi + edx + 0x9821]
mov dword [ecx + edx + 0x21], eax
mov al, byte [esi + edx + 0x9825]
mov byte [ecx + edx + 0x25], al
add edx, 0x26
cmp edx, 0x9800
jl 0x533320
push esi
call fcn.004a7323
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1044]
call fcn.004a5230
cmp dword [edi + 0x2dc], 0
je 0x5336ad
push str.Loading_StageConfig...
push 0
call fcn.004a6bad
push dword [edi + 0x2dc]
call fcn.004a7125
add esp, 0xc
mov dword [ebp - 0x1024], eax
test eax, eax
je 0x533690
push eax
lea ecx, [ebp - 0x1044]
call fcn.004a7e6d
lea ecx, [ebp - 0x1044]
mov byte [ebp - 4], 5
call fcn.004a76a2
push eax
call dword [sym.imp.ucrtbased.dll_free]
add esp, 4
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
call fcn.004a7c10
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx esi, al
test al, al
je 0x53343d
sub esp, 0x1c
lea ecx, [ebp - 0x1044]
push esp
call fcn.004a524e
call fcn.004a7788
add esp, 0x1c
sub esi, 1
jne 0x533421
mov eax, dword [edi + 0x20]
xor esi, esi
mov dword [ebp - 0x1004], 0
mov dword [ebp - 0x1008], esi
mov dword [eax + 0x10], 0x100
nop dword [eax]
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1010], 0
call fcn.004a73aa
movzx edx, ax
mov ecx, 0x10
mov eax, 1
mov dword [ebp - 0x1014], edx
mov dword [ebp - 0x100c], eax
mov dword [ebp - 0x1030], ecx
test eax, edx
je 0x533595
mov dword [ebp - 0xffc], 0x10
nop word [eax + eax]
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
lea ecx, [ebp - 0x1044]
mov byte [ebp - 0x104b], al
call fcn.004a8a07
lea ecx, [ebp - 0x1044]
mov byte [ebp - 0x104a], al
call fcn.004a8a07
mov ah, al
mov byte [ebp - 0x1049], ah
cmp esi, 3
jne 0x53351e
movzx esi, byte [ebp - 0x104b]
mov al, byte [ebp - 0x104a]
mov edx, esi
movzx ecx, al
shl edx, 8
or edx, ecx
movzx eax, ah
mov ecx, dword [edi + 0x20]
shl edx, 8
or edx, eax
mov eax, dword [ebp - 0x1010]
push edx
sub eax, 0xffffff80
push eax
call fcn.004a7ee5
jmp 0x533530
cmp dword [ebp - 0x1008], 3
mov al, byte [ebp - 0x104b]
movzx esi, al
jl 0x53355d
movzx eax, byte [ebp - 0x104a]
mov ecx, dword [edi + 0x20]
shl esi, 8
or esi, eax
movzx eax, byte [ebp - 0x1049]
shl esi, 8
or esi, eax
push esi
mov esi, dword [ebp - 0x1004]
lea eax, [esi - 0x40]
push eax
call fcn.004a53bb
jmp 0x533563
mov esi, dword [ebp - 0x1004]
inc dword [ebp - 0x1010]
inc esi
sub dword [ebp - 0xffc], 1
mov dword [ebp - 0x1004], esi
mov esi, dword [ebp - 0x1008]
jne 0x5334b0
mov eax, dword [ebp - 0x100c]
mov ecx, dword [ebp - 0x1030]
mov edx, dword [ebp - 0x1014]
rol eax, 1
sub ecx, 1
mov dword [ebp - 0x100c], eax
mov dword [ebp - 0x1030], ecx
jne 0x533494
inc esi
mov dword [ebp - 0x1008], esi
cmp esi, 8
jl 0x533460
mov ecx, dword [edi + 0x20]
call fcn.004a889f
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx esi, al
test al, al
je 0x53366e
nop word [eax + eax]
lea eax, [ebp - 0xf60]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004a524e
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 6
call fcn.004a7413
mov eax, dword [ebp - 0xf48]
cmp eax, 0x10
jb 0x53361c
inc eax
push eax
push dword [ebp - 0xf5c]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0xf4c], 0
mov dword [ebp - 0xf48], 0xf
mov byte [ebp - 0xf5c], 0
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 7
call fcn.004a7413
push 8
push dword [ebp - 0xf60]
call fcn.004a7f35
add esp, 8
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
sub esi, 1
jne 0x5335e0
push dword [ebp - 0x1024]
call fcn.004a631a
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1044]
call fcn.004a5230
jmp 0x53374f
push dword [edi + 0x2dc]
push str.StageConfig_at__s_could_not_be_read.
push 2
call fcn.004a6bad
add esp, 0xc
push 1
call dword [sym.imp.ucrtbased.dll_exit]
mov ecx, dword [edi + 0x20]
push 0x81
call fcn.004a5668
test eax, 0xffffff
jne 0x5336cb
mov eax, dword [edi + 0x20]
mov dword [eax + 0x10], 0x80
mov ecx, dword [edi + 0x20]
call fcn.004a53d4
mov ecx, dword [edi + 0x20]
call fcn.004a889f
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x53370d
push 0x81
call fcn.004a5668
test eax, 0xffffff
jne 0x5336fd
mov eax, dword [edi + 0x24]
mov dword [eax + 0x10], 0x80
mov ecx, dword [edi + 0x24]
call fcn.004a53d4
mov ecx, dword [edi + 0x24]
call fcn.004a889f
mov ecx, dword [edi + 0xbc]
call fcn.004a53d4
mov ecx, dword [edi + 0xc4]
call fcn.004a53d4
mov ecx, dword [edi + 0xd4]
call fcn.004a53d4
mov ecx, dword [edi + 0xbc]
call fcn.004a889f
mov ecx, dword [edi + 0xc4]
call fcn.004a889f
mov ecx, dword [edi + 0xd4]
call fcn.004a889f
push dword [edi + 0x2d4]
call fcn.004a7125
add esp, 4
mov dword [ebp - 0x105c], eax
test eax, eax
je 0x53559b
push eax
lea ecx, [ebp - 0x1044]
call fcn.004a7e6d
lea ecx, [ebp - 0x1044]
mov byte [ebp - 4], 8
call fcn.004a6158
mov esi, eax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x101c], esi
cmp esi, 0x4953434e
jne 0x5338d3
lea eax, [ebp - 0xf60]
push eax
call fcn.004a524e
mov esi, dword [ebp - 0xf48]
lea ecx, [ebp - 0xf5c]
cmp esi, 0x10
mov byte [ebp - 4], 9
mov edx, edi
cmovae ecx, dword [ebp - 0xf5c]
sub edx, ecx
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx + 0x29c], al
test al, al
jne 0x5337d0
cmp esi, 0x10
lea ecx, [ebp - 0xf5c]
lea esi, [edi + 0x289]
cmovae ecx, dword [ebp - 0xf5c]
mov edx, esi
sub edx, ecx
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x533800
push esi
push str.Loading__s...
push 2
call fcn.004a6bad
mov al, byte [esi]
add esp, 0xc
test al, al
je 0x53383c
cmp al, 0x61
jl 0x533831
cmp al, 0x7a
jl 0x533831
sub al, 0x20
mov byte [esi], al
jmp 0x533834
mov byte [esi], 0x20
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x533823
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx eax, al
lea ecx, [ebp - 0x1044]
mov dword [edi + 0x20c], eax
call fcn.004a8a07
movzx eax, al
lea ecx, [ebp - 0x1044]
mov dword [edi + 0x210], eax
call fcn.004a8a07
test al, al
lea ecx, [ebp - 0x1044]
setne al
mov byte [edi + 0x2bc], al
movzx eax, al
xor eax, 1
shl eax, 8
mov dword [edi + 0x2c0], eax
lea eax, [ebp - 0xf7c]
push eax
call fcn.004a524e
lea ecx, [ebp - 0xf7c]
call fcn.004a712f
lea ecx, [ebp - 0x1044]
call fcn.004a57a8
lea ecx, [ebp - 0x1044]
call fcn.004a57a8
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 8
call fcn.004a712f
mov esi, dword [ebp - 0x101c]
jmp 0x533917
push 0x10
call fcn.004a5c67
push eax
call fcn.004a7323
add esp, 4
lea eax, [ebp - 0xf60]
lea ecx, [ebp - 0x1044]
push eax
call fcn.004a524e
lea ecx, [ebp - 0xf60]
call fcn.004a712f
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx ecx, al
mov eax, dword [edi + 0x1c]
mov dword [eax + 0x2514], ecx
mov eax, dword [edi + 0x1c]
lea ecx, [ebp - 0x1044]
mov dword [eax + 0x2514], 0xffffffff
call fcn.004a8a07
movzx ecx, al
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x1008], 0
mov word [eax], cx
xor ecx, ecx
mov eax, dword [edi + 0x1c]
cmp cx, word [eax]
jge 0x5340d0
mov eax, esi
shr eax, 0x18
xor esi, esi
mov dword [ebp - 0x1054], eax
mov dword [ebp - 0x1004], esi
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
lea eax, [ebp - 0xf60]
push eax
lea ecx, [ebp - 0x1044]
call fcn.004a524e
mov ecx, dword [edi + 0x1c]
add ecx, 4
mov dword [ebp - 0x1024], eax
add ecx, esi
mov dword [ebp - 0xffc], ecx
mov byte [ebp - 4], 0xa
cmp ecx, eax
je 0x5339ec
call fcn.004a7413
mov ecx, dword [ebp - 0xffc]
mov eax, dword [ecx + 0x18]
cmp eax, 0x10
jb 0x5339c2
inc eax
push eax
push dword [ecx + 4]
call fcn.004a7f35
mov ecx, dword [ebp - 0xffc]
add esp, 8
mov byte [ebp - 0x1014], 0
push dword [ebp - 0x1014]
mov dword [ecx + 0x14], 0
push dword [ebp - 0x1024]
mov dword [ecx + 0x18], 0xf
mov byte [ecx + 4], 0
call fcn.004a5d57
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0xb
call fcn.004a7413
mov eax, dword [ebp - 0xf48]
cmp eax, 0x10
jb 0x533a16
inc eax
push eax
push dword [ebp - 0xf5c]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0xf4c], 0
mov dword [ebp - 0xf48], 0xf
mov byte [ebp - 0xf5c], 0
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0xc
call fcn.004a7413
push 8
push dword [ebp - 0xf60]
call fcn.004a7f35
add esp, 8
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
cmp al, 1
mov eax, dword [edi + 0x1c]
sete cl
mov byte [esi + eax + 0x21], cl
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx ecx, al
mov eax, dword [edi + 0x1c]
mov dword [esi + eax + 0x68], ecx
mov eax, dword [edi + 0x1c]
test byte [esi + eax + 0x68], 0x10
je 0x533a8f
mov byte [esi + eax + 0x20], 0
mov eax, dword [edi + 4]
push dword [eax + 0x2c]
push 1
push str.LevelScene::Data__Layers_i_.DeformX
call fcn.004a67cf
mov ecx, dword [edi + 0x1c]
add esp, 0xc
mov dword [esi + ecx + 0x5c], eax
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
movzx eax, ax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1010], eax
call fcn.004a73aa
movzx eax, ax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1000], eax
call fcn.004a73aa
movzx ecx, ax
mov eax, dword [edi + 0x1c]
mov dword [esi + eax + 0x3c], ecx
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
movsx ecx, ax
mov eax, dword [edi + 0x1c]
mov dword [esi + eax + 0x40], ecx
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
movzx ecx, ax
mov eax, dword [edi + 0x1c]
mov dword [esi + eax + 0x24], ecx
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx + esi + 0x24]
test eax, eax
je 0x533b40
xor ecx, ecx
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a5b95
mov ecx, dword [edi + 0x1c]
add esp, 4
mov dword [esi + ecx + 0x2c], eax
mov ecx, dword [edi + 0x1c]
lea edx, [esi + 8]
add edx, ecx
cmp dword [ecx + esi + 0x1c], 0x10
jb 0x533b4e
mov edx, dword [edx]
mov edi, dword [ebp - 0x1008]
mov eax, str._IS_CAMERA_LAYER
cmp edi, dword [ecx + 0x2514]
mov edi, 0x5ff192
cmovne eax, edi
push eax
push dword [ecx + esi + 0x68]
movzx eax, byte [ecx + esi + 0x21]
push eax
push dword [ecx + esi + 0x24]
push dword [ebp - 0x1000]
push dword [ebp - 0x1010]
push edx
push dword [ebp - 0x1008]
push str.Layer__d___s_:_Width___d__Height___d__Infos___d__Vertical_Scrolling___d__UnknownFlags___d___s
push 3
call fcn.004a6bad
mov edi, dword [ebp - 0x1018]
add esp, 0x28
mov dword [ebp - 0xffc], 0
mov ecx, dword [edi + 0x1c]
cmp dword [ecx + esi + 0x24], 0
jle 0x533cef
mov dword [ebp - 0x1020], 0
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
mov edx, dword [ebp - 0x1020]
movzx ecx, ax
mov eax, dword [edi + 0x1c]
mov eax, dword [esi + eax + 0x2c]
mov dword [edx + eax], ecx
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
mov edx, dword [ebp - 0x1020]
movsx ecx, ax
mov eax, dword [edi + 0x1c]
mov eax, dword [esi + eax + 0x2c]
mov dword [eax + edx + 4], ecx
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebp - 0x1020]
mov ecx, dword [esi + ecx + 0x2c]
mov byte [ecx + edx + 8], al
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebp - 0x1020]
mov ecx, dword [esi + ecx + 0x2c]
mov byte [ecx + edx + 9], al
mov eax, dword [edi + 0x1c]
mov ecx, eax
cmp dword [eax + 0x2514], 0xffffffff
jne 0x533ccf
cmp dword [eax + esi + 0x3c], 0x100
jne 0x533ccf
cmp dword [eax + esi + 0x40], 0
jne 0x533ccf
mov edi, dword [eax + esi + 0x2c]
cmp dword [edi + edx], 0x100
mov edi, dword [ebp - 0x1018]
jne 0x533ccf
mov esi, dword [eax + esi + 0x2c]
cmp dword [esi + edx + 4], 0
mov esi, dword [ebp - 0x1004]
jne 0x533ccf
lea edi, [esi + 8]
add edi, eax
cmp dword [eax + esi + 0x1c], 0x10
mov dword [ebp - 0x102c], edi
mov edi, dword [ebp - 0x1018]
jb 0x533ca6
mov edx, dword [ebp - 0x102c]
mov edx, dword [edx]
mov dword [ebp - 0x102c], edx
mov edx, dword [ebp - 0x102c]
cmp byte [edx], 0x46
mov edx, dword [ebp - 0x1020]
jne 0x533ccf
cmp dword [eax + esi + 0x24], 1
mov ecx, eax
jne 0x533ccf
mov ecx, dword [ebp - 0x1008]
mov dword [eax + 0x2514], ecx
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebp - 0xffc]
add edx, 0xc
inc eax
mov dword [ebp - 0x1020], edx
mov dword [ebp - 0xffc], eax
cmp eax, dword [ecx + esi + 0x24]
jl 0x533bc0
cmp dword [ebp - 0x1054], 0x53
jne 0x533d48
mov dword [ecx + esi + 0x68], 0
mov eax, dword [edi + 0x1c]
cmp dword [esi + eax + 0x3c], 0x100
jne 0x533d48
cmp dword [esi + eax + 0x40], 0
jne 0x533d48
mov ecx, dword [esi + eax + 0x2c]
cmp dword [ecx], 0x100
jne 0x533d48
cmp dword [ecx + 4], 0
jne 0x533d48
lea ecx, [eax + 8]
add ecx, esi
cmp dword [esi + eax + 0x1c], 0x10
jb 0x533d34
mov ecx, dword [ecx]
cmp byte [ecx], 0x46
jne 0x533d48
cmp dword [esi + eax + 0x24], 1
jne 0x533d48
mov dword [esi + eax + 0x68], 1
lea ecx, [ebp - 0x1044]
call fcn.004a72d8
xor edx, edx
mov dword [ebp - 0x1020], eax
mov dword [ebp - 0xffc], edx
cmp dword [ebp - 0x1000], edx
jbe 0x533dce
movzx ecx, byte [eax]
mov dword [ebp - 0x1024], ecx
mov ecx, dword [ebp - 0x1000]
shl ecx, 4
mov dword [ebp - 0x100c], ecx
test ecx, ecx
je 0x533dc0
mov edi, dword [ebp - 0x1024]
mov esi, edx
nop dword [eax]
movzx ecx, byte [esi + eax]
lea eax, [edx + 1]
cmp ecx, edi
cmove eax, edx
inc esi
cmp ecx, edi
mov edx, eax
mov eax, dword [ebp - 0x1020]
cmove ecx, edi
mov edi, ecx
cmp esi, dword [ebp - 0x100c]
jl 0x533d90
mov edi, dword [ebp - 0x1018]
mov esi, dword [ebp - 0x1004]
mov eax, dword [edi + 0x1c]
inc edx
mov dword [ebp - 0xffc], edx
mov dword [esi + eax + 0x28], edx
xor ecx, ecx
mov eax, edx
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a5b95
mov edx, eax
add esp, 4
mov dword [ebp - 0x1024], edx
test edx, edx
je 0x533e18
mov ecx, dword [ebp - 0xffc]
test ecx, ecx
je 0x533e1a
add edx, 8
mov dword [edx], 0
lea edx, [edx + 0xc]
sub ecx, 1
jne 0x533e02
mov edx, dword [ebp - 0x1024]
jmp 0x533e1a
xor edx, edx
cmp dword [ebp - 0x1000], 0
mov eax, dword [edi + 0x1c]
mov dword [esi + eax + 0x30], edx
jbe 0x533f1b
mov eax, dword [ebp - 0x1020]
xor ecx, ecx
mov esi, dword [ebp - 0x1000]
xor edx, edx
shl esi, 4
mov dword [ebp - 0x1048], esi
test esi, esi
movzx eax, byte [eax]
mov esi, dword [ebp - 0x1004]
mov dword [ebp - 0x1030], ecx
mov dword [ebp - 0xffc], ecx
mov dword [ebp - 0x100c], eax
je 0x533ef1
mov dword [ebp - 0x102c], ecx
mov edi, dword [ebp - 0x1020]
movzx edi, byte [edx + edi]
mov dword [ebp - 0x1024], edi
cmp edi, eax
mov edi, dword [ebp - 0x1018]
je 0x533ee2
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x100c]
inc dword [ebp - 0x1030]
mov eax, dword [esi + eax + 0x30]
mov dword [ecx + eax], edi
mov ecx, edx
mov edi, dword [ebp - 0x1018]
sub ecx, dword [ebp - 0xffc]
mov dword [ebp - 0xffc], edx
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x102c]
mov eax, dword [esi + eax + 0x30]
mov dword [eax + edi + 4], ecx
mov ecx, edi
mov eax, dword [ebp - 0x1024]
add ecx, 0xc
mov edi, dword [ebp - 0x1018]
mov dword [ebp - 0x102c], ecx
mov dword [ebp - 0x100c], eax
inc edx
cmp edx, dword [ebp - 0x1048]
jl 0x533e70
mov ecx, dword [ebp - 0x1030]
mov eax, dword [edi + 0x1c]
lea ecx, [ecx + ecx*2]
mov edi, dword [ebp - 0x100c]
sub edx, dword [ebp - 0xffc]
mov eax, dword [esi + eax + 0x30]
mov dword [eax + ecx*4], edi
mov edi, dword [ebp - 0x1018]
mov eax, dword [edi + 0x1c]
mov eax, dword [esi + eax + 0x30]
mov dword [eax + ecx*4 + 4], edx
push dword [ebp - 0x1020]
call fcn.004a7323
mov eax, dword [edi + 0x1c]
add esp, 4
mov ecx, dword [ebp - 0x1010]
mov dword [esi + eax + 0x34], ecx
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp - 0x1000]
mov dword [esi + eax + 0x38], ecx
lea ecx, [ebp - 0x1044]
call fcn.004a72d8
mov dword [ebp - 0x1004], eax
xor ecx, ecx
mov eax, dword [ebp - 0x1000]
mov edx, 2
imul eax, dword [ebp - 0x1010]
add eax, eax
mov dword [ebp - 0x102c], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a5b95
mov ecx, dword [edi + 0x1c]
mov edx, 2
mov dword [esi + ecx + 0x44], eax
xor ecx, ecx
mov eax, dword [ebp - 0x102c]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a5b95
push dword [ebp - 0x1010]
mov ecx, dword [edi + 0x1c]
push 2
push str.LevelScene::Data__Layers_i_.TileOffsetY
mov dword [esi + ecx + 0x48], eax
call fcn.004a67cf
mov ecx, dword [edi + 0x1c]
add esp, 0x14
push dword [ebp - 0x1004]
mov dword [esi + ecx + 0x4c], eax
lea ecx, [ebp - 0x10b4]
call fcn.004a580c
mov ecx, dword [ebp - 0x1000]
mov byte [ebp - 4], 0xd
test ecx, ecx
je 0x53406c
mov edx, dword [ebp - 0x1010]
xor eax, eax
mov dword [ebp - 0x1030], eax
lea edi, [edx + edx]
mov dword [ebp - 0x1048], edi
mov edi, dword [ebp - 0x1018]
test edx, edx
je 0x534055
mov dword [ebp - 0xffc], eax
mov dword [ebp - 0x100c], edx
lea ecx, [ebp - 0x10b4]
call fcn.004a73aa
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebp - 0xffc]
mov ecx, dword [esi + ecx + 0x44]
mov word [edx + ecx], ax
add edx, 2
sub dword [ebp - 0x100c], 1
mov dword [ebp - 0xffc], edx
jne 0x534015
mov eax, dword [ebp - 0x1030]
mov ecx, dword [ebp - 0x1000]
mov edx, dword [ebp - 0x1010]
add eax, dword [ebp - 0x1048]
sub ecx, 1
mov dword [ebp - 0x1030], eax
mov dword [ebp - 0x1000], ecx
jne 0x534005
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x1008]
call dword [eax + 0x44]
mov eax, dword [edi + 0x1c]
push dword [ebp - 0x102c]
push dword [esi + eax + 0x44]
push dword [esi + eax + 0x48]
call fcn.004a799a
push dword [ebp - 0x1004]
call fcn.004a7323
add esp, 0x10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x10b4]
call fcn.004a5230
mov eax, dword [edi + 0x1c]
add esi, 0x68
mov ecx, dword [ebp - 0x1008]
inc ecx
mov dword [ebp - 0x1004], esi
mov dword [ebp - 0x1008], ecx
movsx eax, word [eax]
cmp ecx, eax
jl 0x533963
push 0xa98
push str.LevelScene::PlaneSwitchers
call fcn.004a72f6
push 0x800
push str.LevelScene::Data__IsAnims
mov dword [edi + 0x120], eax
call fcn.004a72f6
mov ecx, dword [edi + 0x1c]
push 0x800
push 0xff
mov dword [ecx + 0x240c], eax
mov eax, dword [edi + 0x1c]
push dword [eax + 0x240c]
call fcn.004a5ff5
mov eax, dword [ebp - 0x101c]
add esp, 0x1c
and eax, 0xff000000
cmp eax, 0x53000000
jne 0x535094
lea eax, [ebp - 0x1049]
mov byte [edi + 0x2cc], 1
push eax
lea ecx, [ebp - 0x1090]
mov dword [ebp - 0x1094], 0
call fcn.004a6202
xorps xmm0, xmm0
mov byte [ebp - 4], 0xf
push 8
movups xmmword [ebp - 0x1084], xmm0
call fcn.004a7742
mov dword [ebp - 0x1084], eax
lea ecx, [ebp - 0x1084]
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x1084]
mov dword [eax], ecx
push 8
lea ecx, [ebp - 0x1094]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x1094], 0x3f800000
call fcn.004a5eab
mov byte [ebp - 4], 0x11
xor edi, edi
nop dword [eax + eax]
push edi
call fcn.004a833b
sub esp, 0x18
mov dword [ebp - 0x1048], eax
mov esi, esp
mov dword [ebp - 0x1050], esi
push 8
mov dword [esi], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
call fcn.004a7742
mov dword [esi], eax
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esi]
mov dword [eax], esi
mov edx, dword [ebp - 0x1048]
mov ecx, edx
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0xf
mov byte [ebp - 4], 0x12
lea eax, [ecx + 1]
mov byte [esi + 4], 0
mov dword [ebp - 0x1048], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x534220
sub ecx, dword [ebp - 0x1048]
push ecx
push edx
mov ecx, esi
call fcn.004a8039
lea eax, [ebp - 0xf7c]
mov byte [ebp - 4], 0x11
push eax
call fcn.004a5dd9
add esp, 0x20
lea eax, [ebp - 0xf7c]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x106c]
push eax
lea ecx, [ebp - 0x1094]
call fcn.004a6081
or dword [ebp - 0x1028], 1
lea ecx, [ebp - 0x106c]
mov byte [ebp - 4], 0x14
call fcn.004a84ee
mov esi, eax
push 3
lea ecx, [ebp - 0x1014]
mov byte [ebp - 4], 0x15
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x106c]
call fcn.004a54ab
lea ecx, [ebp - 0x1014]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
push edi
mov byte [ebp - 4], 0x13
call fcn.004a833b
add esp, 4
mov dword [esi + 0x1c], eax
lea ecx, [ebp - 0xf7c]
mov byte [ebp - 4], 0x16
call fcn.004a7413
mov eax, dword [ebp - 0xf64]
cmp eax, 0x10
jb 0x5342e1
inc eax
push eax
push dword [ebp - 0xf78]
call fcn.004a7f35
add esp, 8
mov dword [ebp - 0xf68], 0
mov dword [ebp - 0xf64], 0xf
mov byte [ebp - 0xf78], 0
lea ecx, [ebp - 0xf7c]
mov byte [ebp - 4], 0x17
call fcn.004a7413
push 8
push dword [ebp - 0xf7c]
call fcn.004a7f35
inc edi
mov byte [ebp - 4], 0x11
add esp, 8
cmp edi, 0x22a
jl 0x5341b0
call fcn.004a85ca
mov edi, dword [ebp - 0x1018]
test eax, eax
jle 0x53448d
xor edi, edi
push edi
call fcn.004a519a
sub esp, 0x18
mov dword [ebp - 0x1048], eax
mov esi, esp
mov dword [ebp - 0x1050], esi
push 8
mov dword [esi], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
call fcn.004a7742
mov dword [esi], eax
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esi]
mov dword [eax], esi
mov edx, dword [ebp - 0x1048]
mov ecx, edx
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0xf
mov byte [ebp - 4], 0x18
lea eax, [ecx + 1]
mov byte [esi + 4], 0
mov dword [ebp - 0x1048], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5343b0
sub ecx, dword [ebp - 0x1048]
push ecx
push edx
mov ecx, esi
call fcn.004a8039
lea eax, [ebp - 0xf60]
mov byte [ebp - 4], 0x11
push eax
call fcn.004a5dd9
add esp, 0x20
lea eax, [ebp - 0xf60]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x106c]
push eax
lea ecx, [ebp - 0x1094]
call fcn.004a6081
or dword [ebp - 0x1028], 2
lea ecx, [ebp - 0x106c]
mov byte [ebp - 4], 0x1a
call fcn.004a84ee
mov esi, eax
push 3
lea ecx, [ebp - 0x1014]
mov byte [ebp - 4], 0x1b
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x106c]
call fcn.004a54ab
lea ecx, [ebp - 0x1014]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
push edi
mov byte [ebp - 4], 0x19
call fcn.004a519a
add esp, 4
mov dword [esi + 0x1c], eax
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0x1c
call fcn.004a6a6d
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0x1d
call fcn.004a7413
push 8
push dword [ebp - 0xf60]
call fcn.004a7f35
add esp, 8
mov byte [ebp - 4], 0x11
inc edi
call fcn.004a85ca
cmp edi, eax
jl 0x534341
mov edi, dword [ebp - 0x1018]
lea ecx, [edi + 0x14c]
call fcn.004a7413
mov eax, dword [edi + 0x150]
lea ecx, [ebp - 0x1044]
mov dword [edi + 0x154], eax
mov dword [edi + 0x15c], 0
mov dword [edi + 0x160], 0
mov dword [ebp - 0x1030], 0
call fcn.004a8a07
movzx ecx, al
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x1020], 0
mov word [eax + 0x2410], cx
xor ecx, ecx
mov eax, dword [edi + 0x1c]
cmp cx, word [eax + 0x2410]
jge 0x53507a
nop word [eax + eax]
push 0x5ff192
lea eax, [ebp - 0x34]
push 0x5fe0d0
push eax
call fcn.004a75e9
add esp, 0xc
xor esi, esi
nop dword [eax + eax]
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov byte [ebp + esi - 0x44], al
movzx eax, al
push eax
lea eax, [ebp - 0x34]
push eax
push str._s_02x
push eax
call fcn.004a75e9
inc esi
add esp, 0x10
cmp esi, 0x10
jl 0x534520
lea ecx, [ebp - 0xf60]
call fcn.004a5104
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0xf4c], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xf48], 0xf
mov byte [ebp - 0xf5c], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x534580
sub ecx, edx
lea eax, [ebp - 0x34]
push ecx
push eax
lea ecx, [ebp - 0xf60]
call fcn.004a8039
lea eax, [ebp - 0xf60]
mov byte [ebp - 4], 0x1f
push eax
lea eax, [ebp - 0x10c4]
push eax
lea ecx, [ebp - 0x1094]
call fcn.004a7099
or dword [ebp - 0x1028], 4
lea ecx, [ebp - 0x10c4]
mov byte [ebp - 4], 0x20
call fcn.004a84ee
mov esi, eax
push 3
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0x21
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x10c4]
call fcn.004a54ab
lea ecx, [ebp - 0x1048]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
mov esi, dword [esi + 0x1c]
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0x22
call fcn.004a6a6d
lea ecx, [ebp - 0xf60]
mov byte [ebp - 4], 0x23
call fcn.004a7413
push 8
push dword [ebp - 0xf60]
call fcn.004a7f35
test esi, esi
mov dword [ebp - 0xf60], 0
mov eax, str.Unimplemented_Object
mov byte [ebp - 4], 0x11
cmovne eax, esi
push eax
push 0
mov dword [ebp - 0x109c], eax
call fcn.004a6bad
lea eax, [ebp - 0x44]
push 0x10
push eax
call fcn.004a72bf
add esp, 0x18
mov dword [ebp - 0x1008], eax
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
movzx eax, al
mov dword [ebp - 0x1010], eax
cmp eax, 1
jbe 0x5346ba
lea ecx, [eax - 1]
mov eax, 0xff
lea edi, [ebp - 0x140]
mov dword [ebp - 0x101c], ecx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x1018]
lea esi, [ebp - 0xf0c]
nop word [eax + eax]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x38]
add esi, 0x38
sub dword [ebp - 0x101c], 1
jne 0x5346a0
mov eax, dword [ebp - 0x1010]
mov dword [ebp - 0x101c], 1
cmp eax, 1
jbe 0x53473b
lea eax, [ebp - 0xf0c]
mov dword [ebp - 0xffc], eax
nop word [eax + eax]
mov edi, dword [ebp - 0xffc]
xor esi, esi
nop dword [eax + eax]
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov byte [esi + edi], al
inc esi
cmp esi, 0x10
jl 0x5346f0
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov ecx, dword [ebp - 0x101c]
add dword [ebp - 0xffc], 0x38
movzx eax, al
mov dword [ebp + ecx*4 - 0x144], eax
inc ecx
mov dword [ebp - 0x101c], ecx
cmp ecx, dword [ebp - 0x1010]
jl 0x5346e0
mov edi, dword [ebp - 0x1018]
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
movzx eax, ax
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x102c], 0
test eax, eax
je 0x53505b
mov eax, dword [ebp - 0x1008]
push eax
call fcn.004a7689
mov edi, eax
add esp, 4
mov dword [ebp - 0x1004], edi
mov dword [ebp - 0x100c], edi
test edi, edi
jne 0x534817
push 0x184
push str.Object
call fcn.004a72f6
mov edi, eax
add esp, 8
mov dword [ebp - 0x1004], edi
test edi, edi
jne 0x5347d8
push 0x184
call dword [sym.imp.ucrtbased.dll__callnewh]
add esp, 4
test eax, eax
je 0x535418
push 0x184
push str.Object
call fcn.004a72f6
mov edi, eax
add esp, 8
mov dword [ebp - 0x1004], edi
test edi, edi
je 0x5347a4
mov dword [ebp - 0x1014], edi
mov byte [ebp - 4], 0x24
test edi, edi
je 0x534805
push 0x184
push 0
push edi
call fcn.004a5ff5
add esp, 0xc
mov ecx, edi
call fcn.004a7224
mov dword [edi], vtable.BlankObject.0
jmp 0x53480d
xor edi, edi
mov dword [ebp - 0x1004], edi
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x100c], edi
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
movzx eax, ax
test edi, edi
je 0x534844
mov word [edi + 0xb4], ax
mov eax, dword [ebp - 0x1030]
mov word [edi + 0xb6], ax
inc eax
mov dword [ebp - 0x1030], eax
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
lea ecx, [ebp - 0x1044]
movzx esi, ax
call fcn.004a6bc1
movzx eax, ax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1014], eax
call fcn.004a73aa
movzx eax, ax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1024], eax
call fcn.004a6bc1
movzx eax, ax
mov dword [ebp - 0x1054], eax
test edi, edi
je 0x53492f
mov eax, dword [ebp - 0x1014]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
cwde
movd xmm0, eax
mulss xmm1, dword [0x60dbd0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x1014], xmm1
call fcn.004a802f
mov dword [edi + 0xb8], eax
mov eax, dword [ebp - 0x1024]
movzx eax, ax
movd xmm1, eax
mov eax, dword [ebp - 0x1054]
cvtdq2ps xmm1, xmm1
cwde
movd xmm0, eax
mulss xmm1, dword [0x60dbd0]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movaps xmm0, xmm1
movss dword [ebp - 0x1024], xmm1
call fcn.004a802f
cvttss2si ecx, dword [ebp - 0x1014]
mov dword [edi + 0xbc], eax
mov eax, dword [edi + 0xc8]
mov word [eax], cx
cvttss2si ecx, dword [ebp - 0x1024]
mov eax, dword [edi + 0xcc]
mov word [eax], cx
cmp dword [ebp - 0x1010], 1
jbe 0x534c32
mov eax, 1
lea esi, [ebp - 0xefc]
mov dword [ebp - 0x1000], eax
mov dword [ebp - 0xffc], esi
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [ebp + eax*4 - 0x144]
cmp ecx, 0xb
ja case.0x534970.10
jmp dword [ecx*4 + 0x5356c0]
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov byte [esi + 8], al
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
mov byte [esi], al
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a6bc1
mov word [esi + 0xa], ax
lea ecx, [ebp - 0x1044]
call fcn.004a73aa
mov word [esi + 2], ax
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a57a8
mov dword [esi + 0x14], eax
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a57a8
test eax, eax
setne al
mov byte [esi + 0x18], al
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a8a07
lea ecx, [ebp - 0x1044]
mov byte [esi + 0x1b], al
call fcn.004a8a07
lea ecx, [ebp - 0x1044]
mov byte [esi + 0x1a], al
call fcn.004a8a07
lea ecx, [ebp - 0x1044]
mov byte [esi + 0x19], al
call fcn.004a8a07
mov byte [esi + 0x1c], al
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a6d42
mov dword [esi + 0xc], eax
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a57a8
mov dword [esi + 4], eax
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a8002
mov dword [esi + 0x10], eax
jmp 0x534af2
lea ecx, [ebp - 0x1044]
call fcn.004a6bc1
lea ecx, [ebp - 0x1044]
movzx edi, ax
call fcn.004a6bc1
lea ecx, [ebp - 0x1044]
movzx esi, ax
call fcn.004a6bc1
movzx eax, ax
lea ecx, [ebp - 0x1044]
mov dword [ebp - 0x1014], eax
call fcn.004a6bc1
movzx ecx, ax
movsx eax, di
movd xmm1, esi
mov esi, dword [ebp - 0xffc]
cvtdq2ps xmm1, xmm1
mov edi, dword [ebp - 0x1004]
movd xmm0, eax
mulss xmm1, dword [0x60dbd0]
mov eax, dword [ebp - 0x1014]
cvtdq2ps xmm0, xmm0
cwde
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi + 0x20], xmm1
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [0x60dbd0]
addss xmm1, xmm0
movss dword [esi + 0x24], xmm1
mov eax, dword [ebp - 0x1000]
test edi, edi
je 0x534c16
lea ecx, [ebp - 0xf7c]
call fcn.004a5104
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0x25
mov ecx, edx
mov dword [ebp - 0xf68], 0
mov dword [ebp - 0xf64], 0xf
mov byte [ebp - 0xf78], 0
mov dword [ebp - 0x1014], edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x534b38
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xf7c]
call fcn.004a8039
cmp dword [ebp - 0xf68], 0x10
mov byte [ebp - 4], 0x26
jbe 0x534b7d
cmp dword [ebp - 0xf64], 0x10
lea eax, [ebp - 0xf78]
mov dword [ebp - 0xf68], 0x10
cmovae eax, dword [ebp - 0xf78]
mov byte [eax + 0x10], 0
push dword [ebp - 0x1014]
lea eax, [ebp - 0xf7c]
push eax
lea ecx, [edi + 0x18]
call fcn.004a5e88
push eax
add eax, 0x10
lea ecx, [edi + 0x18]
push eax
push 0
lea eax, [ebp - 0x10b0]
push eax
call fcn.004a575d
or dword [ebp - 0x1028], 8
push 3
lea ecx, [ebp - 0x1098]
mov byte [ebp - 4], 0x27
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
lea ecx, [ebp - 0x10b0]
call fcn.004a54ab
lea ecx, [ebp - 0x1098]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
lea ecx, [ebp - 0xf7c]
mov byte [ebp - 4], 0x28
call fcn.004a6a6d
lea ecx, [ebp - 0xf7c]
mov byte [ebp - 4], 0x29
call fcn.004a7413
push 8
push dword [ebp - 0xf7c]
call fcn.004a7f35
mov esi, dword [ebp - 0xffc]
add esp, 8
mov eax, dword [ebp - 0x1000]
mov byte [ebp - 4], 0x11
inc eax
add esi, 0x38
mov dword [ebp - 0x1000], eax
mov dword [ebp - 0xffc], esi
cmp eax, dword [ebp - 0x1010]
jl 0x534960
test edi, edi
je 0x535036
cmp dword [ebp - 0x1008], 0x2ea61fd6
mov esi, dword [ebp - 0x1018]
je 0x534e21
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov dword [edi + 0xc], esi
mov ecx, dword [edi + 0x110]
cmp ecx, 0xffffffff
jne 0x534c90
mov eax, dword [ebp - 0x109c]
cmp eax, str.BlankObject
je 0x534c90
cmp eax, str.PlayerSpawn
je 0x534c90
push eax
push str.Object__s_Sprite_Not_found_
push 1
call fcn.004a6bad
add esp, 0xc
jmp 0x534cae
mov eax, dword [0x64d340]
mov edx, dword [0x64d33c]
sub eax, edx
sar eax, 2
cmp eax, ecx
jbe 0x53563a
mov eax, dword [edx + ecx*4]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xf98]
push str.Subtype
push ecx
mov ecx, edi
mov al, byte [eax + 0x3a]
mov byte [edi + 0xfd], al
mov eax, dword [ebp - 0x1010]
dec eax
mov dword [edi + 0x94], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
call eax
push str.Filter
lea ecx, [ebp - 0xf98]
push ecx
mov al, byte [eax + 0x10]
mov ecx, edi
mov byte [edi + 0xd2], al
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
call eax
push str.FlipX
lea ecx, [ebp - 0xf98]
push ecx
mov al, byte [eax + 0x10]
mov ecx, edi
mov byte [edi + 0xd3], al
and al, 1
mov byte [edi + 0xda], al
mov al, byte [edi + 0xd3]
shr al, 1
and al, 1
mov byte [edi + 0xdb], al
mov al, byte [edi + 0xd3]
shr al, 2
and al, 1
mov byte [edi + 0xdc], al
mov al, byte [edi + 0xd3]
shr al, 3
and al, 1
mov byte [edi + 0xdd], al
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
call eax
push str.FlipY
lea ecx, [ebp - 0xf98]
push ecx
mov al, byte [eax + 0x28]
mov ecx, edi
mov byte [edi + 0xd4], al
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
call eax
lea ecx, [esi + 0x14c]
mov al, byte [eax + 0x28]
mov byte [edi + 0xd5], al
mov eax, dword [ecx + 8]
cmp dword [ecx + 0xc], eax
je 0x534e03
mov dword [eax], edi
mov eax, dword [ecx + 8]
lea ecx, [ebp - 0x10a0]
push 3
mov dword [ebp - 0x101c], eax
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ecx, dword [esi + 0x14c]
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
je 0x534de5
mov eax, dword [ecx]
test eax, eax
je 0x534de5
nop word [eax + eax]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x101c]
jb 0x534ddc
ja 0x534ddc
mov dword [eax], 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov dword [ecx], eax
jmp 0x534de1
lea ecx, [eax + 4]
mov eax, dword [ecx]
test eax, eax
jne 0x534dc0
lea ecx, [ebp - 0x10a0]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
add dword [esi + 0x154], 4
inc dword [esi + 0x15c]
jmp 0x534f0f
lea edx, [ebp - 0x100c]
push edx
push eax
call fcn.004a60fe
mov edi, dword [ebp - 0x100c]
inc dword [esi + 0x15c]
jmp 0x534f0f
mov eax, dword [edi + 0xc8]
lea ecx, [esi + 0x258]
mov word [ebp - 0x1064], 0xff
mov word [ebp - 0x1061], 0
mov byte [ebp - 0x1062], 1
movzx eax, word [eax]
mov word [ebp - 0x1068], ax
mov eax, dword [edi + 0xcc]
movzx eax, word [eax]
inc dword [esi + 0x268]
mov edx, dword [ecx + 8]
mov word [ebp - 0x1066], ax
cmp dword [ecx + 0xc], edx
je 0x534efa
movq xmm0, qword [ebp - 0x1068]
mov ax, word [ebp - 0x1060]
movq qword [edx], xmm0
mov word [edx + 8], ax
mov eax, dword [ecx + 8]
lea ecx, [ebp - 0x1058]
push 3
mov dword [ebp - 0x101c], eax
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::constructor_int_]
mov ecx, dword [esi + 0x258]
lea eax, [ecx + 4]
neg ecx
sbb ecx, ecx
and ecx, eax
je 0x534ee5
mov eax, dword [ecx]
test eax, eax
je 0x534ee5
nop word [eax + eax]
mov edx, dword [eax + 8]
cmp edx, dword [ebp - 0x101c]
jb 0x534edc
ja 0x534edc
mov dword [eax], 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov dword [ecx], eax
jmp 0x534ee1
lea ecx, [eax + 4]
mov eax, dword [ecx]
test eax, eax
jne 0x534ec0
lea ecx, [ebp - 0x1058]
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
add dword [esi + 0x260], 0xa
jmp 0x534f07
lea eax, [ebp - 0x1068]
push eax
push edx
call fcn.004a8728
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov eax, dword [ebp - 0x1008]
test edi, edi
je 0x53503c
cmp eax, 0x91586422
jne 0x53503c
mov eax, dword [edi + 0xc8]
push str.Angle
movsx edx, word [eax]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov dword [eax + ecx*8], edx
mov eax, dword [edi + 0xcc]
movsx edx, word [eax]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov dword [eax + ecx*8 + 4], edx
lea ecx, [ebp - 0xf98]
mov eax, dword [edi]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x64]
call eax
push str.Flags
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov dword [eax + ecx*8 + 0x10], edx
lea ecx, [ebp - 0xf98]
mov eax, dword [edi]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x64]
call eax
push str.OnPath
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov dword [eax + ecx*8 + 8], edx
lea ecx, [ebp - 0xf98]
mov eax, dword [edi]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x64]
call eax
push str.Size
mov dl, byte [eax + 0x28]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov byte [eax + ecx*8 + 0x14], dl
lea ecx, [ebp - 0xf98]
mov eax, dword [edi]
push ecx
mov ecx, edi
mov eax, dword [eax + 0x64]
call eax
mov edx, dword [eax + 0x14]
mov eax, dword [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x120]
mov dword [eax + ecx*8 + 0xc], edx
mov eax, dword [esi + 0x124]
mov edx, dword [esi + 0x120]
lea ecx, [eax + eax*2]
cmp dword [edx + ecx*8 + 0xc], 0
jg 0x53502f
mov dword [edx + ecx*8 + 0xc], 1
mov eax, dword [esi + 0x124]
inc eax
mov dword [esi + 0x124], eax
mov eax, dword [ebp - 0x1008]
mov esi, dword [ebp - 0x102c]
inc esi
mov dword [ebp - 0x102c], esi
cmp esi, dword [ebp - 0x1050]
jl 0x534767
mov edi, dword [ebp - 0x1018]
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp - 0x1020]
inc ecx
mov dword [ebp - 0x1020], ecx
movsx eax, word [eax + 0x2410]
cmp ecx, eax
jl 0x534500
lea ecx, [ebp - 0x1084]
mov byte [ebp - 4], 8
call fcn.004a5d61
lea ecx, [ebp - 0x1090]
call fcn.004a7f53
mov ecx, dword [edi + 0x1c]
xor edx, edx
xor eax, eax
mov dword [ebp - 0x1014], edx
cmp ax, word [ecx]
jge 0x53555c
mov dword [ebp - 0x1020], eax
cmp dword [eax + ecx + 0x24], 0
lea esi, [eax + ecx]
je 0x53553b
add esi, 4
mov dword [ebp - 0x1004], 0
push esi
lea ecx, [ebp - 0xfc8]
call fcn.004a74e5
mov al, byte [esi + 0x1c]
mov byte [ebp - 0xfac], al
mov al, byte [esi + 0x1d]
mov byte [ebp - 0xfab], al
mov eax, dword [esi + 0x20]
mov dword [ebp - 0xfa8], eax
mov edx, dword [esi + 0x24]
mov dword [ebp - 0xfa4], edx
mov eax, dword [esi + 0x28]
mov dword [ebp - 0xfa0], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0xf9c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0xf98], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0xf94], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0xf90], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0xf8c], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0xf88], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xf84], eax
mov eax, dword [esi + 0x48]
mov dword [ebp - 0xf80], eax
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0xf7c], eax
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xf78], eax
mov al, byte [esi + 0x54]
mov byte [ebp - 0xf74], al
mov al, byte [esi + 0x55]
mov byte [ebp - 0xf73], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0xf70], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0xf6c], eax
mov al, byte [esi + 0x60]
mov byte [ebp - 0xf68], al
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x100c], edx
mov dword [ebp - 0xf64], eax
xor ecx, ecx
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0xffc], ecx
test edx, edx
jle 0x53523d
mov ecx, dword [ebp - 0x1050]
mov eax, dword [ebp - 0x1004]
add ecx, 4
mov dword [ebp - 0x101c], ecx
nop dword [eax]
mov esi, dword [ecx]
xor edx, edx
test esi, esi
jle 0x535217
mov edi, dword [ebp - 0x1004]
nop
mov eax, esi
mov ecx, 0x10
sub eax, edx
cmp eax, ecx
cmovl ecx, eax
inc dword [ebp - 0xffc]
lea eax, [edi + 0x10]
add eax, edx
and eax, 0xfffffff0
sub eax, edx
sub eax, edi
cmp ecx, eax
cmovle eax, ecx
add edx, eax
cmp edx, esi
jl 0x5351e0
mov eax, dword [ebp - 0x1004]
mov ecx, dword [ebp - 0x101c]
add eax, esi
add ecx, 0xc
sub dword [ebp - 0x100c], 1
mov dword [ebp - 0x1004], eax
mov dword [ebp - 0x101c], ecx
jne 0x5351d0
mov edi, dword [ebp - 0x1018]
mov ecx, dword [ebp - 0xffc]
push 4
push ecx
mov dword [ebp - 0x1008], 0
mov dword [ebp - 0x1000], 0
call dword [sym.imp.ucrtbased.dll_calloc]
mov ecx, dword [ebp - 0xf9c]
add esp, 8
mov dword [ebp - 0x1054], 0
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xfa4]
test ecx, ecx
jle 0x53551d
mov eax, dword [ebp - 0xf9c]
xor esi, esi
mov dword [ebp - 0x1024], esi
nop dword [eax]
xor edx, edx
mov dword [ebp - 0x1010], edx
cmp dword [esi + eax + 4], edx
jle 0x5354ef
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esi + eax + 4]
mov ecx, 0x10
mov esi, dword [ebp - 0x1008]
sub eax, edx
cmp eax, ecx
cmovl ecx, eax
add esi, 0x10
add esi, edx
and esi, 0xfffffff0
sub esi, edx
sub esi, dword [ebp - 0x1008]
cmp ecx, esi
cmovle esi, ecx
mov ecx, dword [edi + 8]
mov dword [ebp - 0x1028], esi
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ecx, dword [ebp - 0xf98]
xor eax, eax
mov dword [ebp - 0x102c], eax
test ecx, ecx
jle 0x53549b
mov esi, dword [ebp - 0x1008]
mov edx, dword [ebp - 0x1010]
mov dword [ebp - 0x1004], 0xfffffff8
lea edx, [edx + esi]
mov esi, dword [ebp - 0x1028]
sar edx, 4
mov dword [ebp - 0x100c], edx
nop word [eax + eax]
imul ecx, edx
add ecx, eax
mov eax, dword [ebp - 0xf88]
movsx ecx, word [eax + ecx*2]
mov eax, ecx
mov dword [ebp - 0x1050], ecx
sar eax, 0xa
mov edi, ecx
and eax, 3
and edi, 0x3ff
mov dword [ebp - 0x101c], eax
cmp edi, 0x3ff
je 0x535473
mov edx, dword [ebp - 0x1018]
mov ecx, dword [ebp - 0x1010]
add ecx, dword [ebp - 0x1008]
mov esi, dword [ebp - 0x1028]
and ecx, 0xf
test dword [ebp - 0x1050], 0x800
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0xffc], ecx
mov eax, dword [eax + 0x240c]
movsx eax, word [eax + edi*2]
movzx eax, al
mov dword [ebp - 0x1058], eax
je 0x5353bf
mov eax, 0x10
sub eax, esi
sub eax, ecx
mov dword [ebp - 0xffc], eax
mov eax, dword [ebp - 0x1058]
cmp eax, 0xff
jne 0x53546d
mov eax, dword [edx + 0x20]
mov ecx, dword [edx + 8]
push dword [ebp - 0x101c]
mov dword [ebp - 0x1030], eax
cmp word [eax + 4], 0x10
mov eax, dword [ebp - 0x1028]
mov esi, dword [ecx]
cdq
jbe 0x53543d
sub eax, edx
sar eax, 1
neg eax
push eax
push dword [ebp - 0x1004]
mov eax, edi
and edi, 0x1f
push dword [ebp - 0x1028]
shr eax, 1
and eax, 0xfffffff0
add eax, dword [ebp - 0xffc]
push 0x10
push eax
shl edi, 4
push edi
jmp 0x53545e
mov eax, dword fs:[0x2c]
mov ecx, dword [0x657024]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x64d530]
cmp eax, dword [ecx + 0x104]
jle 0x535619
jmp 0x5355e0
sub eax, edx
shl edi, 4
sar eax, 1
neg eax
add edi, dword [ebp - 0xffc]
push eax
push dword [ebp - 0x1004]
push dword [ebp - 0x1028]
push 0x10
push edi
push 0
push dword [ebp - 0x1030]
call dword [esi + 0x28]
mov esi, dword [ebp - 0x1028]
mov edx, dword [ebp - 0x100c]
mov eax, dword [ebp - 0x102c]
add dword [ebp - 0x1004], 0x10
inc eax
mov ecx, dword [ebp - 0xf98]
mov dword [ebp - 0x102c], eax
cmp eax, ecx
jl 0x535330
mov edi, dword [ebp - 0x1018]
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [edi + 0x1c]
mov edx, dword [ebp - 0x1020]
mov ecx, dword [edx + ecx + 0x30]
mov edx, dword [ebp - 0x1000]
mov ecx, dword [ecx + 8]
mov dword [ecx + edx*4], eax
inc edx
mov eax, dword [ebp - 0xf9c]
mov dword [ebp - 0x1000], edx
mov edx, dword [ebp - 0x1010]
add edx, esi
mov esi, dword [ebp - 0x1024]
mov dword [ebp - 0x1010], edx
cmp edx, dword [esi + eax + 4]
jl 0x5352b0
mov ecx, dword [ebp - 0xfa4]
mov edx, dword [ebp - 0x1008]
add edx, dword [esi + eax + 4]
add esi, 0xc
mov dword [ebp - 0x1008], edx
mov edx, dword [ebp - 0x1054]
inc edx
mov dword [ebp - 0x1024], esi
mov dword [ebp - 0x1054], edx
cmp edx, ecx
jl 0x535290
lea ecx, [ebp - 0xfc8]
mov byte [ebp - 4], 8
call fcn.004a712f
mov ecx, dword [edi + 0x1c]
mov eax, dword [ebp - 0x1020]
mov edx, dword [ebp - 0x1014]
add eax, 0x68
inc edx
mov dword [ebp - 0x1020], eax
movsx eax, word [ecx]
cmp edx, eax
mov dword [ebp - 0x1014], edx
mov eax, dword [ebp - 0x1020]
jl 0x5350b0
push dword [ebp - 0x105c]
call fcn.004a631a
add esp, 4
lea ecx, [ebp - 0x1044]
call fcn.004a5230
lea ecx, [ebp - 0xff8]
call fcn.004a712f
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
push dword [edi + 0x2d4]
push str.Scene.bin_at__s_could_not_be_read.
push 2
call fcn.004a6bad
add esp, 0xc
push 1
call dword [sym.imp.ucrtbased.dll_exit]
push dword [edi + 0x2d0]
push str.TileConfig_at__s_could_not_be_read.
push 2
call fcn.004a6bad
push str.pause
call dword [sym.imp.ucrtbased.dll_system]
add esp, 0x10
push 1
call dword [sym.imp.ucrtbased.dll_exit]
push 0x64d530
call fcn.004a5cad
add esp, 4
cmp dword [0x64d530], 0xffffffff
jne 0x535619
mov ecx, 0x64d520
call fcn.004a8539
push 0x4a5ae1
call fcn.004a73eb
push 0x64d530
call fcn.004a6748
add esp, 8
jmp 0x535619
push 0x64d520
lea ecx, [ebp - 0x1068]
call fcn.004a89ad
push 0x639eb4
lea eax, [ebp - 0x1068]
push eax
call fcn.004a8a57
call fcn.004a57e9
nop
jle 0x53566f
push ebx
add byte [ebp - 0x63ffacd3], cl
sub eax, 0x2dab0053
push ebx
add byte [edx - 0x36ffacd3], bh
sub eax, 0x2dd80053
push ebx
add bh, ah
sub eax, 0x2df60053
push ebx
add byte [0x1400532e], al
push ebx
add byte [ebx], ah
push ebx
add byte [edx], dh
push ebx
add byte [ecx + 0x2e], al
push ebx
add byte [eax + 0x2e], dl
push ebx
add byte [edi + 0x2e], bl
push ebx
add byte [ebx - 0x45ffacd2], ch
push ebx
add cl, cl
push ebx
add al, bl
push ebx
add bh, ah
push ebx
add dh, dh
push ebx
add byte [0x1100532f], al
das
push ebx
add byte [0x2900532f], bl
das
push ebx
add byte [0x4100532f], dh
das
push ebx
add byte [ebp + 0x2f], cl
push ebx
add byte [ecx + 0x2f], bl
push ebx
add byte [ebp + 0x2f], ah
push ebx
add byte [ecx + 0x2f], dh
push ebx
add byte [edx - 0x54ffacb7], cl
dec ecx
push ebx
add byte [edx], bh
dec edx
push ebx
add byte [edi + 0x49], dh
push ebx
add byte [ecx + ecx*2 + 0x4a270053], bl
push ebx
add byte [edi - 0x2dffacb7], bh
dec ecx
push ebx
add byte [ebp + 0x4a], cl
push ebx
add byte [eax + 0x4a], ah
push ebx
add al, bh
dec edx
push ebx
add dl, ch
dec ecx
push ebx
add ah, cl
int3