Function at 0x580da0
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x5dd636
mov eax, dword fs:[0]
push eax
sub esp, 0x1d4
mov eax, dword [0x6396a8]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6396a8]
xor eax, esp
push eax
lea eax, [esp + 0x1e8]
mov dword fs:[0], eax
xor ebx, ebx
cmp byte [esp + 0x1f8], bl
mov dword [esp + 0x14], ebx
mov esi, ecx
mov dword [esp + 0x60], ebx
je 0x580e02
mov eax, dword [esi]
mov edx, dword [eax + 0x150]
call edx
test al, al
je 0x58393c
mov eax, dword [esi + 0x334]
lea ebp, [esi + 0x330]
mov dword [esp + 0xd8], eax
lea eax, [esi + 0x314]
push eax
lea ecx, [esp + 0xd0]
push ecx
mov ecx, ebp
call fcn.00540a00
mov edi, eax
mov eax, dword [edi]
test eax, eax
je 0x580e37
cmp eax, ebp
je 0x580e3c
call fcn.005b2af7
mov edx, dword [esp + 0xd8]
cmp dword [edi + 4], edx
je 0x580e65
mov ecx, esi
call fcn.005877c0
mov ecx, dword [esi + 0x290]
call fcn.00538d60
test al, al
je 0x580e65
mov ecx, esi
call fcn.00587dc0
push 3
mov edi, 0xf
xor ebp, ebp
push 0x5f0798
lea ecx, [esp + 0x114]
mov dword [esp + 0x12c], edi
mov dword [esp + 0x128], ebp
mov byte [esp + 0x118], bl
call fcn.0043df40
cmp dword [esi + 0x218], ebp
mov dword [esp + 0x1f0], ebp
jne 0x580ea8
call fcn.005b2af7
mov eax, dword [esi + 0x218]
mov ecx, dword [esi + 0x21c]
cmp ecx, dword [eax + 4]
jne 0x580ebe
call fcn.005b2af7
mov ecx, dword [esi + 0x21c]
lea edx, [esp + 0x10c]
add ecx, 8
push edx
call fcn.004790c0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x19c]
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x1b0], 0
mov byte [esp + 0x1a0], 0
call fcn.0043b440
mov ebp, 0x10
cmp dword [esp + 0x124], ebp
mov byte [esp + 0x1f0], 2
jb 0x580f25
mov eax, dword [esp + 0x110]
push eax
call fcn.005b28f2
add esp, 4
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x198]
push ecx
lea ecx, [esi + 0x314]
mov dword [esp + 0x130], edi
mov dword [esp + 0x12c], 0
mov byte [esp + 0x11c], 0
call fcn.0043b440
mov edx, dword [esi]
mov edx, dword [edx + 0x158]
lea eax, [esp + 0x190]
push eax
mov ecx, esi
call edx
test al, al
je 0x580f8e
cmp dword [esp + 0x1a8], ebp
jb 0x580f87
mov eax, dword [esp + 0x194]
push eax
call fcn.005b28f2
add esp, 4
mov al, 1
jmp 0x58393c
mov ecx, dword [esp + 0x1a4]
push edi
push str.wait_for_button
push ecx
push 0
lea ecx, [esp + 0x1a0]
call fcn.0043b680
test eax, eax
jne 0x58103b
push 0x60ebac
lea ecx, [esp + 0x1b0]
mov dword [esi + 0x304], 2
call fcn.00438a30
lea edx, [esp + 0x1ac]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 3
call fcn.00560d60
push eax
lea ecx, [esi + 0x2f0]
call fcn.005802a0
mov ecx, dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0x94]
push 0
call edx
cmp dword [esp + 0x1c4], ebp
jb 0x581017
mov eax, dword [esp + 0x1b0]
push eax
call fcn.005b28f2
add esp, 4
cmp dword [esp + 0x1a8], ebp
jb 0x580f87
mov ecx, dword [esp + 0x194]
push ecx
call fcn.005b28f2
add esp, 4
mov al, 1
jmp 0x58393c
mov edx, dword [esp + 0x1a4]
push 0xa
push str.add_button
push edx
push 0
lea ecx, [esp + 0x1a0]
call fcn.0043b680
test eax, eax
jne 0x58126f
push 0x208
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0xd4], ebp
test ebp, ebp
mov byte [esp + 0x1f0], 4
je 0x581184
push 0x5ff2b0
lea ecx, [esp + 0x90]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 5
mov dword [esp + 0x18], 1
call fcn.00438a30
push str.image
lea ecx, [esp + 0xf4]
mov dword [esp + 0x1f4], 6
mov dword [esp + 0x18], 3
call fcn.00438a30
mov eax, 7
push 0x5f084c
lea ecx, [esp + 0x1cc]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x18], eax
call fcn.00438a30
push 0x5f0848
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1f4], 8
mov dword [esp + 0x18], edi
call fcn.00438a30
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0xac]
push ecx
mov ebx, 0x1f
mov ecx, esi
mov dword [esp + 0x1f8], 9
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
lea edx, [esp + 0xf8]
push edx
mov ecx, esi
call fcn.00565880
push eax
lea eax, [esp + 0x1d4]
push eax
mov ecx, esi
call fcn.00560da0
push eax
lea ecx, [esp + 0x1bc]
push ecx
mov ecx, esi
call fcn.00560da0
push eax
mov ecx, ebp
call fcn.005a8d20
mov ebp, eax
jmp 0x581186
xor ebp, ebp
test bl, 0x10
je 0x58119e
and ebx, 0xffffffef
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x14], ebx
call fcn.00525310
test bl, 8
je 0x5811b6
and ebx, 0xfffffff7
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x14], ebx
call fcn.00525310
test bl, 4
je 0x5811ce
and ebx, 0xfffffffb
lea ecx, [esp + 0xf0]
mov dword [esp + 0x14], ebx
call fcn.00525310
test bl, 2
je 0x5811e6
and ebx, 0xfffffffd
lea ecx, [esp + 0xa8]
mov dword [esp + 0x14], ebx
call fcn.00525310
test bl, 1
mov dword [esp + 0x1f0], 2
je 0x581209
and ebx, 0xfffffffe
lea ecx, [esp + 0x8c]
mov dword [esp + 0x14], ebx
call fcn.00525310
push ebp
mov ecx, esi
call fcn.00585f70
push 0x60ebac
lea ecx, [esp + 0xd8]
call fcn.00438a30
lea edx, [esp + 0xd4]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0xf
call fcn.00560d60
push eax
lea ecx, [esi + 0x2f0]
call fcn.005802a0
lea ecx, [esp + 0xd4]
mov dword [eax], ebp
mov byte [esp + 0x1f0], 2
call fcn.00525310
mov eax, dword [ebp]
mov edx, dword [eax + 0x94]
push 1
mov ecx, ebp
call edx
jmp 0x58156d
lea eax, [esp + 0x190]
push str.move_button
push eax
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x58138a
lea ecx, [esp + 0x190]
push str.remove_button
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x58138a
lea edx, [esp + 0x190]
push str.add_background
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x58156d
push str.image
lea ecx, [esp + 0xf4]
call fcn.00438a30
push 0x5f084c
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 0x17
call fcn.00438a30
push 0x5f0848
lea ecx, [esp + 0x90]
mov byte [esp + 0x1f4], 0x18
call fcn.00438a30
lea eax, [esp + 0xf0]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x19
call fcn.00565880
push eax
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x94]
push edx
mov ecx, esi
call fcn.00560da0
push eax
lea ecx, [esp + 0x44]
call fcn.005209f0
push eax
lea ecx, [esi + 0x2c4]
mov byte [esp + 0x1f4], 0x1a
call fcn.0057fc40
lea ecx, [esp + 0x8c]
mov dword [esp + 0x38], vtable.Component.0
call fcn.00525310
lea ecx, [esp + 0xa8]
call fcn.00525310
lea ecx, [esp + 0xf0]
jmp 0x581560
push str.speed
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x5ff2b0
lea eax, [esp + 0x20]
push eax
mov ecx, esi
mov byte [esp + 0x1f8], 0x10
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x5813eb
push str.speed
lea ecx, [esp + 0x74]
call fcn.00438a30
lea ecx, [esp + 0x70]
push ecx
mov ebx, 0x20
mov ecx, esi
mov byte [esp + 0x1f4], 0x11
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x5813f1
fld qword [0x613ed8]
push 0x5f1108
fstp qword [esp + 0xd8]
lea ecx, [esp + 0x1cc]
call fcn.00438a30
push 0x5f1104
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1f4], 0x12
call fcn.00438a30
push 0x5f084c
lea ecx, [esp + 0xf4]
mov byte [esp + 0x1f4], 0x13
call fcn.00438a30
push 0x5f0848
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 0x14
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x90]
mov byte [esp + 0x1f4], 0x15
call fcn.00438a30
lea edx, [esp + 0x8c]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x16
call fcn.00560d60
push eax
lea ecx, [esi + 0x2f0]
call fcn.005802a0
fld qword [esp + 0xd4]
sub esp, 8
fstp qword [esp]
mov ebp, eax
lea eax, [esp + 0x198]
push str.remove_button
push eax
call fcn.0045d6d0
add esp, 8
lea ecx, [esp + 0x1d0]
push eax
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x1bc]
push edx
mov ecx, esi
call fcn.00560da0
push eax
lea eax, [esp + 0x104]
push eax
mov ecx, esi
call fcn.00560da0
push eax
lea ecx, [esp + 0xc0]
push ecx
mov ecx, esi
call fcn.00560da0
mov ecx, dword [ebp]
push eax
call fcn.005a8bd0
lea ecx, [esp + 0x8c]
call fcn.00525310
lea ecx, [esp + 0xa8]
call fcn.00525310
lea ecx, [esp + 0xf0]
call fcn.00525310
lea ecx, [esp + 0x1ac]
call fcn.00525310
lea ecx, [esp + 0x1c8]
call fcn.00525310
test bl, 0x20
mov dword [esp + 0x1f0], 0x10
je 0x58155c
and ebx, 0xffffffdf
lea ecx, [esp + 0x70]
mov dword [esp + 0x14], ebx
call fcn.00525310
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 2
call fcn.00525310
mov edx, dword [esp + 0x1a4]
push 4
push str.wait
push edx
xor edi, edi
push edi
lea ecx, [esp + 0x1a0]
call fcn.0043b680
test eax, eax
jne 0x5815ac
lea ecx, [esp + 0x190]
mov dword [esi + 0x304], 1
call fcn.00525310
mov al, 1
jmp 0x58393c
lea eax, [esp + 0x190]
push str.pause
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x58160f
push str.time
lea ecx, [esp + 0x20]
call fcn.00438a30
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x1b
call fcn.00560da0
lea ecx, [esp + 0x1c]
mov dword [esi + 0x2fc], eax
call fcn.00525310
lea ecx, [esp + 0x190]
mov dword [esi + 0x304], edi
call fcn.00525310
mov al, 1
jmp 0x58393c
lea edx, [esp + 0x190]
push str.persist
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581630
mov dword [esi + 0x2fc], edi
jmp 0x5815f6
lea eax, [esp + 0x190]
push 0x5f0930
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581689
push str.image
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x5ff2b0
lea ecx, [esp + 0x20]
push ecx
or ebx, 0x40
mov ecx, esi
mov byte [esp + 0x1f8], 0x1c
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
mov byte [esp + 0x1b], 1
jne 0x58168e
mov byte [esp + 0x1b], 0
test bl, 0x40
mov ebp, 2
mov dword [esp + 0x1f0], ebp
je 0x5816af
and ebx, 0xffffffbf
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
call fcn.00525310
cmp byte [esp + 0x1b], 0
je 0x581984
push 0x280
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0x60], ebp
test ebp, ebp
mov byte [esp + 0x1f0], 0x1d
je 0x58187e
push str.rows
lea ecx, [esp + 0x3c]
call fcn.00438a30
or ebx, 0x80
push str.cols
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x1f4], 0x1e
mov dword [esp + 0x18], ebx
call fcn.00438a30
or ebx, 0x100
push str.opacity
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x1f4], 0x1f
mov dword [esp + 0x18], ebx
call fcn.00438a30
push 0x5ff2b0
lea edx, [esp + 0x1b0]
or ebx, 0x200
push edx
mov ecx, esi
mov dword [esp + 0x1f8], 0x20
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x5817a1
push str.opacity
lea ecx, [esp + 0xf4]
call fcn.00438a30
lea eax, [esp + 0xf0]
or ebx, 0x400
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x21
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x5817a3
fld1
push str.image
fstp qword [esp + 0xd8]
lea ecx, [esp + 0xac]
call fcn.00438a30
or ebx, 0x800
push 0x5f084c
lea ecx, [esp + 0x90]
mov dword [esp + 0x1f4], 0x22
mov dword [esp + 0x18], ebx
call fcn.00438a30
or ebx, 0x1000
push 0x5f0848
lea ecx, [esp + 0x74]
mov dword [esp + 0x1f4], 0x23
mov dword [esp + 0x18], ebx
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
or ebx, 0x2000
mov ecx, esi
mov dword [esp + 0x1f4], 0x24
mov dword [esp + 0x18], ebx
call fcn.00560da0
push eax
lea edx, [esp + 0x1cc]
push edx
mov ecx, esi
call fcn.00560da0
fld qword [esp + 0xd8]
push eax
sub esp, 8
lea eax, [esp + 0xb8]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.00565880
push eax
lea ecx, [esp + 0xa0]
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x88]
push edx
mov ecx, esi
call fcn.00560da0
push eax
mov ecx, ebp
call fcn.00557ba0
mov ebp, eax
jmp 0x581880
xor ebp, ebp
push 0x60ebac
lea ecx, [esp + 0x20]
mov dword [esp + 0x1f4], 0x2b
call fcn.00438a30
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x2c
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
push ebp
mov ecx, esi
mov dword [eax], ebp
call fcn.00585fc0
lea ecx, [esp + 0x1c]
call fcn.00525310
test ebx, 0x2000
je 0x5818e6
lea ecx, [esp + 0x70]
and ebx, 0xffffdfff
call fcn.00525310
test ebx, 0x1000
je 0x581900
lea ecx, [esp + 0x8c]
and ebx, 0xffffefff
call fcn.00525310
test ebx, 0x800
je 0x58191a
lea ecx, [esp + 0xa8]
and ebx, 0xfffff7ff
call fcn.00525310
test ebx, 0x400
je 0x581934
lea ecx, [esp + 0xf0]
and ebx, 0xfffffbff
call fcn.00525310
test ebx, 0x200
je 0x58194e
lea ecx, [esp + 0x1ac]
and ebx, 0xfffffdff
call fcn.00525310
test ebx, 0x100
je 0x581968
lea ecx, [esp + 0x1c8]
and ebx, 0xfffffeff
call fcn.00525310
test bl, bl
mov dword [esp + 0x1f0], 2
jns 0x583923
lea ecx, [esp + 0x38]
jmp 0x58391e
lea ecx, [esp + 0x190]
push 0x5f0930
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5819e0
push str.text
lea ecx, [esp + 0x3c]
call fcn.00438a30
push 0x5ff2b0
lea edx, [esp + 0x3c]
or ebx, 0x4000
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x2d
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
mov byte [esp + 0x1b], 1
jne 0x5819e5
mov byte [esp + 0x1b], 0
test ebx, 0x4000
mov dword [esp + 0x1f0], ebp
je 0x581a07
and ebx, 0xffffbfff
lea ecx, [esp + 0x38]
mov dword [esp + 0x14], ebx
call fcn.00525310
cmp byte [esp + 0x1b], 0
je 0x5822ee
push str.text
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x2e
call fcn.00560d60
push eax
lea ecx, [esp + 0x1b0]
call fcn.00438aa0
lea ecx, [esp + 0x38]
mov byte [esp + 0x1f0], 0x30
call fcn.00525310
push str.lookup
lea ecx, [esp + 0x20]
call fcn.00438a30
push str.false
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
mov byte [esp + 0x1f8], 0x31
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b], al
mov byte [esp + 0x1f0], 0x30
call fcn.00525310
cmp byte [esp + 0x1b], 0
je 0x581b34
push str._player_
lea ecx, [esp + 0x20]
call fcn.00438a30
mov edx, dword [0x63e6f8]
push edx
mov byte [esp + 0x1f4], 0x32
call fcn.00529920
add esp, 4
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1b4]
push ecx
mov ecx, 0x63e6d0
call fcn.004790c0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
call fcn.00438aa0
lea edx, [esp + 0x94]
push edx
call fcn.005253b0
add esp, 0x28
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x1fc], 0x33
call fcn.0043b440
lea ecx, [esp + 0x70]
call fcn.00525310
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 0x30
call fcn.00525310
push str.width
lea ecx, [esp + 0x20]
call fcn.00438a30
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x34
call fcn.00560da0
mov edi, eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc4], edi
mov byte [esp + 0x1f0], 0x30
call fcn.00525310
push str.text_align
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.center
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
mov byte [esp + 0x1f8], 0x35
call fcn.00560d60
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581baf
xor ebp, ebp
mov dword [esp + 0xc8], ebp
jmp 0x581bfb
push str.text_align
lea ecx, [esp + 0x20]
call fcn.00438a30
push str.right
lea edx, [esp + 0x20]
or ebx, 0x8000
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x36
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d6d0
add esp, 8
neg al
sbb eax, eax
and eax, ebp
add eax, 0xffffffff
mov dword [esp + 0xc8], eax
xor ebp, ebp
test ebx, 0x8000
mov dword [esp + 0x1f0], 0x35
je 0x581c21
and ebx, 0xffff7fff
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], ebx
call fcn.00525310
lea ecx, [esp + 0x70]
mov byte [esp + 0x1f0], 0x30
call fcn.00525310
push str.textbox
lea ecx, [esp + 0x90]
call fcn.00438a30
lea eax, [esp + 0x8c]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x37
call fcn.00560d60
push eax
lea ecx, [esp + 0x1cc]
call fcn.00438aa0
lea ecx, [esp + 0x8c]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
lea ecx, [esp + 0x1c8]
push 0x5ff2b0
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581d13
push ebp
lea ecx, [esp + 0x12c]
call fcn.004257e0
mov edx, dword [0x63e5b8]
push edx
lea ecx, [esp + 0x12c]
mov byte [esp + 0x1f4], 0x3a
call fcn.00425a40
push ebp
push 0xffffffffffffffff
push ebp
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [esp + 0x1c0]
push eax
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x144]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], ebp
call fcn.00427580
lea ecx, [esp + 0x128]
mov dword [esp + 0xcc], eax
mov byte [esp + 0x1f0], 0x39
call fcn.004258b0
jmp 0x581d77
lea edx, [esp + 0x1c8]
push edx
lea eax, [esp + 0x20]
push str.textbox_
push eax
call fcn.00441e70
push str._middle
push eax
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x208], 0x3b
call fcn.00441f20
push eax
mov byte [esp + 0x20c], 0x3c
call fcn.00520790
mov edx, dword [eax + 0x28]
add esp, 0x1c
lea ecx, [esp + 0x38]
mov dword [esp + 0xcc], edx
call fcn.00525310
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
push 0xec
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x60], eax
cmp eax, ebp
mov byte [esp + 0x1f0], 0x3d
je 0x581dac
mov ecx, dword [0x6405cc]
mov edx, dword [ecx + 0x36c]
push edx
mov ecx, eax
call fcn.0040b6a0
mov ebp, eax
jmp 0x581dae
xor ebp, ebp
mov eax, dword [ebp]
mov edx, dword [eax + 0x80]
push 1
push 1
mov ecx, ebp
mov byte [esp + 0x1f8], 0x39
call edx
mov ecx, dword [esp + 0xcc]
mov eax, dword [ebp]
mov edx, dword [esp + 0xc4]
mov eax, dword [eax + 0x78]
push ecx
push edx
mov ecx, ebp
call eax
mov ecx, ebp
call fcn.004280a0
mov ecx, dword [0x63e5b8]
mov edi, eax
push ecx
mov ecx, edi
call fcn.00425a40
push str.blue
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.green
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x3e
call fcn.00438a30
push 0x5f12b8
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x3f
call fcn.00438a30
lea edx, [esp + 0x70]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x40
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea ecx, [esp + 0x6c]
call fcn.00404980
push eax
mov ecx, edi
call fcn.00425a50
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
push str.box_align
lea ecx, [esp + 0xac]
call fcn.00438a30
push str.center
lea edx, [esp + 0xac]
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x41
call fcn.00560d60
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581efd
mov dword [esp + 0xd4], 0
jmp 0x581f48
push str.box_align
lea ecx, [esp + 0x3c]
call fcn.00438a30
push str.right
lea eax, [esp + 0x3c]
or ebx, 0x10000
push eax
mov ecx, esi
mov byte [esp + 0x1f8], 0x42
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d6d0
add esp, 8
neg al
sbb eax, eax
and eax, 2
add eax, 0xffffffff
mov dword [esp + 0xd4], eax
test ebx, 0x10000
mov dword [esp + 0x1f0], 0x41
je 0x581f6e
and ebx, 0xfffeffff
lea ecx, [esp + 0x38]
mov dword [esp + 0x14], ebx
call fcn.00525310
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
lea ecx, [esp + 0x1c8]
push 0x5ff2b0
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x581fa8
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x60], edx
jmp 0x581fb3
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x60], eax
push 0x5f0848
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x43
call fcn.00560da0
mov ecx, eax
mov eax, dword [esp + 0x60]
add eax, 1
imul eax, dword [esp + 0xc4]
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
lea edx, [esp + 0x1c8]
push 0x5ff2b0
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582071
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xcc]
xor eax, eax
push eax
push 0xffffffffffffffff
push eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xd4]
push eax
mov dword [esp + 0xec], ecx
push 0xffffffffffffffff
lea ecx, [esp + 0x1c0]
mov dword [esp + 0xf4], edx
push ecx
lea edx, [esp + 0xec]
push edx
mov ecx, edi
call fcn.00427580
jmp 0x582110
push str.right_type
lea ecx, [esp + 0x20]
call fcn.00438a30
push str.left_type
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x44
call fcn.00438a30
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x45
call fcn.00560d60
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.00560d60
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc8]
push eax
push edx
lea eax, [esp + 0x1b8]
push eax
mov eax, dword [esp + 0xe4]
push eax
add eax, 1
imul eax, ecx
push ecx
cdq
sub eax, edx
push 0
sar eax, 1
push eax
lea ecx, [esp + 0x1e8]
push ecx
push edi
call fcn.0052ecb0
add esp, 0x28
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 0x39
call fcn.00525310
push 0x280
call fcn.005b2b20
mov edi, eax
add esp, 4
mov dword [esp + 0xd4], edi
test edi, edi
mov byte [esp + 0x1f0], 0x46
je 0x582206
push str.opacity
lea ecx, [esp + 0xac]
call fcn.00438a30
push 0x5ff2b0
lea edx, [esp + 0xac]
or ebx, 0x20000
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x47
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x5821ab
push str.opacity
lea ecx, [esp + 0x74]
call fcn.00438a30
lea eax, [esp + 0x70]
or ebx, 0x40000
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x48
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x5821ad
fld1
push 0x5f084c
fstp qword [esp + 0xd0]
lea ecx, [esp + 0x20]
call fcn.00438a30
fld qword [esp + 0xcc]
push 0
push 0
sub esp, 8
fstp qword [esp]
push ebp
lea ecx, [esp + 0x30]
push ecx
or ebx, 0x80000
mov ecx, esi
mov dword [esp + 0x208], 0x49
mov dword [esp + 0x2c], ebx
call fcn.00560da0
mov edx, dword [esp + 0x74]
push eax
push edx
mov ecx, edi
call fcn.00557ba0
mov edi, eax
jmp 0x582208
xor edi, edi
push 0x60ebac
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f4], 0x4c
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x4d
lea ebp, [esi + 0x2d0]
call fcn.00560d60
push eax
mov ecx, ebp
call fcn.0053e540
push edi
mov ecx, esi
mov dword [eax], edi
call fcn.00585fc0
lea ecx, [esp + 0x38]
call fcn.00525310
test ebx, 0x80000
je 0x582270
lea ecx, [esp + 0x1c]
and ebx, 0xfff7ffff
call fcn.00525310
test ebx, 0x40000
je 0x582287
lea ecx, [esp + 0x70]
and ebx, 0xfffbffff
call fcn.00525310
test ebx, 0x20000
mov dword [esp + 0x1f0], 0x39
je 0x5822a6
lea ecx, [esp + 0xa8]
call fcn.00525310
push 0x60ebac
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x4e
call fcn.00560d60
push eax
mov ecx, ebp
call fcn.0053e540
mov eax, dword [eax]
lea ecx, [esp + 0x38]
mov byte [eax + 0x212], 1
call fcn.00525310
lea ecx, [esp + 0x1c8]
jmp 0x58390a
lea edx, [esp + 0x190]
push str.add_rect
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5826bd
push 0xec
call fcn.005b2b20
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
mov byte [esp + 0x1f0], 0x4f
je 0x582340
mov ecx, dword [0x6405cc]
mov edx, dword [ecx + 0x36c]
push edx
mov ecx, eax
call fcn.0040b6a0
mov edi, eax
jmp 0x582342
xor edi, edi
mov eax, dword [edi]
mov edx, dword [eax + 0x80]
push 1
push 1
mov ecx, edi
mov byte [esp + 0x1f8], 2
call edx
push str.height
lea ecx, [esp + 0x20]
call fcn.00438a30
push str.width
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x50
call fcn.00438a30
mov ebp, dword [edi]
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x51
add ebp, 0x78
call fcn.00560da0
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.00560da0
mov edx, dword [ebp]
push eax
mov ecx, edi
call edx
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f0], 2
call fcn.00525310
mov ecx, edi
call fcn.004280a0
push str.blue
lea ecx, [esp + 0x74]
mov ebp, eax
call fcn.00438a30
push str.green
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x52
call fcn.00438a30
push 0x5f12b8
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x53
call fcn.00438a30
lea eax, [esp + 0x70]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x54
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea edx, [esp + 0x40]
push edx
mov ecx, esi
call fcn.0056de50
fmul qword [0x613e28]
call fcn.005b3030
push eax
lea ecx, [esp + 0x6c]
call fcn.00404980
push eax
mov ecx, ebp
call fcn.00425a50
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
mov byte [esp + 0x1f0], 2
call fcn.00525310
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
push eax
push ecx
push 0
push 0
mov ecx, ebp
call fcn.00425af0
push 0x280
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0x60], ebp
test ebp, ebp
mov byte [esp + 0x1f0], 0x55
je 0x5825c7
push str.opacity
lea ecx, [esp + 0xac]
call fcn.00438a30
push 0x5ff2b0
lea edx, [esp + 0xac]
or ebx, 0x100000
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x56
mov dword [esp + 0x1c], ebx
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x58253e
push str.opacity
lea ecx, [esp + 0x90]
call fcn.00438a30
lea eax, [esp + 0x8c]
or ebx, 0x200000
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x57
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x582540
fld1
push 0x5f084c
fstp qword [esp + 0xd8]
lea ecx, [esp + 0x74]
call fcn.00438a30
or ebx, 0x400000
push 0x5f0848
lea ecx, [esp + 0x20]
mov dword [esp + 0x1f4], 0x58
mov dword [esp + 0x18], ebx
call fcn.00438a30
fld qword [esp + 0xd4]
push 0
push 0
sub esp, 8
fstp qword [esp]
push edi
lea ecx, [esp + 0x84]
push ecx
or ebx, 0x800000
mov ecx, esi
mov dword [esp + 0x208], 0x59
mov dword [esp + 0x2c], ebx
call fcn.00560da0
push eax
lea edx, [esp + 0x34]
push edx
mov ecx, esi
call fcn.00560da0
push eax
mov ecx, ebp
call fcn.00557ba0
mov edi, eax
jmp 0x5825c9
xor edi, edi
push 0x60ebac
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f4], 0x5d
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x5e
lea ebp, [esi + 0x2d0]
call fcn.00560d60
push eax
mov ecx, ebp
call fcn.0053e540
push edi
mov ecx, esi
mov dword [eax], edi
call fcn.00585fc0
lea ecx, [esp + 0x38]
call fcn.00525310
test ebx, 0x800000
je 0x582631
lea ecx, [esp + 0x1c]
and ebx, 0xff7fffff
call fcn.00525310
test ebx, 0x400000
je 0x582648
lea ecx, [esp + 0x70]
and ebx, 0xffbfffff
call fcn.00525310
test ebx, 0x200000
je 0x582662
lea ecx, [esp + 0x8c]
and ebx, 0xffdfffff
call fcn.00525310
test ebx, 0x100000
mov dword [esp + 0x1f0], 2
je 0x582681
lea ecx, [esp + 0xa8]
call fcn.00525310
push 0x60ebac
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x5f
call fcn.00560d60
push eax
mov ecx, ebp
call fcn.0053e540
mov eax, dword [eax]
mov byte [eax + 0x212], 1
lea ecx, [esp + 0x38]
jmp 0x583916
lea edx, [esp + 0x190]
push str.move
push edx
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x583750
lea eax, [esp + 0x190]
push str.remove
push eax
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x583750
lea ecx, [esp + 0x190]
push str.rotate
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582827
push str.speed
lea ecx, [esp + 0x90]
call fcn.00438a30
push 0x5ff2b0
lea edx, [esp + 0x90]
push edx
mov ecx, esi
mov byte [esp + 0x1f8], 0x67
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x58277c
push str.speed
lea ecx, [esp + 0x74]
call fcn.00438a30
lea eax, [esp + 0x70]
or ebx, 0x2000000
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x68
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x582782
fld qword [0x613ed8]
push str.angle
fstp qword [esp + 0x64]
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f4], 0x69
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x6a
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
fld qword [esp + 0x60]
sub esp, 8
lea edx, [esp + 0x24]
fstp qword [esp]
push edx
mov ecx, esi
mov edi, eax
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00556f60
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
mov dword [esp + 0x1f0], 0x67
test ebx, 0x2000000
je 0x58281b
lea ecx, [esp + 0x70]
call fcn.00525310
lea ecx, [esp + 0x8c]
jmp 0x583916
lea eax, [esp + 0x190]
push str.rotate_from
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5829af
push 0x5f084c
lea ecx, [esp + 0xac]
call fcn.00438a30
push 0x5ff2b0
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
mov byte [esp + 0x1f8], 0x6b
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x5828b4
push 0x5f084c
lea ecx, [esp + 0x90]
call fcn.00438a30
lea edx, [esp + 0x8c]
or ebx, 0x4000000
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x6c
mov dword [esp + 0x18], ebx
call fcn.00560da0
mov ebp, eax
jmp 0x5828b7
or ebp, 0xffffffff
push 0x5f0848
lea ecx, [esp + 0x74]
call fcn.00438a30
push 0x5ff2b0
lea eax, [esp + 0x74]
push eax
mov ecx, esi
mov dword [esp + 0x1f8], 0x6d
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x58291e
push 0x5f0848
lea ecx, [esp + 0x20]
call fcn.00438a30
lea ecx, [esp + 0x1c]
or ebx, 0x8000000
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x6e
mov dword [esp + 0x18], ebx
call fcn.00560da0
mov edi, eax
jmp 0x582921
or edi, 0xffffffff
push 0x60ebac
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov dword [esp + 0x1f4], 0x6f
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
mov ecx, dword [eax]
push ebp
push edi
call fcn.005578f0
lea ecx, [esp + 0x38]
call fcn.00525310
test ebx, 0x8000000
je 0x58297b
lea ecx, [esp + 0x1c]
and ebx, 0xf7ffffff
call fcn.00525310
lea ecx, [esp + 0x70]
call fcn.00525310
mov dword [esp + 0x1f0], 0x6b
test ebx, 0x4000000
je 0x5829a3
lea ecx, [esp + 0x8c]
call fcn.00525310
lea ecx, [esp + 0xa8]
jmp 0x583916
lea eax, [esp + 0x190]
push str.flip
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582a42
push 0x5f1248
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x70
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x71
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
push str.vertical
lea edx, [esp + 0x20]
push edx
mov ecx, esi
mov edi, eax
call fcn.00560d60
push eax
call fcn.0045d6d0
mov ecx, dword [edi]
add esp, 8
push eax
call fcn.00556ff0
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
jmp 0x583916
lea eax, [esp + 0x190]
push str.fade
push eax
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x583634
lea ecx, [esp + 0x190]
push str.fade_out
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
jne 0x583634
lea edx, [esp + 0x190]
push str.circle
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582be2
push str.speed
lea ecx, [esp + 0xf4]
call fcn.00438a30
push str.angle
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 0x76
call fcn.00438a30
push str.radius
lea ecx, [esp + 0x90]
mov byte [esp + 0x1f4], 0x77
call fcn.00438a30
push 0x5f084c
lea ecx, [esp + 0x74]
mov byte [esp + 0x1f4], 0x78
call fcn.00438a30
push 0x5f0848
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x79
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x7a
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x7b
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
lea ecx, [esp + 0xf0]
push ecx
mov ecx, esi
mov edi, eax
call fcn.0056de50
sub esp, 8
lea edx, [esp + 0xb0]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.0056de50
sub esp, 8
lea eax, [esp + 0x9c]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.0056de50
sub esp, 8
lea ecx, [esp + 0x88]
fstp qword [esp]
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x38]
push edx
mov ecx, esi
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00557990
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
call fcn.00525310
lea ecx, [esp + 0x8c]
call fcn.00525310
lea ecx, [esp + 0xa8]
call fcn.00525310
lea ecx, [esp + 0xf0]
jmp 0x583916
lea eax, [esp + 0x190]
push str.flash
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582d26
push str.lead_time
lea ecx, [esp + 0xac]
call fcn.00438a30
push 0x5ff2b0
lea ecx, [esp + 0xac]
push ecx
mov ecx, esi
mov byte [esp + 0x1f8], 0x7c
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x582c6f
push str.lead_time
lea ecx, [esp + 0x90]
call fcn.00438a30
lea edx, [esp + 0x8c]
or ebx, 0x20000000
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x7d
mov dword [esp + 0x18], ebx
call fcn.00560da0
mov ebp, eax
jmp 0x582c74
mov ebp, 0x14
push str.cycles
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.interval
lea ecx, [esp + 0x20]
mov dword [esp + 0x1f4], 0x7e
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x7f
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x80
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
push ebp
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00560da0
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, esi
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00557100
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
call fcn.00525310
mov dword [esp + 0x1f0], 0x7c
test ebx, 0x20000000
jmp 0x582995
lea eax, [esp + 0x190]
push str.cycle
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582dab
push str.rate
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x81
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x82
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
mov edi, eax
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00557130
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
jmp 0x583916
lea eax, [esp + 0x190]
push str.set_frame
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582e30
push str.frame
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x83
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x84
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
mov edi, eax
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00557150
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
jmp 0x583916
lea eax, [esp + 0x190]
push 0x5f11c8
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582ef1
push str.speed
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.height
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x85
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x86
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x87
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
push 1
lea edx, [esp + 0x74]
push edx
mov ecx, esi
mov edi, eax
call fcn.0056de50
sub esp, 8
lea eax, [esp + 0x28]
fstp qword [esp]
push eax
mov ecx, esi
call fcn.0056de50
mov ecx, dword [edi]
sub esp, 8
fstp qword [esp]
call fcn.005571c0
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
jmp 0x583916
lea ecx, [esp + 0x190]
push str.scale
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x582f9a
push str.factor
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.factor
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x88
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x89
call fcn.00438a30
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x8a
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
mov edi, eax
lea eax, [esp + 0x70]
push eax
mov ecx, esi
call fcn.0056de50
sub esp, 8
lea ecx, [esp + 0x24]
fstp qword [esp]
push ecx
mov ecx, esi
call fcn.0056de50
mov ecx, dword [edi]
sub esp, 8
fstp qword [esp]
call fcn.005570d0
jmp 0x582ed6
lea edx, [esp + 0x190]
push str.expand
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x583043
push str.speed
lea ecx, [esp + 0x74]
call fcn.00438a30
push str.scale
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x8b
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x8c
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x8d
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
lea ecx, [esp + 0x70]
push ecx
mov ecx, esi
mov edi, eax
call fcn.0056de50
sub esp, 8
lea edx, [esp + 0x24]
fstp qword [esp]
push edx
mov ecx, esi
call fcn.0056de50
mov ecx, dword [edi]
sub esp, 8
fstp qword [esp]
call fcn.00558730
jmp 0x582ed6
lea eax, [esp + 0x190]
push str.clip
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x58316b
push str.position
lea ecx, [esp + 0xf4]
call fcn.00438a30
push 0x5f1198
lea ecx, [esp + 0xac]
mov byte [esp + 0x1f4], 0x8e
call fcn.00438a30
push 0x5f1194
lea ecx, [esp + 0x90]
mov byte [esp + 0x1f4], 0x8f
call fcn.00438a30
push 0x5f1190
lea ecx, [esp + 0x74]
mov byte [esp + 0x1f4], 0x90
call fcn.00438a30
push 0x5f118c
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x91
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x92
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x93
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
push str.absolute
lea edx, [esp + 0xf4]
push edx
mov ecx, esi
mov edi, eax
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
mov ecx, esi
push eax
lea eax, [esp + 0xac]
push eax
call fcn.00560da0
push eax
lea ecx, [esp + 0x94]
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x7c]
push edx
mov ecx, esi
call fcn.00560da0
push eax
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.005577c0
jmp 0x582ba3
lea ecx, [esp + 0x190]
push str.bring_to_front
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5831c9
push 0x60ebac
lea ecx, [esp + 0x3c]
call fcn.00438a30
mov edi, dword [esi]
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x94
add edi, 0x2c
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
mov eax, dword [eax]
mov edx, dword [edi]
push eax
mov ecx, esi
call edx
lea ecx, [esp + 0x38]
jmp 0x583916
lea eax, [esp + 0x190]
push str.put_behind
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x583266
push 0x5f1160
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x5f115c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x95
call fcn.00438a30
mov edi, dword [esi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x96
add edi, 0x34
lea ebx, [esi + 0x2d0]
call fcn.00560d60
push eax
mov ecx, ebx
call fcn.0053e540
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov ebp, eax
call fcn.00560d60
push eax
mov ecx, ebx
call fcn.0053e540
mov ecx, dword [ebp]
mov edx, dword [eax]
mov eax, dword [edi]
push ecx
push edx
mov ecx, esi
call eax
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
jmp 0x583916
lea ecx, [esp + 0x190]
push str.start_loop
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5832d2
push str.count
lea ecx, [esp + 0x3c]
call fcn.00438a30
mov edi, dword [esi + 0x218]
mov ebx, dword [esi + 0x21c]
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x97
call fcn.00560da0
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esi + 0x2dc]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], ebx
call fcn.0057fc80
lea ecx, [esp + 0x38]
jmp 0x583916
lea ecx, [esp + 0x190]
push str.end_loop
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x583327
lea edi, [esi + 0x2dc]
mov ecx, edi
call fcn.005510e0
add eax, 8
add dword [eax], 0xffffffff
mov ecx, edi
je 0x58331d
call fcn.005510e0
mov edx, dword [eax]
mov dword [esi + 0x218], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x21c], eax
jmp 0x583923
call fcn.00576f10
jmp 0x583923
lea ecx, [esp + 0x190]
push str.play
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x583458
push 0x128
call fcn.005b2b20
mov ebp, eax
add esp, 4
mov dword [esp + 0xd4], ebp
test ebp, ebp
mov byte [esp + 0x1f0], 0x98
je 0x583400
push 0x5f084c
lea ecx, [esp + 0x74]
call fcn.00438a30
or ebx, 0x40000000
push 0x5f0848
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x99
mov dword [esp + 0x18], ebx
call fcn.00438a30
or ebx, 0x80000000
push str.animation
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f4], 0x9a
mov dword [esp + 0x18], ebx
call fcn.00438a30
lea edx, [esp + 0x70]
push edx
mov ecx, esi
mov dword [esp + 0x1f4], 0x9b
mov dword [esp + 0x64], 1
call fcn.00560da0
push eax
lea eax, [esp + 0x20]
push eax
mov ecx, esi
call fcn.00560da0
push eax
push 0
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.00560d60
push eax
mov ecx, ebp
call fcn.00551a60
jmp 0x583402
xor eax, eax
push eax
mov ecx, esi
mov dword [esp + 0x1f4], 0x9e
call fcn.00585fc0
test byte [esp + 0x60], 1
je 0x583425
lea ecx, [esp + 0x38]
call fcn.00525310
test ebx, ebx
jns 0x583438
lea ecx, [esp + 0x1c]
and ebx, 0x7fffffff
call fcn.00525310
test ebx, 0x40000000
mov dword [esp + 0x1f0], 2
je 0x583923
lea ecx, [esp + 0x70]
jmp 0x58391e
lea edx, [esp + 0x190]
push str.load
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x58352e
push str.animation
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x9f
call fcn.00560d60
push eax
mov ecx, 0x63e650
call fcn.00540450
lea ecx, [esp + 0x38]
mov ebx, eax
mov byte [esp + 0x1f0], 2
call fcn.00525310
mov ecx, dword [esi + 0x21c]
mov edx, dword [esi + 0x218]
push ecx
mov ecx, dword [esi + 0x214]
push edx
lea eax, [esp + 0x68]
push eax
add ecx, 0x38
call fcn.0053f920
mov ecx, dword [ebx + 0x3c]
push ecx
lea eax, [ebx + 0x38]
mov edx, ecx
mov edx, dword [edx]
mov ecx, dword [esp + 0x64]
push eax
push edx
push eax
mov eax, dword [esp + 0x74]
push eax
push ecx
mov ecx, dword [esi + 0x214]
add ecx, 0x38
call fcn.00551a30
mov ebx, dword [ebx + 0x40]
test ebx, ebx
jle 0x583513
lea ecx, [esp + 0x60]
call fcn.0058a7d0
sub ebx, 1
test ebx, ebx
jg 0x583503
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov dword [esi + 0x218], edx
mov dword [esi + 0x21c], eax
push 0
jmp 0x583925
lea ecx, [esp + 0x190]
push str.sound
push ecx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x58357e
push str.name
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0xa0
call fcn.00560d60
mov ecx, dword [0x63e5a0]
push eax
call fcn.005224b0
lea ecx, [esp + 0x38]
jmp 0x583916
lea eax, [esp + 0x190]
push str.start_soundloop
push eax
call fcn.0045d6d0
add esp, 8
test al, al
je 0x5835d7
push str.name
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0xa1
call fcn.00560d60
push eax
call fcn.005207b0
mov ecx, dword [0x63e5a0]
add esp, 4
push eax
call fcn.005214f0
lea ecx, [esp + 0x38]
jmp 0x583916
lea edx, [esp + 0x190]
push str.stop_soundloop
push edx
call fcn.0045d6d0
add esp, 8
test al, al
je 0x583923
push str.name
lea ecx, [esp + 0x3c]
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0xa2
call fcn.00560d60
push eax
call fcn.005207b0
mov ecx, dword [0x63e5a0]
add esp, 4
push eax
call fcn.00521500
lea ecx, [esp + 0x38]
jmp 0x583916
push str.speed
lea ecx, [esp + 0x90]
call fcn.00438a30
push 0x5ff2b0
lea ecx, [esp + 0x90]
push ecx
mov ecx, esi
mov byte [esp + 0x1f8], 0x72
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x58369c
push str.speed
lea ecx, [esp + 0x74]
call fcn.00438a30
lea edx, [esp + 0x70]
or ebx, 0x10000000
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x73
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x5836a2
fld qword [0x613ed8]
push str.opacity
fstp qword [esp + 0x64]
lea ecx, [esp + 0x20]
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1f4], 0x74
call fcn.00438a30
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x1f4], 0x75
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
lea ecx, [esp + 0x190]
push str.fade_out
push ecx
mov edi, eax
call fcn.0045d6d0
fld qword [esp + 0x68]
add esp, 8
lea edx, [esp + 0x1c]
mov ecx, esi
push eax
sub esp, 8
fstp qword [esp]
push edx
call fcn.0056de50
mov ecx, dword [edi]
sub esp, 8
fstp qword [esp]
call fcn.00557040
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
mov dword [esp + 0x1f0], 0x72
test ebx, 0x10000000
jmp 0x582810
push str.speed
lea ecx, [esp + 0x1b0]
call fcn.00438a30
push 0x5ff2b0
lea eax, [esp + 0x1b0]
push eax
mov ecx, esi
mov byte [esp + 0x1f8], 0x60
call fcn.00560d60
push eax
call fcn.0045d1e0
add esp, 8
test al, al
je 0x5837be
push str.speed
lea ecx, [esp + 0xf4]
call fcn.00438a30
lea ecx, [esp + 0xf0]
or ebx, 0x1000000
push ecx
mov ecx, esi
mov byte [esp + 0x1f4], 0x61
mov dword [esp + 0x18], ebx
call fcn.0056de50
jmp 0x5837c4
fld qword [0x613ed8]
push 0x5f1108
fstp qword [esp + 0x64]
lea ecx, [esp + 0xac]
call fcn.00438a30
push 0x5f1104
lea ecx, [esp + 0x90]
mov dword [esp + 0x1f4], 0x62
call fcn.00438a30
push 0x5f084c
lea ecx, [esp + 0x74]
mov byte [esp + 0x1f4], 0x63
call fcn.00438a30
push 0x5f0848
lea ecx, [esp + 0x20]
mov byte [esp + 0x1f4], 0x64
call fcn.00438a30
push 0x60ebac
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f4], 0x65
call fcn.00438a30
lea edx, [esp + 0x38]
push edx
mov ecx, esi
mov byte [esp + 0x1f4], 0x66
call fcn.00560d60
push eax
lea ecx, [esi + 0x2d0]
call fcn.0053e540
fld qword [esp + 0x60]
sub esp, 8
fstp qword [esp]
mov edi, eax
lea eax, [esp + 0x198]
push str.remove
push eax
call fcn.0045d6d0
add esp, 8
lea ecx, [esp + 0xb0]
push eax
push ecx
mov ecx, esi
call fcn.00560da0
push eax
lea edx, [esp + 0x9c]
push edx
mov ecx, esi
call fcn.00560da0
push eax
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.00560da0
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.00560da0
mov ecx, dword [edi]
push eax
call fcn.00557670
lea ecx, [esp + 0x38]
call fcn.00525310
lea ecx, [esp + 0x1c]
call fcn.00525310
lea ecx, [esp + 0x70]
call fcn.00525310
lea ecx, [esp + 0x8c]
call fcn.00525310
lea ecx, [esp + 0xa8]
call fcn.00525310
test ebx, 0x1000000
mov dword [esp + 0x1f0], 0x60
je 0x58390f
lea ecx, [esp + 0xf0]
call fcn.00525310
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x1f0], 2
call fcn.00525310
push 1
mov ecx, esi
call fcn.00580da0
lea ecx, [esp + 0x190]
mov bl, al
call fcn.00525310
mov al, bl
mov ecx, dword [esp + 0x1e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.005b2f9b
add esp, 0x1e0
ret 4