Function at 0x553110
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encrypt data using speck
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x5e0
mov edi, edx
mov esi, ecx
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x45c], eax
mov eax, dword [ebp + 0xc]
mov ecx, 0x6fc2d19
cmp eax, 0x15
je 0x55397f
cmp eax, 0x16
jne 0x554222
xor ecx, 0x6fc2d0b
mov al, cl
add al, 0x22
mov byte [esp + 0x3b8], al
mov al, cl
mov edi, ecx
add al, 0x32
mov byte [esp + 0x19c], al
mov dword [esp + 0x4e4], 0
mov dword [esp + 0x4e0], 0
mov dword [esp + 0x4e8], 0
mov dword [esp + 0x4dc], 0
mov dword [esp + 0x4d8], 0
mov dword [esp + 0x4d4], 0
mov dword [esp + 0x4d0], 0
mov dword [esp + 0x4cc], 0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x4a0], xmm0
mov dword [esp + 0x4b4], 0
mov dword [esp + 0x4b0], 0
mov dword [esp + 0x4b9], 0
mov dword [esp + 0x4b5], 0
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x498], eax
movsd xmm1, qword [0x7dc5e0]
movsd qword [esp + 0x490], xmm1
movsd xmm1, qword [0x7dc5d8]
movsd qword [esp + 0x488], xmm1
movapd xmmword [esp + 0x470], xmm0
mov dword [esp + 0x46c], 0
lea eax, [esp + 0x4e0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x4e0], 0x2a
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x64], 0xc
cmp dword [ebp + 0x1c], 0
je 0x554379
xor eax, eax
test al, al
jne 0x554379
mov byte [esp + 0xb0], al
mov byte [esp + 0x14c], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x360], al
mov byte [esp + 0x330], al
mov byte [esp + 0x308], al
mov byte [esp + 0x3b4], al
mov byte [esp + 0x290], al
mov byte [esp + 0x350], al
mov byte [esp + 0x35f], al
mov byte [esp + 0x388], al
mov byte [esp + 0x368], al
mov byte [esp + 0x378], al
mov byte [esp + 0x39c], al
mov dword [esp + 0xe0], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x414], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x3e4], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x340], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x42c], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x428], eax
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x3c0], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x430], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x41c], eax
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x344], eax
mov byte [esp + 0x31c], al
mov byte [esp + 0x22b], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x28c], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x2e0], al
mov byte [esp + 0x2f3], al
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2e8], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x313], al
mov byte [esp + 0x2ac], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x2c0], al
mov byte [esp + 0x2d0], al
mov byte [esp + 0x384], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x2df], al
mov byte [esp + 0x27c], al
mov byte [esp + 0x26b], al
mov byte [esp + 0x2ec], al
mov byte [esp + 0x2c4], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d6], al
mov byte [esp + 0x312], al
mov byte [esp + 0x270], al
mov byte [esp + 0x2bc], al
mov byte [esp + 0x283], al
mov byte [esp + 0x3f8], al
mov byte [esp + 0x194], al
mov byte [esp + 0x1ac], al
mov byte [esp + 0xcb], al
mov byte [esp + 0x303], al
mov byte [esp + 0x25c], al
mov byte [esp + 0x364], al
mov byte [esp + 0x9c], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0x354], al
mov byte [esp + 0x370], al
mov byte [esp + 0x358], al
mov byte [esp + 0x348], al
mov byte [esp + 0x376], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x3e0], al
mov byte [esp + 0x38c], al
mov byte [esp + 0x377], al
mov byte [esp + 0x3bc], al
mov byte [esp + 0x1ec], al
mov byte [esp + 0x2d8], al
mov byte [esp + 0x294], al
mov byte [esp + 0x264], al
mov byte [esp + 0x2cc], al
mov byte [esp + 0x21c], al
mov dword [esp + 0x33c], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x434], eax
mov dword [esp + 0x3d8], ebx
xor ecx, ecx
mov edx, edi
cmp edx, 0xa
mov esi, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0x41c]
jne 0x5542dd
mov eax, edx
or eax, 2
xor edx, 2
add edx, eax
je 0x5542dd
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ebx, eax
jne 0x555133
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov ebx, dword [esp + 0x428]
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov esi, dword [esp + 0x320]
jmp 0x555200
xor ecx, 0x6fc2d18
mov al, cl
add al, 0xd
mov byte [esp + 0x283], al
mov bl, cl
mov edi, ecx
add bl, 0x2f
mov al, bl
xor al, 0x20
mov byte [esp + 0x13c], al
mov dword [esp + 0x5a4], 0
mov dword [esp + 0x5a0], 0
mov dword [esp + 0x5a8], 0
mov dword [esp + 0x59c], 0
mov dword [esp + 0x598], 0
mov dword [esp + 0x594], 0
mov dword [esp + 0x590], 0
mov dword [esp + 0x58c], 0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x560], xmm0
mov dword [esp + 0x574], 0
mov dword [esp + 0x570], 0
mov dword [esp + 0x579], 0
mov dword [esp + 0x575], 0
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x558], eax
movsd xmm1, qword [0x7dc5e0]
movsd qword [esp + 0x550], xmm1
movsd xmm1, qword [0x7dc5d8]
movsd qword [esp + 0x548], xmm1
movapd xmmword [esp + 0x530], xmm0
mov dword [esp + 0x52c], 0
lea eax, [esp + 0x5a0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x5a0], 0x2a
mov eax, dword [ebp + 0x20]
mov dword [eax + 0x64], 0xc
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x554a44
xor eax, eax
test al, al
jne 0x554a44
mov byte [esp + 0xc0], al
mov byte [esp + 0x35f], al
mov byte [esp + 0x2f4], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x303], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x376], al
mov byte [esp + 0x224], al
mov byte [esp + 0x130], al
mov byte [esp + 0x248], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x1f8], al
mov byte [esp + 0x254], al
mov byte [esp + 0x2d6], al
mov dword [esp + 0x118], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x430], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x438], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x370], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x368], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x348], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0x3e0], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x418], eax
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], eax
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x410], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x3e4], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x408], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0xf4], eax
mov byte [esp + 0x184], al
mov byte [esp + 0xe0], al
mov byte [esp + 0xf8], al
mov byte [esp + 0x2df], al
mov byte [esp + 0x210], al
mov byte [esp + 0x204], al
mov byte [esp + 0x22b], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x2f3], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0x313], al
mov byte [esp + 0x190], al
mov byte [esp + 0x168], al
mov byte [esp + 0xf0], al
mov byte [esp + 0x1c8], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x218], al
mov byte [esp + 0x174], al
mov byte [esp + 0xa8], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x1a4], al
mov byte [esp + 0xcb], al
mov byte [esp + 0xb4], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x128], al
mov byte [esp + 0x15c], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x154], al
mov byte [esp + 0x1a0], al
mov byte [esp + 0x7f], al
mov byte [esp + 0x1a8], al
mov byte [esp + 0x73], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x1e0], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x148], al
mov byte [esp + 0x94], al
mov byte [esp + 0x312], al
mov byte [esp + 0x338], al
mov byte [esp + 0x2e4], al
mov byte [esp + 0x33c], al
mov byte [esp + 0x258], al
mov byte [esp + 0x377], al
mov byte [esp + 0x278], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x158], al
mov byte [esp + 0x3c0], al
mov byte [esp + 0x1e4], al
mov byte [esp + 0x238], al
mov byte [esp + 0x8d], al
mov byte [esp + 0x178], al
mov byte [esp + 0x26b], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x340], al
mov byte [esp + 0xd0], al
mov byte [esp + 0x320], al
mov byte [esp + 0x22c], al
mov byte [esp + 0x72], al
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jne 0x5603cc
mov eax, 0x18
mov cl, byte [esp + 0x13c]
movzx ecx, cl
cmp ecx, 0x10
je 0x5559d2
mov dword [esp + 0x360], esi
mov dword [esp + 0x3b4], ebx
cmp ecx, 0x14
jne 0x555a40
mov byte [esp + 0x13c], 0x14
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
jmp 0x5593b9
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
lea ecx, [ebx + ebx*2]
mov dword [esp + 0x458], ecx
lea ecx, [ecx*8 + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
mov edx, 0x70000003
je 0x556156
xor ecx, ecx
test cl, cl
mov ecx, 0x6fc2d19
jne 0x556156
mov edx, dword [ebp + 0x18]
add cl, 0x11
movzx ecx, cl
cmp ecx, 0x2c
jne 0x555274
mov dword [esi + 4], eax
inc dword [esi + 8]
shl ebx, 3
lea ebx, [ebx + ebx*2]
mov dword [eax + ebx], edi
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
mov dword [eax + ebx + 4], ecx
mov eax, dword [esi + 4]
mov cl, byte [ebp + 8]
mov byte [eax + ebx + 8], cl
mov eax, dword [esi + 4]
mov dword [eax + ebx + 0xc], 0
mov eax, dword [esi + 4]
mov dword [eax + ebx + 0x10], edx
mov eax, dword [esi + 4]
mov dword [eax + ebx + 0x14], 0
mov dword [esp], edx
mov edi, edx
call fcn.00492770
mov dword [esp + 0x45c], eax
mov edx, 0x70000003
test eax, eax
mov ebx, edi
je 0x556156
mov eax, 0xe
jmp 0x5562cc
mov edx, dword [esp + 0x238]
mov ebx, dword [esp + 0x400]
jmp 0x55430a
mov eax, 9
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esi + 0x10]
test ecx, ecx
je 0x5542f0
mov dword [esp + 0x400], ebx
mov dword [esp + 0x1f0], 0x70000003
mov dword [esp + 0x238], edx
mov ecx, dword [esp + 0x3f0]
mov dword [esp + 0x410], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0x408], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ebx, dword [esp + 0x44c]
jmp 0x5697df
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x9c]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x238], 0
cmp eax, ecx
mov byte [esp + 0x360], al
mov byte [esp + 0x308], al
mov byte [esp + 0x3b4], al
mov byte [esp + 0x290], al
mov byte [esp + 0x350], al
mov byte [esp + 0x35f], al
mov byte [esp + 0x368], al
mov byte [esp + 0x378], al
mov byte [esp + 0x39c], al
mov byte [esp + 0x31c], al
mov byte [esp + 0x388], al
mov byte [esp + 0x354], al
mov byte [esp + 0x348], al
mov byte [esp + 0x376], al
mov ecx, 3
mov dword [esp + 0x3c0], 0x700002bb
mov dword [esp + 0xe0], eax
mov dword [esp + 0x414], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x410], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x3e8], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x430], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x340], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x428], eax
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x3e4], eax
mov dword [esp + 0x408], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x41c], eax
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], eax
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x438], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x42c], eax
mov dword [esp + 0x1b4], eax
mov byte [esp + 0x3bc], al
mov byte [esp + 0x25c], al
mov byte [esp + 0x364], al
mov byte [esp + 0x14c], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x3e0], al
mov byte [esp + 0x38c], al
mov byte [esp + 0x377], al
mov byte [esp + 0x9c], al
mov byte [esp + 0x370], al
mov byte [esp + 0x330], al
mov byte [esp + 0xcb], al
mov byte [esp + 0xb0], al
mov byte [esp + 0x358], al
mov byte [esp + 0x1ec], al
mov byte [esp + 0x22b], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x28c], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x2e0], al
mov byte [esp + 0x2f3], al
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2e8], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x2d8], al
mov byte [esp + 0x294], al
mov byte [esp + 0x313], al
mov byte [esp + 0x2ac], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x2c0], al
mov byte [esp + 0x2d0], al
mov byte [esp + 0x384], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x2df], al
mov byte [esp + 0x27c], al
mov byte [esp + 0x26b], al
mov byte [esp + 0x264], al
mov byte [esp + 0x2ec], al
mov byte [esp + 0x2c4], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d6], al
mov byte [esp + 0x312], al
mov byte [esp + 0x2cc], al
mov byte [esp + 0x270], al
mov byte [esp + 0x2bc], al
mov byte [esp + 0x283], al
mov byte [esp + 0x3f8], al
mov byte [esp + 0x194], al
mov byte [esp + 0x21c], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0x1ac], al
mov byte [esp + 0x303], al
mov dword [esp + 0x33c], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], eax
mov dword [esp + 0x434], eax
mov dword [esp + 0x418], eax
jne 0x565db5
jmp 0x56956a
movzx eax, bl
cmp eax, 0x30
je 0x5552fa
cmp eax, 0x60
mov byte [esp + 0x2e4], al
mov byte [esp + 0x33c], al
mov byte [esp + 0xc0], al
mov byte [esp + 0x35f], al
mov byte [esp + 0x258], al
mov byte [esp + 0x2f4], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x303], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x130], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x248], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x1f8], al
mov edi, 0x13
mov eax, 4
mov dword [esp + 0x378], ecx
mov dword [esp + 0x27c], ecx
mov dword [esp + 0x2b4], ecx
mov dword [esp + 0x318], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x290], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x244], ecx
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x3e4], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x3ec], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x370], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x344], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x330], ecx
mov dword [esp + 0x368], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x3dc], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x3d4], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x384], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x458], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x3a0], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x410], ecx
mov dword [esp + 0x324], ecx
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x348], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x304], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3d0], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x3f8], ecx
mov dword [esp + 0x3fc], ecx
mov dword [esp + 0x3e0], ecx
mov dword [esp + 0x414], ecx
mov dword [esp + 0x404], ecx
mov dword [esp + 0x400], ecx
mov dword [esp + 0x3cc], ecx
mov dword [esp + 0x408], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x380], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x388], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], ecx
mov dword [esp + 0x41c], ecx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3f0], ecx
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x3e8], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x418], ecx
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x110], ecx
mov byte [esp + 0x254], cl
mov byte [esp + 0x2d6], cl
mov byte [esp + 0x184], cl
mov byte [esp + 0x204], cl
mov byte [esp + 0x148], cl
mov byte [esp + 0x94], cl
mov byte [esp + 0x26b], cl
mov byte [esp + 0x28b], cl
mov byte [esp + 0x320], cl
mov byte [esp + 0x22c], cl
mov byte [esp + 0x340], cl
mov byte [esp + 0x312], cl
mov byte [esp + 0x338], cl
mov byte [esp + 0x377], cl
mov byte [esp + 0x376], cl
mov byte [esp + 0x278], cl
mov byte [esp + 0x2df], cl
mov byte [esp + 0x210], cl
mov byte [esp + 0x22b], cl
mov byte [esp + 0x32b], cl
mov byte [esp + 0x2f3], cl
mov byte [esp + 0x313], cl
mov byte [esp + 0x3c0], cl
mov byte [esp + 0x224], cl
mov byte [esp + 0x158], cl
mov byte [esp + 0xe0], cl
mov byte [esp + 0xf8], cl
mov byte [esp + 0x1bf], cl
mov byte [esp + 0x1c8], cl
mov byte [esp + 0x1df], cl
mov byte [esp + 0x218], cl
mov byte [esp + 0x174], cl
mov byte [esp + 0xa8], cl
mov byte [esp + 0x29f], cl
mov byte [esp + 0x238], cl
mov byte [esp + 0x8f], cl
mov byte [esp + 0x1a4], cl
mov byte [esp + 0x8d], cl
mov byte [esp + 0xd0], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0xb4], cl
mov byte [esp + 0x5f], cl
mov byte [esp + 0x128], cl
mov byte [esp + 0x72], cl
mov byte [esp + 0x15c], cl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x154], cl
mov byte [esp + 0x1a0], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x1a8], cl
mov byte [esp + 0x73], cl
mov byte [esp + 0x8e], cl
mov byte [esp + 0x1e0], cl
mov byte [esp + 0x2d7], cl
mov byte [esp + 0x178], cl
mov byte [esp + 0x190], cl
mov byte [esp + 0x168], cl
mov byte [esp + 0xf0], cl
mov byte [esp + 0x1e4], cl
je 0x5646db
jmp 0x562116
xor edi, edi
jmp 0x55516d
mov esi, 0x10
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x334]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x344]
mov dword [esp], eax
call fcn.007c51d0
mov eax, edi
not eax
and eax, 1
mov ecx, edi
add ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x555140
mov dword [esp + 0x1f0], 0x70000003
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x43c], edx
mov edx, dword [esp + 0x3f4]
mov dword [esp + 0x408], edx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x410], eax
mov dword [esp + 0x140], ebx
cmp esi, 0x10
jne 0x564fe6
mov eax, 3
sub eax, esi
xor eax, esi
mov esi, dword [esp + 0x320]
mov ebx, dword [esp + 0x418]
je 0x5650e2
mov dword [esp + 0x320], esi
mov eax, dword [esi]
mov ecx, dword [esp + 0x11c]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x344]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x428], ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov ebx, dword [esp + 0x3d8]
jmp 0x565a44
mov dword [esi + 4], eax
mov edx, dword [esi + 8]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov dword [esi + 8], edx
shl ebx, 3
lea ecx, [ebx + ebx*2]
mov dword [eax + ecx], edi
mov eax, dword [esi + 4]
mov edx, dword [ebp + 0x10]
mov dword [eax + ecx + 4], edx
mov eax, dword [esi + 4]
mov dl, byte [ebp + 8]
mov byte [eax + ecx + 8], dl
mov eax, dword [esi + 4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esi + 4]
mov edx, dword [ebp + 0x18]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [esi + 4]
mov dword [eax + ecx + 0x14], 0
mov edi, 5
mov dword [esp], edx
mov ebx, edx
call fcn.00492770
mov dword [esp + 0x45c], eax
test eax, eax
mov edx, 0x70000003
je 0x5561d9
xor eax, eax
test al, al
je 0x556160
jmp 0x5561d9
mov dword [esp + 0x308], 0
mov eax, dword [ebp + 0x20]
cmp dword [eax + 0x9c], 0
jne 0x555abe
mov byte [esp + 0x2f4], al
mov byte [esp + 0x130], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x1f8], al
mov byte [esp + 0x254], al
mov byte [esp + 0x2d6], al
mov byte [esp + 0x184], al
mov byte [esp + 0x2df], al
mov byte [esp + 0x210], al
mov byte [esp + 0x204], al
mov byte [esp + 0x312], al
mov byte [esp + 0x2e4], al
mov byte [esp + 0x33c], al
mov ecx, 5
mov dword [esp + 0x3e8], 0x700002bb
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x43c], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x368], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x348], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x458], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x3e4], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0x3e0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x408], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x418], eax
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], eax
mov dword [esp + 0x42c], eax
mov dword [esp + 0x360], eax
mov dword [esp + 0x410], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x370], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x74], eax
mov byte [esp + 0x258], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x303], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x377], al
mov byte [esp + 0x278], al
mov byte [esp + 0x224], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x248], al
mov byte [esp + 0xe0], al
mov byte [esp + 0xf8], al
mov byte [esp + 0x22b], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x2f3], al
mov byte [esp + 0x313], al
mov byte [esp + 0x3c0], al
mov byte [esp + 0x190], al
mov byte [esp + 0x168], al
mov byte [esp + 0x1c8], al
mov byte [esp + 0x174], al
mov byte [esp + 0xa8], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x238], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x1a4], al
mov byte [esp + 0x8d], al
mov byte [esp + 0xd0], al
mov byte [esp + 0xb4], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x128], al
mov byte [esp + 0x72], al
mov byte [esp + 0x15c], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x154], al
mov byte [esp + 0x1a0], al
mov byte [esp + 0x7f], al
mov byte [esp + 0x1a8], al
mov byte [esp + 0x73], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x1e0], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x178], al
mov byte [esp + 0x148], al
mov byte [esp + 0x94], al
mov byte [esp + 0x26b], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x320], al
mov byte [esp + 0x22c], al
mov byte [esp + 0x340], al
mov byte [esp + 0x376], al
mov byte [esp + 0x158], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0xf0], al
mov byte [esp + 0x1e4], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x218], al
mov byte [esp + 0xcb], al
mov byte [esp + 0xc0], al
mov byte [esp + 0x35f], al
jmp 0x558aa7
mov dword [esp + 0x360], esi
mov dword [esp + 0x3b4], ebx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x438]
mov esi, dword [esp + 0x348]
mov edi, dword [esp + 0x3a4]
jmp 0x559384
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov byte [esp + 0x13c], 0x26
mov eax, 0x1b
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x308], ecx
jmp 0x5621d9
mov byte [esp + 0xc0], al
mov byte [esp + 0x35f], al
mov byte [esp + 0x258], al
mov byte [esp + 0x2f4], al
mov byte [esp + 0x2de], al
mov byte [esp + 0x303], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x376], al
mov byte [esp + 0x130], al
mov byte [esp + 0x248], al
mov byte [esp + 0x2ab], al
mov byte [esp + 0x1f8], al
mov byte [esp + 0x2d6], al
mov byte [esp + 0x184], al
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x458], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x2bc], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x410], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x370], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x368], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x3dc], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3d0], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x3fc], eax
mov dword [esp + 0x3e0], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x360], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x418], eax
mov dword [esp + 0x3d8], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x384], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x348], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], eax
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x43c], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x3ec], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], eax
mov dword [esp + 0x400], eax
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x408], eax
mov dword [esp + 0x3d4], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x110], eax
mov byte [esp + 0x210], al
mov byte [esp + 0x204], al
mov byte [esp + 0x22b], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x2f3], al
mov byte [esp + 0x313], al
mov byte [esp + 0x148], al
mov byte [esp + 0x94], al
mov byte [esp + 0x22c], al
mov byte [esp + 0x224], al
mov byte [esp + 0xe0], al
mov byte [esp + 0xf8], al
mov byte [esp + 0x1bf], al
mov byte [esp + 0x1c8], al
mov byte [esp + 0x1df], al
mov byte [esp + 0x218], al
mov byte [esp + 0x174], al
mov byte [esp + 0xa8], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x238], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x1a4], al
mov byte [esp + 0x8d], al
mov byte [esp + 0xd0], al
mov byte [esp + 0xcb], al
mov byte [esp + 0xb4], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x128], al
mov byte [esp + 0x15c], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x154], al
mov byte [esp + 0x1a0], al
mov byte [esp + 0x7f], al
mov byte [esp + 0x73], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x1e0], al
mov byte [esp + 0x2d7], al
mov byte [esp + 0x254], al
mov byte [esp + 0x1a8], al
mov byte [esp + 0x2df], al
mov byte [esp + 0x33c], al
mov byte [esp + 0x377], al
mov byte [esp + 0x278], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x158], al
mov byte [esp + 0x3c0], al
mov byte [esp + 0x178], al
mov byte [esp + 0x26b], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x320], al
mov byte [esp + 0x340], al
mov byte [esp + 0x312], al
mov byte [esp + 0x338], al
mov byte [esp + 0x72], al
mov byte [esp + 0x190], al
mov byte [esp + 0x168], al
mov byte [esp + 0xf0], al
mov byte [esp + 0x1e4], al
jmp 0x562250
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ebx, eax
je 0x5562b0
mov ebx, edx
mov edi, 0xb
mov cl, 0x14
jmp 0x556217
mov edi, 6
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.007c51d0
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x556190
jmp 0x5562a8
cmp edi, 5
je 0x556156
imul edi, edi
and edi, 3
cmp edi, 3
je 0x556156
mov ebx, edx
mov edi, 0xd
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.007c51d0
mov cl, 0x58
cmp edi, 0xb
mov edx, ebx
jne 0x5562ad
mov eax, 3
sub eax, edi
xor eax, edi
je 0x5562ad
mov edi, 0x15
xor ebx, ebx
movsx eax, cl
cmp eax, 0x34
jg 0x556292
mov edi, 0xb
movzx eax, cl
cmp eax, 0x19
je 0x5561d9
cmp eax, 0x30
mov edi, 0x15
jne 0x5562a8
mov edi, 0xffffffff
jmp 0x55627f
inc ebx
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.007c51d0
dec edi
mov eax, ebx
and eax, 1
xor eax, edi
setne al
movzx eax, al
cmp ebx, eax
jb 0x556260
jmp 0x5562ad
movzx eax, cl
cmp eax, 0x35
je 0x5561c0
mov ebx, 2
cmp eax, 0x58
je 0x55630b
cmp edi, 6
jne 0x5562e9
mov ebx, dword [ebp + 0x18]
mov eax, 0x10
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x458]
mov edi, dword [esp + 0x45c]
mov dword [ecx + edx*8 + 0x14], edi
xor edx, edx
cmp eax, 0xe
jne 0x556156
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x556160
jmp 0x556156
mov ebx, 8
mov eax, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.007c51d0
xor edi, edi
cmp ebx, 2
je 0x55631d
xor eax, eax
test al, al
mov ebx, dword [ebp + 0x18]
je 0x5562b0
jmp 0x55635b
mov ebx, dword [ebp + 0x18]
jmp 0x55635b
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.007c51d0
test edi, edi
je 0x556330
mov al, 1
test al, al
je 0x556330
jmp 0x5562b0
mov byte [esp + 0x283], 0xe
mov byte [esp + 0x2e4], 0x64
lea eax, [esp + 0x5a8]
mov dword [esp + 0x3b8], eax
mov eax, dword [esp + 0x5a4]
mov ecx, dword [esp + 0x5a8]
mov dword [esp + 0x2fc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x5a4]
mov dword [esp + 0x3e4], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
mov dword [esp + 0x3e8], 0x70000003
je 0x5563f8
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x39c], eax
jne 0x5629ad
jmp 0x561588
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0x39c], eax
jmp 0x561588
mov byte [esp + 0x2e4], 0x64
mov byte [esp + 0x33c], 0x6f
mov dword [edi], ebx
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [edx], eax
lea eax, [esi*8]
lea eax, [eax + eax*2]
mov dword [ebx + eax], 0x10
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x3e8], 0x70000003
test eax, eax
jne 0x5564ac
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x2c8], eax
jne 0x561588
jmp 0x5624e8
mov dword [esp + 0x2c8], eax
jmp 0x5624e8
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x3e8], eax
not ecx
test ecx, ecx
je 0x5635f6
call fcn.0044c050
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x5b4], edx
mov dword [esp + 0x5b0], eax
mov esi, dword [esp + 0x3b8]
mov eax, dword [esi]
mov dword [esp + 0x1b4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x3e4]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov ebx, eax
test ebx, ebx
jne 0x556554
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x556554
mov dword [esp + 0x164], ebx
lea eax, [esp + 0x5b0]
mov dword [esp + 0x1c4], eax
mov ebx, dword [esp + 0x458]
jmp 0x55679f
mov al, 0x32
movzx eax, al
cmp eax, 0x32
je 0x5565da
cmp eax, 0x40
mov edx, dword [esp + 0x3e4]
jne 0x5566d5
mov dword [esp + 0x164], ebx
lea eax, [esp + 0x5b0]
mov dword [esp + 0x1c4], eax
mov eax, 9
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x424], ecx
mov esi, dword [esp + 0x418]
mov ebx, dword [esp + 0x394]
mov edi, dword [esp + 0x3e8]
jmp 0x556cdc
mov edx, dword [esp + 0x3e4]
mov dword [edx], ebx
mov eax, dword [esi]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x1b4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ebx + eax], 4
mov dword [esp + 0x164], ebx
mov ecx, dword [edx]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edx]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edx]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edx]
mov dword [ecx + eax + 0x14], 0
lea eax, [esp + 0x5b0]
mov dword [esp + 0x1c4], eax
mov ebx, 0x1b
mov dword [esp], 8
call fcn.00492770
test eax, eax
je 0x556777
mov esi, 0xe
mov dword [esp + 0xd8], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov edi, dword [esp + 0x44c]
jne 0x557dfc
mov dword [edx], ebx
mov eax, dword [esi]
mov ecx, eax
or ecx, 2
mov edi, edx
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x1b4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ebx + eax], 4
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
lea eax, [esp + 0x5b0]
mov dword [esp + 0x1c4], eax
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0xd8], eax
test eax, eax
je 0x556791
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x444]
mov edi, dword [esp + 0x44c]
jmp 0x564241
mov dword [esp + 0x3e8], 0x70000003
mov edx, 0x16
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x364]
cmp edx, 0xf
je 0x556849
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x561588
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x1c4]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xd8]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1b4]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x3c8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x398]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x3ec]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x5a0]
call fcn.004b44f0
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0xffcb
call fcn.00427270
mov dword [esp + 0x214], eax
test eax, eax
je 0x563b76
mov ebx, 0x1a
xor eax, eax
test al, al
je 0x563b14
jmp 0x563b76
mov dword [esp + 0x43c], eax
cmp edi, 7
mov edi, eax
mov dword [esp + 0x430], ebx
jne 0x562af0
jmp 0x562dc0
mov dword [esp + 0x458], ebx
mov ecx, dword [esp + 0x118]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
jne 0x556b39
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
jmp 0x556b8f
mov edi, 0xd
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x124]
mov dword [esp], eax
call fcn.007c51d0
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
jmp 0x556d83
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x104]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x124]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
mov ebx, dword [esp + 0x458]
jmp 0x562af0
mov esi, dword [esp + 0x3ec]
mov eax, dword [esi]
mov dword [esp], eax
call fcn.0059ab80
test eax, eax
jne 0x556c58
mov eax, dword [esi]
lea ecx, [esp + 0x530]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
test eax, eax
je 0x556ca1
imul eax, eax
and eax, 3
cmp eax, 3
je 0x556ca1
mov eax, 6
mov dword [esp + 0x3e8], 0x70000030
mov edx, dword [esp + 0x424]
mov esi, dword [esp + 0x448]
mov edi, dword [esp + 0x450]
mov ebx, dword [esp + 0x42c]
jmp 0x556f94
mov dword [esp + 0x3e8], eax
mov eax, 3
mov esi, dword [esp + 0x414]
mov ebx, dword [esp + 0x404]
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x420], ecx
mov edi, dword [esp + 0x424]
mov edx, dword [esp + 0x450]
jmp 0x556f2b
mov al, 0x23
movzx edx, al
cmp edx, 0x10
mov ebx, dword [esp + 0x394]
je 0x556e8f
mov eax, 1
mov edi, 0x70000030
mov ecx, 0xe
cmp edx, 0x23
mov esi, dword [esp + 0x418]
mov edx, dword [esp + 0x3e4]
je 0x55d3b1
mov dword [esp + 0x3e8], edi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x556dd1
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x394], ebx
mov dword [esp + 0x418], esi
mov edi, 5
mov byte [esp + 0x376], 0x73
lea eax, [esp + 0x534]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x534]
shl eax, 8
or eax, dword [esp + 0x538]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x3c8]
mov ecx, dword [eax]
mov dword [esp + 0x108], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
lea eax, [esp + 0x538]
mov dword [esp + 0x24c], eax
mov esi, dword [esp + 0x424]
jne 0x556ff6
cmp edi, 5
jne 0x556b8f
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jb 0x563771
jmp 0x556b8f
mov dword [esp + 0x394], ebx
mov dword [esp + 0x418], esi
mov ebx, 9
mov edi, dword [esp + 0x164]
mov dword [edx], edi
mov esi, edx
mov dword [esp + 0x3e4], esi
mov edx, dword [esp + 0x3b8]
mov eax, dword [edx]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x1b4]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 4
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x556f1f
mov esi, 1
mov dword [esp + 0xd8], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x56443d
jmp 0x560210
mov eax, 9
mov edi, 0x15
mov byte [esp + 0x376], 0x73
lea ecx, [esp + 0x534]
mov dword [esp + 0x370], ecx
mov ecx, dword [esp + 0x534]
shl ecx, 8
lea edx, [esp + 0x538]
mov dword [esp + 0x24c], edx
or ecx, dword [esp + 0x538]
mov edx, dword [esp + 0x45c]
mov dword [edx + 0xd0], ecx
mov ecx, dword [esp + 0x3c8]
mov edx, dword [ecx]
mov dword [esp + 0x108], edx
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
mov dword [esp + 0x3e8], 0x70000030
mov esi, dword [esp + 0x424]
mov edx, dword [esp + 0x450]
jne 0x5578d8
jmp 0x55c500
mov dword [esp + 0xd8], eax
jmp 0x560210
mov dword [esp + 0x450], edx
cmp eax, 3
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], edi
jne 0x55d526
jmp 0x561588
cmp eax, 6
mov dword [esp + 0x440], esi
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x420], esi
mov dword [esp + 0x428], edi
mov dword [esp + 0x434], ebx
mov dword [esp + 0x454], edx
mov dword [esp + 0x41c], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
jne 0x55e3ed
jmp 0x561588
mov edi, 5
mov ebx, 0xf
mov byte [esp + 0x258], 0x29
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov dword [esp + 0x5d8], 0
mov dword [esp + 0x5d4], 0
mov dword [esp + 0x5b8], 4
mov dword [esp + 0x5bc], 2
mov dword [esp + 0x5c0], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x5c4], eax
mov dword [esp + 0x5c8], 0xfffffffd
lea eax, [esp + 0x5d4]
mov dword [esp + 8], eax
lea eax, [esp + 0x5d8]
mov dword [esp + 4], eax
lea eax, [esp + 0x5b8]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jne 0x5594a9
jmp 0x55f359
mov byte [esp + 0x258], 0x29
mov eax, dword [esp + 0x5d4]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x5d8]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x3b8]
mov eax, dword [eax]
mov dword [esp + 0x274], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x3e4]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x557144
mov edx, 0xf
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x10c], eax
jne 0x55ccd1
jmp 0x5573f6
mov dword [esp + 0x10c], eax
jmp 0x5573f6
mov edx, dword [esp + 0x10c]
mov edi, dword [esp + 0x3e4]
mov dword [edi], edx
mov esi, dword [esp + 0x3b8]
mov eax, dword [esi]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x274]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 5
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffffd
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov esi, dword [esp + 0x3b4]
mov dword [ecx + eax + 0x10], esi
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], esi
call fcn.00492770
mov dword [esp + 0x23c], eax
test eax, eax
je 0x5573f6
mov edx, 0xb
mov byte [esp + 0x2f4], 0x48
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp esi, eax
je 0x557236
cmp edx, 0xb
mov ecx, dword [esp + 0x43c]
jne 0x55726a
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
je 0x55726a
mov dword [esp + 8], esi
mov eax, dword [esp + 0x134]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x23c]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x3b4], esi
mov edi, 3
movzx eax, byte [esp + 0x2f4]
cmp eax, 3
je 0x55980f
mov ebx, 0xe
cmp eax, 0x72
jne 0x5572d1
mov byte [esp + 0x2f4], 3
jmp 0x5573d8
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x438], ecx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x324]
jmp 0x55feb9
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x41c]
cmp ebx, 0xe
je 0x557324
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x557324
mov ebx, dword [esp + 0x388]
mov edx, dword [esp + 0x450]
jmp 0x5641ac
mov dword [esp + 0x424], esi
mov eax, 0x10
mov byte [esp + 0x2f4], 0x48
mov ecx, dword [esp + 0x3e4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x274]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x23c]
mov dword [ecx + edx*8 + 0x14], esi
mov edx, dword [esp + 0x450]
cmp eax, 7
je 0x55739b
xor eax, eax
test al, al
jne 0x55739b
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x590]
mov esi, dword [esp + 0x60]
mov ecx, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0xdc], esi
jmp 0x55b180
mov byte [esp + 0x2f4], 0x72
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x274]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x23c]
mov dword [eax + ecx*8 + 0x14], edx
mov esi, 3
mov eax, dword [esp + 0x5d8]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov dword [esp + 0x550], eax
mov eax, dword [esp + 0x3c8]
mov eax, dword [eax]
mov dword [esp + 0x554], eax
mov dword [esp + 0x558], 0xfffffff8
lea eax, [esp + 0x590]
mov dword [esp + 8], eax
lea eax, [esp + 0x594]
mov dword [esp + 4], eax
lea eax, [esp + 0x548]
mov dword [esp], eax
call fcn.00593400
test eax, eax
je 0x55747f
mov byte [esp + 0x2de], 0xf
mov edi, 0x16
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x562b87
jmp 0x559093
mov byte [esp + 0x2de], 0xf
jmp 0x559093
mov edx, dword [esp + 0x25c]
mov edi, dword [esp + 0x3e4]
mov dword [edi], edx
mov esi, dword [esp + 0x3b8]
mov eax, dword [esi]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x2e8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x21
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff8
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov edx, dword [esp + 0x344]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0x12
mov byte [esp + 0x303], 0x3e
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x378], 0x70000003
test eax, eax
jne 0x5575f8
mov edx, 7
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x2a0], eax
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x438]
jne 0x55e0f0
jmp 0x55dea2
mov dword [esp + 0x2a0], eax
jmp 0x55de94
mov edi, dword [esp + 0x3e4]
mov dword [edi], edx
inc dword [esi]
mov eax, dword [esp + 0x2e8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x21
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff8
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov edx, dword [esp + 0x344]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 0xc
mov byte [esp + 0x303], 0x6f
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x378], 0x70000003
test eax, eax
je 0x55b4ed
mov byte [esp + 0x1eb], 0x79
cmp dword [esp + 0x344], 0
je 0x557723
xor eax, eax
test al, al
jne 0x557723
mov edi, 8
mov eax, dword [esp + 0x344]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
call fcn.007c51d0
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
mov edx, dword [esp + 0x458]
mov dword [esp + 0x458], edx
cmp edi, 8
je 0x557754
imul edi, edi
and edi, 3
cmp edi, 3
jne 0x556ff6
jmp 0x557754
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
movzx ecx, byte [esp + 0x1eb]
cmp ecx, 0x33
mov edx, dword [esp + 0x2a0]
je 0x5577a8
mov eax, 0xe
cmp ecx, 0x79
jne 0x5577c9
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x41c], esi
jmp 0x559e38
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2e8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edx
mov byte [esp + 0x1eb], 0x79
jmp 0x5577e8
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2e8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edx
mov byte [esp + 0x1eb], 7
mov dword [esp + 0x378], 0
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jmp 0x563646
mov edi, dword [esp + 0x36c]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x390]
imul esi, eax, 0x1c
mov ebx, dword [edx + esi + 4]
mov ecx, ebx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp ebx, ecx
lea ecx, [edi + 8]
mov dword [esp + 0x298], ecx
jne 0x5578f4
cmp eax, 9
jne 0x557a1c
mov dword [esp + 0x450], edx
mov dword [esp + 0x394], ebx
jmp 0x556ff6
mov dword [esp + 0x450], edx
mov dword [esp + 0x424], esi
mov dword [esp + 0x394], ebx
imul eax, dword [esp + 0x3cc], 0x1c
mov esi, dword [esp + 0x3b0]
mov ecx, dword [esi + eax + 0x14]
mov dword [esp + 0x3f0], 0x30000003
cmp ecx, 4
jne 0x557c2e
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x557c2e
mov eax, dword [esi + eax + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x40c], eax
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov dword [esp + 0x3f0], 0x30000003
jmp 0x5632a5
mov eax, dword [esp + 0x414]
jmp 0x561347
imul eax, dword [esp + 0x3cc], 0x1c
mov ecx, dword [esp + 0x3b0]
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [eax]
mov dword [esp + 0x428], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov dword [esp + 0x448], eax
mov byte [esp + 0x130], 0x24
jmp 0x5632a5
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
jne 0x55b60b
mov ecx, 0x19
mov edx, dword [esp + 0x160]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, edx
sbb eax, 0
cmp eax, 2
jb 0x557ee8
mov esi, 0x16
xor edx, edx
test dl, dl
mov eax, dword [esp + 0x444]
mov edi, dword [esp + 0x44c]
jne 0x559b5f
cmp esi, 0xe
mov ebx, dword [esp + 0x458]
jne 0x557e5f
mov ecx, esi
or ecx, 2
xor esi, 2
add esi, ecx
je 0x557e5f
mov dword [esp + 0x44c], edi
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
jmp 0x5568d0
movzx eax, byte [esp + 0x158]
cmp eax, 7
je 0x557efb
cmp eax, 0x7d
mov esi, dword [esp + 0x394]
mov edx, dword [esp + 0x450]
jne 0x557f34
mov cl, 0x7d
cmp esi, 0x21
jg 0x55800d
cmp esi, 0x11
je 0x55831b
mov dword [esp + 0x438], 0x15
cmp esi, 0x21
je 0x557f51
mov byte [esp + 0x158], 0x7d
mov ecx, edx
mov edx, dword [esp + 0x448]
mov dword [esp + 0x444], ecx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov esi, dword [esp + 0x424]
mov dword [esp + 0x454], esi
jmp 0x56122e
mov eax, dword [esp + 0x444]
mov edi, dword [esp + 0x44c]
jmp 0x559b5f
mov cl, 0x43
mov esi, dword [esp + 0x394]
cmp esi, 0x21
mov edx, dword [esp + 0x450]
jg 0x558084
mov eax, 0xf
cmp esi, 0x11
je 0x558325
cmp esi, 0x21
je 0x557f51
mov byte [esp + 0x158], 0x43
jmp 0x5583da
mov cl, 7
cmp esi, 0x21
jg 0x5580d9
cmp esi, 0x11
je 0x558394
cmp esi, 0x21
jne 0x5583d2
mov dword [esp + 0x450], edx
mov byte [esp + 0x158], cl
mov dword [esp + 0x394], esi
mov dword [esp + 0x528], 0
mov eax, dword [esp + 0x298]
mov eax, dword [eax]
imul ecx, dword [esp + 0x3cc], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], 0x2d
call fcn.0064be40
test eax, eax
je 0x5581bb
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x5581bb
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
jmp 0x56134e
mov dword [esp + 0x438], 0x15
cmp esi, 0x22
je 0x558141
mov byte [esp + 0x158], 0x7d
mov ecx, 0x1c
cmp esi, 0x27
mov esi, dword [esp + 0x424]
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov edi, edx
mov edx, dword [esp + 0x448]
mov dword [esp + 0x408], edx
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
je 0x562685
jmp 0x56122e
cmp esi, 0x22
je 0x558141
mov byte [esp + 0x158], 0x43
mov eax, 0xe
cmp esi, 0x27
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], edx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x41c], ecx
je 0x55a045
jmp 0x5632a5
cmp esi, 0x22
je 0x558141
mov byte [esp + 0x158], 7
cmp esi, 0x27
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], edx
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x400], esi
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], edx
mov dword [esp + 0x434], esi
mov dword [esp + 0x41c], eax
je 0x559b89
jmp 0x5632a5
mov al, byte [esp + 0xe0]
mov edi, edx
mov byte [esp + 0x158], cl
movzx eax, al
cmp eax, 0x78
jne 0x558251
mov byte [esp + 0xe0], 0xf
mov dword [esp + 0x524], 0
mov eax, dword [esp + 0x298]
mov eax, dword [eax]
imul ecx, dword [esp + 0x3cc], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x524]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006274b0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5582f8
jmp 0x558298
mov eax, 0xe
movzx ecx, byte [esp + 0x184]
cmp ecx, 0x16
mov edx, dword [esp + 0x424]
je 0x5583f4
mov eax, 7
cmp ecx, 0x1e
je 0x55845b
mov eax, 0xd
mov dword [esp + 0x438], 2
cmp ecx, 0x2e
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov esi, dword [esp + 0x450]
mov dword [esp + 0x444], esi
mov edi, dword [esp + 0x42c]
mov dword [esp + 0x44c], edi
mov dword [esp + 0x41c], edx
mov dword [esp + 0x414], edx
mov dword [esp + 0x404], esi
mov dword [esp + 0x400], edi
mov dword [esp + 0x408], ecx
jne 0x5607a4
jmp 0x560e73
mov byte [esp + 0xe0], 0x78
mov dword [esp + 0x524], 0
mov eax, dword [esp + 0x298]
mov eax, dword [eax]
imul ecx, dword [esp + 0x3cc], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x524]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006274b0
test eax, eax
jne 0x5582f8
mov eax, dword [esp + 0x524]
mov dword [esp + 0x144], eax
test eax, eax
mov edx, edi
mov ecx, dword [esp + 0x42c]
je 0x5584bb
mov dword [esp + 0x394], esi
mov dword [esp + 0x454], 4
xor eax, eax
test al, al
mov eax, dword [esp + 0x448]
mov edi, eax
mov ebx, edx
mov dword [esp + 0x434], ecx
mov esi, dword [esp + 0x424]
mov dword [esp + 0x41c], esi
je 0x55971d
jmp 0x559b2c
mov dword [esp + 0x394], esi
mov esi, dword [esp + 0x424]
mov eax, dword [esp + 0x448]
mov edx, edi
mov ecx, dword [esp + 0x42c]
jmp 0x559b2c
mov byte [esp + 0x158], 0x7d
jmp 0x55839c
mov byte [esp + 0x158], 0x43
mov dword [esp + 0x430], ebx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x440], ecx
mov dword [esp + 0x404], edx
mov dword [esp + 0x444], edx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x400], ecx
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x414], ecx
mov dword [esp + 0x454], ecx
jmp 0x55bbbe
mov byte [esp + 0x158], 7
mov esi, dword [esp + 0x424]
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
jmp 0x558976
mov byte [esp + 0x158], 7
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], edx
jmp 0x558955
mov dword [esp + 0x430], ebx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x404], ecx
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x400], ecx
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x414], edx
mov dword [esp + 0x454], edx
jmp 0x561834
mov dword [esp + 0x430], ebx
mov edi, dword [esp + 0x43c]
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x404], ecx
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x400], ecx
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x414], edx
mov dword [esp + 0x454], edx
jmp 0x55c0ba
mov dword [esp + 0x394], esi
mov esi, dword [esp + 0x424]
mov eax, dword [esp + 0x448]
jmp 0x559b2c
mov ebx, eax
mov ecx, dword [esp + 0x394]
cmp ecx, 3
mov esi, dword [esp + 0x3b0]
mov edx, esi
jne 0x558550
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov edx, esi
je 0x558550
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x450]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043ab10
mov eax, dword [esp + 0x59c]
mov edx, dword [eax + 8]
movzx ecx, byte [esp + 0x2a4]
cmp ecx, 0x36
je 0x55872b
mov eax, 0xb
cmp ecx, 0x50
jne 0x558813
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x450]
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x434], esi
mov esi, dword [esp + 0x448]
mov dword [esp + 0x420], esi
mov esi, dword [esp + 0x440]
mov dword [esp + 0x448], esi
mov dword [esp + 0x450], ebx
mov dword [esp + 0x42c], edi
mov edi, dword [esp + 0x454]
mov esi, dword [esp + 0x418]
cmp eax, 0xb
mov ebx, ecx
jne 0x5586d3
mov dword [esp + 0x418], esi
mov byte [esp + 0x2a4], 0x67
imul eax, dword [esp + 0x3cc], 0x1c
add eax, edx
mov dword [esp + 0x27c], edx
mov ecx, dword [esp + 0x3c8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x398]
mov esi, dword [edx]
mov edx, dword [esp + 0x3ec]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x39c]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x3f0], eax
test eax, eax
je 0x558911
mov esi, 0x1d
xor ecx, ecx
test cl, cl
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x450], ebx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x42c], edx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], ebx
mov dword [esp + 0x428], ebx
mov dword [esp + 0x400], edx
mov dword [esp + 0x408], ecx
je 0x55cb3a
jmp 0x5632a5
mov dword [esp + 0x27c], edx
mov eax, 0xf
mov byte [esp + 0xd0], 0x1c
mov ecx, esi
mov dword [esp + 0x418], esi
shl ecx, 6
mov esi, dword [esp + 0x3d0]
lea edx, [esi + ecx + 0x14]
mov dword [esp + 0xf4], edx
mov ecx, dword [esi + ecx + 0x14]
mov dword [esp + 0x360], ecx
test ecx, ecx
mov esi, dword [esp + 0x41c]
mov edx, dword [esp + 0x450]
jne 0x556f2b
jmp 0x55cefc
mov byte [esp + 0x2a4], 0x36
imul eax, dword [esp + 0x3cc], 0x1c
add eax, edx
mov dword [esp + 0x27c], edx
mov ecx, dword [esp + 0x3c8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x398]
mov esi, dword [edx]
mov edx, dword [esp + 0x3ec]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x39c]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x3f0], eax
test eax, eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x414], eax
mov edx, dword [esp + 0x450]
mov dword [esp + 0x404], edx
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x400], esi
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], edx
mov dword [esp + 0x434], esi
mov dword [esp + 0x41c], eax
jne 0x56134e
jmp 0x5632a5
mov edi, 0x11
mov byte [esp + 0x2a4], 0x50
imul eax, dword [esp + 0x3cc], 0x1c
add eax, edx
mov dword [esp + 0x27c], edx
mov ecx, dword [esp + 0x3c8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x398]
mov ebx, dword [edx]
mov edx, dword [esp + 0x3ec]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x39c]
mov dword [esp + 8], eax
mov dword [esp], ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x3f0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x424]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x414], eax
mov edx, dword [esp + 0x450]
mov dword [esp + 0x404], edx
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x400], esi
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x440], ecx
mov dword [esp + 0x444], edx
mov dword [esp + 0x44c], esi
mov dword [esp + 0x454], eax
jne 0x56134e
jmp 0x55e32a
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x428], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
jmp 0x5632a5
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
jmp 0x5632a5
mov dword [esp + 0x458], ebx
mov eax, 0xe
mov ecx, dword [esp + 0x370]
mov ecx, dword [ecx]
mov dword [esp + 0x74], ecx
cmp ecx, 2
ja 0x55e153
mov ecx, 8
mov edi, edx
xor edx, edx
test dl, dl
mov edx, edi
jne 0x55e153
mov dword [esp + 0x450], edx
cmp ecx, 7
jne 0x558a20
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x558a20
mov byte [esp + 0x35f], 0x2e
mov eax, dword [esp + 0x5d0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.004234b0
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
jmp 0x563b76
mov ecx, dword [esp + 0x74]
cmp ecx, 2
sete al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
or dl, al
mov eax, dword [esp + 0x24c]
mov ecx, dword [eax]
cmp ecx, 0x21
seta al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edx, dl
cmp edx, 1
jne 0x558a7e
mov edi, 0x16
or al, cl
je 0x558a7e
mov ecx, 9
mov eax, 2
movzx edx, byte [esp + 0x248]
cmp edx, 0x4c
mov edx, dword [esp + 0x3b4]
mov bl, byte [esp + 0x338]
je 0x55ad2c
mov byte [esp + 0x338], bl
mov dword [esp + 0x3b4], edx
cmp ecx, 5
mov ecx, dword [esp + 0x450]
je 0x558b10
xor eax, eax
test al, al
jne 0x558b10
mov dword [esp + 0x424], esi
mov byte [esp + 0x248], 0x2e
mov dword [esp + 4], 0x14
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x3dc], eax
mov dword [esp + 0x3f0], 0x70000003
test eax, eax
mov dword [esp + 0x40c], eax
jne 0x558d46
jmp 0x56134e
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], ecx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jmp 0x561588
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, ecx
mov dword [esp + 0x438], ecx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edx
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
mov dword [esp + 0x424], esi
jne 0x55e3ed
mov edi, 2
imul eax, dword [esp + 0x3cc], 0x1c
mov edx, dword [esp + 0x3b0]
mov ecx, dword [edx + eax + 0x14]
mov eax, dword [edx + eax + 0x18]
mov edx, dword [esp + 0x30c]
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x34
call fcn.0064be40
test eax, eax
jne 0x558c9b
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x52c]
mov ecx, dword [eax]
mov edx, dword [esp + 0x2ac]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x330]
mov dword [edx], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x318], ecx
mov eax, dword [esp + 0x368]
mov dword [eax], ecx
mov dword [esp + 0x43c], ebx
mov edx, dword [esp + 0x448]
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov edi, dword [esp + 0x408]
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x40c], eax
mov ebx, dword [esp + 0x3dc]
jmp 0x558edc
mov dword [esp + 0x43c], ebx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov edx, dword [esp + 0x450]
mov esi, dword [esp + 0x42c]
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x414]
jmp 0x55bd9e
movzx eax, byte [esp + 0x2ab]
cmp eax, 0x58
jne 0x558d76
mov ecx, 3
mov dword [esp + 0x3f0], 0x70000003
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x3dc], eax
jmp 0x55e671
mov eax, 0xa
mov byte [esp + 0x2ab], 0x3b
mov ecx, dword [esp + 0x59c]
mov ecx, dword [ecx + 8]
imul edx, dword [esp + 0x3cc], 0x1c
mov ecx, dword [ecx + edx + 0x18]
mov dword [esp + 0x2b8], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x2b4], ecx
mov esi, dword [esp + 0x40c]
mov dword [esi], ecx
mov ecx, dword [esp + 0x370]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x24c]
mov edi, dword [ecx]
cmp edi, 0x21
sete cl
imul edi, edi
and edi, 3
cmp edi, 3
sete ch
mov dword [esp + 0x3f0], 0x70000003
cmp edx, 2
jne 0x558e09
mov edi, edx
not edi
and edi, 1
add edi, edx
je 0x558e09
or cl, ch
mov dword [esp + 0x3dc], esi
mov dword [esp + 0x1cc], esi
jne 0x55e719
jmp 0x558e17
mov dword [esp + 0x3dc], esi
mov dword [esp + 0x1cc], esi
cmp eax, 3
je 0x558e83
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
jne 0x55f7bf
jmp 0x55e3ed
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
jmp 0x55e3ed
mov dword [esp + 0x440], edx
mov eax, 0xa
mov ecx, dword [esp + 0x370]
mov esi, dword [ecx]
cmp esi, 6
ja 0x558f40
mov edx, esi
or edx, 2
mov dword [esp + 0x21c], esi
mov ecx, edi
mov edi, esi
xor edi, 2
add edi, edx
mov edi, ecx
mov ecx, 0x12
mov edx, dword [esp + 0x318]
mov dword [esp + 0x2e0], edx
mov edx, dword [esp + 0x314]
mov dword [esp + 0x37c], edx
mov esi, dword [esp + 0x424]
jne 0x562ecd
jmp 0x56112e
mov dword [esp + 0x21c], esi
mov ecx, dword [esp + 0x318]
mov dword [esp + 0x2e0], ecx
mov ecx, dword [esp + 0x314]
mov dword [esp + 0x37c], ecx
mov esi, dword [esp + 0x424]
jmp 0x56112e
mov eax, dword [esp + 0x21c]
cmp eax, 7
jne 0x558fe8
mov eax, dword [esp + 0x24c]
cmp dword [eax], 0x63
ja 0x558fe8
mov eax, 0x11
cmp dword [esp + 0x2e0], 0
mov ecx, dword [esp + 0x37c]
mov dword [esp + 0x41c], ecx
mov dword [esp + 0x450], edx
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x448], edi
mov dword [esp + 0x414], esi
mov dword [esp + 0x424], esi
mov dword [esp + 0x404], edx
mov dword [esp + 0x400], ebx
mov dword [esp + 0x408], edi
mov dword [esp + 0x420], edi
je 0x55901e
mov dword [esp + 0x424], esi
mov eax, dword [esp + 0x37c]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x450], edx
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
jmp 0x5632a5
cmp eax, 0x10
je 0x559040
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x559040
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
jmp 0x5631e8
mov esi, 9
mov byte [esp + 0x278], 0x24
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x334], 0
cmp dword [eax + 4], 0
mov dword [esp + 0x3a0], 0
je 0x55a798
cmp esi, 3
jne 0x559209
cmp eax, 3
je 0x559163
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x559163
mov dword [esp + 0x3e4], edx
mov eax, dword [esp + 0x284]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14c]
mov dword [ecx], eax
mov dword [esp + 0x410], 1
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x430], esi
mov byte [esp + 0x154], 8
mov esi, 1
jmp 0x55a503
mov dword [esp + 0x434], ebx
mov dword [esp + 0x428], edi
mov dword [esp + 0x458], esi
mov byte [esp + 0x2de], 3
mov byte [esp + 0x377], 0x21
mov byte [esp + 0x303], 0x6f
mov eax, dword [esp + 0x590]
mov dword [esp + 0x344], eax
mov eax, dword [esp + 0x594]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x3b8]
mov eax, dword [eax]
mov dword [esp + 0x2e8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 0x3e4], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x25c], eax
test eax, eax
mov dword [esp + 0x378], 0x70000003
je 0x563646
mov eax, 0x10
xor ecx, ecx
test cl, cl
je 0x56320c
jmp 0x563646
mov byte [esp + 0x2d6], 6
mov eax, dword [esp + 0x330]
mov eax, dword [eax]
mov ecx, dword [esp + 0x368]
mov dword [ecx], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x428], ecx
mov edx, dword [esp + 0x400]
mov dword [esp + 0x434], edx
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], edx
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x37c]
mov dword [esp + 0x41c], eax
jmp 0x5632a5
mov dword [esp + 0x44c], edx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x440], edi
mov byte [esp + 0x2df], 0x23
mov eax, dword [esp + 0x144]
lea eax, [eax + 4]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x3a4], 0
mov ebx, dword [esp + 0x138]
mov eax, dword [esp + 0x2ec]
mov esi, dword [eax]
mov edi, dword [esp + 0x3a4]
mov ecx, edi
shl ecx, 6
mov eax, esi
add eax, ecx
je 0x5593c8
mov dword [esp + 0x19c], eax
imul eax, eax
and eax, 3
cmp eax, 2
je 0x5593d8
mov eax, 0x10
movzx edx, byte [esp + 0x210]
cmp edx, 7
jne 0x5593e1
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x384], ebx
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x380], edi
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x43c], ecx
cmp eax, 0x10
je 0x559444
imul eax, eax
and eax, 3
cmp eax, 2
je 0x559444
mov dword [esp + 0x3a4], edi
mov dword [esp + 0x348], esi
mov byte [esp + 0x13c], 0x10
mov eax, dword [edx + 0x10]
mov dword [esp + 0x308], eax
jmp 0x562250
mov dword [esp + 0x19c], eax
mov dword [esp + 0x348], esi
jmp 0x559431
mov dword [esp + 0x348], esi
jmp 0x559431
mov byte [esp + 0x210], 7
lea eax, [esi + ecx + 0x24]
mov dword [esp + 0xb0], eax
mov ecx, dword [esi + ecx + 0x24]
mov dword [esp + 0x348], esi
test ecx, ecx
je 0x559431
mov eax, 2
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov dword [esp + 0x198], ebx
mov dword [esp + 0x380], edi
mov dword [esp + 0x2d8], ebx
jne 0x55c1d7
jmp 0x559a8f
mov dword [esp + 0x198], ebx
mov dword [esp + 0x380], edi
jmp 0x559a8f
mov dword [esp + 0x3a4], edi
mov ebx, 2
mov byte [esp + 0x210], 0x15
mov eax, dword [esp + 0x380]
shl eax, 6
lea ecx, [esi + eax + 0x24]
mov dword [esp + 0xb0], ecx
mov eax, dword [esi + eax + 0x24]
mov dword [esp + 0x348], esi
test eax, eax
je 0x55949b
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x198]
mov dword [esp + 0x2d8], eax
jne 0x55957c
jmp 0x5594a9
mov eax, dword [esp + 0x198]
mov dword [esp + 0x2d8], eax
cmp ebx, 2
je 0x55951c
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x2d8]
jne 0x5573f6
jmp 0x559a8f
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x2d8]
jmp 0x559a8f
call fcn.0042b980
mov ebx, eax
mov ecx, dword [esp + 0x380]
mov dword [ebx + 0x34], ecx
mov eax, dword [esp + 0x45c]
movsd xmm0, qword [eax]
movsd qword [ebx], xmm0
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
mov eax, dword [esp + 0x19c]
movsd xmm0, qword [eax]
movsd qword [ebx + 0x10], xmm0
mov esi, ecx
shl esi, 6
mov edi, dword [esp + 0x348]
movsd xmm0, qword [edi + esi + 8]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [edi + esi + 0x10]
movsd qword [ebx + 0x20], xmm0
movsd xmm0, qword [edi + esi + 0x18]
movsd qword [ebx + 0x28], xmm0
mov eax, dword [esp + 0xb0]
mov eax, dword [eax]
mov ecx, ebx
add ecx, 0x38
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
mov eax, dword [edi + esi + 0x28]
test eax, eax
je 0x5596e1
lea ecx, [edi + esi + 0x28]
mov eax, dword [eax]
mov dword [ebx + 0x1b8], eax
mov eax, dword [ecx]
mov ax, word [eax + 4]
mov word [ebx + 0x1bc], ax
mov eax, dword [ecx]
mov ax, word [eax + 6]
mov word [ebx + 0x1be], ax
mov eax, dword [ecx]
mov al, byte [eax + 8]
mov byte [ebx + 0x1c0], al
mov eax, dword [ecx]
mov al, byte [eax + 9]
mov byte [ebx + 0x1c1], al
mov eax, dword [ecx]
mov al, byte [eax + 0xa]
mov byte [ebx + 0x1c2], al
mov eax, dword [ecx]
mov al, byte [eax + 0xb]
mov byte [ebx + 0x1c3], al
mov eax, dword [ecx]
mov al, byte [eax + 0xc]
mov byte [ebx + 0x1c4], al
mov eax, dword [ecx]
mov al, byte [eax + 0xd]
mov byte [ebx + 0x1c5], al
mov eax, dword [ecx]
mov al, byte [eax + 0xe]
mov byte [ebx + 0x1c6], al
mov eax, dword [ecx]
mov al, byte [eax + 0xf]
mov byte [ebx + 0x1c7], al
mov dword [esp + 0x1b0], ebx
mov eax, 6
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x454], ecx
jmp 0x55b47a
mov dword [esp + 0x454], 6
mov dword [esp + 0x1b0], ebx
mov esi, dword [esp + 0x414]
mov edx, dword [esp + 0x404]
mov ecx, dword [esp + 0x400]
mov eax, dword [esp + 0x408]
mov ebx, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov dword [esp + 0x42c], ecx
cmp dword [esp + 0x454], 4
mov cl, byte [esp + 0xf8]
jne 0x5598f2
cmp edi, 1
jne 0x5573d0
mov eax, 3
sub eax, edi
xor eax, edi
je 0x5573d0
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov edi, dword [esp + 0x420]
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x434]
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
movzx eax, byte [esp + 0x2df]
cmp eax, 0x69
jne 0x55928d
mov esi, 6
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x420], edi
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], edx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov byte [esp + 0x2df], 0x69
mov eax, dword [esp + 0x144]
lea eax, [eax + 4]
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x3a4], 0
mov eax, dword [esp + 0x138]
mov dword [esp + 0x384], eax
jmp 0x56247a
mov dword [esp + 0x348], edx
mov dword [esp + 0x1b0], ecx
mov eax, dword [esp + 0x380]
shl eax, 6
mov eax, dword [edx + eax + 0x2c]
mov dword [ecx + 0x1c8], eax
mov dword [esp], ecx
mov esi, ecx
call fcn.00412100
mov dword [esp], esi
call fcn.0042b9c0
mov eax, dword [esp + 0x9c]
mov ebx, dword [eax]
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov edx, dword [esp + 0x380]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx esi, al
add esi, edx
cmp esi, ebx
jae 0x559ad0
mov eax, esi
or eax, 2
mov ecx, esi
mov dword [esp + 0x3a4], esi
xor ecx, 2
add ecx, eax
mov dword [esp + 0x2d8], ebx
jne 0x5592cd
jmp 0x559ade
mov dword [esp + 0x3a4], esi
mov dword [esp + 0x2d8], ebx
mov eax, dword [esp + 0x524]
mov dword [esp], eax
call fcn.006275f0
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov esi, dword [esp + 0x414]
mov edx, dword [esp + 0x404]
mov ecx, dword [esp + 0x400]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x384], ebx
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x450], edx
mov dword [esp + 0x448], eax
mov dword [esp + 0x424], esi
mov edi, ecx
mov ecx, 0xe
mov dword [esp + 0x440], eax
mov eax, edx
mov dword [esp + 0x454], esi
cmp ecx, 0xe
jne 0x5584d5
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], eax
mov dword [esp + 0x434], edi
jmp 0x56126d
mov dword [esp + 0x520], 0
mov eax, dword [esp + 0x370]
mov ecx, dword [eax]
cmp ecx, 2
jae 0x559be6
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov ebx, dword [esp + 0x450]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3fc]
jmp 0x559c81
mov eax, 6
cmp ecx, 2
jne 0x559d93
imul ecx, ecx
and ecx, 3
cmp ecx, 1
ja 0x559d93
mov ecx, dword [esp + 0x24c]
mov edx, dword [ecx]
test edx, edx
jne 0x559d93
mov ecx, 0xb
mov edi, edx
and edi, 1
xor edi, edx
not edi
test edi, edi
je 0x559d93
cmp ecx, 7
je 0x55f8b1
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov ebx, dword [esp + 0x450]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3fc]
je 0x562c6e
mov dword [esp + 0x3fc], edi
mov eax, dword [esp + 0x298]
mov eax, dword [eax]
imul ecx, dword [esp + 0x3cc], 0x1c
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x170], eax
mov dword [esp + 4], 0x40
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0x16c], eax
test eax, eax
je 0x559d3b
mov dword [esp + 0x418], esi
mov eax, 0xd
mov ecx, 0xb
movzx edx, byte [esp + 0x204]
mov dword [esp + 0x100], 0x70000003
cmp edx, 0x1e
mov edx, dword [esp + 0x414]
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x420]
mov dword [esp + 0x448], edx
mov dword [esp + 0x450], ebx
mov dword [esp + 0x428], ebx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x42c], edx
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x424], edx
jne 0x55e88f
jmp 0x55ca60
mov edi, 0x19
mov dword [esp + 0x100], 0x70000003
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov ecx, ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov edx, esi
mov esi, dword [esp + 0x41c]
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0xfc], eax
jmp 0x561f48
cmp eax, 2
jne 0x559e7d
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x559e7d
mov byte [esp + 0x148], 5
mov byte [esp + 0x26b], 0x1d
mov ecx, dword [esp + 0x1b8]
lea eax, [ecx + 8]
mov dword [esp + 0xd4], eax
lea eax, [ecx + 4]
mov dword [esp + 0x220], eax
mov edx, dword [esp + 0x32c]
cmp edx, dword [ecx + 8]
mov esi, dword [esp + 0x424]
ja 0x559edb
mov eax, 0x1b
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x41c], esi
mov dword [esp + 0x20c], edx
je 0x560d93
cmp eax, 0xe
je 0x559e47
xor eax, eax
test al, al
je 0x56399b
mov byte [esp + 0x1eb], 0x33
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2e8]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x2a0]
mov dword [eax + ecx*8 + 0x14], edx
mov dword [esp + 0x378], 0
jmp 0x563646
mov edi, 0x11
mov eax, dword [esp + 0x298]
mov eax, dword [eax]
imul ecx, dword [esp + 0x3cc], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x520]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627650
mov dword [esp + 0x100], eax
test eax, eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0xfc], eax
mov esi, dword [esp + 0x424]
je 0x55ad94
jmp 0x561f77
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jmp 0x560d93
mov byte [esp + 0x22b], 0x65
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x520]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
mov ebx, dword [esp + 0x458]
mov eax, 0x14
mov cl, byte [esp + 0x32b]
movzx ecx, cl
cmp ecx, 0x28
jne 0x559fce
mov eax, 0xf
mov byte [esp + 0x32b], 0x6e
mov edx, dword [esp + 0x264]
lea ecx, [edx + 0x34]
mov dword [esp + 0x2b0], ecx
cmp dword [edx + 0x34], 0
mov dword [esp + 0x150], edx
mov ecx, dword [esp + 0x260]
mov dword [esp + 0x2c4], ecx
mov edi, dword [esp + 0x440]
mov edx, dword [esp + 0x444]
jne 0x55e779
mov dword [esp + 0x458], ebx
mov ecx, dword [esp + 0x414]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
cmp eax, 0xe
je 0x55a0ba
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov dword [esp + 0x400], ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov ecx, dword [esp + 0x434]
mov esi, dword [esp + 0x41c]
mov eax, dword [esp + 0x150]
lea eax, [eax + 0x38]
mov dword [esp + 0x194], eax
mov eax, edi
xor ebx, ebx
jmp 0x5641f6
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x424], esi
mov ebx, 9
mov byte [esp + 0x2f3], 8
mov eax, dword [esp + 0x194]
mov eax, dword [eax]
mov esi, dword [esp + 0x458]
mov eax, dword [eax + esi*4]
mov edx, dword [esp + 0x45c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
test eax, eax
je 0x55a244
mov edx, 0x11
mov dword [esp + 0x304], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x388], esi
jne 0x55ecd9
jmp 0x5613cf
mov dword [esp + 0x304], eax
mov dword [esp + 0x388], esi
jmp 0x5613cf
mov eax, 6
mov ecx, dword [esp + 0x304]
cmp dword [ecx + 0x1c], 0
jne 0x55a28a
mov ecx, dword [esp + 0x448]
mov edi, dword [esp + 0x42c]
mov dword [esp + 0x44c], edi
mov dword [esp + 0x454], esi
jmp 0x55cb14
mov eax, 1
movzx ecx, byte [esp + 0x1bf]
cmp ecx, 0x1a
jne 0x55a2e0
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x444], edx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x454], esi
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x430], ebx
jmp 0x55a45c
mov edi, 0xc
mov byte [esp + 0x1bf], 0xf
mov eax, dword [esp + 0x304]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
mov dword [esp + 0x450], edx
xor edx, edx
call fcn.00509b10
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
jmp 0x562d43
mov dword [esp + 0x440], edi
mov eax, 8
cmp dword [esp + 0x2c4], 0
je 0x55a3a9
mov byte [esp + 0x313], 0x2c
xor ecx, ecx
test cl, cl
je 0x55a672
jmp 0x55a3b1
mov byte [esp + 0x313], 0x2c
cmp eax, 4
jne 0x55a418
mov eax, 3
mov byte [esp + 0x128], 0x49
mov ecx, dword [esp + 0x240]
mov dword [ecx], 0
mov dword [esp + 0x410], 1
mov esi, dword [esp + 0x440]
mov edx, dword [esp + 0x444]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 0x41c], edx
mov edx, dword [esp + 0x3e4]
jmp 0x55f394
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
mov eax, 9
mov ecx, dword [esp + 0x520]
test ecx, ecx
jne 0x55a455
mov dword [esp + 0x188], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x55a51b
jmp 0x55a45c
mov dword [esp + 0x188], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x55a4e4
mov esi, 5
mov byte [esp + 0x1bf], 0x1a
mov eax, dword [esp + 0x304]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
mov ecx, dword [esp + 0x3f8]
mov eax, dword [esp + 0x438]
jmp 0x55b63d
mov esi, 6
mov eax, dword [esp + 0x188]
mov dword [esp], eax
call fcn.00627720
mov dword [esp + 0x520], 0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
je 0x55e3ed
mov eax, 5
mov ecx, dword [esp + 0x438]
mov ebx, dword [esp + 0x430]
mov edx, dword [esp + 0x408]
mov esi, dword [esp + 0x404]
mov dword [esp + 0x444], esi
mov esi, dword [esp + 0x400]
mov dword [esp + 0x44c], esi
mov esi, dword [esp + 0x414]
mov dword [esp + 0x454], esi
cmp eax, 5
jne 0x55a5b6
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x458], ebx
mov dword [esp + 0x420], edx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
jmp 0x562221
mov dword [esp + 0x440], edx
mov dword [esp + 0x43c], ecx
mov edx, dword [esp + 0xac]
mov edi, dword [esp + 0x3e4]
mov dword [edi], edx
mov esi, dword [esp + 0x3b8]
mov eax, dword [esi]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [esi], eax
mov eax, dword [esp + 0x104]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x22
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff9
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov edx, dword [esp + 0x118]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov byte [esp + 0xc0], 0x52
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x55a666
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x124], eax
jne 0x562af0
jmp 0x556ae3
mov dword [esp + 0x124], eax
jmp 0x556ae3
mov esi, 9
mov eax, dword [esp + 0x2c4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
jmp 0x5619ff
mov byte [esp + 0x3c0], 0xc
mov eax, dword [esp + 0x3cc]
lea edx, [eax + 1]
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x36c], eax
cmp edx, dword [eax + 4]
mov esi, dword [esp + 0x424]
mov edi, dword [esp + 0x428]
mov ebx, dword [esp + 0x434]
jae 0x55a73f
mov eax, edx
or eax, 2
mov ecx, edx
mov dword [esp + 0x390], edx
xor ecx, 2
add ecx, eax
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x358], ecx
mov dword [esp + 0x354], edi
mov dword [esp + 0x350], ebx
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
jmp 0x563f34
mov dword [esp + 0x390], edx
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x358], ecx
mov dword [esp + 0x354], edi
mov dword [esp + 0x350], ebx
jmp 0x563fb0
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412cb0
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
lea esi, [esp + 0x550]
mov dword [esp + 0x550], eax
mov eax, dword [esp + 0x3c8]
mov eax, dword [eax]
lea ecx, [esp + 0x554]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x554], eax
lea eax, [esp + 0x558]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x558], 0xfffffffe
lea ecx, [esp + 0x548]
mov dword [esp + 0x2cc], ecx
lea eax, [esp + 0x590]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x560]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
test eax, eax
je 0x55a8a5
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x17c], esi
mov eax, dword [esp + 0x334]
mov dword [esp + 0x3d4], eax
mov ecx, dword [esp + 0x3a0]
mov dword [esp + 0x1fc], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x424], ecx
jmp 0x561347
mov cl, 0x65
movzx ecx, cl
cmp ecx, 0x2f
jne 0x55a958
mov dword [esp + 0x17c], esi
lea eax, [esp + 0x548]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x560]
cmp eax, 0x636f6964
mov edx, dword [esp + 0x428]
mov esi, dword [esp + 0x420]
je 0x55a9d9
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x17c], esi
lea eax, [esp + 0x548]
mov dword [esp + 0x2cc], eax
mov eax, 5
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x42c], ecx
mov edx, dword [esp + 0x41c]
mov ecx, dword [esp + 0x334]
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x3d4], ecx
mov ecx, dword [esp + 0x3a0]
mov dword [esp + 0x1fc], ecx
mov ecx, dword [esp + 0x458]
jmp 0x55e5d9
mov edi, 0x12
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004124f0
mov eax, dword [esp + 0x398]
cmp dword [eax], 0
jne 0x55aa66
mov al, 9
movzx eax, al
cmp eax, 9
jne 0x55ac50
mov ecx, dword [esp + 0x39c]
test ecx, ecx
mov edx, dword [esp + 0x3b4]
mov esi, dword [esp + 0x424]
jne 0x55ac77
mov eax, 3
sub eax, ecx
xor eax, ecx
jne 0x55b014
jmp 0x55ac77
mov edx, dword [esp + 0x27c]
mov esi, dword [esp + 0x418]
mov ebx, dword [esp + 0x234]
mov ecx, dword [esp + 0x43c]
cmp edi, 0xb
jne 0x55ab52
mov eax, 3
sub eax, edi
xor eax, edi
je 0x55ab52
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov dword [esp + 0x438], ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov dword [esp + 0x234], ebx
mov eax, esi
shl eax, 6
mov ecx, dword [esp + 0x3d0]
mov ecx, dword [ecx + eax + 0x14]
test ecx, ecx
jne 0x55acaa
mov eax, 0x10
mov edi, ecx
not ecx
and ecx, 1
add ecx, edi
mov ecx, edi
je 0x55acaa
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x234], ebx
mov dword [esp + 0x27c], edx
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov ecx, dword [esp + 0x17c]
mov dword [ecx], eax
mov eax, dword [esp + 0x3c8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1d4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1d0]
mov dword [eax], 0xffffffce
lea eax, [esp + 0x584]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.005953b0
test eax, eax
jne 0x55acea
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
je 0x55acea
mov dword [esp + 0x3a8], eax
mov cl, 3
mov eax, 0x10
movzx ecx, cl
cmp ecx, 0x38
jne 0x55acfd
mov dword [esp + 0x418], esi
lea eax, [esp + 0x590]
mov dword [esp + 8], eax
lea eax, [esp + 0x594]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.00593400
mov dword [esp + 0xdc], 0
test eax, eax
jne 0x561339
mov ecx, dword [esp + 0x39c]
test ecx, ecx
mov edx, dword [esp + 0x3b4]
mov esi, dword [esp + 0x424]
je 0x55b014
xor eax, eax
test al, al
jne 0x55b014
mov dword [esp + 0x39c], ecx
mov eax, 5
mov ecx, dword [ecx]
mov dword [esp + 0x12c], ecx
test ecx, ecx
je 0x55ad25
xor ecx, ecx
test cl, cl
mov bl, byte [esp + 0x338]
je 0x55adbb
mov dword [esp + 0x240], ecx
mov dword [esp + 0x418], esi
mov dword [esp + 0x27c], edx
cmp dword [ecx], 0
je 0x55c6d3
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x418], esi
jmp 0x56131a
mov edi, dword [esp + 0x448]
mov ecx, dword [esp + 0x450]
mov edx, dword [esp + 0x42c]
mov ebx, dword [esp + 0x424]
mov dword [esp + 0x41c], ebx
jmp 0x55f25c
mov bl, byte [esp + 0x338]
mov byte [esp + 0x338], bl
mov dword [esp + 0x3b4], edx
cmp eax, 2
jne 0x55b014
mov dword [esp + 0xbc], edi
mov dword [esp + 0x3b4], edx
mov esi, dword [esi + 4]
test esi, esi
je 0x55b006
mov edi, 0xc
mov eax, esi
mov dword [esp + 0x12c], esi
imul eax, eax
and eax, 3
cmp eax, 3
mov esi, dword [esp + 0x424]
je 0x55b014
cmp edi, 0xc
mov edx, dword [esp + 0x3b4]
mov bl, byte [esp + 0x338]
jne 0x55aee4
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x55aee4
mov dword [esp + 0x424], esi
mov byte [esp + 0x338], bl
mov esi, dword [esp + 0x12c]
mov edi, dword [esi + 0xc]
mov ecx, dword [edi]
cmp ecx, 0xffffffce
jne 0x55ad57
mov eax, 0x16
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x55ad57
mov dword [esp + 0xbc], edi
mov dword [esp + 0x3b4], edx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x450]
mov edx, dword [esp + 0x42c]
mov esi, dword [esp + 0x424]
mov dword [esp + 0x454], esi
mov esi, dword [esp + 0x43c]
mov dword [esp + 0x438], esi
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3fc]
cmp eax, 0xc
je 0x55af02
mov dword [esp + 0x418], esi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x55af23
mov esi, dword [esp + 0xbc]
test esi, esi
jne 0x55af3d
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x55af3d
mov dword [esp + 0x3fc], edi
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], edx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x60], esi
mov esi, eax
jmp 0x55b014
movzx eax, byte [esp + 0x22b]
cmp eax, 0x32
jne 0x559f11
mov byte [esp + 0x22b], 0x32
jmp 0x559f19
mov dword [esp + 0x44c], edx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x418], esi
jmp 0x55edd0
mov dword [esp + 0x44c], edx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x3fc], edi
jmp 0x55edd0
mov dword [esp + 0x44c], edx
mov ebx, ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x590], eax
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esp + 0x594], eax
test eax, eax
je 0x55b03c
mov dword [esp + 0x58], eax
imul eax, eax
and eax, 3
cmp eax, 2
mov edx, ebx
je 0x55b089
mov dword [esp + 0x3fc], edi
mov al, 0x5f
movzx eax, al
cmp eax, 0x39
jne 0x55b0f1
mov eax, 7
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov dword [esp + 0x3f0], 0x70000003
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x60], esi
jmp 0x55735d
mov dword [esp + 0x12c], esi
mov esi, dword [esp + 0x424]
mov dword [esp + 0x424], esi
mov eax, dword [esp + 0x45c]
mov dword [eax + 0x1c0], 1
mov dword [esp + 0x3a8], 0
jmp 0x56131a
mov dword [esp + 0x3f0], 0x70000003
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], ebx
jmp 0x55b0d0
mov dword [esp + 0x3f0], 0x70000003
mov dword [esp + 0x3fc], edi
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jmp 0x561340
mov edi, 0xa
mov eax, dword [esp + 0x590]
mov ecx, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ebx, edx
call fcn.007c51d0
mov dword [esp + 0x3f0], 0x70000003
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov ecx, dword [esp + 0x430]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov edx, ebx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov dword [esp + 0xdc], esi
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov dword [esp + 0x60], esi
jmp 0x56143b
mov eax, dword [esp + 0x590]
mov ecx, dword [esp + 0x594]
lea edx, [esp + 0x598]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0062d620
mov dword [esp + 0x3f0], eax
test eax, eax
jne 0x55b259
mov al, 0x73
mov ecx, 0x11
movzx eax, al
cmp eax, 0x73
jne 0x55b26c
mov ebx, 5
mov eax, dword [esp + 0x598]
mov dword [esp + 0x80], eax
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x3a8], 0
cmp eax, ecx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
je 0x56131a
jmp 0x563803
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1b8], eax
jmp 0x561340
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x458]
mov esi, dword [esp + 0x424]
jmp 0x55e178
mov dword [esp + 0x424], esi
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x598]
mov dword [esp + 0x80], eax
mov dword [esp + 0x3a8], 0
cmp dword [eax], 0
je 0x56131a
mov byte [esp + 0x2d7], 0x10
mov byte [esp + 0x1e0], 0x14
mov byte [esp + 0x8e], 0x61
mov byte [esp + 0x73], 0x70
mov byte [esp + 0x1a8], 1
mov byte [esp + 0x7f], 0x4b
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov byte [esp + 0x1a0], 0x37
mov byte [esp + 0x15c], 6
mov byte [esp + 0x29f], 0x51
mov byte [esp + 0x72], 0x65
mov byte [esp + 0x128], 0x49
mov byte [esp + 0x5f], 0x3c
mov byte [esp + 0xcb], 0x2d
mov byte [esp + 0x174], 0x69
mov eax, dword [esp + 0x45c]
lea ecx, [eax + 0xa4]
mov dword [esp + 0x284], ecx
lea ecx, [eax + 0xa8]
mov dword [esp + 0x31c], ecx
lea eax, [eax + 0x1b8]
mov dword [esp + 0x98], eax
mov dword [esp + 0x418], 0
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x3d8], 0
mov byte [esp + 0x8d], 7
mov byte [esp + 0x1a4], 0x45
mov byte [esp + 0x8f], 0x66
mov byte [esp + 0x238], 0x7f
mov byte [esp + 0xa8], 0x4a
mov byte [esp + 0x218], 0x71
mov byte [esp + 0x1df], 0x3b
mov byte [esp + 0x1c8], 0x28
mov byte [esp + 0x1e4], 0xa
mov byte [esp + 0xf0], 0x75
mov byte [esp + 0x168], 0x30
mov byte [esp + 0x190], 0x4e
mov byte [esp + 0xd0], 0x69
mov byte [esp + 0xb4], 0x51
mov byte [esp + 0x6b], 0x51
mov byte [esp + 0x154], 6
mov esi, 0x1c
mov ecx, dword [esp + 0x52c]
test ecx, ecx
mov dword [esp + 0x3f0], 0x70000031
je 0x55b4d8
mov eax, 0x12
mov dword [esp + 0x230], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x40c], ecx
je 0x55b4ed
cmp eax, 6
mov edx, dword [esp + 0x348]
je 0x55b55e
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x55b56a
movzx ecx, byte [esp + 0x190]
cmp ecx, 0x4e
je 0x55b576
mov eax, 6
cmp ecx, 0x75
mov esi, dword [esp + 0x418]
jne 0x55b5bb
mov ecx, dword [esp + 0x458]
mov edi, dword [esp + 0x43c]
mov edx, dword [esp + 0x3f8]
jmp 0x55eb22
mov dword [esp + 0x230], ecx
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
cmp esi, 0xc
je 0x55b6e2
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x450], ecx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x42c], edx
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], edx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov dword [esp + 0x41c], eax
jne 0x56134e
jmp 0x563646
mov ecx, dword [esp + 0x1b0]
jmp 0x559a36
mov ecx, dword [esp + 0x1b0]
jmp 0x559a36
mov eax, 0xd
mov byte [esp + 0x190], 0x1d
mov ecx, dword [esp + 0x18c]
mov edx, dword [ecx + 8]
mov dword [esp + 0x28c], edx
mov ecx, dword [esp + 0x418]
shl ecx, 6
mov ecx, dword [edx + ecx + 0x10]
test ecx, ecx
jne 0x55bacd
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
jne 0x55b60b
jmp 0x55bacd
mov byte [esp + 0x190], 0x75
mov eax, dword [esp + 0x18c]
mov ecx, dword [eax + 8]
mov dword [esp + 0x28c], ecx
mov eax, esi
shl eax, 6
mov eax, dword [ecx + eax + 0x10]
test eax, eax
mov edx, dword [esp + 0x458]
je 0x55b60b
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x430], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jne 0x55bb8c
mov esi, 0x15
movzx eax, byte [esp + 0x168]
cmp eax, 0x30
jne 0x55b71f
mov eax, dword [esp + 0x43c]
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x3f8]
cmp esi, 5
je 0x55b6c8
imul esi, esi
and esi, 3
cmp esi, 3
je 0x55b6c8
mov dword [esp + 0x3f8], ecx
mov dword [esp + 0x438], eax
mov byte [esp + 0x168], 0x60
mov esi, dword [esp + 0x418]
mov ecx, esi
shl ecx, 6
mov edx, dword [esp + 0x28c]
mov ecx, dword [edx + ecx + 0x18]
test ecx, ecx
je 0x55b81a
mov dword [esp + 0x110], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], 0x16
jne 0x55b79a
jmp 0x55e495
mov dword [esp + 0x3f8], ecx
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x430]
jmp 0x562d57
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x563646
mov dword [esp + 0x450], 0x10
mov byte [esp + 0x168], 0x30
mov esi, dword [esp + 0x418]
mov ecx, esi
shl ecx, 6
mov eax, dword [esp + 0x28c]
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x110], eax
test eax, eax
je 0x55baa5
xor ecx, ecx
test cl, cl
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x438], edx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
jne 0x55dd33
mov dword [esp + 0x454], eax
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x444], edi
mov dword [esp + 0x440], ebx
movzx eax, byte [esp + 0xf0]
cmp eax, 0x40
je 0x55b84d
cmp eax, 0x47
mov ecx, dword [esp + 0x444]
mov edx, dword [esp + 0x418]
je 0x55b8d9
mov edi, 0xc
cmp eax, 0x75
jne 0x55b8fd
mov byte [esp + 0xf0], 0x75
mov eax, edx
shl eax, 6
mov ecx, dword [esp + 0x28c]
cmp dword [ecx + eax + 0x1c], 0
je 0x55bf76
xor eax, eax
test al, al
je 0x564833
jmp 0x55bf76
mov dword [esp + 0x110], ecx
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], 0x16
jmp 0x55e495
mov eax, 0xa
mov byte [esp + 0xf0], 8
mov ecx, dword [esp + 0x418]
shl ecx, 6
mov edx, dword [esp + 0x28c]
cmp dword [edx + ecx + 0x1c], 0
je 0x55bab1
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
je 0x56473e
jmp 0x55bacd
mov byte [esp + 0xf0], 0x47
mov eax, edx
shl eax, 6
mov ecx, dword [esp + 0x28c]
cmp dword [ecx + eax + 0x1c], 0
jne 0x564833
jmp 0x55bf76
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov ecx, dword [esp + 0x3e4]
cmp edi, 5
jne 0x55ba09
mov eax, 3
sub eax, edi
xor eax, edi
je 0x55ba09
mov dword [esp + 0x3e4], ecx
mov esi, edx
mov dword [esp + 0x418], esi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov ebx, dword [esp + 0x384]
jmp 0x559ade
mov dword [esp + 0x3e4], ecx
mov byte [esp + 0xf0], 0x40
mov eax, edx
mov dword [esp + 0x418], edx
shl eax, 6
mov ecx, dword [esp + 0x28c]
mov ecx, dword [ecx + eax + 0x1c]
test ecx, ecx
mov edx, dword [esp + 0x450]
jne 0x55bb21
mov dword [esp + 0x4c], 0xf
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov ecx, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x434]
mov eax, 0xe
jb 0x56032d
jmp 0x560a48
mov edx, dword [esp + 0x43c]
jmp 0x55dd17
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
cmp eax, 0xa
jne 0x55bb03
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jne 0x55bf76
jmp 0x55bb8c
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jmp 0x55bb8c
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov dword [esp + 0x404], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov ecx, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x434]
mov eax, 0xe
jmp 0x560a48
mov byte [esp + 0x1e4], 0xa
cmp dword [ecx], 5
je 0x55bf76
xor eax, eax
test al, al
jne 0x55bf76
mov eax, 0x1b
mov ecx, dword [esp + 0x230]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x55bbb7
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x114], edx
jne 0x55bf76
jmp 0x55bbbe
mov dword [esp + 0x114], edx
mov ecx, 3
cmp eax, 0xf
jne 0x55bc17
mov edx, 3
sub edx, eax
xor edx, eax
je 0x55bc17
mov ebx, dword [esp + 0x430]
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
jmp 0x558976
mov eax, dword [esp + 0x418]
mov edx, dword [esp + 0x114]
mov eax, dword [edx + eax*4]
cmp eax, 3
jne 0x55bf76
mov edx, eax
and edx, 1
xor edx, eax
not edx
test edx, edx
je 0x55bf76
cmp ecx, 3
je 0x55bc88
xor eax, eax
test al, al
jne 0x55bc88
mov edx, 0xe
mov byte [esp + 0x320], 0x40
mov byte [esp + 0x22c], 0x72
mov eax, dword [esp + 0x26c]
cmp eax, 2
jne 0x55c24e
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x55c7e3
jmp 0x55c24e
mov edi, 1
movzx eax, byte [esp + 0x1c8]
cmp eax, 0x3e
jne 0x55bd4a
mov esi, 0x1f
mov byte [esp + 0x1c8], 0x3e
mov eax, dword [esp + 0x418]
shl eax, 6
mov edx, dword [esp + 0x28c]
mov ecx, dword [edx + eax + 4]
mov eax, dword [edx + eax + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.00410fa0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jne 0x55bf76
jmp 0x563a51
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov edx, dword [esp + 0x444]
mov esi, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x40c], ecx
mov dword [esp + 0x3f0], eax
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jne 0x55be25
mov dword [esp + 0x434], esi
mov dword [esp + 0x428], edx
mov esi, 5
mov byte [esp + 0x1c8], 0x28
mov eax, dword [esp + 0x418]
shl eax, 6
mov edx, dword [esp + 0x28c]
mov ecx, dword [edx + eax + 4]
mov eax, dword [edx + eax + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.00410fa0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x56392f
jmp 0x55be46
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], edx
mov dword [esp + 0x42c], esi
jmp 0x55cbda
mov eax, 7
movzx ecx, byte [esp + 0x1df]
cmp ecx, 0x44
jne 0x55be7d
mov eax, dword [esp + 0x52c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x418]
mov dword [eax + ecx*4], 0
mov byte [esp + 0x1df], 0x44
jmp 0x55bf22
mov edi, dword [esp + 0x43c]
mov ebx, dword [esp + 0x420]
mov edx, dword [esp + 0x428]
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov dword [esp + 0x438], edi
mov dword [esp + 0x444], edx
mov dword [esp + 0x440], ebx
cmp eax, 7
je 0x55bf00
imul eax, eax
and eax, 3
cmp eax, 3
je 0x55bf00
mov byte [esp + 0x154], 6
mov eax, dword [esp + 0x284]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14c]
mov dword [ecx], eax
jmp 0x55e3e2
mov byte [esp + 0x1df], 0x3b
mov eax, dword [esp + 0x52c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x418]
mov dword [eax + ecx*4], 0
jmp 0x55bf76
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
call fcn.00449410
mov ecx, dword [esp + 0x52c]
mov edi, dword [ecx + 0x10]
mov ecx, edi
and ecx, 1
inc ecx
xor edx, edx
xor ecx, edi
mov esi, dword [esp + 0x418]
lea ecx, [edi + esi*4]
cmove ecx, edx
test edi, edi
cmove ecx, edi
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x598]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x3d0], ecx
mov edx, esi
shl edx, 6
mov edi, dword [ecx + edx + 0x10]
test edi, edi
jne 0x55c035
mov ecx, edi
and ecx, 1
xor ecx, edi
not ecx
test ecx, ecx
je 0x55c035
mov cl, byte [esp + 0x218]
movsx edx, cl
cmp edx, 0x4e
jg 0x55c10f
cmp eax, 7
jne 0x55c3c7
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x55c3c7
mov byte [esp + 0x184], 0x1e
mov eax, dword [esp + 0x528]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x180]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
mov dword [esp + 0x43c], edi
jmp 0x56188a
cmp eax, 2
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x384], ebx
je 0x55957c
jmp 0x55c9c1
cmp edx, 0xe
jne 0x55c262
imul edx, edx
and edx, 3
cmp edx, 2
jb 0x561b86
mov byte [esp + 0x218], 0x4f
mov eax, dword [esp + 0x364]
mov edx, dword [eax]
cmp dword [esp + 0x3c4], 0
je 0x55c372
test edx, edx
mov edi, dword [esp + 0x438]
je 0x55c3a0
mov eax, 0xc
mov ecx, edx
mov dword [esp + 0x2f8], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x55c8c5
jmp 0x562dc0
mov dword [esp + 0x2f8], edx
mov edi, dword [esp + 0x438]
jmp 0x562dc0
mov dword [esp + 0x2f8], edx
jmp 0x562dc0
mov dword [esp + 0x438], edi
mov edi, 7
mov eax, dword [esp + 0x3c4]
cmp dword [eax], 0
jne 0x55c3f2
mov eax, dword [esp + 0x438]
mov ebx, dword [esp + 0x430]
jmp 0x556a29
mov edx, 0xa
movzx ecx, byte [esp + 0x174]
cmp ecx, 0x69
jne 0x55c410
mov esi, dword [esp + 0x418]
jmp 0x55ddaf
mov byte [esp + 0x174], 0x69
mov eax, dword [esp + 0x418]
shl eax, 6
mov ecx, dword [esp + 0x3d0]
lea esi, [ecx + eax + 0x14]
mov edx, dword [ecx + eax + 0x14]
test edx, edx
je 0x55c452
mov eax, 1
mov ecx, edx
mov dword [esp + 0x200], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x562de5
movzx eax, byte [esp + 0xa8]
cmp eax, 0x4a
jne 0x55c489
mov byte [esp + 0xa8], 0x4a
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x200], eax
mov dword [esi], eax
jmp 0x562df9
mov edi, 0xd
mov byte [esp + 0xa8], 0x31
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x200], eax
mov dword [esi], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
mov ebx, dword [esp + 0x394]
mov dword [esp + 0x394], ebx
cmp edi, 0xd
je 0x55c57d
xor eax, eax
test al, al
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], edx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edx
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x41c], esi
mov dword [esp + 0x454], esi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
je 0x563771
jmp 0x562df9
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
jmp 0x562df9
mov eax, 3
mov byte [esp + 0x29f], 0x5f
mov ecx, dword [esp + 0x200]
cmp dword [ecx], 0
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
jne 0x558e17
mov eax, dword [esp + 0x3c4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c0]
mov dword [ecx], eax
jmp 0x55e3e2
mov eax, dword [esp + 0x418]
mov ecx, eax
shl ecx, 6
mov eax, dword [esp + 0x3d0]
mov eax, dword [eax + ecx + 0x14]
test eax, eax
jne 0x55c6ac
mov edx, eax
not edx
and edx, 1
add edx, eax
je 0x55c6ac
mov eax, dword [esp + 0x3d0]
lea esi, [eax + ecx + 0x14]
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
mov ecx, dword [eax]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x55c6d3
mov ecx, dword [esp + 0x31c]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x55e3e2
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
jmp 0x55e3ed
mov dword [esp + 0x420], edi
mov edi, esi
mov eax, 0xb
mov byte [esp + 0x238], 0x7f
mov ecx, dword [esp + 0x418]
shl ecx, 6
mov edx, dword [esp + 0x3d0]
mov ecx, dword [edx + ecx + 0x14]
mov dword [esp + 0x1d8], ecx
test ecx, ecx
je 0x55c735
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
je 0x55c748
jmp 0x55fd2a
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
jmp 0x55fd2a
mov eax, dword [esp + 0x1d8]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, 0xb
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x414], edi
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x404], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x408], ecx
mov ecx, 4
mov edx, dword [esp + 0x3d8]
mov dword [esp + 0x410], edx
jne 0x55e537
cmp ecx, 4
jne 0x55c7e3
mov eax, 0x1b
movzx ecx, byte [esp + 0x22c]
cmp ecx, 0x7a
jne 0x55c8be
mov eax, 0x10
mov byte [esp + 0x22c], 0x7a
mov ecx, dword [esp + 0x538]
mov esi, dword [esp + 0x52c]
cmp ecx, 0x22
sbb dl, dl
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb cl, cl
and cl, dl
test cl, 1
jne 0x55c938
test esi, esi
mov dword [esp + 0x244], esi
je 0x55cda0
mov ecx, 0xf
xor edx, edx
test dl, dl
jne 0x55cda0
cmp ecx, 0xa
je 0x56041b
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jne 0x563e46
jmp 0x56134e
mov edi, dword [esp + 0x438]
cmp eax, 0xc
je 0x55c3c7
xor eax, eax
test al, al
jne 0x55c3c7
mov dword [esp + 0x438], edi
mov eax, 0x1d
mov byte [esp + 0x22c], 0x72
mov edx, dword [esp + 0x538]
mov edi, dword [esp + 0x52c]
mov dword [esp + 0x244], edi
test edi, edi
sete cl
mov esi, edi
and esi, 1
xor esi, edi
cmp esi, 0xffffffff
setne ch
cmp edx, 0x22
jb 0x561abe
imul edx, edx
and edx, 3
cmp edx, 2
je 0x561abe
and cl, ch
je 0x563e46
jmp 0x561abe
mov dword [esp + 0x244], esi
jmp 0x55cda0
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jb 0x56073a
mov eax, dword [esp + 0x418]
shl eax, 6
mov ecx, dword [esp + 0x3d0]
mov edx, dword [ecx + eax + 0x1c]
test edx, edx
jne 0x55ca1d
cmp ecx, 0xb
jne 0x55cbed
mov eax, 4
mov byte [esp + 0x204], 0x13
mov edx, dword [esp + 0x170]
movsd xmm0, qword [edx]
mov esi, dword [esp + 0x16c]
movsd qword [esi], xmm0
movsd xmm0, qword [edx + 8]
movsd qword [esi + 8], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx + 0x18]
movsd qword [esi + 0x18], xmm0
mov ecx, dword [edx + 0x20]
mov dword [esi + 0x20], ecx
mov ecx, dword [edx + 0x24]
mov dword [esi + 0x24], ecx
mov ecx, dword [edx + 0x28]
mov dword [esi + 0x28], ecx
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], 0
mov ecx, dword [edx + 0x30]
mov dword [esi + 0x34], ecx
mov ecx, dword [edx + 0x34]
mov dword [esi + 0x38], ecx
mov ecx, dword [esp + 0x420]
mov edx, dword [esp + 0x428]
mov edi, dword [esp + 0x434]
mov dword [esp + 0x44c], edi
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x454], edi
mov dword [esp + 0x264], esi
mov dword [esp + 0x260], esi
mov ebx, dword [esp + 0x458]
mov dword [esp + 0x444], edx
mov dword [esp + 0x440], ecx
cmp eax, 4
je 0x559f6a
xor eax, eax
test al, al
je 0x562d57
jmp 0x559f6a
cmp esi, 0xd
mov eax, esi
mov edx, dword [esp + 0x458]
mov esi, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x434]
jne 0x55cbc5
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x440], edi
mov dword [esp + 0x444], esi
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x448], edi
mov dword [esp + 0x450], esi
mov dword [esp + 0x42c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x430], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jne 0x55d1bc
jmp 0x56134e
mov dword [esp + 0x448], edi
mov dword [esp + 0x450], esi
mov dword [esp + 0x42c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jmp 0x56134e
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jmp 0x55cd38
cmp edx, 0xf
je 0x557150
xor eax, eax
test al, al
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x557150
mov ecx, 0xc
mov ebx, dword [esp + 0x234]
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
sete al
movzx eax, al
cmp ebx, eax
jne 0x55cdfa
mov esi, dword [esp + 0x360]
mov edi, dword [esp + 0x440]
cmp ecx, 0xc
jne 0x55ce8c
mov dword [esp + 0x440], edi
movzx ecx, byte [esp + 0x72]
cmp ecx, 0x65
je 0x55d27e
mov dword [esp + 0x360], esi
mov eax, 2
mov esi, 3
cmp ecx, 0x67
je 0x56037f
cmp eax, 2
jne 0x561b86
mov eax, dword [esp + 0x6c]
cmp dword [eax], 0
je 0x55cfd1
mov eax, dword [esp + 0x3c4]
mov eax, dword [eax]
test eax, eax
mov edx, dword [esp + 0x27c]
mov esi, dword [esp + 0x418]
jne 0x55d063
mov edi, 0xb
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x55d063
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov ecx, dword [esp + 0x438]
jmp 0x55aa82
mov dword [esp + 0x360], esi
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov esi, dword [esp + 0x414]
mov ebx, dword [esp + 0x404]
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov dword [esp + 0x448], edi
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov edi, dword [esp + 0x454]
movzx ecx, byte [esp + 0xcb]
cmp ecx, 0x13
jne 0x55cf6d
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x450], 0xc
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], edi
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], ebx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x408], ecx
mov edi, dword [esp + 0x32c]
jmp 0x5634b7
mov dword [esp + 0x450], edx
mov byte [esp + 0xcb], 0x2d
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x360], ecx
mov eax, dword [esp + 0xf4]
mov dword [eax], ecx
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x408], eax
jmp 0x55d526
mov eax, dword [esp + 0x31c]
cmp dword [eax], 0
mov edx, dword [esp + 0x27c]
mov esi, dword [esp + 0x418]
je 0x55aae7
mov ecx, 0x16
mov al, byte [esp + 0x5f]
movzx eax, al
cmp eax, 0x3c
je 0x55d348
cmp eax, 0x62
mov edi, dword [esp + 0x438]
jne 0x55d4bf
mov eax, 0xd
movzx ecx, byte [esp + 0xd0]
cmp ecx, 0x1c
jne 0x55d2a4
mov ecx, 0x18
mov byte [esp + 0xd0], 0x69
mov eax, esi
shl eax, 6
mov esi, dword [esp + 0x3d0]
lea edx, [esi + eax + 0x14]
mov dword [esp + 0xf4], edx
mov esi, dword [esi + eax + 0x14]
test esi, esi
je 0x55cd61
mov edi, 5
mov eax, dword [esp + 0x284]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x56001f
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete byte [esp + 0x458]
mov esi, dword [esp + 0x418]
shl esi, 6
mov ebx, dword [esp + 0x3d0]
mov edx, dword [ebx + esi + 0x14]
mov dword [esp + 0x270], edx
test edx, edx
setne ch
mov edi, edx
and edi, 1
xor edi, edx
cmp edi, 0xffffffff
setne cl
and cl, ch
movzx edx, byte [esp + 0x458]
cmp eax, edx
lea eax, [ebx + esi + 0x14]
mov dword [esp + 0xb8], eax
jne 0x55d263
mov eax, 0x16
test cl, cl
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
je 0x55e3ed
jmp 0x56195a
mov eax, 6
test cl, cl
mov ecx, dword [esp + 0x270]
mov esi, ecx
jne 0x55e079
jmp 0x56199b
mov eax, 0x18
mov byte [esp + 0x72], 0x65
mov ecx, dword [esp + 0xa4]
cmp dword [ecx], 0
mov ebx, dword [esp + 0x3b4]
jne 0x55d7ff
jmp 0x55d5cc
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x414]
mov dword [esp + 0x41c], ecx
mov ecx, dword [esp + 0x404]
mov edi, dword [esp + 0x400]
mov dword [esp + 0x434], edi
mov edi, dword [esp + 0x408]
mov dword [esp + 0x420], edi
mov edi, dword [esp + 0x440]
mov dword [esp + 0x448], edi
mov edi, dword [esp + 0x444]
mov dword [esp + 0x450], edi
mov edi, dword [esp + 0x44c]
mov dword [esp + 0x42c], edi
mov edi, dword [esp + 0x454]
jmp 0x5585ca
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov ebx, dword [esp + 0x394]
mov edx, dword [esp + 0x3e4]
mov edi, dword [esp + 0x3e8]
mov dword [esp + 0x3e4], edx
cmp ecx, 0xe
je 0x55d427
mov eax, 0xe
mov esi, dword [esp + 0x360]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x55d613
mov eax, 0xf
movzx ecx, byte [esp + 0xb4]
cmp ecx, 0x51
mov ecx, dword [esp + 0x458]
mov ebx, dword [esp + 0x450]
jne 0x55d6cf
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x444], ebx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x454], edi
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
mov dword [esp + 0xa0], esi
mov ebx, dword [esp + 0x3b4]
cmp eax, 0xf
jne 0x5603cc
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x5603cc
mov dword [esp + 0x360], esi
mov dword [esp + 0x3b4], ebx
mov byte [esp + 0xb4], 0x51
mov eax, dword [esp + 0x3c4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa0]
mov dword [ecx], eax
jmp 0x55e3e2
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ebx, dword [esp + 0x450]
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x41c], edi
mov ecx, dword [esp + 0x3d8]
mov edx, ecx
mov dword [esp + 0xa0], esi
mov edi, dword [esp + 0x458]
mov dword [esp + 0x410], edx
mov dword [esp + 0x360], esi
cmp eax, 5
jne 0x55d6a0
mov dword [esp + 0x428], ebx
mov esi, 0x10
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
mov cl, byte [esp + 0x376]
jmp 0x563790
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], edi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], ebx
jmp 0x55f3d1
mov eax, dword [esp + 0x3c4]
mov eax, dword [eax]
mov dword [esi], eax
mov byte [esp + 0xb4], 0x76
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], ebx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], edi
mov dword [esp + 0x410], 1
mov dword [esp + 0xa0], esi
jmp 0x55e3ed
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x2bc], ecx
mov eax, dword [esp + 0xec]
mov dword [eax], ecx
mov dword [esp + 0x438], edi
mov edi, 0xc
mov edx, dword [esp + 0x2bc]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x55d79f
mov dword [esp + 0x430], esi
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [edx], eax
jmp 0x55e3e2
mov dword [esp + 0x458], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
jmp 0x55e881
mov eax, 0xc
mov ecx, dword [esp + 0x3c4]
cmp dword [ecx], 0
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov edx, dword [esp + 0x440]
mov dword [esp + 0x420], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 0x41c], edx
jne 0x55dbd0
mov dword [esp + 0x360], esi
mov eax, dword [esp + 0x418]
shl eax, 6
mov ecx, dword [esp + 0x3d0]
mov ecx, dword [ecx + eax + 0x14]
test ecx, ecx
jne 0x55d97f
mov eax, 7
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
je 0x55d97f
mov dword [esp + 0x3b4], ebx
mov edx, dword [esp + 0x430]
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x42c], ecx
mov esi, dword [esp + 0x454]
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
cmp eax, 7
jne 0x55d9a4
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x444], ecx
mov edi, dword [esp + 0x42c]
mov dword [esp + 0x44c], edi
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], edi
mov dword [esp + 0x454], esi
mov dword [esp + 0x41c], esi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], edx
mov dword [esp + 0x458], edx
jne 0x55e3ed
jmp 0x563771
mov dword [esp + 0x3b4], ebx
cmp dword [ecx], 0
je 0x55c6d3
xor eax, eax
test al, al
jne 0x55c6d3
mov dword [ecx], 0
jmp 0x55e3e2
mov dword [esp + 0x458], edx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
jmp 0x563771
mov dword [esp + 0x3b4], ebx
mov eax, 5
mov ecx, dword [esp + 0x418]
shl ecx, 6
mov edi, dword [esp + 0x3d0]
lea edx, [edi + ecx + 0x14]
mov dword [esp + 0x50], edx
mov ecx, dword [edi + ecx + 0x14]
mov dword [esp + 0xcc], ecx
test ecx, ecx
je 0x55da3e
mov ecx, 4
xor edx, edx
test dl, dl
mov edx, dword [esp + 0x410]
mov edi, dword [esp + 0x458]
mov ebx, dword [esp + 0x428]
je 0x561026
jmp 0x55d654
mov edx, dword [esp + 0x410]
mov edi, dword [esp + 0x458]
mov ebx, dword [esp + 0x428]
jmp 0x55d654
mov dword [esp + 0x440], edx
mov eax, dword [esp + 0x3c4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x120]
mov dword [ecx], eax
mov byte [esp + 0x15c], 6
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov dword [esp + 0x430], ebx
jmp 0x55e3e2
mov eax, 0x18
mov ecx, dword [esp + 0x418]
shl ecx, 6
mov edx, dword [esp + 0x3d0]
mov esi, dword [edx + ecx + 0x14]
test esi, esi
jne 0x55db1e
mov edx, esi
not edx
and edx, 1
add edx, esi
mov ebx, dword [esp + 0x3b4]
je 0x55db78
mov eax, dword [esp + 0x3d0]
lea esi, [eax + ecx + 0x14]
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
jmp 0x55dca5
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov edx, dword [esp + 0x440]
mov dword [esp + 0x420], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 0x41c], edx
mov ebx, dword [esp + 0x3b4]
jmp 0x55dbc9
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov edx, dword [esp + 0x440]
mov dword [esp + 0x420], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 0x41c], edx
mov esi, dword [esp + 0x360]
cmp eax, 0xc
jne 0x55dc4d
mov dword [esp + 0x43c], ecx
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov eax, dword [esp + 0x64]
jne 0x55d9e1
mov dword [esp + 0x360], esi
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x454], ecx
jmp 0x55dca5
mov dword [esp + 0x360], esi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov dword [esp + 0x438], ecx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x64]
mov edx, 0x16
cmp dword [eax], 0
mov esi, dword [esp + 0x418]
jne 0x55dd96
mov dword [esp + 0x3b4], ebx
movzx ecx, byte [esp + 0x6b]
cmp ecx, 0x23
je 0x55de0c
cmp ecx, 0x51
jne 0x55de13
mov dword [esp + 0x450], 0x19
mov byte [esp + 0x6b], 0x23
mov ecx, dword [esp + 0x31c]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x410], 1
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov edx, dword [esp + 0x438]
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x454], eax
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x444], edi
mov dword [esp + 0x440], ebx
mov dword [esp + 0x43c], edx
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x450]
cmp eax, 0x10
jne 0x55de2c
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x430], ebx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jne 0x55bf76
jmp 0x55e3ed
mov dword [esp + 0x3b4], ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
cmp edx, 0xa
je 0x55ddcb
imul edx, edx
and edx, 3
cmp edx, 3
je 0x55ddcb
mov dword [esp + 0x418], esi
jmp 0x55e3ed
mov byte [esp + 0x174], 0x2c
mov eax, esi
mov dword [esp + 0x418], esi
shl eax, 6
mov ecx, dword [esp + 0x3d0]
lea esi, [ecx + eax + 0x14]
mov eax, dword [ecx + eax + 0x14]
test eax, eax
je 0x55c452
mov dword [esp + 0x200], eax
xor eax, eax
test al, al
je 0x562df9
jmp 0x55c452
mov byte [esp + 0x6b], 0x31
jmp 0x55de18
mov byte [esp + 0x6b], 0x51
mov ecx, dword [esp + 0x31c]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov dword [esp + 0x64], eax
jmp 0x55e3e2
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
jmp 0x55e3ed
mov eax, 3
sub eax, edi
xor eax, edi
je 0x560028
mov esi, 4
mov eax, dword [esp + 0x418]
shl eax, 6
mov edx, dword [esp + 0x3d0]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x84], ecx
mov eax, dword [edx + eax + 0x14]
test eax, eax
je 0x55de94
xor ecx, ecx
test cl, cl
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x438]
je 0x55ded9
jmp 0x55dea2
mov ebx, dword [esp + 0x440]
mov edi, dword [esp + 0x438]
cmp esi, 4
jne 0x55df52
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x55df52
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, dword [esp + 0x84]
mov dword [ecx], eax
mov dword [esp + 0x440], ebx
mov esi, ebx
mov ebx, 5
mov ecx, 0xa
cmp dword [eax], 0
mov edx, dword [esp + 0x430]
mov dword [esp + 0x458], edx
mov edx, dword [esp + 0x3d8]
mov dword [esp + 0x410], edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x448], esi
mov edx, dword [esp + 0x444]
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x43c], eax
jne 0x561ead
jmp 0x55df73
mov dword [esp + 0x440], ebx
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], edi
jmp 0x557688
cmp ecx, 0xa
je 0x55dfb9
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x55dfb9
mov dword [esp + 0x43c], edi
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
mov ebx, dword [esp + 0x458]
jmp 0x55a257
mov eax, 0x12
movzx ecx, byte [esp + 0x154]
cmp ecx, 6
mov esi, dword [esp + 0x458]
mov ebx, dword [esp + 0x440]
je 0x55dfea
mov eax, 0x17
cmp ecx, 0x60
jne 0x55e01b
mov ecx, esi
jmp 0x55beb5
mov dword [esp + 0x43c], edi
mov dword [esp + 0x420], ebx
mov edi, edx
mov ebx, dword [esp + 0x44c]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
mov edx, dword [esp + 0x3e4]
jmp 0x5590df
mov dword [esp + 0x438], edi
mov dword [esp + 0x444], edx
mov byte [esp + 0x154], 0x60
mov eax, dword [esp + 0x284]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14c]
mov dword [ecx], eax
mov dword [esp + 0x410], 1
mov dword [esp + 0x430], esi
jmp 0x55e3ed
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
mov eax, ecx
mov dword [esp + 0x90], eax
mov ecx, 0x10
mov edx, 5
cmp dword [eax], 0
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
mov dword [esp + 0x270], esi
mov edi, dword [esp + 0x438]
mov dword [esp + 0x43c], edi
mov eax, dword [esp + 0x430]
mov ebx, dword [esp + 0x440]
mov dword [esp + 0x448], ebx
mov esi, dword [esp + 0x444]
mov dword [esp + 0x450], esi
mov esi, dword [esp + 0x44c]
mov dword [esp + 0x42c], esi
mov esi, dword [esp + 0x454]
jne 0x55e178
cmp edx, 5
jne 0x55e191
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, 0x1b
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov dword [esp + 0x43c], edi
mov dword [esp + 0x448], ebx
mov edx, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x42c], ecx
mov esi, dword [esp + 0x454]
mov dword [esp + 0x410], 1
cmp eax, 0xe
mov ecx, dword [esp + 0x43c]
jne 0x558b3f
mov dword [esp + 0x450], edx
mov dword [esp + 0x424], esi
mov ebx, ecx
jmp 0x558b9d
cmp ecx, 0x10
jne 0x55b29b
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
jmp 0x55e1dc
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x420], ebx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x43c], edi
jmp 0x563646
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
jmp 0x55e3ed
mov eax, 0xc
mov byte [esp + 0x1a0], 0x21
mov ecx, dword [esi]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x55e2b9
cmp eax, 6
jne 0x55c6d3
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
jb 0x55c9c1
jmp 0x55e3ed
mov edi, 7
mov eax, dword [esp + 0x270]
mov dword [eax], 0
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov dword [esp + 0x410], 1
cmp edi, 7
jne 0x55e3cf
mov eax, 3
sub eax, edi
xor eax, edi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jne 0x55e3ed
jmp 0x5632a5
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
jmp 0x561251
mov dword [esp + 0x410], 1
mov dword [esp + 0x428], 0xe
mov dword [esp + 0x434], 8
mov eax, dword [esp + 0x598]
mov edx, dword [eax + 8]
mov dword [esp + 0x3fc], edx
add eax, 8
mov dword [esp + 0x3f8], eax
mov esi, dword [esp + 0x418]
mov ecx, esi
shl ecx, 6
mov eax, dword [edx + ecx + 0x10]
mov dword [esp + 0x3e0], eax
test eax, eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x440]
mov dword [esp + 0x448], ebx
mov edi, dword [esp + 0x444]
mov dword [esp + 0x450], edi
mov ecx, dword [esp + 0x44c]
mov esi, ecx
mov eax, dword [esp + 0x454]
mov edx, eax
jne 0x55fa9c
mov dword [esp + 0x454], eax
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x444], edi
mov dword [esp + 0x440], ebx
mov eax, dword [esp + 0x434]
cmp eax, 8
mov esi, dword [esp + 0x418]
mov edx, dword [esp + 0x3f8]
je 0x55e4d9
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x55bf76
movzx ecx, byte [esp + 0x1a8]
cmp ecx, 0x39
je 0x55ea81
mov eax, 0x10
cmp ecx, 0x5f
je 0x55eb14
mov edx, 9
cmp ecx, 0x75
mov eax, dword [esp + 0x438]
jne 0x55ec8c
mov eax, 0xc
mov byte [esp + 0x1a8], 1
mov ecx, esi
shl ecx, 6
mov edx, dword [esp + 0x3fc]
cmp dword [edx + ecx + 0x18], 0
je 0x55e537
xor ecx, ecx
test cl, cl
je 0x55edd0
cmp eax, 0xb
jne 0x55f85d
cmp ecx, 3
mov edx, dword [esp + 0x424]
jne 0x55e7e3
mov eax, 3
sub eax, ecx
xor eax, ecx
je 0x55e7e3
mov eax, dword [esp + 0x59c]
mov eax, dword [eax + 8]
imul ecx, dword [esp + 0x3cc], 0x1c
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x2b8], eax
mov eax, dword [eax]
mov dword [esp + 0x2b4], eax
mov esi, dword [esp + 0x3dc]
mov dword [esi], eax
mov eax, dword [esp + 0x370]
mov eax, dword [eax]
cmp eax, 2
sete cl
mov edx, eax
and edx, 1
inc edx
xor edx, eax
sete dl
or dl, cl
mov eax, dword [esp + 0x24c]
mov ecx, dword [eax]
cmp ecx, 0x21
sete al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx edx, dl
cmp edx, 1
mov byte [esp + 0x2ab], 0x58
jne 0x55f0d1
or al, cl
mov dword [esp + 0x1cc], esi
je 0x55f7bf
movzx ecx, byte [esp + 0x1f8]
cmp ecx, 0x43
je 0x55e9c3
mov eax, 0x19
cmp ecx, 0x57
mov edx, dword [esp + 0x3dc]
jne 0x55ea00
mov edi, dword [esp + 0x448]
mov ecx, dword [esp + 0x450]
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x44c], esi
mov esi, dword [esp + 0x424]
mov dword [esp + 0x454], esi
mov dword [esp + 0x1cc], edx
mov edx, ecx
mov ebx, dword [esp + 0x458]
cmp eax, 0xf
jne 0x55e96f
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x55e96f
mov esi, dword [esp + 0x414]
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov ecx, dword [esp + 0x400]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov dword [esp + 0x428], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x55a170
mov ebx, dword [esp + 0x448]
mov esi, dword [esp + 0x450]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], edx
mov edi, 7
lea eax, [esp + 0x574]
mov ecx, dword [esp + 0x45c]
lea ecx, [ecx + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x1fc]
test eax, eax
mov dword [esp + 0x448], ebx
mov dword [esp + 0x450], esi
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x424], ecx
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
jne 0x56134e
cmp edi, 7
je 0x55a9fe
jmp 0x558e83
cmp eax, 0xd
jne 0x56134e
mov ecx, dword [esp + 0x170]
movsd xmm0, qword [ecx]
mov edx, dword [esp + 0x16c]
movsd qword [edx], xmm0
movsd xmm0, qword [ecx + 8]
movsd qword [edx + 8], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [ecx + 0x18]
movsd qword [edx + 0x18], xmm0
mov eax, dword [ecx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [ecx + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0x2c], eax
mov dword [edx + 0x30], 0
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x34], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x38], eax
mov eax, 6
mov esi, dword [esp + 0x458]
mov edi, dword [esp + 0x43c]
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x454], ecx
mov byte [esp + 0x204], 0x1e
mov dword [esp + 0x264], edx
mov dword [esp + 0x260], edx
cmp eax, 4
mov dword [esp + 0x43c], edi
mov ebx, esi
jne 0x559f6a
jmp 0x55d738
mov dword [esp + 0x458], ebx
mov byte [esp + 0x1f8], 0x39
mov ecx, dword [esp + 0x2b8]
mov eax, dword [ecx + 4]
mov esi, edx
mov edx, dword [esp + 0x3dc]
mov dword [edx + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x330]
mov dword [ecx], eax
mov eax, dword [esp + 0x1cc]
mov eax, dword [eax]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x448], edi
mov dword [esp + 0x450], esi
jmp 0x55f7a3
mov byte [esp + 0x1f8], 0x43
mov ecx, dword [esp + 0x2b8]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3dc]
mov dword [edx + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x330]
mov dword [ecx], eax
mov eax, dword [edx]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1cc], edx
jmp 0x55f7bf
mov ecx, dword [esp + 0x2b8]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x330]
mov dword [ecx], eax
mov ecx, 6
mov esi, dword [esp + 0x458]
mov edi, dword [esp + 0x448]
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov byte [esp + 0x1f8], 0x57
mov eax, dword [edx]
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x1cc], edx
jmp 0x55ee5f
mov eax, 0xc
mov byte [esp + 0x1a8], 0x39
mov ecx, esi
shl ecx, 6
mov edi, dword [esp + 0x3fc]
mov ecx, dword [edi + ecx + 0x18]
test ecx, ecx
jne 0x55f9d8
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x450], ecx
mov edx, dword [esp + 0x44c]
mov dword [esp + 0x42c], edx
mov ebx, dword [esp + 0x454]
mov dword [esp + 0x424], ebx
mov ebx, esi
mov esi, dword [esp + 0x438]
mov dword [esp + 0x43c], esi
mov esi, dword [esp + 0x430]
mov dword [esp + 0x458], esi
mov esi, ebx
jne 0x562c6e
jmp 0x55ae54
mov edi, dword [esp + 0x438]
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x430], ecx
cmp eax, 6
je 0x55ebd7
xor eax, eax
test al, al
jne 0x55ebd7
mov dword [esp + 0x3f8], edx
mov ecx, 7
mov byte [esp + 0x1a8], 0x5f
mov eax, esi
mov dword [esp + 0x418], esi
shl eax, 6
mov edx, dword [esp + 0x3fc]
mov eax, dword [edx + eax + 0x18]
test eax, eax
je 0x55f916
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], edi
mov dword [esp + 0x438], edi
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jne 0x55edd0
jmp 0x559c2a
mov dword [esp + 0x438], edi
mov dword [esp + 0x3f8], edx
mov byte [esp + 0x190], 0x4e
mov eax, dword [esp + 0x18c]
mov ecx, dword [eax + 8]
mov dword [esp + 0x28c], ecx
mov eax, esi
mov dword [esp + 0x418], esi
shl eax, 6
mov ecx, dword [ecx + eax + 0x10]
test ecx, ecx
jne 0x55bb8c
mov eax, 0x17
mov edx, 3
sub edx, ecx
xor edx, ecx
je 0x55bb8c
cmp eax, 0xa
jne 0x557d57
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
jmp 0x557dba
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
cmp edx, 9
jne 0x55f0b7
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
je 0x55f0b7
mov byte [esp + 0x1a8], 0x75
mov esi, dword [esp + 0x418]
mov eax, esi
shl eax, 6
mov edi, dword [esp + 0x3fc]
mov ecx, dword [edi + eax + 0x18]
test ecx, ecx
je 0x562c6e
mov eax, 3
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x562c6e
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x418], esi
cmp eax, 3
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jne 0x557dba
mov eax, 0xd
mov esi, dword [esp + 0x418]
shl esi, 6
mov edi, dword [esp + 0x3fc]
cmp dword [edi + esi + 0x1c], 0
je 0x55eee0
call fcn.00449410
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx edx, cl
mov edi, dword [esp + 0x598]
mov ecx, dword [edi + 8]
add edi, 8
mov dword [esp + 0x208], edi
cmp eax, edx
jne 0x55ef08
mov eax, 0x15
mov ecx, dword [ecx + esi + 0x18]
mov edx, dword [ecx]
cmp edx, 3
mov edi, dword [esp + 0x440]
je 0x55f0dd
mov ecx, 0x14
mov esi, edx
and esi, 1
inc esi
xor esi, edx
mov edx, dword [esp + 0x3dc]
mov esi, dword [esp + 0x430]
je 0x55f0eb
mov dword [esp + 0x3dc], edx
cmp ecx, 6
je 0x55f779
xor eax, eax
test al, al
mov dword [esp + 0x458], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov dword [esp + 0x41c], eax
je 0x55f1fa
jmp 0x55f7bf
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov esi, dword [esp + 0x418]
jmp 0x562c27
mov eax, dword [ecx + esi + 0x1c]
cmp dword [eax], 3
mov ecx, dword [esp + 0x440]
je 0x55ef46
xor eax, eax
test al, al
jne 0x55ef46
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x420], ecx
jmp 0x55f11f
mov ebx, 0x11
movzx eax, byte [esp + 0x8e]
cmp eax, 0x61
mov edx, dword [esp + 0x444]
mov esi, dword [esp + 0x438]
jne 0x55f1a6
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], esi
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov esi, dword [esp + 0x418]
mov edx, esi
mov ecx, dword [esp + 0x3e4]
cmp ebx, 0xe
je 0x55f9eb
mov dword [esp + 0x3e4], ecx
mov esi, edx
mov dword [esp + 0x418], esi
xor eax, eax
test al, al
mov ecx, dword [esp + 0x458]
mov edx, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x434]
jne 0x55fa46
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov esi, ecx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov dword [esp + 0x444], edx
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov byte [esp + 0x8e], 0x61
mov eax, 8
mov edx, dword [esp + 0x3dc]
jmp 0x55f0eb
mov ebx, dword [esp + 0x458]
mov esi, dword [esp + 0x424]
mov edx, dword [esp + 0x450]
jmp 0x55a257
mov dword [esp + 0x1cc], esi
jmp 0x55f7bf
mov edx, dword [esp + 0x3dc]
mov esi, dword [esp + 0x430]
mov dword [esp + 0x3dc], edx
cmp eax, 8
jne 0x55f132
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x55f132
mov dword [esp + 0x458], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x420], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
jmp 0x55f1de
movzx eax, byte [esp + 0x73]
cmp eax, 0x15
mov ecx, dword [esp + 0x444]
mov edx, dword [esp + 0x44c]
je 0x55f990
cmp eax, 0x70
jne 0x55f997
mov ebx, esi
mov esi, 0x13
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], edx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov byte [esp + 0x73], 0x70
jmp 0x55f2ee
mov byte [esp + 0x8e], 0x5d
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], esi
mov dword [esp + 0x420], ecx
mov dword [esp + 0x428], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x52c]
mov eax, dword [eax + 0x10]
test eax, eax
mov esi, dword [esp + 0x418]
je 0x55f237
movzx ecx, byte [esp + 0x1e0]
cmp ecx, 0x44
jne 0x55f342
mov byte [esp + 0x1e0], 0x14
mov eax, dword [eax + esi*4]
mov dword [esp + 0x290], eax
jmp 0x55f4a7
mov eax, 0x11
mov dword [esp + 0x290], 0
mov ecx, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov edx, dword [esp + 0x434]
cmp eax, 0x10
jne 0x55f489
mov dword [esp + 0x434], edx
mov dword [esp + 0x428], ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x55f4a0
mov dword [esp + 0x418], esi
mov esi, 0x10
mov ebx, 0x12
lea eax, [esp + 0x590]
mov dword [esp + 8], eax
lea eax, [esp + 0x594]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.00593400
mov dword [esp + 0x3f0], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0xdc], 0
cmp eax, ecx
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
je 0x560b1d
cmp esi, 0x10
je 0x55f968
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jne 0x55f1fa
jmp 0x56134e
mov edi, 9
mov byte [esp + 0x1e0], 0x44
mov eax, dword [eax + esi*4]
mov dword [esp + 0x290], eax
cmp edi, 5
jne 0x55f3f2
mov eax, 9
movzx ecx, byte [esp + 0x258]
cmp ecx, 0x29
je 0x5570ce
mov ecx, dword [esp + 0x240]
mov edx, dword [esp + 0x3e4]
mov ebx, dword [esp + 0x458]
mov esi, dword [esp + 0x420]
mov dword [esp + 0x240], ecx
cmp eax, 3
jne 0x55f3fe
mov dword [esp + 0x3e4], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
mov dword [esp + 0x440], esi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jmp 0x55e3ed
mov esi, dword [esp + 0x418]
jmp 0x55f4a7
mov dword [esp + 0x420], esi
mov dword [esp + 0x458], ebx
mov esi, 0x16
mov byte [esp + 0x258], 0x6e
mov eax, dword [esp + 0x5d4]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x5d8]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x3b8]
mov eax, dword [eax]
mov dword [esp + 0x274], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 0x3e4], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x55f76d
mov ecx, eax
mov dword [esp + 0x10c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x557150
jmp 0x56287e
mov dword [esp + 0x434], edx
mov dword [esp + 0x420], edi
mov dword [esp + 0x428], ecx
jmp 0x55f4a7
mov dword [esp + 0x420], edi
mov al, byte [esp + 0x2d7]
movzx eax, al
cmp eax, 0x3a
jne 0x55f627
mov eax, dword [esp + 0x208]
mov eax, dword [eax]
mov ecx, esi
shl ecx, 6
mov edx, dword [eax + ecx + 0x3c]
mov dword [esp + 0x454], edx
mov edx, dword [eax + ecx + 0x34]
mov dword [esp + 0x450], edx
mov edx, dword [eax + ecx + 0x2c]
mov dword [esp + 0x44c], edx
mov edx, dword [eax + ecx + 0x28]
mov dword [esp + 0x448], edx
mov edx, dword [eax + ecx + 0x24]
mov dword [esp + 0x444], edx
mov edx, dword [eax + ecx + 0x20]
mov dword [esp + 0x440], edx
mov dword [esp + 0x418], esi
mov esi, dword [eax + ecx + 0x1c]
mov edx, dword [eax + ecx + 0x18]
mov edi, dword [eax + ecx]
mov dword [esp + 0x438], edi
mov edi, dword [eax + ecx + 4]
mov dword [esp + 0x42c], edi
mov ebx, dword [eax + ecx + 0xc]
mov ecx, dword [esi]
mov edx, dword [edx]
mov byte [esp + 0x2d7], 0x3a
mov eax, dword [esp + 0x3ec]
mov esi, dword [eax]
mov eax, dword [esp + 0x45c]
mov edi, dword [eax]
mov dword [esp + 0x430], edi
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x290]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x454]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x450]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x44c]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x448]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x444]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x440]
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x418]
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x438]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x430]
mov dword [esp], eax
mov dword [esp + 0x18], 0xffffffff
call fcn.0042fd40
mov edi, eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
jmp 0x55fc76
mov eax, dword [esp + 0x208]
mov eax, dword [eax]
mov ecx, esi
mov dword [esp + 0x418], esi
shl ecx, 6
mov edx, dword [eax + ecx + 0x3c]
mov dword [esp + 0x454], edx
mov edx, dword [eax + ecx + 0x34]
mov dword [esp + 0x450], edx
mov edx, dword [eax + ecx + 0x2c]
mov dword [esp + 0x44c], edx
mov edx, dword [eax + ecx + 0x28]
mov dword [esp + 0x448], edx
mov edx, dword [eax + ecx + 0x24]
mov dword [esp + 0x444], edx
mov edx, dword [eax + ecx + 0x20]
mov dword [esp + 0x440], edx
mov esi, dword [eax + ecx + 0x1c]
mov edx, dword [eax + ecx + 0x18]
mov edi, dword [eax + ecx]
mov dword [esp + 0x438], edi
mov edi, dword [eax + ecx + 4]
mov dword [esp + 0x430], edi
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x42c], eax
mov ecx, dword [esi]
mov edx, dword [edx]
mov byte [esp + 0x2d7], 0x10
mov eax, dword [esp + 0x3ec]
mov esi, dword [eax]
mov eax, dword [esp + 0x45c]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x290]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x454]
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x450]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x44c]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x448]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x444]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x440]
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x430]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x18], 0xffffffff
call fcn.0042fd40
mov edx, 0x10
mov dword [esp + 0x324], eax
mov esi, dword [esp + 0x3b4]
jmp 0x5571ff
mov dword [esp + 0x10c], eax
jmp 0x56287e
mov dword [esp + 0x458], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x448], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x2b8]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x3dc]
mov dword [ebx + 8], eax
mov dword [ebx + 0x10], 0
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2ac]
mov dword [ecx], eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x318], ecx
mov eax, dword [esp + 0x368]
mov dword [eax], ecx
mov eax, dword [esp + 0x30c]
mov dword [eax], ebx
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov esi, dword [esp + 0x43c]
mov edx, dword [esp + 0x448]
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, 0xe
mov dword [esp + 0x314], ebx
jmp 0x561619
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3fc]
jmp 0x562c6e
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], edi
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jmp 0x559c2a
mov dword [esp + 0x448], edi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
jmp 0x55cbda
mov byte [esp + 0x73], 0x15
jmp 0x55f99c
mov byte [esp + 0x73], 0x53
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov dword [esp + 0x458], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x420], edi
mov dword [esp + 0x428], ecx
mov dword [esp + 0x434], edx
jmp 0x55f1ec
mov ecx, dword [esp + 0x444]
mov edx, dword [esp + 0x44c]
jmp 0x55ae54
mov dword [esp + 0x3e4], ecx
mov esi, edx
mov dword [esp + 0x418], esi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
jmp 0x559835
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov dword [esp + 0x430], ecx
mov ecx, edx
mov edx, ebx
jmp 0x559858
mov ebx, dword [esp + 0x3e0]
mov edi, dword [esp + 0x3f8]
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x42c], esi
mov dword [esp + 0x424], edx
mov edx, dword [esp + 0x428]
cmp edx, 0xe
jne 0x56134e
mov eax, 3
sub eax, edx
xor eax, edx
mov esi, ecx
je 0x56134e
mov ecx, dword [ebx]
test ecx, ecx
je 0x55fb78
mov eax, 2
cmp ecx, 3
mov edx, dword [esp + 0x3ec]
jne 0x55fc9e
movzx eax, byte [esp + 0x7f]
cmp eax, 0x11
jne 0x55fcaa
mov byte [esp + 0x7f], 0x11
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
jmp 0x55fdc7
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov dword [esp + 0x44c], eax
mov edx, esi
shl edx, 6
mov eax, dword [esp + 0x3fc]
mov ecx, dword [eax + edx]
mov dword [esp + 0x444], ecx
mov ebx, dword [eax + edx + 4]
mov edx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x45c]
mov ecx, esi
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x454]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x44c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], esi
mov esi, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edi, eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
jmp 0x55feb9
mov ebx, dword [esp + 0x43c]
jmp 0x561fc9
mov eax, dword [esp + 0x98]
mov dword [eax], 3
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov edi, dword [esp + 0x414]
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov byte [esp + 0x7f], 0x4b
mov eax, 0x14
cmp eax, 0xb
mov edx, dword [esp + 0x458]
mov esi, dword [esp + 0x43c]
mov ebx, dword [esp + 0x428]
jne 0x55fd8f
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov dword [esp + 0x438], esi
mov dword [esp + 0x414], edi
mov dword [esp + 0x404], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x408], eax
mov dword [esp + 0x430], edx
jne 0x55e3ed
mov dword [esp + 0x430], edx
mov dword [esp + 0x438], esi
mov dword [esp + 0x414], edi
mov dword [esp + 0x404], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x52c]
mov eax, dword [eax + 0x10]
test eax, eax
mov edx, dword [esp + 0x418]
mov esi, dword [esp + 0x3f8]
je 0x55fdee
xor ecx, ecx
test cl, cl
jne 0x55fdee
mov eax, dword [eax + edx*4]
jmp 0x55fdf7
mov eax, dword [esp + 0x284]
mov eax, dword [eax]
mov dword [esp + 0x458], eax
mov ecx, dword [esi]
shl edx, 6
mov esi, dword [ecx + edx + 0x10]
mov esi, dword [esi]
mov eax, dword [esp + 0x3ec]
mov edi, dword [eax]
mov eax, dword [ecx + edx]
mov dword [esp + 0x450], eax
mov eax, dword [ecx + edx + 4]
mov ecx, dword [ecx + edx + 0xc]
mov edx, dword [esp + 0x45c]
mov ebx, dword [edx]
mov dword [esp + 0x448], ebx
mov edx, dword [edx + 4]
mov ebx, dword [esp + 0x458]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x418]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x450]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x448]
mov dword [esp], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
call fcn.0042fd40
mov edi, eax
mov ebx, dword [esp + 0x3f4]
mov dword [esp], edi
call fcn.00411e90
mov dword [esp], edi
call fcn.004302d0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, esi
mov ecx, dword [esp + 0x598]
cmp eax, dword [ecx]
jae 0x55ff42
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
jae 0x55ff42
mov dword [esp + 0x324], edi
mov edx, dword [esp + 0x430]
mov dword [esp + 0x458], edx
mov edx, dword [esp + 0x438]
mov dword [esp + 0x43c], edx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x418], eax
mov eax, ebx
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x3d8], eax
jmp 0x55b436
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp ebx, eax
jne 0x560081
mov dword [esp + 0x3f4], ebx
mov al, 0x26
mov dword [esp + 0x3a8], 0
mov ecx, 0x15
movzx edx, al
cmp edx, 0xd
je 0x56014e
mov ebx, 0x12
cmp edx, 0x19
je 0x5601ae
mov dword [esp + 0x324], edi
mov dword [esp + 0x4c], 0x13
cmp edx, 0x26
jne 0x5602e7
mov dword [esp + 0x418], esi
mov edi, 0x14
mov esi, 0x10
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov eax, dword [esp + 0x598]
lea ecx, [esp + 0x58c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x594]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3a8], 0
test eax, eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
jne 0x56037f
cmp edi, 5
je 0x55de46
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x56073a
mov dword [esp + 0x3f4], ebx
mov dword [esp + 0x324], edi
mov dword [esp + 0x418], esi
mov ebx, 8
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x3a8], 0
cmp ebx, 8
je 0x563c85
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jne 0x56073a
jmp 0x56131a
mov dword [esp + 0x324], edi
mov dword [esp + 0x418], esi
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov esi, dword [esp + 0x444]
mov ebx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov edi, dword [esp + 0x32c]
jmp 0x563485
mov dword [esp + 0x324], edi
mov dword [esp + 0x418], esi
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
cmp ebx, 9
je 0x56052a
xor eax, eax
test al, al
mov esi, dword [esp + 0x424]
jne 0x56056e
mov ebx, 6
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov eax, dword [esp + 0x598]
lea ecx, [esp + 0x58c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x594]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov dword [esp + 0x3f0], eax
test eax, eax
je 0x5605ab
xor eax, eax
test al, al
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
je 0x56134e
jmp 0x560606
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x440]
mov ecx, dword [esp + 0x444]
mov ebx, dword [esp + 0x44c]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x418], esi
mov esi, dword [esp + 0x4c]
cmp esi, 0xf
jne 0x560474
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x560474
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x440], edi
mov dword [esp + 0x444], ecx
mov dword [esp + 0x44c], ebx
jmp 0x55bf68
cmp esi, 3
jne 0x56041b
mov eax, 0x20
mov ecx, dword [esp + 0x31c]
mov ecx, dword [ecx]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
je 0x55d861
mov dword [esp + 0x360], esi
mov dword [esp + 0x3b4], ebx
cmp eax, 0x10
je 0x55e3ed
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x55dac4
jmp 0x55e3ed
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jmp 0x56134e
mov dword [esp + 0x434], ebx
mov dword [esp + 0x428], ecx
mov ebx, 0x18
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov eax, dword [esp + 0x598]
lea ecx, [esp + 0x58c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x594]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov dword [esp + 0x3f0], eax
test eax, eax
je 0x560668
xor eax, eax
test al, al
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
je 0x56134e
jmp 0x5600fa
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x458]
jmp 0x5568d0
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
mov ebx, dword [esp + 0x458]
jmp 0x5568d0
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x454], esi
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
cmp ebx, 6
je 0x55c95e
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x55c9c1
mov dword [esp + 0x420], edi
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
jmp 0x5600fa
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov eax, dword [esp + 0x598]
lea ecx, [esp + 0x58c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x594]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov dword [esp + 0x3f0], eax
test eax, eax
je 0x56071e
mov al, 1
test al, al
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], esi
mov dword [esp + 0x428], esi
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x434], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jne 0x56134e
jmp 0x56073a
mov dword [esp + 0x434], ebx
mov dword [esp + 0x428], esi
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, 0x1c
mov byte [esp + 0x178], 0x22
mov ecx, dword [esp + 0x58c]
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x590], ecx
mov ecx, dword [esp + 0x398]
cmp dword [ecx], 0
je 0x560830
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x424], ecx
cmp eax, 0xd
jne 0x56095d
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x56095d
mov byte [esp + 0x184], 0x16
mov eax, dword [esp + 0x528]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x180]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x434], ecx
mov edx, dword [esp + 0x414]
mov dword [esp + 0x41c], edx
mov dword [esp + 0x424], edx
mov dword [esp + 0x450], eax
mov dword [esp + 0x42c], ecx
jmp 0x5618d7
mov ebx, 0xd
mov byte [esp + 0x148], 5
mov edx, dword [esp + 0x1b8]
test edx, edx
mov dword [esp + 0x3f0], 0x700002bb
je 0x560b16
mov eax, 0x10
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov esi, dword [esp + 0x414]
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x450], ecx
mov edx, dword [esp + 0x400]
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x40c], ecx
mov ecx, edx
mov edi, dword [esp + 0x420]
je 0x560b1d
cmp eax, 0x10
jne 0x560b79
mov dword [esp + 0x42c], ecx
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov ebx, dword [esp + 0x428]
je 0x560bba
movzx edx, byte [esp + 0x148]
cmp edx, 5
je 0x560c4b
mov eax, 2
mov ecx, 9
cmp edx, 0xf
mov dword [esp + 0x414], esi
mov edx, dword [esp + 0x450]
mov dword [esp + 0x404], edx
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x400], edx
mov edx, dword [esp + 0x448]
mov dword [esp + 0x408], edx
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
mov dword [esp + 0x450], ebx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x42c], edx
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x424], edx
je 0x559d93
jmp 0x5633cd
movzx eax, byte [esp + 0x178]
cmp eax, 0x22
je 0x5609be
mov ecx, 0x1d
cmp eax, 0x26
jne 0x560ab1
mov byte [esp + 0x178], 4
mov eax, dword [esp + 0x594]
mov ecx, dword [esp + 0x32c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.00593cf0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3a8], 0
test eax, eax
jmp 0x560d28
mov dword [esp + 0x428], 0x16
mov byte [esp + 0x178], 0x22
mov eax, dword [esp + 0x594]
mov ecx, dword [esp + 0x32c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.00593cf0
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3a8], 0
test eax, eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, 0xa
mov edi, dword [esp + 0x448]
mov ecx, dword [esp + 0x450]
mov esi, dword [esp + 0x42c]
mov ebx, esi
mov edx, dword [esp + 0x424]
mov dword [esp + 0x41c], edx
jne 0x55fa9c
cmp eax, 0xa
mov dword [esp + 0x448], edi
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x440], edi
mov dword [esp + 0x444], ecx
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
je 0x56131a
jmp 0x564833
mov edx, dword [esp + 0x458]
cmp ecx, 0xf
jne 0x560ccf
mov eax, ecx
not eax
and eax, 1
add eax, ecx
je 0x560ccf
mov esi, edx
mov edi, dword [esp + 0x43c]
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
jmp 0x55d75e
mov edi, dword [esp + 0x420]
cmp ebx, 0xd
jne 0x560c15
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov dword [esp + 0x448], edi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
jb 0x56134e
jmp 0x55b180
mov edx, dword [esp + 0x428]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov dword [esp + 0x400], ecx
jmp 0x560bfb
mov edx, ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov ebx, dword [esp + 0x458]
jmp 0x564273
mov dword [esp + 0x448], edi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jmp 0x55b180
mov dword [esp + 0x420], edi
mov edi, 8
mov byte [esp + 0x148], 0x21
mov byte [esp + 0x26b], 0x1d
mov edx, dword [esp + 0x1b8]
lea eax, [edx + 8]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x32c]
cmp ecx, dword [edx + 8]
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
lea eax, [edx + 4]
mov dword [esp + 0x220], eax
mov dword [esp + 0x20c], ecx
ja 0x560d93
jmp 0x5638e5
mov dword [esp + 0x458], edx
mov byte [esp + 0x178], 0x26
mov eax, dword [esp + 0x594]
mov ecx, dword [esp + 0x32c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp], eax
call fcn.00593cf0
mov dword [esp + 0x3f0], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x3a8], 0
cmp eax, ecx
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
je 0x56131a
jmp 0x56134e
mov esi, 0x1d
mov byte [esp + 0x148], 0xf
mov byte [esp + 0x26b], 0x1d
mov ecx, dword [esp + 0x1b8]
lea eax, [ecx + 8]
mov dword [esp + 0xd4], eax
lea eax, [ecx + 4]
mov dword [esp + 0x220], eax
cmp edi, dword [ecx + 8]
jbe 0x560edb
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
mov dword [esp + 0x20c], edi
je 0x5610a9
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x438], 9
mov ebx, 6
mov byte [esp + 0x94], 0x39
mov eax, dword [esp + 0x220]
mov eax, dword [eax]
mov esi, dword [esp + 0x32c]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x78], eax
test eax, eax
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x428], ecx
mov edx, dword [esp + 0x400]
mov dword [esp + 0x434], edx
mov eax, dword [esp + 0x408]
mov edi, eax
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], edx
mov dword [esp + 0x448], eax
mov dword [esp + 0x3f0], 0x70000003
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x20c], esi
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
je 0x5610c7
mov ecx, dword [esp + 0x438]
cmp ecx, 2
jne 0x560ee7
mov eax, 3
sub eax, ecx
xor eax, ecx
je 0x560ee7
mov byte [esp + 0x184], 0x74
mov eax, dword [esp + 0x528]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x180]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
jmp 0x558955
mov dword [esp + 0x20c], edi
jmp 0x5610a9
mov ecx, 0xe
movzx eax, byte [esp + 0x94]
cmp eax, 0xb
mov esi, dword [esp + 0x424]
jne 0x560fbd
mov dword [esp + 0x454], 2
mov byte [esp + 0x94], 0xb
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov eax, dword [esp + 0x590]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x590]
mov ecx, dword [esp + 0xd4]
mov dword [ecx], eax
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x590]
mov dword [esp + 0x20c], eax
jmp 0x5625f0
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov ebx, dword [esp + 0x444]
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov esi, dword [esp + 0x360]
mov edx, dword [esp + 0x410]
mov edi, dword [esp + 0x458]
mov dword [esp + 0x428], ebx
mov dword [esp + 0x458], edi
mov dword [esp + 0x360], esi
cmp ecx, 4
jne 0x56104f
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x563a7d
mov dword [esp + 0x410], edx
mov byte [esp + 0x94], 0x39
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x78]
mov dword [eax], ecx
mov eax, dword [esp + 0x590]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x590]
mov ecx, dword [esp + 0xd4]
mov dword [ecx], eax
mov eax, dword [esp + 0x590]
mov dword [esp + 0x20c], eax
jmp 0x56399b
cmp esi, 0xe
jne 0x56399b
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x561588
jmp 0x56399b
cmp ebx, 6
mov edx, dword [esp + 0x440]
je 0x561199
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x561199
movzx ecx, byte [esp + 0x15c]
cmp ecx, 6
jne 0x5611f2
mov eax, 0x19
mov byte [esp + 0x15c], 0x37
mov ecx, dword [esp + 0x3c4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x120]
mov dword [edx], ecx
mov dword [esp + 0x410], 1
mov esi, dword [esp + 0x414]
mov ebx, dword [esp + 0x3dc]
mov dword [esp + 0x3dc], ebx
cmp eax, 0xa
jne 0x561280
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov eax, dword [esp + 0x458]
mov edx, dword [esp + 0x428]
mov ebx, dword [esp + 0x434]
jne 0x558f6f
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x414], esi
mov dword [esp + 0x404], edx
mov dword [esp + 0x400], ebx
mov dword [esp + 0x408], edi
mov dword [esp + 0x430], eax
jmp 0x55e3ed
mov dword [esp + 0x448], edx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov dword [esp + 0x408], edi
jmp 0x56134e
mov dword [esp + 0x438], 0xd
mov esi, dword [esp + 0x414]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x450], ecx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x448], edi
mov ebx, dword [esp + 0x458]
cmp dword [esp + 0x438], 0xd
je 0x55da58
mov dword [esp + 0x424], esi
mov dword [esp + 0x458], ebx
mov dword [esp + 0x420], edx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jmp 0x5632a5
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x414], esi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x400], eax
mov dword [esp + 0x408], edi
jmp 0x563b2b
mov byte [esp + 0x26b], 0x1d
mov eax, dword [esp + 0x594]
mov ecx, dword [esp + 0x220]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x20c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007c51d0
mov dword [esp + 0x3a8], 0
mov dword [esp + 0x448], edi
mov dword [esp + 0x450], esi
mov dword [esp + 0x42c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412560
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x3d4]
mov dword [esp + 0x40c], eax
mov ecx, dword [esp + 0x40c]
test ecx, ecx
je 0x561497
mov byte [esp + 0x28b], 0x7e
mov ebx, 0xb
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x3e8], eax
je 0x561588
cmp ebx, 9
mov esi, dword [esp + 0x424]
mov edx, dword [esp + 0x450]
je 0x5614ee
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x5614fa
mov ebx, edx
movzx eax, byte [esp + 0x28b]
cmp eax, 0x7e
jne 0x561506
mov edi, 8
mov byte [esp + 0x28b], 8
mov eax, dword [esp + 0x1ec]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x3e8], eax
mov ecx, dword [esp + 0x458]
mov edx, ebx
mov dword [esp + 0x458], ecx
cmp edi, 8
je 0x561557
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], edx
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
jne 0x55b180
jmp 0x561588
mov byte [esp + 0x28b], 0x7e
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], ecx
jmp 0x56154e
mov ebx, dword [esp + 0x388]
jmp 0x5641ac
mov ebx, dword [esp + 0x388]
jmp 0x5641ac
mov byte [esp + 0x28b], 0x7e
mov eax, dword [esp + 0x1ec]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], ebx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0x3e8], eax
jmp 0x561588
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x428], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x41c], eax
mov edx, dword [esp + 0x534]
cmp edx, 2
ja 0x5616a5
mov eax, 5
xor ecx, ecx
test cl, cl
jne 0x5616a5
mov byte [esp + 0x320], 0x40
mov byte [esp + 0x340], 0x5b
mov dword [esp + 0x26c], edx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov esi, dword [esp + 0x43c]
mov edx, dword [esp + 0x420]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x3e8]
mov dword [esp + 0x294], ecx
mov ebx, dword [esp + 0x3dc]
cmp eax, 5
je 0x561673
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x561673
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov dword [esp + 0x43c], esi
mov eax, dword [esp + 0x414]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov edi, dword [esp + 0x408]
jmp 0x558edc
mov dword [esp + 0x438], esi
mov dword [esp + 0x3dc], ebx
mov ecx, 0xf
mov al, byte [esp + 0x320]
movzx eax, al
cmp eax, 0x40
jne 0x5617f8
mov dword [esp + 0x440], edx
jmp 0x55bc42
mov byte [esp + 0x320], 0x40
mov byte [esp + 0x340], 0x5b
mov cl, 0x67
mov eax, 0xb
movzx ecx, cl
cmp ecx, 0x42
je 0x5618f1
mov eax, 0xa
cmp ecx, 0x67
mov ecx, dword [esp + 0x3e8]
mov esi, dword [esp + 0x458]
mov edi, dword [esp + 0x428]
mov ebx, dword [esp + 0x434]
jne 0x561a17
mov dword [esp + 0x26c], edx
mov eax, dword [esp + 0x52c]
mov dword [esp + 0x244], eax
test eax, eax
je 0x561a81
xor eax, eax
test al, al
mov eax, 1
mov dword [esp + 0x430], esi
mov edx, dword [esp + 0x420]
mov dword [esp + 0x440], edx
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x454], edx
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x438], edx
mov dword [esp + 0x294], ecx
jne 0x561b86
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x563e46
mov edx, 0x16
movzx ecx, byte [esp + 0x130]
cmp ecx, 0x36
jne 0x557cc2
mov ebx, dword [esp + 0x430]
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov ecx, dword [esp + 0x3b0]
mov eax, dword [esp + 0x1f4]
mov edi, dword [esp + 0x3e8]
jmp 0x5622fa
mov dword [esp + 0x440], edx
mov eax, 0x1d
mov byte [esp + 0x320], 0x45
mov byte [esp + 0x22c], 0x72
mov esi, dword [esp + 0x26c]
cmp esi, 2
jne 0x561834
mov ecx, 5
mov edx, 3
sub edx, esi
xor edx, esi
jne 0x55c7cf
cmp eax, 0xe
jne 0x561b86
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x561b86
mov byte [esp + 0x184], 0x2e
mov eax, dword [esp + 0x528]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x180]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x430]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov dword [esp + 0x448], eax
jmp 0x5632a5
mov dword [esp + 0x26c], edx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x3e8]
mov dword [esp + 0x294], ecx
cmp eax, 0xb
mov esi, dword [esp + 0x270]
jne 0x5619c0
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x5619c0
mov ecx, dword [esp + 0x52c]
test ecx, ecx
je 0x561a69
mov eax, 0xd
mov edx, ecx
mov dword [esp + 0x244], edx
and ecx, 1
inc ecx
xor ecx, edx
je 0x561b86
cmp eax, 6
jne 0x561a75
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x55e05a
mov dword [esp + 0x270], esi
jmp 0x563e46
movzx eax, byte [esp + 0x1a0]
cmp eax, 0x37
jne 0x55e219
mov byte [esp + 0x1a0], 0x37
cmp dword [esi], 0
je 0x55c6d3
mov esi, 0xf
xor eax, eax
test al, al
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
jne 0x55e3ed
cmp esi, 9
je 0x55a42d
xor eax, eax
test al, al
je 0x55e2b9
jmp 0x55a42d
mov dword [esp + 0x26c], edx
mov dword [esp + 0x430], esi
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x420]
mov dword [esp + 0x440], edx
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x454], edx
mov dword [esp + 0x294], ecx
jmp 0x56300e
mov dword [esp + 0x244], ecx
jmp 0x561b86
mov dword [esp + 0x270], esi
jmp 0x563e46
mov dword [esp + 0x430], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov dword [esp + 0x294], ecx
jmp 0x561b86
cmp eax, 0xf
mov esi, dword [esp + 0x200]
jne 0x561b86
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x561b86
mov eax, 0xa
mov byte [esp + 0x29f], 0x2e
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x410], ecx
mov dword [esp + 0x2c0], esi
jne 0x55e3ed
cmp eax, 0xa
je 0x55c64e
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x55752f
jmp 0x55c64e
mov byte [esp + 0x340], 0x5b
mov eax, dword [esp + 0x244]
mov dword [esp], eax
mov dword [esp + 4], 0x34
call fcn.0064bf00
mov dword [esp + 0x430], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edi
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov edi, dword [esp + 0x5a8]
mov dword [esp + 0x3ac], 0
test edi, edi
mov edx, dword [esp + 0x430]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x43c], eax
mov byte [esp + 0x312], 0x28
lea eax, [esp + 0x5a8]
mov dword [esp + 0x2d0], eax
lea eax, [esp + 0x5a4]
mov dword [esp + 0x38c], eax
je 0x561dc9
mov eax, dword [esp + 0x38c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3ac]
lea ecx, [ecx + ecx*2]
mov esi, dword [eax + ecx*8 + 0x14]
test esi, esi
je 0x561d3d
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x561d3d
mov dword [esp + 0x458], edx
mov edx, 0x12
movzx ecx, byte [esp + 0x312]
cmp ecx, 0x28
jne 0x561d53
mov dword [esp + 0x458], edx
mov dword [esp + 0x11c], esi
mov esi, edi
jmp 0x561d73
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x250], eax
mov eax, 0xc
mov edx, dword [esp + 0x250]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov dword [esp + 0x3ac], edx
cmp edx, esi
jb 0x561e2d
mov dword [esp + 0x458], edx
mov ebx, 0x12
mov byte [esp + 0x338], 0x2a
mov eax, dword [esp + 0x38c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x59c]
test ecx, ecx
jne 0x561e9f
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x3bc], eax
mov esi, dword [esp + 0x424]
jne 0x56205a
jmp 0x561ead
mov dword [esp + 0x1c0], ecx
mov esi, dword [esp + 0x424]
cmp ebx, 5
jne 0x561ed3
mov dword [esp + 0x438], edi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x458]
jmp 0x55e1dc
mov eax, 9
mov cl, byte [esp + 0x338]
movzx ecx, cl
cmp ecx, 0xb
mov edx, dword [esp + 0x3ec]
je 0x561fa4
mov ebx, esi
cmp ecx, 0x2a
jne 0x562022
mov dword [esp + 0x438], edi
mov edi, 0xd
mov byte [esp + 0x338], 0x1f
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x3bc], eax
mov esi, dword [esp + 0x418]
mov edx, esi
mov esi, ebx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x418], edx
cmp edi, 0xd
je 0x562053
xor eax, eax
test al, al
mov edi, dword [esp + 0x438]
mov dword [esp + 0x43c], edi
jne 0x56205a
mov dword [esp + 0x424], esi
mov eax, dword [esp + 0x100]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0xfc]
jmp 0x561347
mov ebx, edi
mov dword [esp + 0x424], esi
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x3bc], ecx
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3f8]
cmp eax, 2
mov ecx, dword [esp + 0x458]
je 0x562170
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x418], esi
mov dword [esp + 0x3ec], edx
xor eax, eax
test al, al
jne 0x56218e
mov byte [esp + 0x338], 0xb
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov esi, dword [esp + 0x424]
mov edi, ebx
jmp 0x56205a
mov byte [esp + 0x338], 0x2a
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x3bc], eax
mov esi, ebx
jmp 0x56205a
mov edi, dword [esp + 0x438]
mov dword [esp + 0x438], edi
mov edi, 7
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x598]
test eax, eax
je 0x5620d7
mov cl, 0x5f
movzx ecx, cl
cmp ecx, 0x11
je 0x5620cd
cmp ecx, 0x5f
jne 0x5620cd
mov esi, 0x11
mov dword [esp], eax
call fcn.0062ddc0
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
mov ebx, dword [esp + 0x384]
je 0x559ade
jmp 0x562126
mov dword [esp], eax
call fcn.0062ddc0
jmp 0x562126
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x41c], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
cmp edi, 7
jne 0x562132
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x562132
mov eax, dword [esp + 0x294]
jmp 0x556158
mov eax, dword [esp + 0x45c]
mov eax, dword [eax + 0x9c]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0x3e8], 0x700002bb
mov dword [esp + 0x308], 0
cmp eax, ecx
je 0x561588
jmp 0x562250
mov dword [esp + 0x438], ebx
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x418], esi
mov dword [esp + 0x3ec], edx
jmp 0x562195
mov dword [esp + 0x438], ebx
mov dword [esp + 0x430], ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
jmp 0x55fdc7
cmp eax, 0xb
je 0x562221
xor eax, eax
test al, al
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
je 0x562250
jmp 0x5632a5
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x448], eax
jmp 0x5632a5
movzx eax, byte [esp + 0x283]
cmp eax, 0xe
je 0x55636a
mov esi, 7
mov byte [esp + 0x283], 0x3f
mov byte [esp + 0x2e4], 0x64
lea eax, [esp + 0x5a8]
mov dword [esp + 0x3b8], eax
mov eax, dword [esp + 0x5a4]
mov ecx, dword [esp + 0x5a8]
mov dword [esp + 0x2fc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x5a4]
mov dword [esp + 0x3e4], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov edi, 0x70000003
test eax, eax
jne 0x5623a0
mov edx, 8
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x39c], ecx
mov ecx, dword [esp + 0x3b0]
mov ebx, dword [esp + 0x458]
je 0x56459c
mov dword [esp + 0x1f4], eax
cmp edx, 8
je 0x5623c1
mov dword [esp + 0x458], ebx
mov dword [esp + 0x3e8], edi
imul edx, edx
and edx, 3
cmp edx, 3
je 0x5623db
imul eax, dword [esp + 0x3cc], 0x1c
mov eax, dword [ecx + eax + 0x18]
mov dword [esp + 0x3b0], ecx
mov ecx, dword [eax]
mov dword [esp + 0x428], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x404]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov dword [esp + 0x448], eax
mov byte [esp + 0x130], 0x36
jmp 0x5632a5
mov ecx, dword [esp + 0x308]
mov dword [esp + 0x39c], ecx
mov ecx, dword [esp + 0x3b0]
mov ebx, dword [esp + 0x458]
jmp 0x56459c
mov dword [esp + 0x458], ebx
mov dword [esp + 0x3e8], edi
mov dword [esp + 0x3b0], ecx
jmp 0x561588
mov dword [esp + 0x3b0], ecx
jmp 0x561588
mov dword [edi], ebx
inc dword [edx]
lea eax, [esi*8]
lea eax, [eax + eax*2]
mov dword [ebx + eax], 0x10
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 9
mov byte [esp + 0x2e4], 0x66
mov byte [esp + 0x33c], 0x6f
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x3e8], 0x70000003
test eax, eax
jne 0x562473
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x2c8], eax
jne 0x561588
jmp 0x56247a
mov dword [esp + 0x2c8], eax
cmp esi, 6
je 0x562910
xor eax, eax
test al, al
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x384]
jne 0x5592cd
mov ecx, 0x10
movzx eax, byte [esp + 0x33c]
cmp eax, 0x66
je 0x56264d
cmp eax, 0x6f
jne 0x56278f
mov dword [esp + 0x454], 0xc
mov esi, 0xe
mov byte [esp + 0x33c], 0x66
mov ebx, dword [esp + 0x45c]
mov dword [esp + 4], ebx
mov edi, dword [esp + 0x2c8]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2fc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
lea eax, [ebx + 0x1a0]
mov dword [esp + 0x3c8], eax
mov eax, dword [ebx + 0x1a0]
lea ecx, [ebx + 0x9c]
mov dword [esp + 0x398], ecx
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x9c]
lea ebx, [ebx + 8]
mov dword [esp + 0x3ec], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea eax, [esp + 0x5a0]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.00508b80
mov dword [esp + 0x3e8], eax
test eax, eax
jne 0x5610a9
mov ecx, dword [esp + 0x454]
cmp ecx, 2
jne 0x562970
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x56399b
jmp 0x5564d0
mov edx, dword [esp + 0x420]
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x458]
cmp ecx, 0x10
jne 0x5628d3
mov dword [esp + 0x458], ebx
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x5628da
mov dword [esp + 0x440], edx
mov esi, 0xd
mov byte [esp + 0x33c], 0x1c
mov edi, dword [esp + 0x45c]
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x2c8]
mov dword [esp], ebx
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2fc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
lea eax, [edi + 0x1a0]
mov dword [esp + 0x3c8], eax
mov eax, dword [edi + 0x1a0]
lea ecx, [edi + 0x9c]
mov dword [esp + 0x398], ecx
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x9c]
lea edi, [edi + 8]
mov dword [esp + 0x3ec], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea eax, [esp + 0x5a0]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.00508b80
test eax, eax
je 0x5564b8
mov dword [esp + 0x3e8], eax
jmp 0x5635f6
mov esi, 0xf
mov byte [esp + 0x33c], 0x6f
mov edi, dword [esp + 0x45c]
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x2c8]
mov dword [esp], ebx
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x3e4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2fc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
lea eax, [edi + 0x1a0]
mov dword [esp + 0x3c8], eax
mov eax, dword [edi + 0x1a0]
lea ecx, [edi + 0x9c]
mov dword [esp + 0x398], ecx
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0x9c]
lea edi, [edi + 8]
mov dword [esp + 0x3ec], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea eax, [esp + 0x5a0]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.00508b80
mov dword [esp + 0x3e8], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x561588
cmp esi, 0xf
je 0x562970
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x5573f6
jmp 0x5564d0
mov dword [esp + 0x458], ebx
mov dword [esp + 0x448], edx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
jmp 0x559b89
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x384]
jmp 0x5592cd
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jmp 0x5564d0
movzx eax, byte [esp + 0x2e4]
cmp eax, 0x64
mov edx, dword [esp + 0x3b8]
mov esi, dword [esp + 0x2fc]
mov edi, dword [esp + 0x3e4]
mov ebx, dword [esp + 0x1f4]
je 0x556412
jmp 0x5623e7
mov dword [esp + 0x44c], edx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x418], esi
mov byte [esp + 0x35f], 0xb
jmp 0x562a2f
mov byte [esp + 0x35f], 0x2d
mov eax, dword [esp + 0x5d0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.004234b0
jmp 0x563b76
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x563b1d
mov edi, 0x15
mov byte [esp + 0x35f], 0x75
mov eax, dword [esp + 0x3c8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3ec]
mov ecx, dword [ecx]
mov dword [esp + 0x5d0], 0
mov dword [esp + 0x5cc], 0
lea edx, [esp + 0x5b8]
mov dword [esp + 0x88], edx
mov dword [esp + 0x5b8], 4
mov dword [esp + 0x5bc], 2
mov dword [esp + 0x5c0], ecx
mov dword [esp + 0x5c4], eax
mov dword [esp + 0x5c8], 0xfffffff9
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov ebx, dword [esp + 0x458]
jne 0x562d43
mov ecx, 7
movzx edx, byte [esp + 0x35f]
cmp edx, 0xb
je 0x562bdc
mov eax, 0x12
cmp edx, 0x2e
je 0x562c12
mov dword [esp + 0x458], ebx
cmp edx, 0x75
jne 0x562a27
mov edi, 0xc
mov byte [esp + 0x35f], 0x75
mov eax, dword [esp + 0x5d0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x214]
mov dword [esp], eax
call fcn.004234b0
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
cmp edi, 0xc
je 0x563b3e
imul edi, edi
and edi, 3
cmp edi, 3
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x563771
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov esi, dword [esp + 0x454]
jmp 0x5589ab
mov dword [esp + 0x458], ebx
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x3fc]
mov ecx, dword [esp + 0x444]
mov edx, dword [esp + 0x44c]
cmp eax, 0xd
je 0x562c44
xor eax, eax
test al, al
je 0x562a01
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], edx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x418], esi
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
mov ecx, esi
shl ecx, 6
mov edx, dword [edi + ecx]
mov esi, dword [edi + ecx + 4]
mov ecx, dword [edi + ecx + 0xc]
mov edi, dword [esp + 0x45c]
mov ebx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], ebx
mov ebx, 0x12
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edi, eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov ecx, dword [esp + 0x42c]
mov edx, dword [esp + 0x424]
mov esi, dword [esp + 0x414]
jmp 0x562f42
cmp edi, 0xc
je 0x562d57
imul edi, edi
and edi, 3
cmp edi, 2
jne 0x55698c
mov esi, 0xd
mov eax, dword [esp + 0x304]
mov dword [esp], eax
call fcn.004234b0
mov edi, dword [esp + 0x43c]
mov dword [esp + 0x430], ebx
cmp esi, 7
je 0x562dc0
mov dword [esp + 0x438], edi
mov eax, 6
mov edx, dword [esp + 0x2f8]
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x562e61
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x562e3a
mov eax, 0xf
mov cl, byte [esp + 0x29f]
movzx ecx, cl
cmp ecx, 0x2e
je 0x561abe
cmp ecx, 0x59
je 0x55c5c8
cmp ecx, 0x5f
mov edx, dword [esp + 0x200]
jne 0x563052
mov byte [esp + 0x29f], 0x59
cmp dword [edx], 0
jmp 0x56306f
mov eax, 0x10
mov ecx, dword [esp + 0x31c]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x56300e
movzx eax, byte [esp + 0x238]
cmp eax, 0x4b
je 0x56308f
cmp eax, 0x7f
mov edx, dword [esp + 0x438]
mov esi, dword [esp + 0x430]
jne 0x5630dd
mov dword [esp + 0x458], esi
mov dword [esp + 0x43c], edx
mov esi, dword [esp + 0x414]
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov edi, dword [esp + 0x408]
mov ebx, dword [esp + 0x3dc]
mov ecx, 0xf
mov dword [esp + 0x3dc], ebx
cmp ecx, 0xf
je 0x55c6e6
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x55c6e6
movzx eax, byte [esp + 0x254]
cmp eax, 0x1f
mov eax, dword [esp + 0x444]
mov ecx, dword [esp + 0x44c]
mov edx, dword [esp + 0x454]
jne 0x56316c
mov ebx, edi
mov edi, dword [esp + 0x428]
mov dword [esp + 0x404], edi
mov edi, dword [esp + 0x434]
mov dword [esp + 0x400], edi
mov dword [esp + 0x408], ebx
mov ebx, 5
mov edi, dword [esp + 0x324]
cmp ebx, 5
je 0x562f96
imul ebx, ebx
and ebx, 3
cmp ebx, 3
je 0x562f96
mov dword [esp + 0x424], esi
mov dword [esp + 0x324], edi
mov eax, 0xb
mov byte [esp + 0x254], 0x1f
mov edx, dword [esp + 0x2e0]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp edx, ecx
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x37c]
mov dword [esp + 0x41c], ecx
jne 0x5621d9
jmp 0x5631e8
cmp eax, 0xa
jne 0x55c665
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x55c665
mov ecx, dword [esp + 0x52c]
test ecx, ecx
jne 0x563e3f
mov eax, ecx
or eax, 2
mov dword [esp + 0x244], ecx
xor ecx, 2
add ecx, eax
jne 0x561b86
jmp 0x563e46
mov byte [esp + 0x29f], 0x51
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x2c0], edx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
je 0x55c64e
jmp 0x55e3ed
mov byte [esp + 0x238], 0x4b
mov eax, dword [esp + 0x418]
shl eax, 6
mov ecx, dword [esp + 0x3d0]
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x1d8], eax
test eax, eax
mov ecx, dword [esp + 0x438]
mov edx, dword [esp + 0x430]
je 0x55c6d3
xor eax, eax
test al, al
mov dword [esp + 0x458], edx
mov dword [esp + 0x43c], ecx
jmp 0x563122
mov byte [esp + 0x238], 0x60
mov eax, dword [esp + 0x418]
shl eax, 6
mov ecx, dword [esp + 0x3d0]
mov ecx, dword [ecx + eax + 0x14]
test ecx, ecx
jne 0x563df4
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x1d8], ecx
not eax
test eax, eax
mov dword [esp + 0x458], esi
mov dword [esp + 0x43c], edx
mov edi, dword [esp + 0x414]
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
je 0x55c748
jmp 0x55e3ed
mov dword [esp + 0x424], esi
mov byte [esp + 0x254], 0x63
mov ecx, dword [esp + 0x2e0]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x404], eax
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x400], ecx
mov dword [esp + 0x408], edi
mov edx, dword [esp + 0x37c]
mov dword [esp + 0x41c], edx
mov dword [esp + 0x450], eax
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x448], edi
mov dword [esp + 0x420], edi
jne 0x5632a5
mov eax, 0x15
movzx ecx, byte [esp + 0x2d6]
cmp ecx, 6
jne 0x559221
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x414], ecx
cmp eax, 0x10
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x420]
mov esi, dword [esp + 0x434]
je 0x563324
imul eax, eax
and eax, 3
cmp eax, 3
je 0x563324
mov eax, dword [esp + 0x330]
mov eax, dword [eax]
mov ecx, dword [esp + 0x368]
mov dword [ecx], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
mov ecx, dword [esp + 0x404]
mov dword [esp + 0x428], ecx
mov edx, dword [esp + 0x400]
mov dword [esp + 0x434], edx
mov esi, dword [esp + 0x414]
mov dword [esp + 0x424], esi
mov dword [esp + 0x450], ecx
mov dword [esp + 0x42c], edx
mov dword [esp + 0x448], eax
mov byte [esp + 0x2d6], 0x7b
jmp 0x55927a
mov ecx, 3
mov al, byte [esp + 0x3c0]
movzx edx, al
cmp edx, 0xc
je 0x563395
mov eax, 0x1d
cmp edx, 0x5f
je 0x55a6a0
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x414], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x404], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x408], ecx
mov dl, byte [esp + 0x340]
mov esi, dword [esp + 0x458]
mov edi, dword [esp + 0x428]
mov ebx, dword [esp + 0x434]
jmp 0x563e9d
mov dword [esp + 0x440], edx
mov dword [esp + 0x444], ecx
mov dword [esp + 0x44c], esi
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
movzx ecx, byte [esp + 0x303]
cmp ecx, 0x28
mov edx, dword [esp + 0x25c]
mov esi, dword [esp + 0x3b8]
je 0x56355e
mov eax, 0xc
cmp ecx, 0x3e
jne 0x557604
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x438], ecx
jmp 0x561b1a
mov eax, dword [esp + 0x424]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x408], eax
cmp ecx, 3
mov edi, dword [esp + 0x32c]
jne 0x560d41
mov dword [esp + 0x450], 0x1b
mov ecx, 0xe
mov byte [esp + 0x3c0], 0x4e
mov ebx, dword [esp + 0x3cc]
mov edx, ebx
and edx, 1
xor edx, ebx
cmp edx, 0xffffffff
setne dl
movzx esi, dl
add esi, ebx
mov dword [esp + 0x390], esi
mov edx, dword [esp + 0x59c]
mov dword [esp + 0x36c], edx
cmp esi, dword [edx + 4]
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x358], eax
mov esi, dword [esp + 0x428]
mov dword [esp + 0x354], esi
mov ebx, dword [esp + 0x434]
mov dword [esp + 0x350], ebx
mov edx, dword [esp + 0x420]
mov dword [esp + 0x34c], edx
mov dword [esp + 0x334], eax
mov dword [esp + 0x3a0], edx
mov dword [esp + 0x440], edx
mov edx, esi
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x454], eax
jae 0x5634b7
mov dword [esp + 0x32c], edi
cmp ecx, 0xe
jne 0x560682
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x560682
mov dword [esp + 0x434], ebx
mov dword [esp + 0x428], esi
jmp 0x557829
mov eax, dword [esp + 0x450]
cmp eax, 0xc
jne 0x563d73
mov edi, dword [esp + 0x3e4]
mov dword [edi], edx
mov eax, dword [esi]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x2e8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + eax], 0x21
mov ecx, dword [edi]
mov dword [ecx + eax + 4], 0xfffffff8
mov ecx, dword [edi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edi]
mov edx, dword [esp + 0x344]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov esi, 8
mov byte [esp + 0x303], 0x28
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x378], 0x70000003
test eax, eax
jne 0x557688
cmp esi, 8
jne 0x55680c
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
jae 0x561588
mov eax, 0x16
mov cl, byte [esp + 0x377]
movzx ecx, cl
cmp ecx, 0x21
jne 0x5636ee
mov esi, 4
mov ebx, 1
mov byte [esp + 0x377], 0x3d
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov ecx, dword [esp + 0x378]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x3e8], ecx
jne 0x564123
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov ebx, dword [esp + 0x384]
jne 0x559ade
jmp 0x563771
mov ecx, dword [esp + 0x458]
mov edx, dword [esp + 0x428]
mov esi, dword [esp + 0x434]
cmp eax, 8
je 0x563858
xor eax, eax
test al, al
jne 0x563858
mov dword [esp + 0x434], esi
mov dword [esp + 0x428], edx
mov dword [esp + 0x458], ecx
mov byte [esp + 0x377], 0x21
mov eax, dword [esp + 0x594]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x594], 0
mov ecx, dword [esp + 0x378]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x3e8], ecx
jne 0x561588
mov esi, 0x13
mov cl, byte [esp + 0x376]
movzx eax, cl
cmp eax, 0x73
jne 0x563895
mov edi, dword [esp + 0x458]
cmp esi, 0x10
je 0x563a6f
mov dword [esp + 0x458], edi
xor eax, eax
test al, al
jne 0x563a76
mov ebx, 0x12
mov byte [esp + 0x376], 0x37
mov byte [esp + 0x278], 0x3e
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
lea ecx, [esp + 0x59c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x5a0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov dword [esp + 0x3e8], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x5638fd
cmp ebx, 5
jne 0x561588
mov eax, ebx
not eax
and eax, 1
add eax, ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
jne 0x55b2cb
jmp 0x561588
mov dword [esp + 0x430], ecx
mov edi, dword [esp + 0x43c]
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov dword [esp + 0x444], edx
mov dword [esp + 0x44c], esi
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jmp 0x55c3c7
mov edi, 6
mov esi, 0x18
mov byte [esp + 0x376], 0x73
mov byte [esp + 0x278], 0x3e
mov eax, dword [esp + 0x3ec]
mov eax, dword [eax]
lea ecx, [esp + 0x59c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x5a0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov dword [esp + 0x3e8], eax
test eax, eax
jne 0x5639d7
cmp edi, 6
jne 0x56399b
mov eax, 3
sub eax, edi
xor eax, edi
je 0x56399b
mov eax, 0x10
movzx ecx, byte [esp + 0x278]
cmp ecx, 7
je 0x55901e
mov esi, 0xc
cmp ecx, 0x3e
je 0x5639d7
mov esi, 0x11
cmp ecx, 0x6e
jne 0x563cb4
cmp esi, 5
jne 0x563943
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x55bf22
mov byte [esp + 0x278], 0x3e
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x334], 0
cmp dword [eax + 4], 0
mov eax, 0
mov dword [esp + 0x3a0], 0
je 0x55a798
jmp 0x563fd3
movzx eax, byte [esp + 0x26b]
cmp eax, 6
je 0x563c4b
cmp eax, 0x1d
mov esi, dword [esp + 0x428]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x434]
je 0x5612bd
mov byte [esp + 0x26b], 6
jmp 0x5612c5
cmp esi, 0xc
je 0x5639ea
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x561588
mov esi, 0x10
mov byte [esp + 0x278], 0x6e
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x1ac], eax
mov eax, dword [eax + 4]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0x334], 0
cmp eax, ecx
mov eax, 0
mov dword [esp + 0x3a0], 0
jne 0x563fd3
cmp esi, 0x10
jne 0x55be46
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x55a798
jmp 0x55be46
mov dword [esp + 0x458], edi
mov byte [esp + 0x376], cl
mov esi, dword [esp + 0x420]
mov ebx, 0x10
mov edx, dword [esp + 0xcc]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x440], esi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x410], eax
mov dword [esp + 0x120], edx
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov edi, dword [esp + 0x408]
je 0x5610c7
cmp ebx, 0x10
jne 0x562a52
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
jmp 0x55e3ed
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
mov edi, 0x10
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], 0
lea ecx, [esp + 0x5a0]
xor edx, edx
call fcn.00522bc0
mov dword [esp + 0x3e8], eax
test eax, eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov dword [esp + 0x448], eax
mov dword [esp + 0x450], ecx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov dword [esp + 0x424], eax
jne 0x561588
cmp edi, 0xd
je 0x56134e
xor eax, eax
test al, al
je 0x556bea
jmp 0x56134e
mov byte [esp + 0x26b], 0x1e
mov eax, dword [esp + 0x594]
mov ecx, dword [esp + 0x220]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x20c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007c51d0
mov dword [esp + 0x3a8], 0
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x42c], eax
jmp 0x56130c
mov byte [esp + 0x278], 7
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x1ac], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x334], 0
test eax, eax
jne 0x563fd1
mov esi, 0x1b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, 0
mov dword [esp + 0x3a0], 0
je 0x563fd3
cmp esi, 0xe
jne 0x55a798
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x563347
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x458], esi
mov dword [esp + 0x43c], edx
mov edi, dword [esp + 0x414]
mov eax, dword [esp + 0x404]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x400]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x420], eax
jmp 0x55c748
mov dword [esp + 0x244], ecx
mov eax, 0xe
mov dl, byte [esp + 0x340]
movzx ecx, dl
cmp ecx, 0x54
jne 0x563f5b
mov esi, dword [esp + 0x430]
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x420], ecx
mov edi, dword [esp + 0x444]
mov ebx, dword [esp + 0x44c]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
cmp eax, 0xe
jne 0x563eb2
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x561b36
mov dword [esp + 0x458], esi
mov byte [esp + 0x340], dl
mov byte [esp + 0x3c0], 0x5f
mov edx, dword [esp + 0x3cc]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx ecx, al
add ecx, edx
mov eax, dword [esp + 0x59c]
mov dword [esp + 0x36c], eax
cmp ecx, dword [eax + 4]
jae 0x563f7f
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov dword [esp + 0x390], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x358], ecx
mov dword [esp + 0x354], edi
mov dword [esp + 0x428], edi
mov dword [esp + 0x350], ebx
mov dword [esp + 0x434], ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x334], ecx
mov dword [esp + 0x3a0], eax
jne 0x557829
jmp 0x55a798
mov byte [esp + 0x340], 0x54
mov eax, dword [esp + 0x244]
mov dword [esp], eax
mov dword [esp + 4], 0x34
call fcn.0064bf00
jmp 0x561b86
mov dword [esp + 0x390], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x358], ecx
mov dword [esp + 0x354], edi
mov dword [esp + 0x428], edi
mov dword [esp + 0x350], ebx
mov dword [esp + 0x434], ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x334], ecx
mov dword [esp + 0x3a0], eax
jmp 0x55a798
xor eax, eax
mov byte [esp + 0x3c0], 0xc
mov byte [esp + 0x313], 0x2c
mov byte [esp + 0x1bf], 0x1a
mov byte [esp + 0x2f3], 8
mov byte [esp + 0x32b], 0x6e
mov byte [esp + 0x22b], 0x65
mov byte [esp + 0x204], 0x1e
mov byte [esp + 0x210], 7
mov byte [esp + 0x2df], 0x23
mov byte [esp + 0x224], 0x4a
mov byte [esp + 0xe0], 0xf
mov byte [esp + 0x248], 0x2e
mov dword [esp + 0x3a0], eax
mov byte [esp + 0x2d6], 6
mov byte [esp + 0x254], 0x63
mov esi, 5
lea eax, [esp + 0x52c]
mov dword [esp + 0x30c], eax
mov eax, dword [esp + 0x45c]
lea ecx, [eax + 0xe8]
mov dword [esp + 0x2ac], ecx
lea ecx, [eax + 0xa8]
mov dword [esp + 0x330], ecx
lea ecx, [eax + 0xa4]
mov dword [esp + 0x368], ecx
lea ecx, [esp + 0x528]
mov dword [esp + 0xc4], ecx
lea eax, [eax + 0xb0]
mov dword [esp + 0x180], eax
mov dword [esp + 0x358], 0
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x36c], eax
mov dword [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov dword [esp + 0x390], 0
mov dword [esp + 0x34c], 0
mov byte [esp + 0x1f8], 0x57
mov byte [esp + 0x2ab], 0x58
mov byte [esp + 0x158], 0x7d
mov byte [esp + 0x2a4], 0x50
mov byte [esp + 0x130], 0x36
mov byte [esp + 0x184], 0x2e
mov byte [esp + 0xf8], 0x4a
cmp esi, 4
jne 0x557829
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x561588
mov dword [esp + 0x42c], ecx
mov byte [esp + 0x2f3], 0x1d
mov eax, dword [esp + 0x194]
mov eax, dword [eax]
mov ebx, dword [esp + 0x458]
mov eax, dword [eax + ebx*4]
mov edx, dword [esp + 0x45c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
test eax, eax
jne 0x56449b
mov ecx, eax
mov dword [esp + 0x304], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x388], ebx
mov edx, dword [esp + 0x450]
jae 0x55a257
mov dword [esp + 0x450], edx
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
add eax, ebx
mov ecx, dword [esp + 0x2b0]
cmp eax, dword [ecx]
mov dword [esp + 0x388], ebx
mov ebx, eax
mov eax, dword [esp + 0x448]
mov edi, eax
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x454], esi
jae 0x564273
mov dword [esp + 0x448], eax
mov dword [esp + 0x458], ebx
movzx eax, byte [esp + 0x2f3]
cmp eax, 0x1d
je 0x55a1d0
mov ebx, 0xd
cmp eax, 0x3a
jne 0x564140
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov edi, ecx
mov dword [esp + 0x454], esi
mov dword [esp + 0x44c], edi
mov dword [esp + 0x444], eax
cmp ebx, 0xd
je 0x564365
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x564365
mov ebx, dword [esp + 0x458]
jmp 0x55679f
mov dword [esp + 0x444], edx
movzx eax, byte [esp + 0x313]
cmp eax, 0x5a
je 0x55a37f
mov esi, 7
mov byte [esp + 0x313], 0x5a
mov eax, dword [esp + 0x2c4]
test eax, eax
jne 0x564405
mov ecx, 0xc
mov edx, eax
and edx, 1
xor edx, eax
not edx
test edx, edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
mov dword [esp + 0x458], ebx
mov dword [esp + 0x448], edi
mov dword [esp + 0x440], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
je 0x56443d
cmp ecx, 2
jne 0x55a42d
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x55a42d
mov eax, 4
mov cl, byte [esp + 0x128]
movzx ecx, cl
cmp ecx, 0x49
je 0x5644fb
cmp ecx, 0x70
jne 0x564515
mov byte [esp + 0x128], 0x6d
mov eax, dword [esp + 0x240]
mov dword [eax], 0
jmp 0x55e3e2
mov ebx, 0x1e
mov byte [esp + 0x2f3], 0x3a
mov eax, dword [esp + 0x194]
mov eax, dword [eax]
mov esi, dword [esp + 0x458]
mov eax, dword [eax + esi*4]
mov edx, dword [esp + 0x45c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
test eax, eax
je 0x5644b5
mov dword [esp + 0x304], eax
mov ecx, 0xd
xor eax, eax
test al, al
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov edx, dword [esp + 0x444]
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x388], esi
mov esi, eax
mov edi, dword [esp + 0x43c]
je 0x55df73
jmp 0x557302
mov dword [esp + 0x458], ebx
mov dword [esp + 0x448], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x424], eax
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp esi, ecx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x458]
je 0x55679f
jmp 0x55a672
mov dword [esp + 0x304], eax
mov dword [esp + 0x388], ebx
mov edx, dword [esp + 0x450]
jmp 0x55a257
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x388], esi
mov esi, eax
jmp 0x557302
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov ebx, dword [esp + 0x430]
jmp 0x55a3b1
mov esi, 0x12
mov eax, dword [esp + 0x240]
mov dword [eax], 0
mov eax, dword [esp + 0x440]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x430]
mov byte [esp + 0x128], 0x70
mov dword [esp + 0x410], 1
mov ecx, dword [esp + 0x3b0]
mov eax, dword [esp + 0x1f4]
mov edi, dword [esp + 0x3e8]
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x3b0], ecx
cmp esi, 7
je 0x56461e
mov dword [esp + 0x3e8], edi
imul esi, esi
and esi, 3
cmp esi, 3
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x430], ebx
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x55e3ed
jmp 0x5629ad
mov dword [esp + 0x458], ebx
jmp 0x5629ad
mov eax, 2
mov byte [esp + 0x1e4], 8
mov ecx, dword [ecx]
cmp ecx, 5
je 0x564695
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x458], esi
mov dword [esp + 0x420], edx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
jne 0x55bb8c
jmp 0x5646db
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x458], esi
mov dword [esp + 0x420], edx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x41c], ecx
cmp eax, 2
mov ecx, dword [esp + 0x458]
mov edx, dword [esp + 0x428]
mov esi, dword [esp + 0x420]
mov edi, dword [esp + 0x434]
je 0x5647b0
imul eax, eax
and eax, 3
cmp eax, 3
je 0x5647b0
mov eax, 4
mov dword [esp + 0x3e8], 0x700002bb
mov dword [esp + 0x308], 0
mov ecx, dword [esp + 0x45c]
cmp dword [ecx + 0x9c], 0
je 0x561588
cmp eax, 4
jne 0x5647df
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
jne 0x562250
jmp 0x564833
mov dword [esp + 0x430], ecx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x440], esi
mov dword [esp + 0x444], edx
mov dword [esp + 0x44c], edi
jmp 0x55bf68
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x430], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x454], eax
movzx eax, byte [esp + 0x1e4]
cmp eax, 0xa
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x440]
mov esi, dword [esp + 0x430]
je 0x55bb71
jmp 0x56462a
mov esi, 8
mov byte [esp + 0x19c], 0x44
lea eax, [esp + 0x4e8]
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x4e4]
mov ecx, dword [esp + 0x4e8]
mov dword [esp + 0x1cc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x4e4]
mov dword [esp + 0x320], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x3c0], 0x70000003
test eax, eax
jne 0x5648f1
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x238], eax
mov dword [esp + 0x42c], eax
jne 0x56956a
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x56ac67
mov esi, dword [esp + 0x320]
mov edi, dword [esp + 0x174]
mov dword [esi], edi
mov edx, dword [esp + 0x2b4]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov dword [edx], eax
mov eax, dword [esp + 0x1cc]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 0x10
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov esi, eax
test esi, esi
jne 0x5649b9
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
je 0x5649b9
mov dword [esp + 0x3c0], 0x70000003
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x565b86
mov edi, 0x18
mov ebx, dword [esp + 0x45c]
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x320]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1cc]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [ebx + 0x1a0]
mov dword [esp + 0x2fc], eax
mov eax, dword [ebx + 0x1a0]
lea ecx, [ebx + 0x9c]
mov dword [esp + 0x1e0], ecx
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x9c]
lea esi, [ebx + 8]
mov dword [esp + 0x430], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea eax, [esp + 0x4e0]
mov dword [esp], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
call fcn.00508b80
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x564b14
mov dword [esp + 0x3c0], eax
mov al, 0x5e
movzx eax, al
cmp eax, 0x1f
jne 0x564b27
lea eax, [esp + 0x4f0]
mov dword [esp + 0xa0], eax
call fcn.0044c050
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0x4f4], edx
mov dword [esp + 0x4f0], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0xb4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov esi, dword [esp + 0x320]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x564d61
mov bl, 0x2f
jmp 0x564bc5
mov dword [esp + 0x3c0], eax
mov ecx, dword [esp + 0x434]
jmp 0x56b2f8
mov bl, 0x2f
lea eax, [esp + 0x4f0]
mov dword [esp + 0xa0], eax
call fcn.0044c050
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0x4f4], edx
mov dword [esp + 0x4f0], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0xb4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov esi, dword [esp + 0x320]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x564bc5
mov ecx, 8
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
jae 0x564bc5
mov esi, dword [esp + 0x444]
mov ebx, dword [esp + 0x440]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov edx, dword [esp + 0x450]
jmp 0x564d27
movzx ecx, bl
cmp ecx, 0x17
jne 0x564c7c
mov dword [esi], eax
mov edi, esi
mov dword [esp + 0x320], edi
mov esi, dword [esp + 0x2b4]
mov ecx, dword [esi]
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 4
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov esi, 0xf
mov byte [esp + 0x9c], 0x4b
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x564d1b
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x90], eax
jne 0x564d61
jmp 0x568683
mov byte [esp + 0x9c], 0x4b
mov dword [esi], eax
mov edi, esi
mov dword [esp + 0x320], edi
mov esi, dword [esp + 0x2b4]
mov ecx, dword [esi]
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 4
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x90], eax
test eax, eax
je 0x564d61
mov eax, 0x12
xor ecx, ecx
test cl, cl
je 0x56683e
jmp 0x564d61
mov dword [esp + 0x90], eax
jmp 0x568683
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x444], esi
mov dword [esp + 0x440], ebx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dword [esp + 0x450], edx
je 0x572e1b
mov dword [esp + 0x3c0], 0x70000003
mov esi, 0xd
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x571208
mov dword [esp + 0x44c], ebx
mov esi, 0xa
mov byte [esp + 0x9c], 0x31
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x90]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x320]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1e0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x4e0]
call fcn.004b44f0
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0xffcb
call fcn.00427270
test eax, eax
je 0x564e5e
mov ecx, 9
mov edx, eax
mov dword [esp + 0x1d8], eax
imul edx, edx
and edx, 3
cmp edx, 2
jne 0x56c9b3
jmp 0x56b6fc
mov dword [esp + 0x1d8], eax
jmp 0x56b6fc
mov byte [esp + 0x1df], 0x21
mov eax, dword [esp + 0x510]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x514]
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0x188], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x320]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x564eda
mov ecx, eax
mov dword [esp + 0x12c], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x564ee6
jmp 0x56513c
mov dword [esp + 0x12c], eax
jmp 0x56513c
mov ecx, dword [esp + 0x12c]
mov esi, dword [esp + 0x320]
mov dword [esi], ecx
mov eax, dword [esp + 0x2b4]
inc dword [eax]
mov eax, dword [esp + 0x188]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x22
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0xfffffff9
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x180]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x254], eax
test eax, eax
je 0x56513c
mov eax, 3
xor ecx, ecx
test cl, cl
jne 0x56513c
cmp eax, 3
je 0x564fc3
mov esi, dword [esp + 0x320]
jmp 0x5650db
mov ebx, dword [esp + 0x418]
xor eax, eax
mov ecx, dword [esp + 0x188]
lea ecx, [ecx + ecx*2]
mov edi, dword [esp + 0x254]
jmp 0x565114
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov esi, 3
mov eax, dword [esp + 0x514]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
call fcn.004234b0
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov dword [esp + 0x458], edi
cmp esi, 3
jne 0x567900
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
je 0x567900
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x10
mov dword [esp], 0
lea ecx, [esp + 0x4e0]
xor edx, edx
call fcn.00522bc0
test eax, eax
jne 0x565306
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0059ab80
test eax, eax
jne 0x565312
mov al, 0x1f
movzx eax, al
cmp eax, 0x1f
je 0x56531e
cmp eax, 0x22
jne 0x5653b4
mov dword [esp + 0x3c0], eax
jmp 0x56956a
mov dword [esp + 0x3c0], eax
jmp 0x56956a
mov esi, 0x15
mov ebx, 0x12
mov byte [esp + 0x1bf], 0x58
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
lea ecx, [esp + 0x470]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a7b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x3c0], 0x70000030
cmp eax, ecx
mov eax, dword [esp + 0x438]
mov edx, dword [esp + 0x454]
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov edi, dword [esp + 0x458]
jne 0x56eda2
mov esi, 0x11
mov byte [esp + 0x1bf], 0x43
mov byte [esp + 0x21c], 0x76
lea eax, [esp + 0x474]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x474]
shl eax, 8
lea ecx, [esp + 0x478]
mov dword [esp + 0x204], ecx
or eax, dword [esp + 0x478]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x1e4], eax
test eax, eax
mov edx, dword [esp + 0x238]
je 0x56ef6d
mov ecx, 7
xor eax, eax
test al, al
mov dword [esp + 0x438], edx
jne 0x56ef6d
cmp ecx, 3
je 0x56485e
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x56485e
mov eax, dword [esp + 0x438]
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
jmp 0x570fa3
mov esi, 9
mov byte [esp + 0x21c], 0x3a
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp + 0x51c], 0
mov dword [esp + 0x518], 0
mov dword [esp + 0x4fc], 4
mov dword [esp + 0x500], 2
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x508], eax
mov dword [esp + 0x50c], 0xfffffffd
lea eax, [esp + 0x518]
mov dword [esp + 8], eax
lea eax, [esp + 0x51c]
mov dword [esp + 4], eax
lea eax, [esp + 0x4fc]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x56db98
mov edi, dword [esp + 0x518]
mov eax, dword [esp + 0x51c]
mov dword [esp + 0x390], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0x168], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov esi, dword [esp + 0x320]
mov ecx, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x5655b3
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x5655b3
mov dword [esp + 0x160], edi
jmp 0x5656c7
mov dword [esi], eax
mov ecx, dword [esp + 0x2b4]
inc dword [ecx]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 5
mov eax, dword [esi]
mov dword [eax + ecx + 4], 0xfffffffd
mov eax, dword [esi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [esi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esi]
mov dword [eax + ecx + 0x10], edi
mov eax, dword [esi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edi
call fcn.00492770
test eax, eax
je 0x565645
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x410]
jne 0x565655
mov dword [esp + 0x134], eax
mov al, 0x43
movzx eax, al
cmp eax, 0x13
je 0x56566c
mov ecx, 8
cmp eax, 0x16
jne 0x565688
test edi, edi
mov dword [esp + 0x160], edi
je 0x5656a9
jmp 0x572cfe
mov dword [esp + 0x160], edi
mov dword [esp + 0x134], eax
jmp 0x5656c7
mov dword [esp + 0x160], edi
mov dword [esp + 0x134], eax
mov dword [esp + 0x3f0], ecx
jmp 0x5656d5
test edi, edi
mov dword [esp + 0x160], edi
je 0x5656a9
mov esi, 7
xor eax, eax
test al, al
je 0x572cdd
jmp 0x5656a9
mov dword [esp + 0x160], edi
mov eax, dword [esp + 0x244]
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jmp 0x569934
mov eax, dword [esp + 0x320]
mov eax, dword [eax]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x134]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x51c]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x494], eax
mov dword [esp + 0x498], 0xfffffff8
lea eax, [esp + 0x4d0]
mov dword [esp + 8], eax
lea eax, [esp + 0x4d4]
mov dword [esp + 4], eax
lea eax, [esp + 0x488]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x56579e
mov al, 0x17
movzx ecx, al
cmp ecx, 0x17
je 0x5657c6
mov eax, 0x15
cmp ecx, 0x5e
jne 0x56583e
mov esi, dword [esp + 0x2e4]
jmp 0x56804b
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x565ac4
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp + 0x334], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0x11c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x320]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x1f0], 0x70000003
je 0x5658ba
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0xd8], eax
jne 0x5659a2
jmp 0x565a44
mov esi, 4
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x4d4]
mov dword [esp + 0x334], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0x11c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x320]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x1f0], 0x70000003
je 0x5658c6
mov ecx, eax
mov dword [esp + 0xd8], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x5659a2
jmp 0x56a8c3
mov dword [esp + 0xd8], eax
jmp 0x565a44
mov dword [esp + 0xd8], eax
jmp 0x56a8c3
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x390]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.007c51d0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x5658e0
jmp 0x5656a9
mov edx, dword [esp + 0x320]
mov ecx, dword [esp + 0xd8]
mov dword [edx], ecx
mov eax, dword [esp + 0x2b4]
inc dword [eax]
mov eax, dword [esp + 0x11c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 0x21
mov ecx, dword [edx]
mov dword [ecx + eax + 4], 0xfffffff8
mov ecx, dword [edx]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [edx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [edx]
mov esi, dword [esp + 0x140]
mov dword [ecx + eax + 0x10], esi
mov ecx, dword [edx]
mov dword [ecx + eax + 0x14], 0
mov edi, 0xa
mov dword [esp], esi
call fcn.00492770
test eax, eax
jne 0x565a38
mov dword [esp + 0x344], eax
imul eax, eax
and eax, 3
mov dword [esp + 0x1f0], 0x70000003
cmp eax, 2
jb 0x565a44
jmp 0x5538e6
mov dword [esp + 0x344], eax
jmp 0x5538e6
mov eax, dword [esp + 0x4d4]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x4d4], 0
mov ecx, dword [esp + 0x1f0]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x3c0], ecx
jne 0x56956a
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
lea ecx, [esp + 0x4dc]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x4e0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x565b71
mov dword [esp + 0x3c0], eax
mov esi, 0x1b
mov byte [esp + 0x1ec], 8
mov byte [esp + 0x354], 0x18
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x4dc]
mov dword [esp + 0xe4], eax
xor edi, edi
cmp dword [eax + 4], 0
mov dword [esp + 0x418], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x214], 0
jne 0x57284f
jmp 0x572441
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
jmp 0x56956a
mov byte [esp + 0x354], 0x18
mov byte [esp + 0x3bc], 9
mov byte [esp + 0x370], 0x1b
mov byte [esp + 0x378], 0x11
mov byte [esp + 0x368], 0x3b
mov byte [esp + 0x388], 0x32
mov byte [esp + 0x35f], 0xc
mov byte [esp + 0x350], 0x2f
mov dword [esp + 0x33c], 0
mov eax, edi
or eax, 2
mov edx, edi
xor edx, 2
add edx, eax
mov dh, 0x2a
mov byte [esp + 0x3b4], 0xf
setne al
movzx eax, al
add edi, eax
mov dl, 6
mov byte [esp + 0x330], 1
lea eax, [esp + 0x46c]
mov dword [esp + 0x37c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x36c], eax
mov dword [esp + 0x398], ebx
mov dword [esp + 0x404], esi
lea eax, [esp + 0x468]
mov dword [esp + 0x324], eax
mov dword [esp + 0x3c8], ecx
mov byte [esp + 0x360], 0x34
mov byte [esp + 0x32b], 0x3e
mov byte [esp + 0x38c], 0x19
mov byte [esp + 0x3e0], 0x3d
mov byte [esp + 0x376], 0x51
mov byte [esp + 0x348], 0x2d
mov byte [esp + 0x358], 0xd
mov byte [esp + 0x377], 0x3e
mov byte [esp + 0x39c], 0x1b
mov al, 0x6f
mov dword [esp + 0x380], eax
mov al, 0x27
mov dword [esp + 0x34c], eax
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x565ba0
mov byte [esp + 0x290], dh
mov byte [esp + 0x308], dl
jmp 0x571a91
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov esi, dword [esp + 0x420]
mov dword [esp + 0x448], esi
mov esi, dword [esp + 0x43c]
mov dword [esp + 0x44c], esi
mov edi, ebx
mov dword [esp + 0x458], edi
mov dword [esp + 0x258], edi
mov dword [esp + 0x214], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
je 0x572441
mov dword [esp + 0x3d8], edi
mov edi, dword [eax + 8]
add eax, 8
mov dword [esp + 0x164], eax
imul esi, edx, 0x1c
mov ebx, dword [edi + esi + 4]
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jne 0x565e3b
mov dword [esp + 0x434], edx
mov dword [esp + 0x24c], ebx
mov eax, 5
cmp dword [edi + esi + 0x14], 4
mov dword [esp + 0x318], edi
mov dword [esp + 0x408], 0x30000003
je 0x565ff5
mov ecx, 0x12
xor edx, edx
test dl, dl
mov edi, dword [esp + 0x3d8]
mov dword [esp + 0x41c], edi
jne 0x570578
cmp ecx, 3
mov dword [esp + 0x3f4], 0x30000003
mov ecx, dword [esp + 0x434]
mov edx, dword [esp + 0x418]
mov esi, dword [esp + 0x420]
mov ebx, edi
mov edi, dword [esp + 0x43c]
je 0x565f12
xor eax, eax
test al, al
mov dword [esp + 0x444], esi
mov dword [esp + 0x440], edi
mov dword [esp + 0x450], edx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x454], ecx
mov dword [esp + 0x408], 0x30000003
mov dword [esp + 0x424], ebx
mov edi, ebx
je 0x569510
jmp 0x569819
mov dword [esp + 0x434], edx
add esi, edi
mov edx, dword [esi]
cmp edx, 3
jne 0x565f45
mov eax, 3
sub eax, edx
xor eax, edx
je 0x565f45
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], edx
mov ebx, 0x10
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1e0]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x430]
mov ecx, dword [ecx]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x42c]
mov dword [esp], eax
call fcn.004dd150
mov dword [esp + 0x408], eax
test eax, eax
mov edi, dword [esp + 0x3d8]
mov dword [esp + 0x424], edi
mov dword [esp + 0x41c], edi
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x3f4], eax
jne 0x56ea61
jmp 0x57227e
mov dword [esp + 0x408], 0x30000003
mov dword [esp + 0x424], ebx
mov dword [esp + 0x41c], ebx
mov dword [esp + 0x444], esi
mov dword [esp + 0x440], edi
mov dword [esp + 0x450], edx
jmp 0x569819
mov eax, dword [esp + 0x33c]
test al, al
je 0x566008
mov ecx, 1
movzx eax, al
cmp eax, 7
je 0x566092
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], edx
mov ecx, 0xa
cmp eax, 0x33
jne 0x5660d6
mov al, 7
mov dword [esp + 0x33c], eax
cmp ebx, 0x3e
mov ecx, dword [esp + 0x434]
mov edx, dword [esp + 0x420]
mov edi, dword [esp + 0x3d8]
jne 0x566128
mov eax, 3
sub eax, ebx
xor eax, ebx
mov dword [esp + 0x24c], ebx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x454], ecx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jmp 0x566080
mov edi, dword [esp + 0x3d8]
mov dword [esp + 0x41c], edi
jmp 0x570578
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], edx
mov al, 0x70
mov dword [esp + 0x33c], eax
cmp ebx, 0x3e
mov dword [esp + 0x24c], ebx
je 0x566142
xor eax, eax
test al, al
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov edi, dword [esp + 0x3d8]
mov dword [esp + 0x41c], edi
je 0x5661c3
jmp 0x5662fd
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], edx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x43c]
jmp 0x56bc88
mov dword [esp + 0x24c], ebx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jmp 0x56aa1d
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x41c], edi
mov dword [esp + 0x454], ecx
jmp 0x5661c3
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov edi, dword [esp + 0x3d8]
jmp 0x5662fd
movzx ecx, byte [esp + 0x370]
cmp ecx, 0xf
mov esi, dword [esp + 0x240]
mov edi, dword [esp + 0x318]
mov ebx, dword [esp + 0x24c]
mov edx, dword [esp + 0x420]
je 0x566241
mov eax, 3
cmp ecx, 0x1b
jne 0x56629c
mov byte [esp + 0x370], 0x1b
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
mov ecx, esi
sub ecx, eax
cmp ecx, 1
ja 0x566466
mov eax, 5
mov edx, 3
sub edx, ecx
xor edx, ecx
mov edx, dword [esp + 0x420]
jne 0x56a798
jmp 0x566466
mov byte [esp + 0x370], 0xf
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
mov ecx, esi
sub ecx, eax
cmp ecx, 2
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jae 0x566466
jmp 0x566a78
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x444], edx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov cl, byte [esp + 0x39c]
mov edx, dword [esp + 0x41c]
mov edi, dword [esp + 0x44c]
jmp 0x572161
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x438], esi
jne 0x56972e
mov eax, 0x15
imul ecx, dword [esp + 0x454], 0x1c
mov edx, dword [esp + 0x318]
mov ecx, dword [edx + ecx + 0x14]
cmp ecx, 8
mov dword [esp + 0x3f4], 0x30000003
je 0x56633f
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
mov dword [esp + 0x41c], edi
jne 0x569510
jmp 0x567f0f
mov dword [esp + 0x41c], edi
jmp 0x567f0f
mov eax, 0x10
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
imul edx, dword [esp + 0x454], 0x1c
mov edx, dword [esi + edx + 0x18]
mov ebx, dword [edx]
mov dword [esp + 0x448], ebx
mov ebx, dword [edx + 4]
mov edx, dword [esp + 0x450]
mov dword [esp + 0x428], edx
mov dword [esp + 0x458], edi
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
jb 0x566350
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0x408], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x424], ecx
mov edx, dword [esp + 0x454]
mov edi, dword [esp + 0x3a8]
mov ecx, dword [esp + 0x428]
cmp eax, 0xd
mov eax, dword [esp + 0x448]
jne 0x56642b
mov dword [esp + 0x434], edx
mov dword [esp + 0x428], ecx
mov byte [esp + 0x2d7], 0x48
mov eax, dword [edi]
test eax, eax
jne 0x56645a
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov edx, dword [esp + 0x314]
jne 0x56c80b
jmp 0x56ccf6
mov dword [esp + 0x3a8], edi
mov dword [esp + 0x418], ecx
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x458]
mov dword [esp + 0x454], edx
jmp 0x57227e
mov edx, dword [esp + 0x314]
jmp 0x56ccf6
cmp ebx, 0x21
jg 0x5664f1
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], esi
mov esi, 0xc
cmp ebx, 0x11
je 0x5665da
cmp ebx, 0x21
mov dword [esp + 0x24c], ebx
mov eax, dword [esp + 0x41c]
mov ebx, eax
mov dword [esp + 0x444], edx
mov edi, dword [esp + 0x43c]
mov dword [esp + 0x440], edi
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x428], ecx
mov dword [esp + 0x448], edx
mov dword [esp + 0x420], edx
mov dword [esp + 0x44c], edi
mov edi, ebx
mov dword [esp + 0x458], eax
je 0x56fe0b
jmp 0x57227e
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], esi
cmp ebx, 0x22
je 0x566630
cmp ebx, 0x27
mov edi, dword [esp + 0x41c]
jne 0x56670d
mov dword [esp + 0x24c], ebx
mov eax, 3
mov dword [esp + 0x460], 0
mov ecx, dword [esp + 0x218]
mov ecx, dword [ecx]
cmp ecx, 2
jb 0x566792
mov dword [esp + 0x420], edx
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x418]
je 0x5667e9
mov eax, 7
mov edx, dword [esp + 0x204]
mov edx, dword [edx]
mov esi, edx
and esi, 1
inc esi
xor esi, edx
sete bl
cmp ecx, 2
jne 0x5669f3
mov byte [esp + 0x31c], 9
mov esi, ecx
not esi
and esi, 1
add esi, ecx
je 0x5669fb
movzx ecx, bl
cmp edx, ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ebx, dword [esp + 0x43c]
mov dword [esp + 0x458], edi
mov ecx, dword [esp + 0x454]
je 0x5668d3
jmp 0x5684d7
mov dword [esp + 0x24c], ebx
mov eax, dword [esp + 0x424]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov ebx, dword [esp + 0x418]
mov eax, edx
mov dword [esp + 0x420], eax
mov edx, ebx
mov dword [esp + 0x448], eax
mov edi, dword [esp + 0x43c]
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x458], ecx
jmp 0x56af3a
mov dword [esp + 0x24c], ebx
mov eax, 0x1a
movzx ecx, byte [esp + 0x330]
cmp ecx, 1
jne 0x566743
mov byte [esp + 0x330], 0x28
mov dword [esp + 0x464], 0
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
mov ebx, dword [esp + 0x454]
imul ecx, ebx, 0x1c
mov esi, edx
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x464]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006274b0
mov edx, esi
mov esi, 0xd
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov edi, dword [esp + 0x424]
mov dword [esp + 0x434], ebx
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov ebx, dword [esp + 0x418]
mov dword [esp + 0x450], ebx
mov dword [esp + 0x428], ebx
mov dword [esp + 0x448], edx
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x458], eax
jne 0x5683fc
jmp 0x56f5e0
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x444], edx
mov dword [esp + 0x420], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jmp 0x57227e
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov ebx, ecx
mov dword [esp + 0x448], edx
mov esi, edx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x458], ecx
jmp 0x56bb09
mov byte [esp + 0x31c], 9
mov dword [esp + 0x444], edx
mov esi, dword [esp + 0x43c]
mov dword [esp + 0x440], esi
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x428], ecx
mov dword [esp + 0x448], edx
mov dword [esp + 0x44c], esi
mov dword [esp + 0x458], edi
jmp 0x56683e
mov byte [esp + 0x31c], 9
mov esi, dword [esp + 0x420]
mov dword [esp + 0x444], esi
mov ebx, dword [esp + 0x43c]
mov dword [esp + 0x440], ebx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x450], edx
mov dword [esp + 0x428], edx
mov dword [esp + 0x448], esi
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x458], edi
cmp eax, 3
je 0x566894
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov edx, dword [esp + 0x434]
mov ecx, edx
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jne 0x5686a8
jmp 0x5668d3
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ecx, dword [esp + 0x434]
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
mov dword [esp + 0x454], ecx
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
imul ecx, ecx, 0x1c
mov esi, dword [eax + ecx + 0x18]
mov dword [esp + 4], 0x40
mov dword [esp], 1
call fcn.00493840
test eax, eax
je 0x5669b9
mov dword [esp + 0x44c], ebx
xor ecx, ecx
test cl, cl
jne 0x5669c0
mov dword [esp + 0x41c], edi
xor ecx, ecx
mov bl, byte [esp + 0x350]
jmp 0x566995
mov edx, ecx
or edx, 2
mov edi, ecx
xor edi, 2
add edi, edx
setne dl
movzx edx, dl
add ecx, edx
movsd xmm0, qword [esi]
movsd qword [eax], xmm0
movsd xmm0, qword [esi + 8]
movsd qword [eax + 8], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi + 0x18]
movsd qword [eax + 0x18], xmm0
mov edx, dword [esi + 0x20]
mov dword [eax + 0x20], edx
mov edx, dword [esi + 0x24]
mov dword [eax + 0x24], edx
mov edx, dword [esi + 0x28]
mov dword [eax + 0x28], edx
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], 0
mov edx, dword [esi + 0x30]
mov dword [eax + 0x34], edx
mov edx, dword [esi + 0x34]
mov dword [eax + 0x38], edx
test ecx, ecx
je 0x566930
mov dword [esp + 0x208], 0x70000003
mov edi, eax
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x30c], ecx
jmp 0x56899b
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x208], 0x70000003
mov dword [esp + 0x30c], edi
mov dword [esp + 0x41c], edi
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
mov ebx, dword [esp + 0x418]
jmp 0x568868
mov byte [esp + 0x31c], 9
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ebx, dword [esp + 0x43c]
mov dword [esp + 0x458], edi
jmp 0x5684d0
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov edi, dword [esp + 0x318]
mov ebx, dword [esp + 0x24c]
jne 0x566466
mov dword [esp + 0x240], esi
mov esi, 3
cmp ebx, 3
je 0x566ab1
mov eax, ebx
mov dword [esp + 0x24c], ebx
imul eax, eax
and eax, 3
cmp eax, 3
mov dword [esp + 0x114], edi
mov dword [esp + 0x318], edi
jne 0x569bad
jmp 0x566ac6
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x114], edi
mov dword [esp + 0x318], edi
cmp esi, 3
je 0x566ae9
imul esi, esi
and esi, 3
cmp esi, 3
je 0x566ae9
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x56be05
mov esi, 3
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x440]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043ab10
mov eax, dword [esp + 0x4dc]
mov eax, dword [eax + 8]
mov dword [esp + 0x114], eax
jmp 0x569b81
mov esi, 4
mov byte [esp + 0x358], 0x5e
imul eax, dword [esp + 0x454], 0x1c
add eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1e0]
mov edi, dword [edx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x3f4], eax
test eax, eax
je 0x566c37
xor eax, eax
test al, al
mov edi, dword [esp + 0x450]
mov dword [esp + 0x428], edi
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x448], ecx
mov edx, dword [esp + 0x440]
mov dword [esp + 0x44c], edx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x458], eax
mov ebx, eax
mov dword [esp + 0x418], edi
mov edi, ebx
mov dword [esp + 0x420], ecx
mov dword [esp + 0x43c], edx
mov dword [esp + 0x424], eax
je 0x569510
jmp 0x568b42
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x41c]
mov edi, eax
mov dword [esp + 0x424], eax
jmp 0x568b42
mov dword [esp + 0x418], ebx
mov dword [esp + 0x44c], edi
mov dword [esp + 0x428], edx
mov byte [esp + 0x348], 0x51
mov eax, dword [esp + 0x218]
mov ecx, dword [eax]
cmp ecx, 3
jb 0x566cc8
mov eax, 2
mov dword [esp + 0x10c], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov edi, dword [esp + 0x3d8]
jb 0x56bc16
jmp 0x571d73
mov dword [esp + 0x10c], ecx
mov edi, dword [esp + 0x3d8]
jmp 0x571d73
mov eax, 0x12
mov byte [esp + 0x376], 0x3a
mov ecx, dword [esp + 0x10c]
cmp ecx, 2
jne 0x56c759
mov edx, ecx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
je 0x56c759
mov ecx, dword [esp + 0x204]
mov edx, dword [ecx]
cmp edx, 0x22
jb 0x56c759
cmp eax, 2
jne 0x566e87
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x566e87
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x414], eax
mov ecx, dword [esp + 0x3f0]
mov edi, dword [esp + 0x428]
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov ebx, esi
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x434]
jmp 0x56ed3d
mov dword [esp + 0x44c], esi
mov byte [esp + 0x368], 0x3b
mov edx, dword [esp + 0x18c]
test edx, edx
je 0x568e71
mov eax, 0x1b
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
jne 0x5682f1
jmp 0x568e71
mov edx, ecx
mov dword [esp + 0x10c], edx
or ecx, 2
xor edx, 2
add edx, ecx
mov edi, dword [esp + 0x3d8]
je 0x5727cf
mov esi, 0xd
mov edi, dword [esp + 0x434]
imul eax, edi, 0x1c
mov edx, dword [esp + 0x318]
mov ecx, dword [edx + eax + 0x14]
mov eax, dword [edx + eax + 0x18]
mov edx, dword [esp + 0x37c]
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x34
call fcn.0064be40
mov dword [esp + 0x408], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x566ff2
xor ecx, ecx
mov edi, dword [esp + 0x36c]
mov ebx, dword [esp + 0x398]
jmp 0x566f8c
mov eax, 0xe
cmp edx, 2
adc ecx, 0
mov edx, dword [esp + 0x46c]
mov esi, dword [edx]
mov dword [edi], esi
mov esi, dword [edx + 4]
mov dword [ebx], esi
mov edx, dword [edx + 8]
mov dword [esp + 0x3cc], edx
mov esi, dword [esp + 0x404]
mov dword [esi], edx
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x3ec], edx
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jb 0x566f50
mov edx, dword [esp + 0x42c]
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x41c]
mov dword [esp + 0x424], ecx
jmp 0x569a99
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x454], edi
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x424], eax
cmp esi, 0xd
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
je 0x569510
jmp 0x56abfe
mov edx, 0x1a
test cl, cl
mov dword [esp + 0x428], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], edi
mov dword [esp + 0x43c], edi
je 0x5670ea
mov dword [esp + 4], 0x14
mov dword [esp], 1
call fcn.00493840
mov edi, eax
test edi, edi
mov dword [esp + 0x3f4], 0x70000003
je 0x5671f5
mov ecx, 0x11
mov ebx, edi
mov edi, edx
mov edx, dword [esp + 0x3b0]
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x220]
mov dword [esi + 4], eax
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x398]
mov dword [edx], eax
mov eax, dword [edi]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov dword [esp + 0x23c], edi
mov edi, ebx
jmp 0x570b8b
mov byte [esp + 0x3e0], 0x3d
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x3b0]
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x3c4]
mov dword [edx + 8], ecx
mov dword [edx + 0x10], 0
mov ecx, dword [esp + 0x3ac]
mov dword [edi], ecx
mov ebx, dword [edx + 8]
mov ecx, dword [esp + 0x404]
mov dword [ecx], ebx
mov dword [esi], edx
mov ecx, dword [esp + 0x3a4]
mov dword [esp + 0x3ec], ecx
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x5676e0
mov dword [esp + 0x3cc], ebx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
mov edi, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x450]
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x220], eax
jmp 0x56e875
mov byte [esp + 0x38c], 0x19
mov eax, dword [esp + 0x218]
mov eax, dword [eax]
cmp eax, 7
mov esi, dword [esp + 0x3cc]
jb 0x56eabf
cmp eax, 7
sete cl
imul eax, eax
and eax, 3
cmp eax, 2
sete dl
or dl, cl
mov eax, dword [esp + 0x204]
mov ecx, dword [eax]
cmp ecx, 0x64
setb al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx edx, dl
cmp edx, 1
jne 0x567865
or al, cl
je 0x567891
test esi, esi
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x3cc], esi
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x444], edi
mov dword [esp + 0x420], edi
mov edi, eax
jmp 0x5678de
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x3cc], esi
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x420], edi
mov dword [esp + 0x444], edi
jmp 0x5678bb
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x3cc], esi
mov eax, dword [esp + 0x3ec]
mov dword [esp + 0x22c], eax
mov dword [esp + 0x444], edi
mov dword [esp + 0x420], edi
mov edi, eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x418], ebx
jmp 0x57227e
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x418], ebx
jne 0x57227e
mov ecx, dword [esp + 0x398]
mov eax, dword [ecx]
mov edx, dword [esp + 0x404]
mov dword [edx], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov edx, dword [esp + 0x420]
mov dword [esp + 0x444], edx
mov esi, dword [esp + 0x43c]
mov dword [esp + 0x440], esi
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov ebx, esi
mov esi, 0x18
mov edi, dword [esp + 0x22c]
mov dword [esp + 0x458], edi
mov dword [esp + 0x398], ecx
cmp esi, 0xa
jne 0x567a4f
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, dword [esp + 0x438]
jae 0x567a5f
mov dword [esp + 0x448], edx
mov dword [esp + 0x428], eax
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004124f0
mov eax, dword [esp + 0x1e0]
mov eax, dword [eax]
test eax, eax
je 0x567a79
imul eax, eax
and eax, 3
cmp eax, 3
je 0x567a79
mov dword [esp + 0x44c], ebx
mov byte [esp + 0x22b], 0xb
mov esi, 0x13
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov ecx, dword [esp + 0x128]
mov dword [ecx], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x124]
mov dword [ecx], eax
mov eax, dword [esp + 0x120]
mov dword [eax], 0xffffffce
lea eax, [esp + 0x4c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x200]
mov dword [esp], eax
call fcn.005953b0
mov dword [esp + 0x3e4], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x56ad59
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
jmp 0x567a66
mov dword [esp + 0x42c], esi
mov dword [esp + 0x418], eax
mov dword [esp + 0x420], edx
jmp 0x5706ca
mov al, 0x23
movzx eax, al
cmp eax, 0x23
jne 0x567aa4
mov byte [esp + 0x22b], 0xb
mov eax, 0x1b
test esi, esi
mov edi, dword [esp + 0x41c]
jne 0x56845e
mov byte [esp + 0x22b], 0xb
test esi, esi
mov ecx, esi
mov edi, dword [esp + 0x41c]
je 0x569a3e
mov esi, 4
mov dword [esp + 0x468], 0
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
imul ecx, dword [esp + 0x454], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
mov ecx, dword [esp + 0x324]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], 0x2d
call fcn.0064be40
mov dword [esp + 0xec], eax
test eax, eax
jne 0x567b82
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x130], edi
mov ecx, dword [esp + 0x318]
mov edx, dword [esp + 0x428]
mov ebx, dword [esp + 0x44c]
jmp 0x56c047
mov cl, 0x28
mov eax, 0x15
movzx ecx, cl
cmp ecx, 0x28
mov edi, dword [esp + 0x41c]
je 0x567bf1
mov eax, 2
cmp ecx, 0x4e
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov dword [esp + 0x130], edi
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x3f4], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x450], ebx
je 0x569510
jmp 0x572a8b
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x450], ebx
mov esi, edi
jmp 0x56f150
mov bl, 0x5e
inc esi
mov eax, dword [esp + 0x468]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x3c8]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
dec edi
mov ecx, dword [esp + 0x450]
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x458], eax
mov eax, esi
xor eax, edi
setne al
movzx eax, al
cmp esi, eax
jb 0x567c30
mov byte [esp + 0x360], bl
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x56e2cf
mov esi, eax
not esi
and esi, 1
add esi, eax
setne dh
movzx esi, dh
add eax, esi
xor ebx, ebx
mov dword [esp + 0x414], edi
mov esi, ecx
test eax, eax
je 0x567cb0
test dl, dl
je 0x567cb0
mov dword [esp + 0x2e4], ebx
mov dword [esp + 0x230], esi
mov eax, dword [esp + 0x458]
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x230]
mov edi, dword [eax]
mov dword [esp + 0x3e8], edi
mov ecx, dword [esp + 0x2e4]
mov esi, ecx
shl esi, 6
add edi, esi
je 0x567e4b
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
je 0x567e4b
mov eax, 9
mov edx, dword [esp + 0x3e8]
cmp dword [edx + esi + 0x24], 0
je 0x567e7a
xor ecx, ecx
test cl, cl
jne 0x567eb4
mov ebx, dword [esp + 0x3e8]
lea eax, [ebx + esi + 0x24]
mov dword [esp + 0x458], eax
call fcn.0042b980
mov ecx, eax
mov dword [esp + 0x3d4], ecx
mov eax, dword [esp + 0x2e4]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x45c]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
movsd xmm0, qword [edi]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [ebx + esi + 8]
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [ebx + esi + 0x10]
movsd qword [ecx + 0x20], xmm0
movsd xmm0, qword [ebx + esi + 0x18]
movsd qword [ecx + 0x28], xmm0
mov eax, dword [esp + 0x458]
mov eax, dword [eax]
add ecx, 0x38
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], pe_nt_image_headers32
call fcn.004959f0
mov ecx, dword [ebx + esi + 0x28]
test ecx, ecx
jne 0x567f97
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x567f97
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov ebx, dword [esp + 0x414]
mov dword [esp + 0x3d0], ecx
jmp 0x5682a3
mov edx, dword [esp + 0x3f0]
mov dword [esp + 0x410], edx
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x3d8]
mov dword [esp + 0x458], edx
mov edx, dword [esp + 0x414]
mov dword [esp + 0x234], edx
jmp 0x567ef3
mov ecx, dword [esp + 0x3f0]
mov dword [esp + 0x410], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x414]
mov dword [esp + 0x234], ecx
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x3d0], ecx
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov dword [esp + 0x3d8], edi
xor ecx, ecx
cmp eax, 9
mov esi, dword [esp + 0x318]
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jne 0x566394
mov edx, eax
not edx
and edx, 1
add edx, eax
je 0x566394
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov ebx, dword [esp + 0x234]
jmp 0x5682a3
mov eax, dword [esp + 0x3e8]
lea edx, [eax + esi + 0x28]
mov eax, 0xa
mov ecx, dword [ecx]
mov esi, dword [esp + 0x3d4]
mov dword [esi + 0x1b8], ecx
mov ecx, dword [edx]
mov cx, word [ecx + 4]
mov word [esi + 0x1bc], cx
mov ecx, dword [edx]
mov cx, word [ecx + 6]
mov word [esi + 0x1be], cx
mov ecx, dword [edx]
mov cl, byte [ecx + 8]
mov byte [esi + 0x1c0], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 9]
mov byte [esi + 0x1c1], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xa]
mov byte [esi + 0x1c2], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xb]
mov byte [esi + 0x1c3], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xc]
mov byte [esi + 0x1c4], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xd]
mov byte [esi + 0x1c5], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xe]
mov byte [esi + 0x1c6], cl
mov ecx, dword [edx]
mov cl, byte [ecx + 0xf]
mov byte [esi + 0x1c7], cl
mov ecx, dword [esp + 0x414]
mov dword [esp + 0x234], ecx
mov esi, dword [esp + 0x2e4]
mov dword [esp + 0x3d0], esi
mov ebx, dword [esp + 0x3d8]
cmp eax, 0xa
mov edx, dword [esp + 0x320]
mov eax, dword [esp + 0x3f4]
jne 0x56591d
mov bl, 0x12
inc edi
mov eax, dword [esp + 0x3d0]
shl eax, 6
mov ecx, dword [esp + 0x3e8]
mov eax, dword [ecx + eax + 0x2c]
mov esi, dword [esp + 0x3d4]
mov dword [esi + 0x1c8], eax
mov dword [esp], esi
call fcn.00412100
mov dword [esp], esi
call fcn.0042b9c0
mov eax, dword [esp + 0x3dc]
mov edx, dword [eax]
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp edi, eax
jb 0x568210
mov byte [esp + 0x3b4], bl
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x304], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov ebx, edx
mov esi, dword [esp + 0x3d0]
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx edx, al
add edx, esi
cmp edx, ebx
jae 0x568376
mov eax, 0xd
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x2e4], edx
not ecx
test ecx, ecx
mov dword [esp + 0x234], ebx
mov dword [esp + 0x3c4], ebx
je 0x5683ae
cmp eax, 0xd
mov ecx, dword [esp + 0x3c4]
je 0x56838d
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x458]
mov edx, dword [esp + 0x408]
mov dword [esp + 0x3f4], edx
mov dword [esp + 0x414], ecx
je 0x567cf7
movzx eax, byte [esp + 0x378]
cmp eax, 0x73
jne 0x568355
mov byte [esp + 0x378], 0x11
mov eax, dword [esp + 0x18c]
mov dword [esp], eax
call fcn.004936c0
jmp 0x568e71
mov esi, 0xc
mov byte [esp + 0x378], 0x73
mov eax, dword [esp + 0x18c]
mov dword [esp], eax
call fcn.004936c0
jmp 0x568e68
mov dword [esp + 0x2e4], edx
mov dword [esp + 0x234], ebx
mov dword [esp + 0x3c4], ebx
jmp 0x5683ae
mov eax, dword [esp + 0x458]
mov edx, dword [esp + 0x408]
mov dword [esp + 0x3f4], edx
mov dword [esp + 0x414], ecx
jmp 0x567cf7
mov eax, dword [esp + 0x464]
mov dword [esp], eax
call fcn.006275f0
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov edi, dword [esp + 0x424]
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x450]
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x414], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x424], edi
mov dword [esp + 0x428], ebx
mov dword [esp + 0x444], edx
mov dword [esp + 0x448], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov ebx, eax
mov eax, 0xb
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x458], edi
cmp eax, 0xb
jne 0x5684bd
mov dword [esp + 0x41c], edi
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], ebx
mov dword [esp + 0x44c], ebx
mov edi, dword [esp + 0x458]
jne 0x57227e
jmp 0x569760
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
jmp 0x569760
mov ecx, dword [esp + 0x454]
cmp eax, 7
je 0x568623
imul eax, eax
and eax, 3
cmp eax, 2
je 0x568623
mov dword [esp + 0x44c], ebx
mov byte [esp + 0x354], 0x25
mov byte [esp + 0x3bc], 9
mov byte [esp + 0x370], 0x1b
mov byte [esp + 0x378], 0x11
mov byte [esp + 0x368], 0x3b
mov byte [esp + 0x388], 0x32
mov byte [esp + 0x35f], 0xc
mov byte [esp + 0x350], 0x2f
mov byte [esp + 0x290], 0x2a
mov byte [esp + 0x3b4], 0xf
mov byte [esp + 0x308], 6
mov byte [esp + 0x330], 1
mov byte [esp + 0x360], 0x34
mov byte [esp + 0x32b], 0x3e
lea eax, [esp + 0x46c]
mov dword [esp + 0x37c], eax
mov eax, dword [esp + 0x45c]
lea ecx, [eax + 0xe8]
mov dword [esp + 0x36c], ecx
lea ecx, [eax + 0xa8]
mov dword [esp + 0x398], ecx
lea ecx, [eax + 0xa4]
mov dword [esp + 0x404], ecx
lea ecx, [esp + 0x468]
mov dword [esp + 0x324], ecx
lea eax, [eax + 0xb0]
mov dword [esp + 0x3c8], eax
mov eax, dword [esp + 0xe4]
mov edi, 0
mov byte [esp + 0x38c], 0x19
mov byte [esp + 0x3e0], 0x3d
mov byte [esp + 0x376], 0x51
mov byte [esp + 0x348], 0x2d
mov byte [esp + 0x358], 0xd
mov byte [esp + 0x377], 0x3e
mov byte [esp + 0x39c], 0x1b
mov cl, 0x6f
mov dword [esp + 0x380], ecx
mov cl, 0x27
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x33c], 0
jmp 0x571aa8
mov al, byte [esp + 0x290]
movzx eax, al
cmp eax, 0x17
je 0x568753
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
mov esi, 0x1c
cmp eax, 0x50
jne 0x5687dc
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x434], ecx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
cmp esi, 0xf
jne 0x5686e1
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x5686e1
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
mov edx, dword [esp + 0x434]
mov ecx, 0xf
mov eax, 0x10
mov esi, edx
movzx edx, byte [esp + 0x9c]
cmp edx, 0x4b
mov edx, esi
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x438], esi
mov dword [esp + 0x454], edx
jne 0x56c0e4
jmp 0x568c46
mov edi, 0x10
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
imul ecx, dword [esp + 0x434], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
mov esi, 6
mov byte [esp + 0x290], 0x2a
lea ecx, [esp + 0x460]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627650
mov dword [esp + 0x208], eax
test eax, eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x30c], eax
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
jne 0x568f1d
jmp 0x56d946
mov dword [esp + 0x44c], ebx
mov byte [esp + 0x290], 0x17
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
mov dword [esp + 0x454], ecx
imul ecx, ecx, 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x460]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627650
mov dword [esp + 0x208], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x30c], edi
mov dword [esp + 0x41c], edi
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
mov ebx, dword [esp + 0x418]
jne 0x568868
jmp 0x568976
mov esi, 5
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
mov dword [esp + 0x454], ecx
imul ecx, ecx, 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
mov edi, 0x1c
mov byte [esp + 0x290], 0x50
lea ecx, [esp + 0x460]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00627650
mov dword [esp + 0x208], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x30c], eax
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
mov ebx, dword [esp + 0x418]
jne 0x56d6c7
jmp 0x569643
mov ecx, 0x19
movzx eax, dl
cmp eax, 9
je 0x5688d9
mov byte [esp + 0x303], dh
cmp eax, 0x49
jne 0x56892b
mov eax, 4
mov ecx, ebx
mov bl, 9
mov esi, dword [esp + 0x42c]
mov edx, dword [esp + 0x420]
mov dword [esp + 0x444], edx
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x440], edx
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x208]
mov dword [esp + 0x408], ecx
mov edx, dword [esp + 0x30c]
mov dword [esp + 0x424], edx
jmp 0x56feb2
mov byte [esp + 0x303], dh
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov dh, byte [esp + 0x22b]
mov esi, dword [esp + 0x208]
mov ebx, dword [esp + 0x44c]
jmp 0x56efe9
mov byte [esp + 0x31c], dl
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov eax, dword [esp + 0x244]
mov ebx, dword [esp + 0x44c]
jmp 0x5698d4
mov dword [esp + 0x418], ebx
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
xor eax, eax
mov edi, dword [esp + 0x460]
mov bl, byte [esp + 0x350]
mov dword [esp + 0x18c], eax
mov ecx, 0xf
lea eax, [edi + 0x34]
mov dword [esp + 0x150], eax
mov eax, dword [edi + 0x34]
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp eax, edx
jne 0x5689f1
mov dword [esp + 0xac], edi
mov byte [esp + 0x350], bl
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x566d2f
mov esi, 0xa
movzx eax, bl
cmp eax, 0x25
jne 0x568abd
mov dword [esp + 0x3d8], edi
xor ecx, ecx
cmp esi, 4
jne 0x568b9f
imul esi, esi
and esi, 3
cmp esi, 2
mov bl, byte [esp + 0x350]
mov edx, dword [esp + 0xf8]
mov esi, dword [esp + 0x274]
mov edi, dword [esp + 0xac]
jae 0x568be0
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov edi, dword [esp + 0x3d8]
jmp 0x57227e
mov bl, byte [esp + 0x350]
mov edx, dword [esp + 0xf8]
mov esi, dword [esp + 0x274]
mov edi, dword [esp + 0xac]
jmp 0x568be0
mov eax, 0x18
mov bl, 0x2f
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add ecx, edx
lea edx, [edi + 0x38]
xor esi, esi
test ecx, ecx
je 0x568bc0
mov dword [esp + 0xac], edi
mov dword [esp + 0x274], esi
mov dword [esp + 0xf8], edx
mov byte [esp + 0x350], bl
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ebx, dword [esp + 0x43c]
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0x408], ecx
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x41c], edi
cmp eax, 0x10
jne 0x568d2c
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
mov ecx, dword [esp + 0x438]
je 0x568d5f
mov dword [esp + 0x44c], ebx
mov byte [esp + 0x9c], 0x4b
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov edi, ecx
mov esi, dword [esp + 0x90]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x320]
mov eax, dword [eax]
mov ecx, dword [esp + 0xb4]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1e0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
lea ecx, [esp + 0x4e0]
call fcn.004b44f0
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0xffcb
call fcn.00427270
test eax, eax
jne 0x568d99
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x1d8], eax
jne 0x565219
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x568d89
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x42c], ecx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x568dbd
mov dword [esp + 0x1d8], eax
jmp 0x56c9d8
mov eax, dword [esp + 0xf8]
mov eax, dword [eax]
mov edi, dword [esp + 0x274]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x45c]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.00427270
test eax, eax
jne 0x568e31
cmp esi, 4
je 0x569135
mov edi, 0x14
mov ecx, dword [esp + 0x380]
test cl, cl
je 0x568ef3
mov eax, 0xc
movzx ecx, cl
cmp ecx, 0x27
je 0x568fb5
cmp ecx, 0x6f
jne 0x569072
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x414], eax
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
cmp edi, 0x10
jne 0x568f58
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x450]
jmp 0x568868
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
mov esi, 0x16
mov al, 0x6f
mov dword [esp + 0x380], eax
mov ebx, dword [esp + 0x460]
test ebx, ebx
je 0x5690e5
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x414], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov edi, dword [esp + 0x458]
mov edx, dword [esp + 0x23c]
cmp eax, 0xc
jne 0x567688
xor edi, edi
mov ebx, dword [esp + 0x20c]
jmp 0x569157
mov esi, 6
xor eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.004234b0
mov eax, 3
sub eax, edi
mov ecx, edi
xor ecx, eax
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x569140
cmp esi, 6
je 0x5691ba
mov byte [esp + 0x1ec], 8
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412cb0
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
lea ecx, [esp + 0x490]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
lea ecx, [esp + 0x494]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x494], eax
lea eax, [esp + 0x498]
mov dword [esp + 0x120], eax
mov dword [esp + 0x498], 0xfffffffe
lea ecx, [esp + 0x488]
mov dword [esp + 0x200], ecx
lea eax, [esp + 0x4d0]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x4a0]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov dword [esp + 0x3f4], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov edi, dword [esp + 0x258]
mov dword [esp + 0x338], edi
jne 0x569510
mov eax, dword [esp + 0x4a0]
cmp eax, 0x636f6964
jne 0x5693e4
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x5693e4
mov edi, 7
mov esi, 0xa
lea eax, [esp + 0x4b4]
mov ecx, dword [esp + 0x45c]
lea ecx, [ecx + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 8
call fcn.007c51d0
mov ecx, dword [esp + 0x214]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x408], ecx
mov eax, dword [esp + 0x258]
mov dword [esp + 0x424], eax
mov dword [esp + 0x338], eax
mov ecx, dword [esp + 0x398]
mov eax, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
mov ebx, dword [esp + 0x44c]
je 0x56795f
mov dword [esp + 0x448], edx
mov dword [esp + 0x428], eax
mov dword [esp + 0x398], ecx
cmp edi, 7
jne 0x569402
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x569402
mov dword [esp + 0x44c], ebx
jmp 0x56fb27
mov dword [esp + 0x3f4], 0x7000002f
mov edi, dword [esp + 0x258]
mov dword [esp + 0x338], edi
jmp 0x569510
mov byte [esp + 0x32b], 0x3e
mov eax, dword [esp + 0x4dc]
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x454]
imul ecx, esi, 0x1c
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x3b0], eax
mov eax, dword [eax]
mov dword [esp + 0x3ac], eax
mov edx, dword [esp + 0x220]
mov dword [edx], eax
mov eax, dword [esp + 0x204]
cmp dword [eax], 0x21
sete al
mov ecx, dword [esp + 0x218]
cmp dword [ecx], 2
jne 0x5694b7
test al, al
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x434], esi
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x458]
mov eax, edx
mov dword [esp + 0x23c], edx
jne 0x567688
jmp 0x571324
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x458]
mov dword [esp + 0x434], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x23c], edx
jmp 0x571324
test edi, edi
je 0x56954e
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x56954e
xor esi, esi
mov bl, 1
jmp 0x569546
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.004936c0
test esi, esi
je 0x569530
test bl, bl
je 0x569530
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov dword [esp + 0x424], edi
mov dword [esp + 0x3c0], eax
movzx eax, byte [esp + 0x3b8]
cmp eax, 0x18
jne 0x5695bf
mov eax, 8
mov byte [esp + 0x3b8], 0x18
mov dh, 8
mov byte [esp + 0x1ac], 0x69
mov ecx, dword [esp + 0x474]
mov dword [esp + 0x15c], ecx
cmp ecx, 2
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0x1b4], ecx
mov dl, byte [esp + 0x31c]
jbe 0x56f6ae
jmp 0x5696ec
mov dh, 8
mov byte [esp + 0x1ac], 0x69
mov ecx, dword [esp + 0x474]
cmp ecx, 3
jb 0x56968b
mov byte [esp + 0x3b8], 0x34
mov esi, 0x13
mov eax, ecx
or eax, 2
mov dword [esp + 0x15c], ecx
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x1b4], eax
mov edi, dword [esp + 0x438]
mov dword [esp + 0x42c], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x450]
mov dl, byte [esp + 0x31c]
je 0x56f6cd
cmp esi, 5
jne 0x5696bb
mov dword [esp + 0x15c], ecx
mov byte [esp + 0x3b8], 0x34
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x1b4], eax
mov dl, byte [esp + 0x31c]
mov edi, dword [esp + 0x438]
jmp 0x56f6cd
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
mov ecx, dword [esp + 0x46c]
test ecx, ecx
jne 0x569722
mov eax, ecx
mov dword [esp + 0x1a0], ecx
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x570a6e
jmp 0x5709fc
mov dword [esp + 0x1a0], ecx
jmp 0x5709fc
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412560
mov eax, dword [esp + 0x3e4]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x338]
jmp 0x569510
mov eax, dword [esp + 0x438]
mov eax, dword [eax]
mov dword [esp + 0x1f8], eax
test eax, eax
je 0x569796
mov ecx, 6
xor eax, eax
test al, al
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
je 0x56d4e8
jmp 0x569a3e
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jmp 0x569a3e
mov dword [esp + 0x438], esi
mov edx, dword [edx + 4]
test edx, edx
je 0x56986c
mov eax, 0x16
mov ecx, edx
mov dword [esp + 0x1f8], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov edi, dword [esp + 0x41c]
je 0x569a3e
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
cmp eax, 9
jne 0x569863
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov esi, dword [esp + 0x438]
mov dword [esp + 0x42c], esi
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
je 0x56987f
mov eax, 0x12
movzx edx, byte [esp + 0x19c]
cmp edx, 1
je 0x56cfec
mov ecx, 3
mov eax, 0xa
cmp edx, 0x22
mov edx, dword [esp + 0x238]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x454], edx
je 0x565479
jmp 0x56f433
mov esi, dword [esp + 0x438]
jmp 0x56987f
mov dword [esp + 0x1f8], edx
mov edi, dword [esp + 0x41c]
jmp 0x569a3e
mov edx, dword [esp + 0x1f8]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
cmp ecx, 0xffffffce
mov ebx, dword [esp + 0x44c]
jne 0x5697a9
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x5697a9
mov cl, 7
movzx ecx, cl
cmp ecx, 0xd
jne 0x569908
mov dword [esp + 0x438], esi
mov ecx, 0xc
test eax, eax
je 0x5698d4
mov edx, eax
and edx, 1
inc edx
xor edx, eax
mov esi, eax
jne 0x569963
cmp ecx, 0xc
je 0x569a30
mov cl, 1
test cl, cl
je 0x569a30
mov dword [esp + 0x438], esi
test eax, eax
je 0x569a30
mov ecx, 0x12
xor edx, edx
test dl, dl
mov dword [esp + 0x244], eax
mov edi, dword [esp + 0x41c]
jne 0x569a3e
mov dword [esp + 0x41c], edi
cmp ecx, 8
jne 0x569961
mov dword [esp + 0x44c], ebx
cmp dword [esp + 0x160], 0
mov dword [esp + 0x244], eax
je 0x5656a9
jmp 0x572cfe
mov esi, eax
mov eax, dword [esi + 8]
mov dword [esp + 0x4d0], eax
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esp + 0x4d4], eax
test eax, eax
jne 0x569a03
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x569a03
mov dword [esp + 0x244], esi
mov eax, 0xa
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x458]
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x408], 0x70000003
mov ecx, dword [esp + 0x338]
mov dword [esp + 0x424], ecx
jmp 0x564f6f
mov ecx, dword [esp + 0x4d0]
mov edx, dword [esi + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x170], esi
mov dh, byte [esp + 0x22b]
jmp 0x56efc3
mov dword [esp + 0x244], eax
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
xor ecx, ecx
mov edx, 0xffffffff
mov edi, dword [esp + 0x3e4]
jmp 0x569a7a
mov eax, 0x17
inc ecx
mov esi, dword [esp + 0x45c]
mov dword [esi + 0x1c0], 1
dec edx
xor edi, edi
mov esi, ecx
and esi, 1
xor esi, edx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x569a60
mov dword [esp + 0x3e4], edi
mov edx, dword [esp + 0x438]
cmp eax, 0xe
je 0x569adc
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x450]
mov dword [esp + 0x42c], edx
mov dword [esp + 0x438], edx
jne 0x56972e
jmp 0x56e875
mov edi, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x450]
mov dword [esp + 0x42c], edx
jmp 0x56e875
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x244], esi
mov byte [esp + 0x22b], 0xb
mov byte [esp + 0x1eb], 0x51
mov eax, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x4d4]
lea edx, [esp + 0x4d8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0062d620
mov dword [esp + 0x408], eax
test eax, eax
je 0x569c00
mov esi, 1
xor eax, eax
test al, al
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x104], eax
jne 0x56f12c
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
je 0x569510
mov ebx, dword [esp + 0x438]
movzx ecx, byte [esp + 0x358]
cmp ecx, 0x1b
je 0x569c21
cmp ecx, 0x5e
je 0x566b50
mov eax, 5
cmp ecx, 0x71
jne 0x569d1c
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x3f4], ecx
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x130]
jmp 0x572ae1
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x104], eax
jmp 0x56f12c
mov byte [esp + 0x358], 0xd
imul eax, dword [esp + 0x454], 0x1c
add eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1e0]
mov edi, dword [edx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov esi, ebx
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x408], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x42c], esi
mov edi, dword [esp + 0x450]
mov dword [esp + 0x418], edi
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov edx, dword [esp + 0x440]
mov dword [esp + 0x43c], edx
mov eax, dword [esp + 0x41c]
mov esi, eax
mov dword [esp + 0x424], eax
mov dword [esp + 0x428], edi
mov edi, esi
mov esi, 0xd
mov dword [esp + 0x448], ecx
mov dword [esp + 0x44c], edx
mov dword [esp + 0x458], eax
je 0x57227e
jmp 0x56fb1e
mov byte [esp + 0x358], 0x1b
imul eax, dword [esp + 0x454], 0x1c
add eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1e0]
mov esi, dword [edx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov dword [esp], esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov dword [esp + 0x3f4], eax
test eax, eax
mov esi, dword [esp + 0x450]
mov dword [esp + 0x428], esi
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x448], ecx
mov edx, dword [esp + 0x440]
mov dword [esp + 0x44c], edx
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x458], eax
mov edi, eax
mov dword [esp + 0x42c], ebx
mov dword [esp + 0x418], esi
mov dword [esp + 0x420], ecx
mov dword [esp + 0x43c], edx
mov ecx, dword [esp + 0x3f4]
mov dword [esp + 0x408], ecx
mov dword [esp + 0x424], eax
jne 0x569510
jmp 0x57227e
cmp ecx, 0x51
jne 0x569e1a
mov byte [esp + 0x1eb], 0xa
jmp 0x569e86
mov byte [esp + 0x1eb], 0x51
mov al, 0x6d
mov ecx, dword [esp + 0x4d8]
mov dword [esp + 0x2b0], ecx
mov ecx, dword [ecx]
test ecx, ecx
mov esi, dword [esp + 0x438]
jne 0x569eaa
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x569eaa
mov eax, 3
mov dword [esp + 0x3e4], 0
mov dword [esp + 0x42c], esi
cmp eax, 3
mov edi, dword [esp + 0x41c]
mov esi, dword [esp + 0x42c]
je 0x5662e7
mov dword [esp + 0x438], esi
jmp 0x5662fd
mov al, 0x6d
mov ecx, dword [esp + 0x4d8]
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x3e4], 0
cmp dword [ecx], 0
je 0x56972e
xor edx, edx
mov ecx, 0xc
movzx eax, al
cmp eax, 0x24
je 0x56a03f
cmp eax, 0xc
jne 0x56a54c
jmp 0x570a6e
mov dword [esp + 0x3e4], eax
cmp ecx, 0xc
jne 0x56a539
mov eax, dword [esp + 0x46c]
mov dword [esp + 0x1c4], eax
test eax, eax
je 0x56a5b7
mov dword [esp + 0x3f4], 0x70000031
mov eax, 0xb
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x2f4]
mov dword [esp + 0x17c], ecx
mov ecx, dword [esp + 0x2f8]
mov dword [esp + 0x40c], ecx
mov ecx, dword [esp + 0x32c]
mov dword [esp + 0x394], ecx
mov ecx, dword [esp + 0x338]
mov edi, ecx
mov dword [esp + 0x424], ecx
je 0x570c1f
jmp 0x569510
mov dword [esp + 0x3f4], 0x70000031
mov eax, dword [esp + 0x2f4]
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x40c], eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x394], eax
mov edi, dword [esp + 0x338]
jmp 0x569510
mov eax, dword [esp + 0x17c]
mov eax, dword [eax + 8]
mov dword [esp + 0x16c], eax
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov eax, dword [eax + ecx + 0x10]
test eax, eax
jne 0x56a6d0
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
mov esi, dword [esp + 0x438]
je 0x56a6e0
movzx edx, byte [esp + 0x28c]
cmp edx, 0x2c
je 0x56a6f3
mov eax, 0x11
cmp edx, 0x4b
je 0x56a752
mov edi, esi
cmp edx, 0x4f
jne 0x56a841
mov byte [esp + 0x28c], 2
mov eax, dword [esp + 0x16c]
mov ecx, dword [eax + ecx + 0x18]
test ecx, ecx
jne 0x56a93e
mov eax, ecx
mov dword [esp + 0xe8], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x42c], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov dword [esp + 0x408], ebx
jb 0x56b132
jmp 0x56a97d
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x56a6e7
mov dword [esp + 0x42c], esi
mov dword [esp + 0x408], ebx
jmp 0x56abfe
mov byte [esp + 0x28c], 0x4b
mov eax, dword [esp + 0x16c]
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0xe8], eax
test eax, eax
mov dword [esp + 0x42c], esi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov dword [esp + 0x408], ebx
jne 0x56a97d
jmp 0x56b132
mov dword [esp + 0x42c], esi
mov dword [esp + 0x408], ebx
mov edx, dword [esp + 0x444]
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
mov esi, dword [esp + 0x240]
mov edi, dword [esp + 0x318]
mov ebx, dword [esp + 0x24c]
cmp eax, 5
jne 0x56a7de
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56a7de
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jmp 0x566a78
mov dword [esp + 0x420], edx
mov dword [esp + 0x24c], ebx
mov dword [esp + 0x318], edi
mov dword [esp + 0x240], esi
mov byte [esp + 0x28c], 0x2c
mov eax, dword [esp + 0x40c]
shl eax, 6
mov ecx, dword [esp + 0x16c]
mov edx, dword [ecx + eax + 0x18]
test edx, edx
jne 0x56a90d
mov eax, 0xa
mov ecx, edx
mov dword [esp + 0xe8], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x56c666
jmp 0x56a97d
mov esi, 0x13
mov byte [esp + 0x28c], 0x4f
mov eax, dword [esp + 0x16c]
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0xe8], eax
test eax, eax
mov dword [esp + 0x42c], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov dword [esp + 0x408], ebx
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
jne 0x56a97d
cmp esi, 4
jne 0x56a916
mov eax, 3
sub eax, esi
xor eax, esi
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
jne 0x565a44
jmp 0x56b132
mov dword [esp + 0xe8], edx
jmp 0x56a97d
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
jmp 0x56cc48
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x42c], edi
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
mov dword [esp + 0x408], ebx
mov eax, dword [esp + 0x40c]
shl eax, 6
mov ecx, dword [esp + 0x16c]
cmp dword [ecx + eax + 0x1c], 0
je 0x56ae3c
mov esi, 0x10
movzx edx, byte [esp + 0x29f]
cmp edx, 0x1a
mov edi, dword [esp + 0x418]
mov ebx, dword [esp + 0x43c]
je 0x56ab3d
cmp edx, 0x37
je 0x56ab73
mov ecx, 0x1a
mov eax, 6
cmp edx, 0x45
mov esi, dword [esp + 0x458]
mov edx, dword [esp + 0x410]
mov dword [esp + 0x3f0], edx
mov edx, dword [esp + 0x420]
mov dword [esp + 0x444], edx
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
mov edi, esi
mov edx, dword [esp + 0x454]
mov dword [esp + 0x434], edx
mov edx, dword [esp + 0x23c]
jne 0x56aa61
cmp ecx, 0xa
je 0x56aadf
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x56aadf
mov byte [esp + 0x29f], 0x5e
mov eax, dword [esp + 0xe8]
cmp dword [eax], 5
je 0x56b132
mov esi, 0x10
xor eax, eax
test al, al
je 0x567031
cmp eax, 6
jne 0x56aabe
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x56aabe
mov ebx, 0x15
mov byte [esp + 0x29f], 0x45
mov eax, dword [esp + 0xe8]
cmp dword [eax], 5
mov dword [esp + 0x23c], edx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
jne 0x56abfe
jmp 0x57175f
mov dword [esp + 0x23c], edx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x458], edi
jmp 0x572009
mov al, 0x33
mov dword [esp + 0x33c], eax
mov edx, dword [esp + 0x24c]
cmp edx, 0x3e
jne 0x56abae
mov eax, 8
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
jne 0x569e63
jmp 0x5661c3
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
mov eax, dword [esp + 0x428]
mov ecx, dword [esp + 0x448]
mov edx, dword [esp + 0x44c]
jmp 0x56c380
mov byte [esp + 0x29f], 0x1a
mov eax, dword [esp + 0xe8]
cmp dword [eax], 5
je 0x56abdd
xor eax, eax
test al, al
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
je 0x56abfe
jmp 0x56b132
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
jmp 0x5661c3
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
jmp 0x56b132
mov eax, dword [esp + 0x1c4]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x56ac25
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x56ac25
mov dword [esp + 0x1c0], ecx
jmp 0x56b132
mov dword [esp + 0x1c0], ecx
movzx ecx, byte [esp + 0x2e0]
cmp ecx, 0x23
je 0x56ad15
cmp ecx, 0x32
je 0x56add0
mov byte [esp + 0x2e0], 0x20
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x40c]
mov eax, dword [eax + ecx*4]
cmp eax, 3
jne 0x56b132
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
jmp 0x56b132
mov esi, 3
mov edi, dword [esp + 0x40c]
mov eax, edi
shl eax, 6
mov edx, dword [esp + 0x16c]
mov ecx, dword [edx + eax + 4]
mov eax, dword [edx + eax + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x45c]
mov dword [esp], eax
call fcn.00410fa0
test eax, eax
mov edx, dword [esp + 0x428]
jne 0x56aeed
mov eax, 0xe
mov bl, byte [esp + 0x2f3]
movzx ecx, bl
cmp ecx, 0x2f
jne 0x56b015
mov ecx, dword [esp + 0x414]
mov dword [esp + 0x3c4], ecx
mov esi, dword [esp + 0x410]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
jmp 0x571f78
mov eax, dword [esp + 0x424]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov ebx, dword [esp + 0x450]
mov ecx, dword [esp + 0x41c]
mov edi, dword [esp + 0x44c]
cmp esi, 3
jne 0x56afa3
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x56afa3
mov dword [esp + 0x44c], edi
mov dword [esp + 0x428], edx
mov dword [esp + 0x41c], ecx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], ebx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x424], eax
jmp 0x56b132
movzx eax, byte [esp + 0x348]
cmp eax, 0x2d
je 0x56b07e
mov dword [esp + 0x41c], ecx
cmp eax, 0x51
je 0x566c76
mov dword [esp + 0x418], ebx
mov dword [esp + 0x44c], edi
mov dword [esp + 0x428], edx
mov byte [esp + 0x348], 0x2d
mov eax, dword [esp + 0x218]
mov ecx, dword [eax]
cmp ecx, 3
jb 0x566cc8
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x10c], ecx
mov edi, dword [esp + 0x3d8]
jne 0x566edb
jmp 0x571d73
xor ecx, ecx
jmp 0x56b049
mov eax, 0xc
mov bl, 0x2f
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esp + 0x46c]
mov edx, dword [edx + 0x10]
mov dword [edx + edi*4], 0
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp ecx, edx
jb 0x56b020
mov byte [esp + 0x2f3], bl
mov edx, dword [esp + 0x424]
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
jmp 0x570cc3
mov dword [esp + 0x418], ebx
mov dword [esp + 0x44c], edi
mov dword [esp + 0x428], edx
mov dword [esp + 0x41c], ecx
mov eax, 0x1d
mov byte [esp + 0x348], 0x5a
mov ecx, dword [esp + 0x218]
mov ecx, dword [ecx]
cmp ecx, 3
jae 0x566ebd
mov dword [esp + 0x10c], ecx
mov edi, dword [esp + 0x3d8]
jmp 0x5727cf
mov bl, 0x64
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x46c]
mov ecx, dword [ecx + 0x10]
mov dword [ecx + edi*4], 0
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x56b0d0
mov dword [esp + 0x40c], edi
mov byte [esp + 0x2f3], bl
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x414], eax
mov dword [esp + 0x454], edx
mov dword [esp + 0x410], esi
call fcn.00449410
mov ecx, dword [esp + 0x46c]
mov esi, dword [ecx + 0x10]
mov ecx, esi
imul ecx, ecx
and ecx, 3
xor edi, edi
cmp ecx, 2
mov edx, dword [esp + 0x40c]
lea ecx, [esi + edx*4]
cmovae edi, ecx
test esi, esi
cmovne edi, ecx
mov ecx, dword [esp + 0x4d8]
mov ebx, dword [ecx + 8]
shl edx, 6
mov ecx, dword [ebx + edx + 0x10]
test ecx, ecx
je 0x56b1e4
mov esi, ecx
imul esi, esi
and esi, 3
cmp esi, 3
je 0x56b1e4
mov dword [esp + 0x314], ebx
mov dword [esp + 0x148], eax
movzx eax, byte [esp + 0x2c8]
cmp eax, 6
jne 0x56b23a
mov byte [esp + 0x2c8], 0x20
mov ecx, dword [ecx]
test edi, edi
je 0x56b54b
mov eax, edi
mov dword [esp + 0x340], edi
imul eax, eax
and eax, 3
cmp eax, 1
ja 0x56b55e
mov esi, 0x10
test ecx, ecx
mov dword [esp + 0x144], ecx
jne 0x56b6a6
jmp 0x57276a
mov dword [esp + 0x340], edi
movzx ecx, byte [esp + 0x2c0]
cmp ecx, 0x14
je 0x56b29f
mov dword [esp + 0x314], ebx
cmp ecx, 0x4d
mov bl, byte [esp + 0x2d0]
jne 0x56b31f
mov ecx, dword [esp + 0x314]
mov esi, dword [ecx + edx + 0x18]
test esi, esi
je 0x56b399
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x6f
jmp 0x56b3e0
mov eax, edi
mov dword [esp + 0x340], eax
mov ebx, 7
mov byte [esp + 0x2c8], 6
mov edi, dword [ecx]
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
test eax, eax
setne dl
mov esi, eax
imul esi, esi
and esi, 3
cmp esi, 2
sete ch
or ch, dl
movzx edx, ch
cmp edx, 1
jne 0x56b3b4
movzx ecx, cl
cmp edi, ecx
mov dword [esp + 0x144], edi
mov eax, dword [esp + 0x224]
jne 0x56b6c5
jmp 0x57112b
mov esi, dword [ebx + edx + 0x18]
mov dword [esp + 0x314], ebx
test esi, esi
mov bl, byte [esp + 0x2d0]
jne 0x56b3c0
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x4d
mov edi, 8
mov eax, 3
sub eax, esi
xor eax, esi
je 0x56b3e0
mov dword [esp + 0xd0], esi
mov ecx, dword [esp + 0x454]
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
cmp edi, 8
jne 0x56b38d
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
mov dword [esp + 0x454], ecx
mov dword [esp + 0x434], ecx
jmp 0x56fb52
mov ecx, dword [esp + 0x314]
mov esi, dword [ecx + edx + 0x18]
test esi, esi
jne 0x56b3d1
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x14
mov ecx, 3
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x56b3e0
mov dword [esp + 0xd0], esi
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
jmp 0x56f86d
mov dword [esp + 0x454], ecx
jmp 0x565b86
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x6f
mov dword [esp + 0xd0], esi
jmp 0x5726ba
mov dword [esp + 0x144], edi
jmp 0x571124
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x4d
jmp 0x56b3e0
mov dword [esp + 0x148], eax
mov byte [esp + 0x2c0], 0x14
mov eax, 0x17
movsx ecx, bl
cmp ecx, 0x5b
jg 0x56b428
mov dword [esp + 0xd0], esi
movzx esi, bl
cmp esi, 0xe
je 0x56b496
mov byte [esp + 0x2d0], bl
mov ecx, 0x14
cmp esi, 0x28
mov edx, dword [esp + 0x454]
mov dword [esp + 0x434], edx
je 0x56bf4b
jmp 0x56cb71
mov dword [esp + 0xd0], esi
movzx ecx, bl
cmp ecx, 0x5c
je 0x56b4fb
cmp ecx, 0x63
jne 0x56b56a
mov byte [esp + 0x2d0], 0x5c
mov eax, dword [esp + 0x314]
mov eax, dword [eax + edx + 0x1c]
mov dword [esp + 0xbc], eax
test eax, eax
je 0x5726ba
mov eax, 0x1c
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
je 0x56c28a
jmp 0x56d616
mov byte [esp + 0x2d0], 0xe
mov eax, dword [esp + 0x314]
mov edx, dword [eax + edx + 0x1c]
test edx, edx
jne 0x56b584
mov eax, 0xc
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0xbc], edx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
jne 0x56c1c8
jmp 0x56bb97
mov byte [esp + 0x2d0], 0x42
mov eax, dword [esp + 0x314]
mov ecx, dword [eax + edx + 0x1c]
test ecx, ecx
jne 0x56b58d
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0xbc], ecx
not eax
test eax, eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
jne 0x56d616
jmp 0x56bb97
mov dword [esp + 0x340], edi
mov dword [esp + 0x144], ecx
jmp 0x57276a
mov dword [esp + 0x144], ecx
jmp 0x57276a
mov byte [esp + 0x2d0], bl
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
jmp 0x56cb71
mov dword [esp + 0xbc], edx
jmp 0x56b594
mov dword [esp + 0xbc], ecx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
jmp 0x56bb97
mov ecx, 0xd
mov byte [esp + 0x2e8], 0x46
mov eax, dword [esp + 0x340]
mov eax, dword [eax]
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp eax, edx
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
je 0x572304
mov eax, dword [esp + 0x40c]
shl eax, 6
mov ecx, dword [esp + 0x314]
lea edi, [ecx + eax + 0x14]
mov eax, dword [ecx + eax + 0x14]
test eax, eax
je 0x56b648
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x56b648
mov dword [esp + 0xc0], edi
jmp 0x56b777
mov dword [esp + 0x224], eax
mov esi, 0x16
mov al, byte [esp + 0x28b]
movzx ecx, al
cmp ecx, 0x30
je 0x56b6e7
mov eax, 9
cmp ecx, 0x4f
jne 0x56b72d
mov esi, 0x12
mov byte [esp + 0x28b], 0x4f
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x224], eax
mov dword [edi], eax
mov dword [esp + 0xc0], edi
cmp esi, 0x10
mov eax, dword [esp + 0x224]
jne 0x56b777
mov ecx, 3
sub ecx, esi
xor ecx, esi
je 0x56b777
mov dword [esp + 0x224], eax
mov ecx, 0xb
movzx eax, byte [esp + 0x2e8]
cmp eax, 0x12
jne 0x56b5b5
jmp 0x572730
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
cmp esi, 0xa
jne 0x56b747
mov eax, 3
sub eax, esi
xor eax, esi
je 0x56b747
mov dword [esp + 0xc0], edi
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
jmp 0x56b905
mov esi, 0x12
mov bl, 0x4e
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, dword [esp + 0xc0]
mov dword [ecx], eax
mov edx, dword [esp + 0x434]
jmp 0x56fca8
mov edx, dword [eax]
test edx, edx
jne 0x56b7e1
mov ecx, 3
sub ecx, edx
xor ecx, edx
je 0x56b7e1
xor edx, edx
mov edi, dword [esp + 0x394]
mov esi, dword [esp + 0x340]
jmp 0x56b7bb
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add edx, ecx
mov ecx, dword [esi]
mov dword [eax], ecx
mov edi, 1
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
cmp edx, ecx
jb 0x56b7a0
mov dword [esp + 0x400], edi
mov dword [esp + 0x224], eax
jmp 0x57273f
mov dword [esp + 0x224], eax
jmp 0x5726ba
mov eax, 0xa
mov byte [esp + 0x2d8], 0x62
mov ecx, dword [esp + 0x3a8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x56b816
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x572935
cmp eax, 0xa
mov ecx, dword [esp + 0x418]
mov edx, dword [esp + 0x420]
mov esi, dword [esp + 0x43c]
je 0x5725e5
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x424], edi
mov dword [esp + 0x444], edx
mov dword [esp + 0x440], esi
mov dword [esp + 0x450], ecx
jne 0x56cf67
jmp 0x5725e5
mov dword [esp + 0xc4], edx
mov byte [esp + 0x294], 0x59
mov eax, ecx
mov dword [esp + 0x40c], ecx
shl eax, 6
lea ecx, [edi + eax + 0x14]
mov dword [esp + 0xb8], ecx
mov esi, dword [edi + eax + 0x14]
mov dword [esp + 0x314], edi
test esi, esi
jne 0x56b8bc
mov eax, 2
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0x26c], esi
xor edx, 2
add edx, ecx
jne 0x56dabe
jmp 0x572e1b
mov dword [esp + 0x26c], esi
jmp 0x572e1b
mov eax, 0x14
mov byte [esp + 0x2ac], 0x67
mov ecx, dword [esp + 0x26c]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
je 0x56b9af
cmp eax, 9
jne 0x56d553
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov ecx, dword [esp + 0x438]
je 0x56b995
xor esi, esi
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0x224]
mov bl, byte [esp + 0x28b]
jmp 0x56b96a
mov bl, 0x30
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [edi], eax
test esi, esi
jne 0x56b97b
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 1
jbe 0x56b940
mov byte [esp + 0x28b], bl
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
jmp 0x56b777
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], ecx
jmp 0x56d616
xor eax, eax
mov ebx, dword [esp + 0x394]
mov esi, dword [esp + 0x3a8]
mov edi, dword [esp + 0x26c]
jmp 0x56b9da
inc eax
mov ecx, dword [esi]
mov dword [edi], ecx
mov ebx, 1
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x56b9d0
mov dword [esp + 0x400], ebx
jmp 0x56d553
mov byte [esp + 0x2a0], 0x29
mov eax, dword [esp + 0x1b0]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
je 0x56d616
mov eax, dword [esp + 0x1b0]
mov dword [eax], 0
mov dword [esp + 0x400], 1
jmp 0x56d616
imul eax, eax
and eax, 3
cmp eax, 2
je 0x56cb7c
mov eax, 0xf
mov byte [esp + 0x2d0], 0x28
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov edx, dword [esp + 0x314]
mov edx, dword [edx + ecx + 0x1c]
test edx, edx
jne 0x56bad1
mov ecx, edx
mov dword [esp + 0xbc], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
mov edi, dword [esp + 0x424]
mov esi, dword [esp + 0x444]
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ebx, dword [esp + 0x450]
jb 0x56d616
jmp 0x56bb09
mov dword [esp + 0xbc], edx
mov edi, dword [esp + 0x424]
mov esi, dword [esp + 0x444]
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ebx, dword [esp + 0x450]
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
cmp eax, 0xf
jne 0x56bb40
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x56bb40
mov dword [esp + 0x424], edi
mov dword [esp + 0x444], esi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
jmp 0x56bb97
mov byte [esp + 0x330], 1
mov dword [esp + 0x464], 0
mov eax, dword [esp + 0x164]
mov eax, dword [eax]
imul ecx, dword [esp + 0x434], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x464]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006274b0
mov ecx, 0xa
test eax, eax
mov edx, esi
jne 0x5683fc
jmp 0x5704b7
mov edx, dword [esp + 0x340]
test edx, edx
mov ecx, dword [esp + 0x148]
jne 0x56bd2f
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56bd2f
mov eax, 5
mov ecx, dword [esp + 0x2a4]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x56beb8
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
mov dword [esp + 0x3d8], edi
cmp eax, 2
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x43c]
je 0x566edb
imul eax, eax
and eax, 3
cmp eax, 2
je 0x566edb
mov eax, 0xf
movzx edx, byte [esp + 0x2b8]
cmp edx, 0x4b
je 0x56c252
mov ecx, 0xa
mov eax, 0xd
cmp edx, 0x6c
mov edx, dword [esp + 0x3d8]
mov dword [esp + 0x424], edx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x454], edx
jne 0x56f789
mov dword [esp + 0x43c], edi
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
je 0x566194
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x56bf9a
mov eax, 9
mov ecx, 6
mov edx, dword [esp + 0xd0]
mov edx, dword [edx]
mov esi, edx
and esi, 1
inc esi
xor esi, edx
sete bl
movzx esi, bl
cmp edx, esi
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x454], edx
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jne 0x56c0e4
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
cmp eax, 9
je 0x56bdbc
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x569760
mov esi, 9
mov eax, dword [esp + 0x3a8]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x56bfe1
cmp esi, 9
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
je 0x5710b5
mov eax, 0x18
movzx ecx, byte [esp + 0x1bf]
cmp ecx, 0x43
je 0x56c17a
mov eax, 9
cmp ecx, 0x55
mov edx, dword [esp + 0x410]
je 0x56c1c1
cmp ecx, 0x59
jne 0x5653f5
mov byte [esp + 0x1bf], 0x58
mov byte [esp + 0x21c], 0x76
lea eax, [esp + 0x474]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x474]
shl eax, 8
or eax, dword [esp + 0x478]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2fc]
mov ecx, dword [eax]
mov dword [esp + 0x1e4], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
lea eax, [esp + 0x478]
mov dword [esp + 0x204], eax
mov dword [esp + 0x3f0], edx
je 0x565ac4
jmp 0x570fa3
mov eax, dword [esp + 0x40c]
mov edx, eax
shl edx, 6
mov esi, dword [esp + 0x314]
mov eax, dword [esi + edx + 0x14]
test eax, eax
jne 0x56bf16
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x56bf16
lea esi, [esi + edx + 0x14]
xor edi, edi
mov ebx, 3
jmp 0x56bf08
inc edi
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
dec ebx
mov ecx, edi
xor ecx, ebx
setne cl
movzx ecx, cl
cmp edi, ecx
jb 0x56bef0
mov dword [esp + 0xc4], eax
mov ecx, 0xa
mov esi, dword [eax]
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp esi, edx
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
jne 0x56d616
cmp ecx, 0xa
jne 0x56c4f3
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x56c4f3
mov eax, 0xb
mov ecx, dword [esp + 0x2a4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xc4]
mov dword [edx], ecx
mov dword [esp + 0x400], 1
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
jmp 0x56d3a5
mov eax, 0xa
mov ecx, dword [esp + 0xbc]
cmp dword [ecx], 0
je 0x56f958
mov eax, dword [edx]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, dword [esp + 0x314]
mov ebx, dword [esp + 0x44c]
jne 0x56c543
mov edi, dword [esp + 0x3a8]
jmp 0x56c80b
mov eax, 0xd
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov esi, dword [esp + 0x314]
lea edx, [esi + ecx + 0x14]
mov dword [esp + 0xd4], edx
mov edx, dword [esi + ecx + 0x14]
test edx, edx
jne 0x56c586
mov esi, 0xa
mov ecx, edx
mov dword [esp + 0x184], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x318]
mov edi, dword [esp + 0x41c]
mov edx, dword [esp + 0x428]
mov ebx, dword [esp + 0x44c]
jae 0x57060b
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x428], edx
mov dword [esp + 0x318], ecx
cmp esi, 4
je 0x56c0a2
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x56c0a2
mov dword [esp + 0x41c], edi
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x184], eax
mov ecx, dword [esp + 0xd4]
mov dword [ecx], eax
mov esi, dword [esp + 0x438]
jmp 0x56d0d4
mov bl, byte [esp + 0x360]
movzx ecx, bl
cmp ecx, 0x34
je 0x56c31a
mov eax, 2
cmp ecx, 0x5e
jne 0x56c45a
mov dword [esp + 0x41c], edi
xor esi, esi
mov edi, 3
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
jmp 0x567c86
mov dword [esp + 0x434], edx
mov dword [esp + 0x41c], edi
cmp ecx, 6
jne 0x564d92
mov esi, 5
movzx ecx, byte [esp + 0x26b]
cmp ecx, 0x1c
je 0x56c5ff
mov eax, 0xf
cmp ecx, 0x20
mov edx, dword [esp + 0x410]
je 0x56c627
mov dword [esp + 0x44c], ebx
cmp ecx, 0x53
jne 0x56c6e5
mov byte [esp + 0x26b], 0x20
mov eax, dword [esp + 0x340]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x3f0], edx
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jne 0x5713d3
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
cmp eax, 9
jne 0x56c474
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56c474
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x56ba34
mov dword [esp + 0x3f0], edx
cmp eax, 9
je 0x56c1eb
imul eax, eax
and eax, 3
cmp eax, 3
je 0x56c1eb
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
jmp 0x57273f
mov byte [esp + 0x1bf], 0x55
mov byte [esp + 0x21c], 0x76
lea eax, [esp + 0x474]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x474]
shl eax, 8
lea ecx, [esp + 0x478]
mov dword [esp + 0x204], ecx
or eax, dword [esp + 0x478]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x1e4], eax
test eax, eax
je 0x565ac4
jmp 0x570fa3
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov dword [esp + 0x440], edi
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov dword [esp + 0x450], esi
cmp eax, 0xf
jne 0x56c4e0
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x56c4e0
mov esi, 0x19
mov byte [esp + 0x360], 0x2c
mov eax, dword [esp + 0x468]
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
mov ecx, dword [esp + 0x3c8]
movsd qword [ecx], xmm0
mov dword [esp], eax
mov dword [esp + 4], 0x2d
call fcn.0064bf00
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x450]
mov ecx, dword [esp + 0x444]
mov edx, dword [esp + 0x440]
mov dword [esp + 0x458], edi
mov dword [esp + 0x41c], edi
cmp esi, 0x10
jne 0x56c439
imul esi, esi
and esi, 3
cmp esi, 2
jae 0x56c439
mov dword [esp + 0x44c], edx
mov dword [esp + 0x448], ecx
mov dword [esp + 0x428], eax
mov byte [esp + 0x29f], 0x37
mov eax, dword [esp + 0xe8]
mov ecx, dword [eax]
cmp ecx, 5
jne 0x56abfe
mov eax, 0x17
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x56abfe
cmp eax, 7
jne 0x56b132
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
jne 0x5729de
jmp 0x56b132
mov dword [esp + 0x418], eax
mov dword [esp + 0x420], ecx
mov dword [esp + 0x43c], edx
mov edi, dword [esp + 0x458]
jmp 0x57227e
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov dl, byte [esp + 0x31c]
jmp 0x56d729
mov ebx, 0x12
mov byte [esp + 0x1bf], 0x59
mov byte [esp + 0x21c], 0x76
lea eax, [esp + 0x474]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x474]
shl eax, 8
lea ecx, [esp + 0x478]
mov dword [esp + 0x204], ecx
or eax, dword [esp + 0x478]
mov ecx, dword [esp + 0x45c]
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x1e4], eax
test eax, eax
je 0x565ac4
jmp 0x570f74
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x56bb97
mov byte [esp + 0x2d0], 0x63
mov eax, dword [esp + 0x40c]
shl eax, 6
mov ecx, dword [esp + 0x314]
mov ecx, dword [ecx + eax + 0x1c]
test ecx, ecx
je 0x56c5f3
mov eax, ecx
mov dword [esp + 0xbc], ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
jne 0x56bb97
jmp 0x56d616
mov esi, 0xc
mov eax, dword [esp + 0x40c]
shl eax, 6
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x108], ecx
mov ecx, dword [edx + eax + 0x14]
test ecx, ecx
je 0x56c7ff
mov eax, ecx
mov dword [esp + 0x158], ecx
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x56c963
jmp 0x5716d6
mov dword [esp + 0x184], edx
mov ecx, dword [esp + 0x318]
mov edi, dword [esp + 0x41c]
mov edx, dword [esp + 0x428]
mov ebx, dword [esp + 0x44c]
jmp 0x57060b
mov dword [esp + 0xbc], ecx
jmp 0x56cce3
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x571094
mov dword [esp + 0x44c], ebx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
cmp eax, 0xa
je 0x56ae3c
imul eax, eax
and eax, 3
cmp eax, 3
mov edx, dword [esp + 0x418]
mov esi, dword [esp + 0x43c]
je 0x56c7de
mov eax, 0xb
mov byte [esp + 0x26b], 0x1c
mov ecx, dword [esp + 0x340]
mov ecx, dword [ecx]
mov esi, edx
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
mov dword [esp + 0x3f0], esi
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
jne 0x5713d3
mov dword [esp + 0x424], edi
cmp eax, 0xb
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov esi, dword [esp + 0x428]
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jne 0x5670ea
jmp 0x5710b5
mov dword [esp + 0x158], ecx
jmp 0x5716d6
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x314], edx
mov dword [esp + 0x3a8], edi
mov eax, dword [esp + 0x40c]
shl eax, 6
mov edx, dword [edx + eax + 0x14]
test edx, edx
je 0x56c862
mov eax, 0x10
mov ecx, edx
mov dword [esp + 0xf0], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
jne 0x56f3f5
jmp 0x56d616
mov dword [esp + 0xf0], edx
jmp 0x56cce3
mov eax, 3
sub eax, ebx
xor eax, ebx
mov dword [esp + 0x23c], esi
mov dword [esp + 0x458], edi
mov dword [esp + 0x454], ecx
mov dword [esp + 0x410], edx
je 0x56b132
mov esi, dword [esp + 0x158]
mov eax, dword [esi]
test eax, eax
jne 0x56cb3b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x56cb3b
mov ecx, 0x17
mov eax, 0xf
movzx edx, byte [esp + 0x2de]
cmp edx, 0x69
mov dword [esp + 0x1a8], esi
mov edx, dword [esp + 0x394]
mov dword [esp + 0x400], edx
jne 0x56cb71
cmp ecx, 9
jne 0x56cb47
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x430]
mov ecx, dword [ecx]
mov dword [esp + 0x4fc], 4
mov dword [esp + 0x500], 2
mov dword [esp + 0x504], ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x508], eax
mov eax, 3
mov dword [esp + 0x514], 0
mov dword [esp + 0x510], 0
mov dword [esp + 0x50c], 0xfffffff9
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov edi, dword [esp + 0x458]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov byte [esp + 0x14c], 0xa
lea ecx, [esp + 0x4fc]
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
mov ebx, dword [esp + 0x23c]
je 0x56513c
mov dword [esp + 0x1a8], esi
jmp 0x56cce3
mov byte [esp + 0x2de], 0x55
mov eax, dword [esp + 0x340]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1a8]
mov dword [ecx], eax
mov dword [esp + 0x400], 1
jmp 0x56d616
xor ecx, ecx
cmp eax, 0xf
jne 0x56ba51
mov bh, byte [esp + 0x2de]
mov edi, dword [esp + 0x1a8]
jmp 0x56cba7
mov bh, 0x69
add eax, edx
setne al
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x340]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
mov esi, eax
add esi, edx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x56cb90
mov dword [esp + 0x400], 1
mov dword [esp + 0x1a8], edi
mov byte [esp + 0x2de], bh
jmp 0x56d616
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
jmp 0x56b132
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
jmp 0x56d616
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x314], edx
mov eax, dword [esp + 0x40c]
shl eax, 6
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x1f4], ecx
mov edx, dword [edx + eax + 0x14]
test edx, edx
je 0x56cd27
xor eax, eax
test al, al
je 0x56cd9d
mov eax, 0x10
mov bh, byte [esp + 0x2df]
movzx ecx, bh
cmp ecx, 0x11
je 0x56cda9
cmp ecx, 0x2f
jne 0x56cdbc
xor esi, esi
jmp 0x56cd82
mov bh, 0x11
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov edx, eax
mov eax, dword [esp + 0x1f4]
mov dword [eax], edx
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x56cd50
mov byte [esp + 0x2df], bh
mov dword [esp + 0x3a8], edi
jmp 0x56ce4f
mov dword [esp + 0x3a8], edi
mov bl, byte [esp + 0x39c]
jmp 0x57204b
mov dword [esp + 0x3a8], edi
mov esi, 1
mov byte [esp + 0x2df], 0x2d
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x1c8], ecx
mov eax, dword [esp + 0x1f4]
mov dword [eax], ecx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x414], ecx
mov edx, dword [esp + 0x1c8]
jne 0x56ee80
cmp dword [edx], 0
jne 0x56ce76
mov eax, dword [esp + 0x3a8]
mov eax, dword [eax]
mov dword [edx], eax
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x400], 1
jmp 0x56d616
mov dword [esp + 0x1c8], edx
jmp 0x56cce3
mov dl, 0x37
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov dword [esi], 0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x56ce90
mov dword [esp + 0x400], 1
mov byte [esp + 0x27c], dl
jmp 0x56d616
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x110], ecx
mov eax, dword [esp + 0x94]
mov dword [eax], ecx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, 0xf
mov edi, dword [esp + 0x110]
mov ecx, dword [edi]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x56d06d
xor ecx, ecx
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
mov ebx, dword [esp + 0x340]
jmp 0x56cfd8
mov eax, 0xa
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [ebx]
mov dword [edi], edx
mov dword [esp + 0x400], 1
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x56cfb0
cmp eax, 0xa
jne 0x56d000
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x56d616
mov byte [esp + 0x19c], 0x22
lea eax, [esp + 0x4e8]
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x4e4]
mov ecx, dword [esp + 0x4e8]
mov dword [esp + 0x1cc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x4e4]
mov dword [esp + 0x320], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x174], eax
test eax, eax
je 0x56d0b1
mov eax, dword [esp + 0x238]
mov dword [esp + 0x42c], eax
jmp 0x56490b
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x3f4], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
mov esi, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
mov edi, dword [esp + 0x44c]
mov ebx, dword [esp + 0x458]
mov ecx, dword [esp + 0x394]
jmp 0x571df9
mov ecx, 7
mov dword [esp + 0x3c0], 0x70000003
mov eax, dword [esp + 0x238]
mov dword [esp + 0x42c], eax
jmp 0x56fb41
mov edx, dword [esp + 0x184]
mov eax, dword [edx]
test eax, eax
jne 0x56d14e
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x56d14e
mov ebx, esi
xor eax, eax
mov edi, dword [esp + 0x394]
mov esi, dword [esp + 0x3a8]
jmp 0x56d11a
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], esi
jmp 0x56cce3
shl eax, 6
mov edi, dword [ecx + eax + 0x14]
test edi, edi
jne 0x56d18a
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56d197
mov byte [esp + 0x2ec], 0x65
jmp 0x56d1a4
mov byte [esp + 0x2ec], 0x65
jmp 0x57139c
mov byte [esp + 0x2ec], 0x65
jmp 0x57139c
mov dword [esp + 0x118], edi
mov dword [esp + 0x410], edx
jmp 0x5726ba
mov eax, 0xf
mov byte [esp + 0x2c4], 0x43
cmp dword [edi], 0
mov bl, byte [esp + 0x2ab]
je 0x56d1d6
xor ecx, ecx
test cl, cl
je 0x56d1e9
mov dword [esp + 0x118], edi
mov dword [esp + 0x410], edx
jmp 0x57265b
mov eax, 0x14
movzx ecx, bl
cmp ecx, 0x2c
jne 0x56d353
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x410], edx
mov esi, dword [esp + 0x42c]
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
mov dword [esp + 0x448], edx
mov dword [esp + 0x428], ecx
xor ecx, ecx
cmp eax, 0x10
jne 0x56d309
mov edx, eax
not edx
and edx, 1
add edx, eax
je 0x56d309
mov byte [esp + 0x2ab], bl
mov dword [esp + 0x118], edi
mov ebx, 0x19
mov byte [esp + 0x14c], 0x5c
mov byte [esp + 0x1df], 0x21
lea eax, [esp + 0x510]
mov dword [esp + 8], eax
lea eax, [esp + 0x514]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x56d392
mov ecx, 0x10
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x438], esi
mov edx, dword [esp + 0x3c4]
jb 0x570b03
jmp 0x56f0cf
mov eax, 0xc
mov bl, 0x40
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov dword [edi], 0
mov dword [esp + 0x400], 1
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x56d2e0
mov byte [esp + 0x2ab], bl
mov dword [esp + 0x118], edi
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x424], ecx
mov dword [esp + 0x42c], esi
mov edx, dword [esp + 0x454]
mov ecx, dword [esp + 0x400]
jmp 0x57268f
mov esi, 0xf
mov byte [esp + 0x2ab], 0x2c
mov dword [edi], 0
mov dword [esp + 0x118], edi
mov dword [esp + 0x400], 1
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x410], edx
jmp 0x571cde
mov dword [esp + 0x438], esi
mov edx, dword [esp + 0x3c4]
jmp 0x56f0cf
mov ecx, dword [esp + 0x40c]
mov edi, dword [esp + 0x314]
cmp eax, 0xb
jne 0x56b864
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56b864
mov dword [esp + 0x314], edi
mov dword [esp + 0x40c], ecx
mov dword [esp + 0xc4], edx
jmp 0x57273f
mov dword [esp + 0xdc], ebx
test al, al
mov eax, ebx
mov ebx, dword [esp + 0x44c]
jne 0x56d49b
xor ebx, ebx
mov eax, dword [esp + 0xdc]
jmp 0x56d43f
mov edi, 0x13
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
mov ecx, ebx
and ecx, 1
xor ecx, ebx
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x56d410
mov ebx, dword [esp + 0x44c]
cmp edi, 6
jne 0x56d49b
mov ecx, 3
sub ecx, edi
xor ecx, edi
je 0x56d49b
mov dword [esp + 0x44c], ebx
mov byte [esp + 0x2d6], 0xd
mov eax, dword [esp + 0x3a8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1a4]
mov dword [ecx], eax
mov dword [esp + 0x400], 1
jmp 0x57273f
cmp dword [eax], 0
jne 0x56d50d
mov ecx, 2
mov edi, 6
movzx edx, byte [esp + 0x2d6]
cmp edx, 0x74
mov dword [esp + 0x1a4], eax
jne 0x56d45a
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x394]
mov dword [esp + 0x400], edx
mov dword [esp + 0x1a4], eax
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x41c], edi
cmp ecx, 2
je 0x56d52e
xor eax, eax
test al, al
jne 0x56d52e
mov esi, dword [esp + 0x438]
jmp 0x56987f
mov dword [esp + 0x44c], ebx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov dword [esp + 0x1a4], eax
jmp 0x56cce3
mov byte [esp + 0x2d6], 0x74
mov eax, dword [esp + 0x3a8]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1a4]
mov dword [ecx], eax
mov dword [esp + 0x400], 1
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jmp 0x56d616
imul esi, esi
and esi, 3
cmp esi, 2
je 0x56fb27
mov eax, 0xe
mov esi, dword [esp + 0xdc]
cmp dword [esi], 0
je 0x56d5e0
xor eax, eax
mov cl, 1
mov edx, dword [esp + 0x394]
jmp 0x56d5cc
test eax, eax
je 0x56d5b0
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x394]
mov esi, dword [esp + 0x44c]
mov edx, dword [esp + 0x410]
jmp 0x570233
mov eax, 0xd
mov esi, dword [esp + 0x4d8]
mov edi, dword [esi + 8]
add esi, 8
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov ecx, dword [edi + ecx + 0x10]
test ecx, ecx
je 0x56d871
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
je 0x56d871
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x284], esi
mov esi, 0x15
mov eax, dword [ecx]
test eax, eax
mov ecx, dword [esp + 0x400]
mov edx, dword [esp + 0x434]
je 0x56d931
mov edi, 0x10
cmp eax, 3
mov dword [esp + 0x298], ecx
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov dword [esp + 0x454], edx
mov ebx, dword [esp + 0x450]
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
jne 0x56d764
cmp edi, 0x10
jne 0x568868
imul edi, edi
and edi, 3
cmp edi, 2
jae 0x568868
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x56e244
mov dword [esp + 0x41c], edi
mov byte [esp + 0x360], bl
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dh, byte [esp + 0x303]
mov eax, dword [esp + 0x46c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x56e10e
mov dword [esp + 0x3fc], edi
mov dword [esp + 0x284], esi
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x298], ecx
cmp eax, 2
mov ecx, dword [esp + 0x40c]
jne 0x56d8d6
mov byte [esp + 0x2e0], 0x32
mov eax, dword [esp + 0x1c0]
mov eax, dword [eax + ecx*4]
cmp eax, 3
jne 0x56b132
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x56ae6b
jmp 0x56b132
movzx eax, byte [esp + 0x2cc]
cmp eax, 3
je 0x56da8b
cmp eax, 0x59
mov edx, dword [esp + 0x3fc]
jne 0x56db1a
mov byte [esp + 0x2cc], 0x59
mov eax, ecx
shl eax, 6
mov eax, dword [edx + eax + 0x18]
test eax, eax
je 0x56dbf0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jne 0x56f39c
jmp 0x56dbf0
mov dword [esp + 0x298], ecx
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
cmp esi, 6
je 0x56e2f7
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x56e2f7
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
xor esi, esi
mov eax, dword [esp + 0x40c]
shl eax, 6
mov dword [esp + 0x420], eax
mov edx, dword [esp + 0x1b8]
jmp 0x56da6c
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x3a8]
mov edx, dword [eax]
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x3fc]
mov edi, dword [esp + 0x420]
mov ebx, dword [eax + edi]
mov dword [esp + 0x454], ebx
mov ebx, dword [eax + edi + 4]
mov edi, dword [eax + edi + 0xc]
mov eax, dword [esp + 0x45c]
mov ecx, dword [eax]
mov dword [esp + 0x43c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x454]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x43c]
mov dword [esp], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edx, eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x56d990
jmp 0x56de75
mov byte [esp + 0x2cc], 0xb
mov eax, ecx
shl eax, 6
mov ecx, dword [esp + 0x3fc]
mov ecx, dword [ecx + eax + 0x18]
test ecx, ecx
je 0x56dbf0
mov eax, 0xc
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
je 0x56dbf0
cmp eax, 2
je 0x56e602
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
jne 0x56f39c
jmp 0x5729de
mov eax, 0x14
mov byte [esp + 0x2cc], 3
shl ecx, 6
mov ecx, dword [edx + ecx + 0x18]
test ecx, ecx
jne 0x56e5be
mov esi, 3
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov edi, dword [esp + 0x458]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
je 0x5703ba
cmp esi, 3
jne 0x5656c7
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
je 0x565706
mov ecx, 0xf
movzx eax, byte [esp + 0x3f8]
cmp eax, 0x11
je 0x56dd21
xor esi, esi
cmp eax, 0x15
je 0x56deb2
cmp eax, 0x26
mov edi, dword [esp + 0x40c]
mov edx, dword [esp + 0x1b8]
jne 0x56e00f
shl edi, 6
mov dword [esp + 0x438], edi
jmp 0x56dd03
mov byte [esp + 0x3f8], 0x26
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x430]
mov ecx, dword [eax]
mov eax, dword [esp + 0x3fc]
mov edi, dword [esp + 0x438]
mov edx, dword [eax + edi]
mov dword [esp + 0x43c], edx
mov edx, dword [eax + edi + 4]
mov ebx, dword [eax + edi + 0xc]
mov eax, dword [esp + 0x45c]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edx, eax
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x56dc40
cmp eax, 2
je 0x56dc40
jmp 0x56dfaf
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov edx, dword [esp + 0x1b8]
mov eax, dword [esp + 0x44c]
cmp ecx, 0xd
mov edi, dword [esp + 0x40c]
jne 0x56dd7f
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
jmp 0x5700b6
mov dword [esp + 0x44c], eax
xor esi, esi
shl edi, 6
mov dword [esp + 0x43c], edi
jmp 0x56de5d
mov byte [esp + 0x3f8], 0x15
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x430]
mov ecx, dword [eax]
mov eax, dword [esp + 0x3fc]
mov edi, dword [esp + 0x43c]
mov edx, dword [eax + edi]
mov dword [esp + 0x454], edx
mov edx, dword [eax + edi + 4]
mov ebx, dword [eax + edi + 0xc]
mov eax, dword [esp + 0x45c]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x454]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edx, eax
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x56dda0
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
jmp 0x56dff5
mov eax, dword [esp + 0x40c]
shl eax, 6
mov dword [esp + 0x438], eax
mov edx, dword [esp + 0x1b8]
jmp 0x56df96
mov byte [esp + 0x3f8], 0x11
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x430]
mov ecx, dword [eax]
mov eax, dword [esp + 0x3fc]
mov edi, dword [esp + 0x438]
mov edx, dword [eax + edi]
mov dword [esp + 0x43c], edx
mov edx, dword [eax + edi + 4]
mov ebx, dword [eax + edi + 0xc]
mov eax, dword [esp + 0x45c]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edx, eax
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x56ded0
cmp eax, 3
je 0x56ded0
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x32c], eax
mov edi, dword [esp + 0x40c]
jmp 0x56e646
mov byte [esp + 0x3f8], 0x1e
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp + 0x43c], eax
mov ecx, edi
shl ecx, 6
mov eax, dword [esp + 0x3fc]
mov edx, dword [eax + ecx]
mov dword [esp + 0x438], edx
mov esi, dword [eax + ecx + 4]
mov ecx, dword [eax + ecx + 0xc]
mov ebx, dword [esp + 0x45c]
mov eax, edi
mov edi, dword [ebx]
mov ebx, dword [ebx + 4]
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x438]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], edi
mov edi, eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call fcn.0042fd40
mov edx, eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
jmp 0x5700a8
mov byte [esp + 0x31c], dl
xor esi, esi
mov ecx, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
jmp 0x56e2ae
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x450]
jmp 0x568976
mov ecx, dword [esp + 0x428]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov edi, dword [esp + 0x458]
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
jmp 0x5703ba
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
jmp 0x5729de
mov ebx, 0x10
mov dword [esp], edx
mov esi, edx
call fcn.00411e90
mov dword [esp], esi
call fcn.004302d0
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
add eax, edi
mov ecx, dword [esp + 0x4d8]
cmp eax, dword [ecx]
jae 0x56e76b
mov edx, 3
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x40c], edi
mov ecx, eax
mov dword [esp + 0x2f8], ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x178], eax
mov dword [esp + 0x298], eax
je 0x56e79c
cmp edx, 3
jne 0x56e722
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x56a54c
mov byte [esp + 0x14c], 0x26
mov byte [esp + 0x1df], 0x21
lea eax, [esp + 0x510]
mov dword [esp + 8], eax
lea eax, [esp + 0x514]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.00593400
test eax, eax
mov edi, dword [esp + 0x3d8]
jne 0x56513c
jmp 0x570b70
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x40c], edi
mov eax, dword [esp + 0x32c]
mov dword [esp + 0x178], eax
mov dword [esp + 0x298], eax
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp ebx, eax
mov esi, dword [esp + 0x418]
mov edi, dword [esp + 0x43c]
jne 0x56e8c4
mov eax, dword [esp + 0x3b0]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x220]
mov dword [edx + 8], eax
mov dword [edx + 0x10], 0
mov eax, dword [esp + 0x36c]
mov ecx, dword [esp + 0x3ac]
mov dword [eax], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x3cc], eax
mov ecx, dword [esp + 0x404]
mov dword [ecx], eax
mov eax, dword [esp + 0x37c]
mov dword [eax], edx
mov dword [esp + 0x428], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], edi
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
mov edi, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov ebx, dword [esp + 0x450]
mov byte [esp + 0x3e0], 4
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x3ec], eax
mov eax, 1
mov cl, byte [esp + 0x38c]
movzx ecx, cl
cmp ecx, 0x19
jne 0x56e9ff
mov byte [esp + 0x38c], 0x4f
mov eax, dword [esp + 0x218]
mov eax, dword [eax]
cmp eax, 7
jb 0x56eab8
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov esi, dword [esp + 0x3cc]
jne 0x5677fa
jmp 0x56eabf
mov ecx, dword [esp + 0x178]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jne 0x56ea0b
mov esi, 2
mov ebx, 0xe
mov byte [esp + 0xb0], 0x20
mov eax, dword [esp + 0x4d4]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x4d4], 0
mov eax, dword [esp + 0x4d8]
lea ecx, [esp + 0x4cc]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x4d4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov ecx, eax
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x3e4], 0
test ecx, ecx
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov dword [esp + 0x408], ecx
mov edi, dword [esp + 0x3d8]
je 0x56ea61
cmp esi, 2
jne 0x56ee17
mov eax, 3
sub eax, esi
xor eax, esi
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov ebx, dword [esp + 0x234]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jne 0x569510
jmp 0x5682a3
mov edx, dword [esp + 0x410]
jmp 0x5724a2
mov dword [esp + 0x3e4], 0
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x428], esi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], edi
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
jmp 0x56972e
cmp ebx, 0xe
je 0x56ebe2
xor eax, eax
test al, al
jne 0x56ebe2
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
jmp 0x57079d
mov esi, dword [esp + 0x3cc]
mov eax, 0x1c
movzx ecx, byte [esp + 0x377]
cmp ecx, 0x3e
mov edx, edi
jne 0x56eb7a
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x3cc], esi
mov ecx, dword [esp + 0x3ec]
mov dword [esp + 0x22c], ecx
cmp eax, 0xc
je 0x56ebb3
imul eax, eax
and eax, 3
cmp eax, 2
je 0x56ebb3
mov esi, 0xf
mov byte [esp + 0x377], 0x10
cmp dword [esp + 0x1d0], 0
mov eax, dword [esp + 0x22c]
mov edi, eax
mov dword [esp + 0x444], edx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x450], ebx
mov dword [esp + 0x428], ebx
mov dword [esp + 0x418], ebx
mov dword [esp + 0x448], edx
mov dword [esp + 0x420], edx
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x458], eax
jne 0x57227e
jmp 0x5651c8
mov byte [esp + 0x377], 0x3e
test esi, esi
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x3cc], esi
mov edi, dword [esp + 0x3ec]
mov dword [esp + 0x22c], edi
mov dword [esp + 0x444], edx
mov dword [esp + 0x420], edx
jmp 0x5678de
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
jmp 0x56a54c
mov dword [esp + 0x3d8], edi
mov edx, 7
movzx ecx, byte [esp + 0xb0]
cmp ecx, 0x20
mov edi, dword [esp + 0x418]
mov ebx, dword [esp + 0x43c]
jne 0x56ecdf
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
mov dword [esp + 0x428], edi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], ebx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
cmp edx, 7
jne 0x56ee62
mov ecx, edx
and ecx, 1
xor ecx, edx
not ecx
test ecx, ecx
mov edx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x3c4]
je 0x56ee79
mov eax, 2
mov byte [esp + 0xb0], 0x44
mov byte [esp + 0x194], 0x59
mov ecx, dword [esp + 0x4cc]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x4d0], ecx
mov ecx, dword [esp + 0x1e0]
mov ecx, dword [ecx]
test ecx, ecx
je 0x56f390
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov esi, dword [esp + 0x44c]
jne 0x571612
jmp 0x566de2
mov esi, 4
mov byte [esp + 0xb0], 0x20
mov byte [esp + 0x194], 0x59
mov eax, dword [esp + 0x4cc]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x4d0], eax
mov eax, dword [esp + 0x1e0]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x410]
mov edx, dword [esp + 0x434]
jne 0x5715c1
mov dword [esp + 0x43c], ebx
mov dword [esp + 0x418], edi
mov dword [esp + 0x410], ecx
mov ecx, 0xc
cmp dword [esp + 0x104], 0
mov dword [esp + 0x408], 0x700002bb
je 0x56f2e7
mov dword [esp + 0xe0], eax
mov ebx, 7
xor eax, eax
test al, al
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x42c]
mov edi, dword [esp + 0x3d8]
jne 0x57091e
cmp ebx, 7
jne 0x56f30f
mov dword [esp + 0x42c], eax
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x56f353
mov dword [esp + 0x434], edx
mov eax, 0xd
mov esi, dword [esp + 0x104]
lea ecx, [esi + 8]
mov dword [esp + 0x98], ecx
lea ecx, [esi + 4]
mov dword [esp + 0x3a0], ecx
mov edx, dword [esp + 0x13c]
cmp edx, dword [esi + 8]
ja 0x570296
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x458], edx
jne 0x5708a9
jmp 0x570296
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov ebx, dword [esp + 0x234]
jmp 0x5682a3
mov edx, dword [esp + 0x1c8]
mov eax, dword [esp + 0x3f0]
mov ecx, dword [esp + 0x3c4]
jmp 0x56ee80
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x1c8], edx
movzx eax, byte [esp + 0x388]
cmp eax, 0x16
je 0x56f1e3
mov esi, 0x11
cmp eax, 0x32
jne 0x56f24c
mov dword [esp + 0x414], ecx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
cmp esi, 0xf
mov ecx, dword [ebp + 0x1c]
mov eax, dword [esp + 0x20c]
mov ebx, dword [esp + 0x44c]
je 0x56efb5
imul esi, esi
and esi, 3
cmp esi, 3
je 0x56efb5
mov esi, 0xd
mov byte [esp + 0x388], 0x16
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
cmp esi, 0xd
mov ecx, dword [esp + 0x410]
jne 0x56f17d
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov dword [esp + 0x3f0], ecx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jne 0x569135
jmp 0x565ac4
mov dh, byte [esp + 0x22b]
mov esi, dword [esp + 0x244]
mov ecx, 0xe
movzx eax, dh
cmp eax, 0xb
je 0x569b04
mov dword [esp + 0x244], esi
mov dl, byte [esp + 0x31c]
mov esi, dword [esp + 0x208]
cmp ecx, 0xe
je 0x56f04f
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x56f04f
mov byte [esp + 0x22b], dh
xor eax, eax
jmp 0x56f013
mov dword [esp + 0x44c], ebx
mov dword [esp + 0x208], esi
mov byte [esp + 0x31c], dl
mov ebx, 0xb
mov byte [esp + 0x22b], 0x6f
mov byte [esp + 0x1eb], 0x51
mov eax, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x4d4]
lea edx, [esp + 0x4d8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0062d620
mov ecx, eax
mov dword [esp + 0x3f4], ecx
test ecx, ecx
mov eax, dword [esp + 0x170]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x338]
mov edi, eax
mov dword [esp + 0x408], ecx
mov edx, eax
jne 0x569510
cmp ebx, 0xb
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x424], edx
jne 0x56513c
mov eax, 0xc
movzx ecx, byte [esp + 0x1eb]
cmp ecx, 0xa
jne 0x569e0b
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x41c]
xor ecx, ecx
cmp eax, 0xc
jne 0x56f189
mov dword [esp + 0x41c], edi
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x56f190
mov dword [esp + 0x130], esi
mov byte [esp + 0x1eb], 0x65
jmp 0x569e86
mov dword [esp + 0x3f0], ecx
jmp 0x565ac4
mov dword [esp + 0x41c], edi
mov eax, dword [esp + 0x408]
mov edi, dword [esp + 0x424]
mov edx, dword [esp + 0xec]
jmp 0x56f1c5
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
add ecx, eax
mov eax, edx
mov edi, esi
test ecx, ecx
je 0x56f1b0
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x130], esi
mov dword [esp + 0xec], edx
jmp 0x569510
mov dword [esp + 0x3c4], ecx
mov byte [esp + 0x388], 0x32
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x45c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
jmp 0x569135
mov dword [esp + 0x3c4], ecx
xor esi, esi
mov edi, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x20c]
jmp 0x56f2cd
mov byte [esp + 0x388], 0x10
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x45c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0x39
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00509b10
mov eax, esi
not eax
and eax, 1
mov ecx, esi
add ecx, eax
setne cl
movzx ecx, cl
cmp esi, ecx
jb 0x56f270
jmp 0x569135
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x42c]
mov edi, dword [esp + 0x3d8]
jmp 0x57091e
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x44c], ecx
mov dword [esp + 0x458], edi
mov dword [esp + 0x454], edx
mov dword [esp + 0x438], eax
jmp 0x56956a
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov dword [esp + 0x454], edx
jmp 0x565b86
mov esi, dword [esp + 0x44c]
jmp 0x566de2
mov eax, 0x20
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov edx, dword [esp + 0x3fc]
mov edx, dword [edx + ecx + 0x1c]
test edx, edx
jne 0x56f3f5
mov ecx, 0x10
mov esi, edx
or esi, 2
xor edx, 2
add edx, esi
je 0x56f3f5
cmp ecx, 0x10
je 0x569181
cmp eax, 0x10
jne 0x56f4d7
mov eax, 0x16
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
je 0x56d616
cmp eax, 0xa
jne 0x56f544
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x56f544
mov esi, 0x1b
mov byte [esp + 0x19c], 1
lea eax, [esp + 0x4e8]
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x4e4]
mov ecx, dword [esp + 0x4e8]
mov dword [esp + 0x1cc], ecx
lea ecx, [ecx + ecx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x4e4]
mov dword [esp + 0x320], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov dword [esp + 0x174], eax
test eax, eax
je 0x56f5c7
mov dword [esp + 0x3c0], 0x70000003
xor eax, eax
test al, al
mov eax, dword [esp + 0x238]
mov dword [esp + 0x42c], eax
je 0x56490b
jmp 0x56f5e0
call fcn.00449410
mov edx, dword [esp + 0x4d8]
mov ecx, dword [edx + 8]
add edx, 8
mov dword [esp + 0xf4], edx
test eax, eax
jne 0x56f567
mov dl, byte [esp + 0x27c]
movzx eax, dl
cmp eax, 0x37
jne 0x56f5b9
mov byte [esp + 0x27c], 0x40
mov eax, dword [esp + 0xf0]
jmp 0x56ba3b
xor eax, eax
mov esi, dword [esp + 0xf0]
jmp 0x56cea9
mov dword [esp + 0x3c0], 0x70000003
mov eax, dword [esp + 0x238]
mov dword [esp + 0x42c], eax
cmp esi, 0xd
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov esi, dword [esp + 0x410]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
je 0x57051e
jmp 0x56956a
movzx edx, byte [esp + 0x2bc]
cmp edx, 0x3c
je 0x56fb6b
mov eax, 0xf
mov ecx, 0x13
cmp edx, 0x41
mov dl, byte [esp + 0x31c]
mov dh, byte [esp + 0x303]
jne 0x56f86d
cmp eax, 8
jne 0x56f9eb
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x56f9eb
mov dword [esp + 0x438], edi
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
mov ebx, 0x16
mov eax, 2
movzx ecx, byte [esp + 0x1ac]
cmp ecx, 0x55
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x3d8], ecx
mov dword [esp + 0x42c], edi
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov edi, dword [esp + 0x440]
mov edx, dword [esp + 0x454]
mov esi, dword [esp + 0x450]
jne 0x56f789
cmp ebx, 0xf
jne 0x56f745
mov eax, 3
sub eax, ebx
xor eax, ebx
jne 0x56a54c
mov esi, 0x1a
mov byte [esp + 0x1ac], 0x69
mov byte [esp + 0xcb], 0x78
cmp dword [esp + 0x15c], 2
je 0x56f76e
xor eax, eax
test al, al
je 0x570a6e
cmp esi, 0xf
jne 0x56f7fb
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x56956a
jmp 0x56f7fb
cmp eax, 2
jne 0x56fa3c
mov eax, 0x18
mov byte [esp + 0x1ac], 0x55
mov byte [esp + 0xcb], 0x78
cmp dword [esp + 0x15c], 2
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov dword [esp + 0x440], edi
mov dword [esp + 0x450], esi
mov dword [esp + 0x454], edx
mov dword [esp + 0x434], edx
jne 0x56f958
movzx eax, byte [esp + 0xcb]
cmp eax, 0x5d
je 0x56fc22
mov esi, 2
cmp eax, 0x78
jne 0x56fc7e
mov byte [esp + 0xcb], 0x1d
mov eax, dword [esp + 0x478]
mov esi, dword [esp + 0x46c]
cmp eax, 0x22
sbb cl, cl
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne al
test cl, al
jne 0x570154
test esi, esi
mov dword [esp + 0x1a0], esi
je 0x570a6e
mov eax, 8
xor ecx, ecx
test cl, cl
je 0x5709e4
jmp 0x570a6e
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
cmp ecx, 3
je 0x56d553
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov edx, dword [esp + 0x438]
je 0x56fc08
cmp eax, 0xa
mov edx, dword [esp + 0x434]
je 0x56f984
xor eax, eax
test al, al
jne 0x56f984
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], edx
jmp 0x570a6e
mov eax, 0xd
movzx ecx, byte [esp + 0x2d7]
cmp ecx, 0x31
jne 0x56f9d1
mov byte [esp + 0x2d7], 0x31
mov edi, dword [esp + 0x3a8]
mov eax, dword [edi]
test eax, eax
mov ebx, dword [esp + 0x44c]
je 0x56fbfc
imul eax, eax
and eax, 3
cmp eax, 3
mov edx, dword [esp + 0x314]
jne 0x56ccf6
jmp 0x56c80b
mov edi, dword [esp + 0x3a8]
mov ecx, dword [esp + 0x428]
mov ebx, dword [esp + 0x44c]
jmp 0x5663e7
mov byte [esp + 0x303], dh
mov byte [esp + 0x31c], dl
mov byte [esp + 0x2bc], 0x3c
mov eax, dword [esp + 0x46c]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x56fd42
mov dword [esp + 0x43c], edi
mov dword [esp + 0x418], esi
mov dword [esp + 0x434], edx
mov eax, dword [esp + 0x3a8]
mov edx, dword [eax]
mov eax, edx
and eax, 1
inc eax
xor eax, edx
sete bh
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov edi, dword [esp + 0x314]
mov eax, dword [edi + ecx + 0x14]
mov dword [esp + 0xdc], eax
test eax, eax
setne bl
mov esi, 3
sub esi, eax
xor esi, eax
setne al
and al, bl
movzx esi, bh
cmp edx, esi
mov byte [esp + 0x2b8], 0x29
jne 0x56fba6
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x424], ecx
mov edx, dword [esp + 0x434]
mov ebx, dword [esp + 0x418]
mov dword [esp + 0x454], edx
mov ecx, 0x12
mov esi, 0xf
test al, al
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
mov dword [esp + 0x434], edx
je 0x56fb41
cmp esi, 0xd
jne 0x56d574
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
jmp 0x569510
cmp ecx, 7
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
jne 0x56d616
jmp 0x56956a
mov byte [esp + 0x2bc], 0x4a
mov eax, dword [esp + 0x46c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xcc], eax
mov dword [esp + 0x154], 0
test eax, eax
je 0x56ff2a
xor eax, eax
test al, al
je 0x56fd49
jmp 0x56ff2a
lea esi, [edi + ecx + 0x14]
mov ecx, dword [esp + 0x3d8]
mov dword [esp + 0x424], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov ebx, dword [esp + 0xdc]
jmp 0x56d3e5
mov edx, dword [esp + 0x314]
jmp 0x56c80b
mov eax, 0xc
mov byte [esp + 0xcb], 0x5d
mov ecx, dword [esp + 0x478]
mov esi, dword [esp + 0x46c]
mov dword [esp + 0x1a0], esi
cmp ecx, 0x22
sbb dl, dl
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ch, ch
and ch, dl
test esi, esi
sete cl
mov edx, esi
and edx, 1
xor edx, esi
cmp edx, 0xffffffff
setne dl
test ch, 1
jne 0x56a031
and cl, dl
je 0x5709fc
jmp 0x56a031
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov edx, dword [esp + 0x454]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x224]
mov bl, byte [esp + 0x28b]
cmp esi, 2
jne 0x57010d
mov byte [esp + 0x28b], bl
mov dword [esp + 0xc0], ecx
mov ecx, esi
not ecx
and ecx, 1
add ecx, esi
je 0x570127
mov edi, edx
mov dword [esp + 0x224], eax
mov byte [esp + 0xcb], 0x78
mov eax, dword [esp + 0x478]
mov esi, dword [esp + 0x46c]
cmp eax, 0x22
sbb cl, cl
mov edx, eax
not edx
and edx, 1
add edx, eax
setne al
test cl, al
jne 0x570133
test esi, esi
mov ecx, edi
je 0x570160
mov eax, esi
mov dword [esp + 0x1a0], esi
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], ecx
jne 0x5709fc
jmp 0x570a6e
xor ecx, ecx
mov bh, byte [esp + 0x283]
movzx eax, bh
cmp eax, 8
je 0x56fe60
cmp esi, 0xc
jne 0x56fef2
mov eax, esi
not eax
and eax, 1
add eax, esi
mov ebx, dword [esp + 0x418]
jne 0x567ad6
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
jmp 0x56ff2a
mov dword [esp + 0x438], esi
mov dword [esp + 0x208], ecx
mov byte [esp + 0x31c], bl
cmp eax, 4
jne 0x56ff2a
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
jne 0x569510
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov edx, dword [esp + 0x40c]
mov ecx, edx
shl ecx, 6
mov esi, dword [eax + ecx + 0x3c]
mov dword [esp + 0x43c], esi
mov esi, dword [eax + ecx + 0x34]
mov dword [esp + 0x434], esi
mov esi, dword [eax + ecx + 0x2c]
mov dword [esp + 0x42c], esi
mov esi, dword [eax + ecx + 0x28]
mov dword [esp + 0x420], esi
mov esi, dword [eax + ecx + 0x24]
mov dword [esp + 0x418], esi
mov esi, dword [eax + ecx + 0x20]
mov dword [esp + 0x3f4], esi
mov esi, dword [eax + ecx + 0x1c]
mov edi, dword [eax + ecx + 0x18]
mov ebx, dword [eax + ecx]
mov dword [esp + 0x3f0], ebx
mov ebx, dword [eax + ecx + 4]
mov dword [esp + 0x3c4], ebx
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x32c], eax
mov ecx, dword [esi]
mov esi, dword [edi]
mov eax, dword [esp + 0x430]
mov ebx, dword [eax]
mov eax, dword [esp + 0x45c]
mov edi, dword [eax]
mov dword [esp + 0x3d8], edi
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x154]
mov dword [esp + 0x3c], edi
mov edi, edx
mov edx, dword [esp + 0x43c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x420]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x418]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x3f4]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x32c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3f0]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp], eax
mov dword [esp + 0x18], 0xffffffff
call fcn.0042fd40
mov edx, eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x458]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x32c], eax
jmp 0x56e646
mov byte [esp + 0x28b], bl
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x454], edx
jmp 0x56b777
mov dword [esp + 0x454], edx
jmp 0x56b777
mov dword [esp + 0x1a0], esi
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], edi
jmp 0x570a6e
mov dword [esp + 0x1a0], esi
jmp 0x570a6e
mov dword [esp + 0x1a0], esi
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], ecx
jmp 0x570a6e
mov dword [esp + 0x410], edx
mov dword [esp + 0x44c], esi
mov dword [esp + 0x400], ecx
cmp eax, 0xe
je 0x56d616
cmp eax, 0xb
je 0x570349
imul eax, eax
and eax, 3
cmp eax, 3
je 0x570349
mov esi, 0x13
mov eax, dword [esp + 0x3a0]
mov eax, dword [eax]
mov ecx, dword [esp + 0x13c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x408], 0x70000003
je 0x570408
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov ebx, dword [esp + 0x418]
mov eax, dword [esp + 0x420]
je 0x57041f
mov al, 0xe
movzx eax, al
cmp eax, 0xe
jne 0x5706dd
mov dword [esp + 0x3d8], edi
mov eax, 8
mov dword [esp + 0x408], 0x70000003
mov edx, dword [esp + 0x338]
mov dword [esp + 0x424], edx
mov edi, dword [esp + 0x108]
mov edx, dword [esp + 0x420]
jmp 0x5717f8
mov byte [esp + 0x1df], 0x71
mov eax, dword [esp + 0x510]
mov dword [esp + 0x180], eax
mov eax, dword [esp + 0x514]
mov dword [esp + 0x250], eax
mov eax, dword [esp + 0x2b4]
mov eax, dword [eax]
mov dword [esp + 0x188], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x320]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x12c], eax
test eax, eax
je 0x56513c
mov eax, 7
xor ecx, ecx
test cl, cl
jne 0x56513c
cmp eax, 7
jne 0x57074b
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
jne 0x564ee6
jmp 0x56f39c
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x418]
mov edx, dword [esp + 0x420]
jmp 0x57042a
mov dword [esp + 0xfc], ecx
mov ecx, ebx
mov edx, eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
mov dword [esp + 0x448], edx
mov dword [esp + 0x428], ecx
cmp esi, 9
jne 0x570781
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x42c]
jae 0x570788
mov ecx, 9
mov byte [esp + 0x270], 0x2c
mov eax, dword [esp + 0x278]
mov dword [eax], 3
mov edx, dword [esp + 0x444]
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov ebx, dword [esp + 0x450]
mov edi, dword [esp + 0x424]
cmp ecx, 9
je 0x5707f4
xor eax, eax
test al, al
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov esi, dword [esp + 0x410]
mov dword [esp + 0x424], edi
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jne 0x56f67c
mov eax, 0x13
mov ecx, dword [esp + 0x34c]
test cl, cl
je 0x5707b7
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x414], ecx
mov dword [esp + 0x410], esi
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
cmp eax, 5
mov ebx, dword [esp + 0x418]
jne 0x570675
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x570675
mov esi, dword [esp + 0x434]
imul eax, esi, 0x1c
mov ecx, dword [esp + 0x318]
mov eax, dword [ecx + eax + 0x18]
mov edx, dword [eax]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x424], edi
mov dword [esp + 0x454], esi
mov dword [esp + 0x450], ebx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov ebx, eax
mov eax, 0x1d
mov edi, dword [esp + 0x41c]
mov dword [esp + 0x458], edi
mov dword [esp + 0x41c], edi
mov dword [esp + 0x318], ecx
cmp eax, 0xd
jne 0x5706a7
mov ecx, 0x11
mov dword [esp + 0x34c], 0
mov eax, dword [esp + 0x464]
mov dword [esp + 0x1fc], eax
test eax, eax
mov edx, dword [esp + 0x420]
jne 0x5728aa
jmp 0x5683fc
mov dword [esp + 0x43c], ebx
mov edi, dword [esp + 0x458]
jmp 0x57227e
mov eax, dword [esp + 0x3a0]
mov dword [eax], ecx
mov eax, dword [esp + 0x4d0]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x98]
mov dword [ecx], eax
mov dword [esp + 0x408], 0x70000003
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x458], eax
mov dword [esp + 0x3e4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x424], eax
jmp 0x5708a9
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
jmp 0x56f39c
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
jmp 0x569510
mov ecx, 0x13
mov al, 0x27
mov dword [esp + 0x34c], eax
mov eax, dword [esp + 0x464]
mov dword [esp + 0x1fc], eax
test eax, eax
je 0x570838
xor eax, eax
test al, al
mov dl, byte [esp + 0x308]
mov eax, dword [esp + 0x3e4]
je 0x571f4a
jmp 0x56a079
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x424], edi
jmp 0x56f67c
mov dl, byte [esp + 0x308]
mov eax, dword [esp + 0x3e4]
jmp 0x56a079
mov dword [esp + 0x108], edi
mov eax, dword [esp + 0x3a0]
mov dword [eax], ecx
mov eax, dword [esp + 0x4d0]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, dword [esp + 0x4d0]
mov ecx, dword [esp + 0x98]
mov dword [ecx], eax
mov eax, dword [esp + 0x4d0]
mov dword [esp + 0x458], eax
mov dword [esp + 0x3e4], eax
mov edi, dword [esp + 0x3d8]
mov dword [esp + 0x3d8], edi
xor edi, edi
mov esi, 3
jmp 0x5708f9
mov eax, edi
xor eax, esi
setne al
movzx eax, al
cmp edi, eax
jb 0x5708c0
cmp ecx, 0xc
je 0x57098b
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], edx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
jne 0x56972e
jmp 0x569510
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x424]
mov dword [esp + 0x454], edx
jmp 0x569510
cmp eax, 5
je 0x56b8c8
imul eax, eax
and eax, 3
cmp eax, 2
je 0x56b8c8
mov bl, byte [esp + 0x303]
movzx eax, bl
cmp eax, 0x48
jne 0x570a2c
mov byte [esp + 0x303], 8
mov eax, dword [esp + 0x1a0]
mov dword [esp], eax
mov dword [esp + 4], 0x34
call fcn.0064bf00
jmp 0x570a6e
xor esi, esi
mov edi, dword [esp + 0x1a0]
jmp 0x570a53
mov bl, 0x48
inc esi
mov dword [esp], edi
mov dword [esp + 4], 0x34
call fcn.0064bf00
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x570a40
mov byte [esp + 0x303], bl
mov byte [esp + 0x364], 0x4b
mov byte [esp + 0x25c], 0xe
lea eax, [esp + 0x4e8]
mov dword [esp + 0x210], eax
mov ecx, dword [esp + 0x4e8]
mov dword [esp + 0x248], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
xor esi, esi
cmp ecx, eax
lea eax, [esp + 0x4e4]
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x424]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x304]
je 0x570ebf
mov ecx, 0x1d
movzx eax, byte [esp + 0x25c]
cmp eax, 0x4f
jne 0x570bbf
mov dword [esp + 0x304], edx
mov dword [esp + 0x410], esi
mov edx, dword [esp + 0x3c4]
cmp ecx, 0x10
jne 0x570c42
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
je 0x570c42
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dword [esp + 0x424], edx
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, 0xb
mov ecx, 0xe
movzx edx, byte [esp + 0x1df]
cmp edx, 0x71
je 0x570296
cmp ecx, 0xe
jne 0x570c8d
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x220]
jb 0x564e6a
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
mov edx, eax
jmp 0x571324
mov byte [esp + 0x25c], 0xe
mov eax, dword [esp + 0x260]
mov eax, dword [eax]
lea ecx, [esi + esi*2]
mov eax, dword [eax + ecx*8 + 0x14]
mov dword [esp + 0x198], eax
test eax, eax
mov edx, dword [esp + 0x3c4]
je 0x570ca7
mov eax, 0x16
xor ecx, ecx
test cl, cl
mov dword [esp + 0x410], esi
mov dword [esp + 0x304], esi
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x424], edx
jne 0x570e3b
cmp eax, 0xb
mov ebx, dword [esp + 0x3f4]
je 0x56a5f8
mov dword [esp + 0x408], ebx
mov edx, dword [esp + 0x424]
jmp 0x570cf0
mov edi, edx
mov eax, 9
mov byte [esp + 0x25c], 0x4f
mov ecx, dword [esp + 0x260]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x410]
lea edx, [esi + esi*2]
mov edx, dword [ecx + edx*8 + 0x14]
test edx, edx
jne 0x570cb3
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x198], edx
mov dword [esp + 0x304], esi
mov edx, edi
jne 0x570e3b
jmp 0x570cc3
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov edx, dword [esp + 0x220]
jmp 0x571324
mov dword [esp + 0x410], esi
jmp 0x570e3b
mov dword [esp + 0x198], edx
mov dword [esp + 0x304], esi
mov edx, edi
cmp eax, 9
jne 0x57137a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x424], edx
je 0x56b132
mov eax, 0x11
movzx ecx, byte [esp + 0x364]
cmp ecx, 0x4b
jne 0x570d91
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov dword [esp + 0x424], edx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
xor esi, esi
cmp eax, 0xe
jne 0x570dbe
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x570dbe
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x56cf10
mov byte [esp + 0x364], 0x4b
mov eax, dword [esp + 0x198]
mov dword [esp], eax
mov esi, edx
call fcn.004936c0
mov edx, esi
mov eax, dword [esp + 0x210]
mov eax, dword [eax]
mov dword [esp + 0x248], eax
jmp 0x570e2d
mov edi, dword [esp + 0x198]
mov ebx, dword [esp + 0x210]
jmp 0x570df0
mov byte [esp + 0x364], 0x73
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], edi
call fcn.004936c0
mov ecx, dword [ebx]
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x570dd0
mov dword [esp + 0x210], ebx
mov dword [esp + 0x248], ecx
mov dword [esp + 0x198], edi
mov edx, dword [esp + 0x424]
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x304]
mov dword [esp + 0x410], eax
mov dword [esp + 0x3c4], edx
mov eax, 3
mov ecx, 3
mov edx, dword [esp + 0x410]
sub ecx, edx
xor ecx, edx
setne cl
movzx esi, cl
add esi, edx
cmp esi, dword [esp + 0x248]
jae 0x570ebf
mov ecx, esi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x570ebf
mov dword [esp + 0x3f0], esi
mov dword [esp + 0x410], edx
xor edi, edi
cmp eax, 3
mov bl, byte [esp + 0x3b4]
mov edx, dword [esp + 0x234]
jne 0x56824e
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x56824e
mov edx, dword [esp + 0x410]
mov esi, dword [esp + 0x3f0]
jmp 0x570ad8
mov dword [esp + 0x410], edx
mov dword [esp + 0x3f0], esi
mov ebx, 0x1a
mov eax, dword [esp + 0x260]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x4dc]
test ecx, ecx
jne 0x570f0d
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov dword [esp + 0x138], ecx
mov edx, dword [esp + 0x3c4]
jne 0x57154a
jmp 0x570f1b
mov dword [esp + 0x138], ecx
mov edx, dword [esp + 0x3c4]
cmp ebx, 0xc
je 0x571255
mov esi, edx
mov edi, dword [esp + 0x438]
imul ebx, ebx
and ebx, 3
cmp ebx, 2
je 0x5712c0
mov ebx, 0xc
mov eax, dword [esp + 0x138]
mov dword [esp], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov dword [esp + 0x42c], edi
mov dword [esp + 0x424], esi
mov eax, dword [esp + 0x410]
mov dword [esp + 0x304], eax
cmp ebx, 0xc
je 0x57152e
xor eax, eax
test al, al
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x304]
mov dword [esp + 0x410], eax
jne 0x57154a
movzx eax, byte [esp + 0x21c]
cmp eax, 0x3a
je 0x570fd8
mov ecx, 7
cmp eax, 0x76
jne 0x57115d
mov esi, 9
mov byte [esp + 0x21c], 0x76
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
mov dword [esp + 0x51c], 0
mov dword [esp + 0x518], 0
mov dword [esp + 0x4fc], 4
mov dword [esp + 0x500], 2
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0x508], eax
mov dword [esp + 0x50c], 0xfffffffd
lea eax, [esp + 0x518]
mov dword [esp + 8], eax
lea eax, [esp + 0x51c]
mov dword [esp + 4], eax
lea eax, [esp + 0x4fc]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
je 0x565552
cmp esi, 5
jne 0x5656e3
mov byte [esp + 0x26b], 0x50
mov eax, dword [esp + 0x340]
cmp dword [eax], 0
jne 0x5713d3
movzx eax, byte [esp + 0x2ec]
cmp eax, 0x1f
mov eax, dword [esp + 0x40c]
mov ecx, dword [esp + 0x314]
mov edx, dword [esp + 0x3f0]
je 0x56d168
shl eax, 6
mov edi, dword [ecx + eax + 0x14]
test edi, edi
jne 0x571394
mov byte [esp + 0x2ec], 0x1f
mov ebx, 0xf
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x57139c
mov dword [esp + 0x118], edi
mov dword [esp + 0x410], edx
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x224]
mov dword [esp + 0x224], eax
cmp ebx, 7
jne 0x57273f
mov ecx, ebx
not ecx
and ecx, 1
add ecx, ebx
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jne 0x57276a
jmp 0x56d616
cmp esi, 5
mov ebx, dword [esp + 0x458]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x3f4], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
je 0x565706
jmp 0x56956a
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x304], eax
mov dword [esp + 0x424], edx
mov edx, dword [esp + 0x220]
jmp 0x571324
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov ecx, dword [esp + 0x458]
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov dword [esp + 0x42c], edi
mov edi, ecx
mov eax, dword [esp + 0x410]
mov dword [esp + 0x304], eax
mov dword [esp + 0x424], esi
mov edx, dword [esp + 0x220]
mov dword [esp + 0x3d8], edi
mov ebx, 1
movzx eax, byte [esp + 0x3e0]
cmp eax, 4
jne 0x571357
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov dword [esp + 0x220], edx
jmp 0x56e79c
mov dword [esp + 0x3c4], edx
xor eax, eax
mov esi, dword [esp + 0x37c]
mov edi, dword [esp + 0x36c]
mov ebx, dword [esp + 0x3cc]
jmp 0x567739
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov dword [esp + 0x424], edx
jmp 0x56b132
mov byte [esp + 0x2ec], 0x1f
movzx eax, byte [esp + 0x2c4]
cmp eax, 0x43
je 0x56d1b7
cmp dword [edi], 0
jne 0x5713bf
mov byte [esp + 0x2c4], 0x5d
jmp 0x56d1a4
mov byte [esp + 0x2c4], 0x5d
mov bl, byte [esp + 0x2ab]
jmp 0x56d1e9
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x304]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x304], eax
mov esi, 5
mov eax, dword [esp + 0x4d4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x4d8]
test eax, eax
mov ecx, dword [esp + 0x438]
mov dword [esp + 0x42c], ecx
mov edi, dword [esp + 0x428]
mov ecx, dword [esp + 0x448]
mov dword [esp + 0x420], ecx
mov ebx, dword [esp + 0x44c]
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x3d8], ecx
mov edx, dword [esp + 0x454]
mov ecx, dword [esp + 0x3f0]
je 0x5717a1
cmp esi, 4
jne 0x571799
mov dword [esp + 0x434], edx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x414]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3f0], ecx
mov dword [esp + 0x428], edi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov esi, ebx
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x458], eax
movzx eax, byte [esp + 0x194]
cmp eax, 0x59
mov ecx, dword [esp + 0x13c]
mov edi, dword [esp + 0x3c4]
jne 0x570181
cmp esi, 0xb
mov eax, dword [esp + 0x42c]
mov ecx, dword [esp + 0x434]
je 0x5717ad
imul esi, esi
and esi, 3
cmp esi, 2
je 0x5717ad
mov eax, 0x16
movzx ecx, byte [esp + 0x384]
cmp ecx, 0x5a
jne 0x5717c0
mov ebx, 0xc
mov byte [esp + 0x384], 0x5a
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x158], eax
mov ecx, dword [esp + 0x108]
mov dword [ecx], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov edx, dword [esp + 0x23c]
cmp ebx, 0xc
mov ecx, dword [esp + 0x434]
mov esi, edx
mov edx, dword [esp + 0x3f0]
je 0x56c938
mov dword [esp + 0x23c], esi
mov dword [esp + 0x458], edi
mov dword [esp + 0x454], ecx
mov dword [esp + 0x410], edx
jmp 0x56b132
mov dword [esp], eax
call fcn.0062ddc0
mov eax, dword [esp + 0x1b4]
jmp 0x556158
mov dword [esp + 0x438], eax
mov dword [esp + 0x454], ecx
jmp 0x56972e
mov ebx, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
mov ecx, dword [esp + 0x44c]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x458]
mov dword [esp + 0x3d8], ecx
mov ecx, dword [esp + 0xfc]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x420], edx
mov dword [esp + 0x418], ebx
cmp eax, 8
je 0x57084b
imul eax, eax
and eax, 3
cmp eax, 2
je 0x57084b
mov byte [esp + 0x354], 0x44
mov byte [esp + 0x3bc], 9
mov byte [esp + 0x370], 0x1b
mov byte [esp + 0x378], 0x11
mov byte [esp + 0x368], 0x3b
mov byte [esp + 0x388], 0x32
mov byte [esp + 0x35f], 0xc
mov byte [esp + 0x350], 0x2f
mov dword [esp + 0x33c], 0
add esi, ebx
mov byte [esp + 0x290], 0x2a
mov byte [esp + 0x3b4], 0xf
setne al
movzx eax, al
add edi, eax
mov byte [esp + 0x308], 6
mov byte [esp + 0x330], 1
lea eax, [esp + 0x46c]
mov dword [esp + 0x37c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x398], eax
mov dword [esp + 0x404], edx
lea eax, [esp + 0x468]
mov dword [esp + 0x324], eax
mov dword [esp + 0x3c8], ecx
mov byte [esp + 0x360], 0x34
mov byte [esp + 0x32b], 0x3e
mov byte [esp + 0x38c], 0x19
mov byte [esp + 0x3e0], 0x3d
mov byte [esp + 0x376], 0x51
mov byte [esp + 0x348], 0x2d
mov byte [esp + 0x358], 0xd
mov byte [esp + 0x377], 0x3e
mov byte [esp + 0x39c], 0x1b
mov al, 0x6f
mov dword [esp + 0x380], eax
mov al, 0x27
mov dword [esp + 0x34c], eax
mov esi, edi
or esi, 2
mov ebx, edi
xor ebx, 2
mov eax, esi
add eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x571960
xor edi, edi
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x420], 0
mov dword [esp + 0x43c], 0
xor edx, edx
mov dword [esp + 0x418], 0
jmp 0x565d36
imul esi, esi
and esi, 3
cmp esi, 2
je 0x572858
mov eax, 0x13
movzx ecx, byte [esp + 0x354]
cmp ecx, 0x18
mov edx, dword [esp + 0x3f0]
je 0x571b31
xor edi, edi
cmp ecx, 0x25
jne 0x571b75
mov eax, dword [esp + 0x45c]
lea ecx, [eax + 0xe8]
mov dword [esp + 0x454], ecx
lea ecx, [eax + 0xa8]
mov dword [esp + 0x450], ecx
lea edx, [eax + 0xa4]
lea ecx, [eax + 0xb0]
jmp 0x571a75
mov dword [esp + 0x410], edx
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
mov edi, dword [esp + 0x41c]
mov ebx, dword [esp + 0x44c]
jmp 0x5684d0
mov eax, dword [esp + 0x45c]
lea ecx, [eax + 0xe8]
mov dword [esp + 0x454], ecx
lea ebx, [eax + 0xa8]
lea esi, [eax + 0xa4]
lea ecx, [eax + 0xb0]
mov dl, byte [esp + 0x308]
mov dh, byte [esp + 0x290]
jmp 0x565cac
mov dword [esp + 0x44c], edi
mov dword [esp + 0x41c], edx
mov byte [esp + 0x39c], cl
mov byte [esp + 0x370], 0x1d
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx ecx, al
mov eax, esi
sub eax, ecx
cmp eax, 2
jae 0x566a2a
mov edi, dword [esp + 0x318]
mov ebx, dword [esp + 0x24c]
jmp 0x566a78
mov esi, 0x1e
mov byte [esp + 0x358], 0x71
imul eax, dword [esp + 0x454], 0x1c
add eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1e0]
mov edi, dword [edx]
mov edx, dword [esp + 0x430]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x438], ebx
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0x11
xor ecx, ecx
call fcn.00522bc0
mov ecx, eax
mov dword [esp + 0x3f4], ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x44c], eax
mov eax, dword [esp + 0x41c]
mov dword [esp + 0x458], eax
mov edi, eax
mov dword [esp + 0x408], ecx
mov dword [esp + 0x424], eax
jne 0x569510
cmp esi, 0xf
jne 0x571d44
mov eax, 0x18
movzx ecx, byte [esp + 0x376]
cmp ecx, 0x51
je 0x566cdb
mov ecx, dword [esp + 0x408]
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x424], edi
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov esi, dword [esp + 0x428]
mov edx, dword [esp + 0x448]
mov edi, dword [esp + 0x44c]
mov ebx, dword [esp + 0x458]
mov ecx, dword [esp + 0x400]
mov dword [esp + 0x400], ecx
cmp eax, 0xf
jne 0x571e4d
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x571e4d
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov dword [esp + 0x428], esi
mov dword [esp + 0x448], edx
mov dword [esp + 0x44c], edi
mov dword [esp + 0x458], ebx
mov eax, dword [esp + 0x3f4]
mov dword [esp + 0x408], eax
jmp 0x56d616
mov dword [esp + 0x420], edx
mov byte [esp + 0x376], 0x51
mov eax, dword [esp + 0x204]
cmp dword [eax], 0x21
seta cl
cmp dword [esp + 0x10c], 2
je 0x567062
mov dword [esp + 0x43c], edi
jmp 0x5670ea
mov dword [esp + 0x3f0], esi
mov dword [esp + 0x40c], edi
mov byte [esp + 0x2f3], bl
mov byte [esp + 0x308], 6
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0042d060
mov ecx, dword [esp + 0x1fc]
mov edx, dword [ecx]
mov dword [esp + 0x190], edx
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edx, eax
mov dword [esp + 0x3dc], ecx
je 0x5683ae
jmp 0x5720b4
movzx ecx, dl
cmp ecx, 6
je 0x571fa0
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x571e83
xor eax, eax
mov edx, dword [esp + 0x434]
jmp 0x56b0f5
mov eax, 0x16
mov bl, byte [esp + 0x39c]
movzx ecx, bl
cmp ecx, 0x1b
jne 0x5720ea
mov ecx, dword [esp + 0x3f0]
mov dword [esp + 0x410], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x414], ecx
mov edx, dword [esp + 0x1c8]
mov bh, byte [esp + 0x2df]
xor esi, esi
cmp eax, 0x10
jne 0x5721cb
mov edi, dword [esp + 0x1f4]
jmp 0x57208e
mov bh, 0x2f
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov edx, eax
mov dword [edi], edx
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x572060
mov byte [esp + 0x2df], bh
mov byte [esp + 0x39c], bl
jmp 0x56ce4f
xor eax, eax
mov ecx, dword [esp + 0x1fc]
lea ecx, [ecx + 4]
mov dl, 1
mov esi, dword [esp + 0x3c4]
mov dword [esp + 0x414], esi
mov esi, dword [esp + 0x230]
mov edi, dword [esp + 0x190]
mov ebx, dword [esp + 0x2e4]
jmp 0x567ccc
mov eax, 6
mov cl, 0x2b
mov edx, dword [esp + 0x3f0]
mov dword [esp + 0x410], edx
mov edx, dword [esp + 0x42c]
mov dword [esp + 0x438], edx
mov edx, dword [esp + 0x3c4]
mov dword [esp + 0x414], edx
mov edx, dword [esp + 0x434]
mov dword [esp + 0x454], edx
mov edx, dword [esp + 0x450]
mov dword [esp + 0x428], edx
mov edx, dword [esp + 0x444]
mov dword [esp + 0x448], edx
mov edi, dword [esp + 0x440]
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x458], edx
mov esi, dword [esp + 0x240]
cmp eax, 3
je 0x571bae
imul eax, eax
and eax, 3
cmp eax, 2
je 0x571bae
mov dword [esp + 0x41c], edx
mov byte [esp + 0x39c], cl
mov dword [esp + 0x240], esi
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x428]
mov dword [esp + 0x418], eax
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov dword [esp + 0x43c], edi
mov edi, dword [esp + 0x458]
jmp 0x57227e
mov byte [esp + 0x2df], bh
mov dword [esp + 0x1c8], edx
mov ecx, dword [esp + 0x41c]
mov edx, dword [esp + 0x428]
jmp 0x57222e
mov bl, 0x1b
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
mov edx, dword [esp + 0x450]
mov eax, dword [esp + 0x444]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], ecx
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x5721f0
cmp eax, 3
je 0x5721f0
mov byte [esp + 0x39c], bl
mov dword [esp + 0x418], edx
mov eax, dword [esp + 0x448]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x43c], eax
mov edi, dword [esp + 0x458]
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov ebx, edi
movzx eax, byte [esp + 0x3bc]
cmp eax, 9
jne 0x572375
mov ecx, 0x15
mov byte [esp + 0x3bc], 9
mov edx, dword [esp + 0x454]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
adc edx, 0
mov eax, dword [esp + 0x4dc]
cmp edx, dword [eax + 4]
mov esi, dword [esp + 0x418]
mov dword [esp + 0x428], esi
mov edi, dword [esp + 0x420]
mov dword [esp + 0x448], edi
mov edi, dword [esp + 0x43c]
mov dword [esp + 0x44c], edi
mov edi, ebx
mov dword [esp + 0x458], edi
mov dword [esp + 0x258], edi
mov dword [esp + 0x214], esi
jb 0x565d36
cmp ecx, 0xd
jne 0x5723ed
mov eax, 3
sub eax, ecx
xor eax, ecx
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov edi, dword [esp + 0x258]
mov eax, dword [esp + 0x214]
mov dword [esp + 0x418], eax
jne 0x57276a
jmp 0x572441
mov byte [esp + 0x3bc], 0xb
mov edx, dword [esp + 0x454]
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, edx
mov edx, eax
mov eax, dword [esp + 0x4dc]
cmp edx, dword [eax + 4]
jb 0x565cd6
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov edi, ebx
mov dword [esp + 0x458], edi
jmp 0x572441
mov eax, dword [esp + 0x410]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x428], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x44c], eax
mov dword [esp + 0x458], edi
mov edi, dword [esp + 0x258]
mov eax, dword [esp + 0x214]
mov dword [esp + 0x418], eax
mov eax, 0xd
mov ecx, 0x12
movzx edx, byte [esp + 0x1ec]
cmp edx, 0x66
mov edx, dword [esp + 0x3f0]
mov esi, dword [esp + 0x42c]
mov dword [esp + 0x438], esi
mov dword [esp + 0x258], edi
mov esi, dword [esp + 0x418]
mov dword [esp + 0x214], esi
mov edi, dword [esp + 0x444]
mov esi, dword [esp + 0x440]
mov dword [esp + 0x43c], esi
mov ebx, dword [esp + 0x450]
jne 0x5725aa
mov dword [esp + 0x410], edx
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
je 0x5677d9
mov byte [esp + 0x1ec], 0x66
mov ecx, dword [esp + 0x45c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412cb0
mov eax, dword [esp + 0x430]
mov eax, dword [eax]
lea ecx, [esp + 0x490]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x490], eax
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
lea ecx, [esp + 0x494]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x494], eax
lea eax, [esp + 0x498]
mov dword [esp + 0x120], eax
mov dword [esp + 0x498], 0xfffffffe
lea ecx, [esp + 0x488]
mov dword [esp + 0x200], ecx
lea eax, [esp + 0x4d0]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x4a0]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov dword [esp + 0x3f4], eax
test eax, eax
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov dword [esp + 0x444], edi
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
jmp 0x5692f5
mov dword [esp + 0x410], edx
cmp ecx, 7
je 0x5654b2
jmp 0x56922a
mov dword [esp + 0x420], edx
mov dword [esp + 0x418], ebx
mov byte [esp + 0x2d8], 0x2b
mov eax, dword [esp + 0x3a8]
cmp dword [eax], 0
jne 0x572935
mov eax, 0x19
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov edx, dword [esp + 0x314]
mov ecx, dword [edx + ecx + 0x14]
mov dword [esp + 0x1b0], ecx
test ecx, ecx
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov dword [esp + 0x424], edi
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
je 0x56d616
cmp eax, 0xf
je 0x5726ba
xor eax, eax
test al, al
jne 0x5726ba
movzx ecx, byte [esp + 0x2a0]
cmp ecx, 0x29
je 0x5726cd
mov eax, 8
cmp ecx, 0x62
jne 0x572b5e
mov edx, dword [esp + 0x454]
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x434], edx
cmp eax, 8
je 0x56b9fc
imul eax, eax
and eax, 3
cmp eax, 3
je 0x56b9fc
mov dword [esp + 0x400], ecx
jmp 0x56d616
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x56cce3
mov eax, 0x16
mov ecx, 0x17
mov byte [esp + 0x2a0], 0x62
mov edx, dword [esp + 0x1b0]
cmp dword [edx], 0
mov edx, dword [esp + 0x394]
mov dword [esp + 0x400], edx
mov edi, dword [esp + 0x424]
mov esi, dword [esp + 0x444]
mov edx, dword [esp + 0x440]
mov dword [esp + 0x43c], edx
mov edx, dword [esp + 0x454]
mov dword [esp + 0x434], edx
mov edx, esi
mov ebx, dword [esp + 0x450]
jne 0x572814
cmp ecx, 0xb
je 0x572752
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x572752
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
jmp 0x56d616
mov byte [esp + 0x2e8], 0x12
mov eax, dword [esp + 0x340]
cmp dword [eax], 0
jne 0x56b615
mov esi, 0xe
mov eax, 0xd
cmp dword [esp + 0x144], 0
mov edi, dword [esp + 0x424]
mov ecx, dword [esp + 0x444]
mov dword [esp + 0x420], ecx
mov ecx, dword [esp + 0x440]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x450]
mov dword [esp + 0x418], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
jne 0x57284f
cmp eax, 0xd
je 0x5727e2
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x571d73
movzx edx, byte [esp + 0x2d8]
cmp edx, 0xd
je 0x56b7ed
mov ecx, 6
mov eax, 0xd
cmp edx, 0x2b
mov ebx, dword [esp + 0x418]
mov edx, dword [esp + 0x420]
jne 0x5728aa
cmp eax, 0xd
je 0x5725bf
xor eax, eax
test al, al
jne 0x5725bf
mov dword [esp + 0x444], edx
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov dword [esp + 0x450], ebx
mov dword [esp + 0x424], edi
jmp 0x56ba34
cmp esi, 0xe
jne 0x571ad0
mov eax, dword [esp + 0x3f0]
mov dword [esp + 0x410], eax
mov edi, dword [esp + 0x424]
mov eax, dword [esp + 0x444]
mov dword [esp + 0x420], eax
mov eax, dword [esp + 0x440]
mov dword [esp + 0x43c], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x450]
mov dword [esp + 0x418], eax
jmp 0x5725e5
cmp ecx, 6
je 0x572900
mov eax, 0xc
movzx ecx, byte [esp + 0x294]
cmp ecx, 0x52
je 0x572a76
mov eax, 0x14
cmp ecx, 0x59
jne 0x572b13
mov byte [esp + 0x294], 0x26
mov eax, dword [esp + 0x40c]
shl eax, 6
mov edx, dword [esp + 0x314]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0xb8], ecx
mov ecx, dword [edx + eax + 0x14]
test ecx, ecx
mov edx, dword [esp + 0x418]
mov esi, dword [esp + 0x43c]
jne 0x572db2
mov eax, 3
sub eax, ecx
xor eax, ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x424], edi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], esi
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], edx
je 0x572e1b
movzx eax, byte [esp + 0x313]
cmp eax, 0xa
je 0x572bbc
mov dword [esp + 0x3d8], edi
cmp eax, 0x29
mov edi, dword [esp + 0xb8]
jne 0x572c2e
mov byte [esp + 0x313], 0x29
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x26c], eax
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov dword [edi], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x424], eax
jmp 0x572e1b
mov dword [esp + 0x424], edi
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
cmp eax, 2
jne 0x572d13
mov eax, 8
mov ebx, dword [esp + 0x42c]
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x3f4], ecx
mov edx, dword [esp + 0x130]
mov edi, edx
cmp eax, 5
jne 0x572d98
mov dword [esp + 0x130], edx
mov dword [esp + 0xec], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x571bfa
mov dword [esp + 0x438], ebx
jmp 0x569510
mov dword [esp + 0x424], edi
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x434]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x418]
mov dword [esp + 0x450], ecx
mov edx, dword [esp + 0xc4]
jmp 0x56d3a5
mov eax, 9
mov byte [esp + 0x2a0], 0x78
mov ecx, dword [esp + 0x1b0]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x572dec
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
mov ecx, dword [esp + 0x454]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
jne 0x56d616
jmp 0x56c188
mov byte [esp + 0x313], 0x78
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x26c], ecx
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
mov eax, dword [esp + 0xb8]
mov dword [eax], ecx
mov dword [esp + 0x424], edi
jmp 0x572e1b
xor ebx, ebx
mov dword [esp + 0x26c], eax
jmp 0x572c74
mov esi, 6
mov byte [esp + 0x313], 0xa
add eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x26c], eax
mov dword [edi], eax
mov eax, ebx
not eax
and eax, 1
mov ecx, ebx
add ecx, eax
setne cl
movzx ecx, cl
cmp ebx, ecx
jb 0x572c40
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x3d8]
mov dword [esp + 0x424], eax
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov eax, dword [esp + 0x43c]
mov dword [esp + 0x440], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov eax, dword [esp + 0x418]
mov dword [esp + 0x450], eax
cmp esi, 6
je 0x572e0d
xor eax, eax
test al, al
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
jne 0x572e1b
xor esi, esi
mov edi, dword [esp + 0x134]
mov ebx, dword [esp + 0x160]
jmp 0x565905
mov eax, 7
mov byte [esp + 0x294], 0x52
mov ecx, dword [esp + 0x40c]
shl ecx, 6
mov esi, dword [esp + 0x314]
lea edx, [esi + ecx + 0x14]
mov dword [esp + 0xb8], edx
mov esi, dword [esi + ecx + 0x14]
test esi, esi
mov edi, dword [esp + 0x418]
mov ebx, dword [esp + 0x43c]
je 0x572eb2
mov ecx, 1
mov edx, esi
mov dword [esp + 0x26c], esi
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x420]
mov dword [esp + 0x444], edx
mov esi, edx
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
mov edx, edi
jne 0x564d27
jmp 0x56c3dd
mov dword [esp + 0x438], ebx
mov dword [esp + 0x130], edx
mov dword [esp + 0xec], ecx
jmp 0x569510
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x424], edi
mov eax, dword [esp + 0x420]
mov dword [esp + 0x444], eax
mov dword [esp + 0x440], esi
mov eax, dword [esp + 0x434]
mov dword [esp + 0x454], eax
mov dword [esp + 0x450], edx
jmp 0x572e1b
mov ecx, dword [esp + 0x410]
mov dword [esp + 0x3f0], ecx
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x400], ecx
jmp 0x56c188
mov eax, dword [esp + 0x438]
mov dword [esp + 0x42c], eax
movzx ecx, byte [esp + 0x2ac]
cmp ecx, 0xc
je 0x572e45
mov eax, 5
cmp ecx, 0x67
jne 0x572e59
mov ecx, dword [esp + 0x42c]
mov dword [esp + 0x438], ecx
jmp 0x5709e4
mov byte [esp + 0x2ac], 0x3a
mov eax, dword [esp + 0x26c]
cmp dword [eax], 0
jmp 0x572e7d
mov byte [esp + 0x2ac], 0xc
mov eax, dword [esp + 0x26c]
mov eax, dword [eax]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov eax, dword [esp + 0x42c]
mov dword [esp + 0x438], eax
mov eax, dword [esp + 0x454]
mov dword [esp + 0x434], eax
mov eax, dword [esp + 0x394]
mov dword [esp + 0x400], eax
je 0x56b9af
jmp 0x56d616
mov dword [esp + 0x26c], esi
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x444], ecx
mov dword [esp + 0x440], ebx
mov dword [esp + 0x450], edi
jmp 0x56c3dd