Function at 0x4f11e0
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encrypt data using speck
Parse credit card information
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, 0x490
mov esi, edx
mov edi, ecx
mov byte [esp + 0x36b], 0x17
mov dword [esp + 0x454], 0
mov dword [esp + 0x450], 0
mov dword [esp + 0x458], 0
mov dword [esp + 0x44c], 0
mov dword [esp + 0x448], 0
mov dword [esp + 0x444], 0
mov dword [esp + 0x440], 0
mov dword [esp + 0x43c], 0
xorpd xmm0, xmm0
movapd xmmword [esp + 0x410], xmm0
mov dword [esp + 0x424], 0
mov dword [esp + 0x420], 0
mov dword [esp + 0x429], 0
mov dword [esp + 0x425], 0
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x408], eax
movsd xmm1, qword [0x7dc5e0]
movsd qword [esp + 0x400], xmm1
movsd xmm1, qword [0x7dc5d8]
movsd qword [esp + 0x3f8], xmm1
movapd xmmword [esp + 0x3e0], xmm0
mov dword [esp + 0x3dc], 0
lea eax, [esp + 0x450]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x450], 0x2a
mov dword [esi + 0x64], 0xc
test edi, edi
je 0x4f1999
mov eax, edi
and eax, 1
inc eax
xor eax, edi
je 0x4f1999
mov al, 0x10
movzx eax, al
cmp eax, 0x10
je 0x4f2021
mov dword [esp + 0x3a0], esi
cmp eax, 0x50
jne 0x4f2674
mov byte [esp + 0x1e1], al
mov byte [esp + 0x293], al
mov byte [esp + 0x207], al
mov byte [esp + 0x103], al
mov byte [esp + 0x1b2], al
mov byte [esp + 0x1b3], al
mov byte [esp + 0x307], al
mov byte [esp + 0xfb], al
mov byte [esp + 0x1e3], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov eax, 0x15
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x248], ecx
mov dword [esp + 0xd0], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x254], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x280], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x300], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x324], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x348], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0x344], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x258], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x338], ecx
mov dword [esp + 0x378], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x388], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x3c0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x318], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x374], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x380], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x208], ecx
mov byte [esp + 0x85], cl
mov byte [esp + 0x1fb], cl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x2a7], cl
mov byte [esp + 0x29f], cl
mov byte [esp + 0x6a], cl
mov byte [esp + 0x163], cl
mov byte [esp + 0x1e2], cl
mov byte [esp + 0x27f], cl
mov byte [esp + 0x2ca], cl
mov byte [esp + 0x22f], cl
mov byte [esp + 0x2bf], cl
mov byte [esp + 0x306], cl
mov byte [esp + 0x32b], cl
mov byte [esp + 0x9f], cl
mov byte [esp + 0x227], cl
mov byte [esp + 0xc8], cl
mov byte [esp + 0xef], cl
mov byte [esp + 0x247], cl
mov byte [esp + 0xca], cl
mov byte [esp + 0x187], cl
mov byte [esp + 0x333], cl
mov byte [esp + 0x2e7], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0x2cb], cl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x8f], cl
mov byte [esp + 0x87], cl
mov byte [esp + 0x52], cl
mov byte [esp + 0xbf], cl
mov byte [esp + 0x22e], cl
mov byte [esp + 0x1cf], cl
mov byte [esp + 0x1c6], cl
mov byte [esp + 0x113], cl
mov byte [esp + 0x43], cl
mov byte [esp + 0x53], cl
mov byte [esp + 0x11b], cl
mov byte [esp + 0x51], cl
mov byte [esp + 0x42], cl
mov byte [esp + 0x76], cl
mov byte [esp + 0x7e], cl
mov byte [esp + 0xab], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x8d], cl
mov byte [esp + 0x1c7], cl
mov byte [esp + 0xc9], cl
mov byte [esp + 0x27e], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0xe3], cl
mov byte [esp + 0x9e], cl
mov byte [esp + 0x86], cl
mov byte [esp + 0x8e], cl
mov byte [esp + 0x17f], cl
mov byte [esp + 0x28b], cl
jmp 0x4fb56a
mov dword [esp + 0xd0], edi
mov al, 0x33
movzx eax, al
cmp eax, 7
je 0x4f2cde
cmp eax, 0x21
jne 0x4f3373
mov dword [esp + 0x3a0], esi
mov byte [esp + 0x1b3], al
mov byte [esp + 0xfb], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov byte [esp + 0x6a], al
mov byte [esp + 0x163], al
mov byte [esp + 0x1e2], al
mov byte [esp + 0x27f], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x1e1], al
mov byte [esp + 0x207], al
mov byte [esp + 0x103], al
mov eax, 0xb
mov dword [esp + 0x238], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x254], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x280], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x300], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x248], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x348], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0x344], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x258], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x338], ecx
mov dword [esp + 0x378], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x388], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x318], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x324], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x374], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x380], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x384], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x18c], ecx
mov byte [esp + 0x1b2], cl
mov byte [esp + 0x307], cl
mov byte [esp + 0x227], cl
mov byte [esp + 0xc8], cl
mov byte [esp + 0xef], cl
mov byte [esp + 0x247], cl
mov byte [esp + 0xca], cl
mov byte [esp + 0x1e3], cl
mov byte [esp + 0x187], cl
mov byte [esp + 0x1a3], cl
mov byte [esp + 0x333], cl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x2e7], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0x2cb], cl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x8f], cl
mov byte [esp + 0x87], cl
mov byte [esp + 0x52], cl
mov byte [esp + 0xbf], cl
mov byte [esp + 0x22e], cl
mov byte [esp + 0x1cf], cl
mov byte [esp + 0x1c6], cl
mov byte [esp + 0x113], cl
mov byte [esp + 0x43], cl
mov byte [esp + 0x53], cl
mov byte [esp + 0x11b], cl
mov byte [esp + 0x51], cl
mov byte [esp + 0x42], cl
mov byte [esp + 0x76], cl
mov byte [esp + 0x7e], cl
mov byte [esp + 0xab], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x8d], cl
mov byte [esp + 0x1c7], cl
mov byte [esp + 0x27e], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0xe3], cl
mov byte [esp + 0x9e], cl
mov byte [esp + 0x86], cl
mov byte [esp + 0x8e], cl
mov byte [esp + 0x17f], cl
mov byte [esp + 0x2ca], cl
mov byte [esp + 0x22f], cl
mov byte [esp + 0x2bf], cl
mov byte [esp + 0x306], cl
mov byte [esp + 0x32b], cl
mov byte [esp + 0x293], cl
mov byte [esp + 0x85], cl
mov byte [esp + 0x1fb], cl
mov byte [esp + 0xc9], cl
mov byte [esp + 0x28b], cl
mov byte [esp + 0x2a7], cl
mov byte [esp + 0x29f], cl
jmp 0x4f7468
mov dword [esp + 0x3a0], esi
mov byte [esp + 0x1b3], al
mov byte [esp + 0x163], al
mov byte [esp + 0x27f], al
mov byte [esp + 0x306], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x1e1], al
mov byte [esp + 0x2ca], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x2bf], al
mov byte [esp + 0x293], al
mov byte [esp + 0x207], al
mov byte [esp + 0x103], al
mov byte [esp + 0x1b2], al
mov byte [esp + 0x6a], al
mov eax, dword [edi + 0x10]
mov dword [esp + 0x248], eax
mov dword [esp + 0xd0], edi
mov dword [esp + 0x220], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x35c], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x3c0], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x360], eax
mov dword [esp + 0x348], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x390], eax
mov byte [esp + 0x1e2], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x2e7], al
mov byte [esp + 0xcb], al
mov byte [esp + 0x77], al
mov byte [esp + 0x2cb], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x87], al
mov byte [esp + 0x52], al
mov byte [esp + 0xbf], al
mov byte [esp + 0x22e], al
mov byte [esp + 0x1cf], al
mov byte [esp + 0x1c6], al
mov byte [esp + 0x113], al
mov byte [esp + 0x43], al
mov byte [esp + 0x53], al
mov byte [esp + 0x11b], al
mov byte [esp + 0x51], al
mov byte [esp + 0x42], al
mov byte [esp + 0x76], al
mov byte [esp + 0x7e], al
mov byte [esp + 0xab], al
mov byte [esp + 0x5b], al
mov byte [esp + 0x7f], al
mov byte [esp + 0x8d], al
mov byte [esp + 0x1c7], al
mov byte [esp + 0xc9], al
mov byte [esp + 0x27e], al
mov byte [esp + 0x12b], al
mov byte [esp + 0xe3], al
mov byte [esp + 0x9e], al
mov byte [esp + 0x86], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x17f], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x307], al
mov byte [esp + 0x227], al
mov byte [esp + 0xc8], al
mov byte [esp + 0xef], al
mov byte [esp + 0xfb], al
mov byte [esp + 0x247], al
mov byte [esp + 0xca], al
mov byte [esp + 0x1e3], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x187], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov byte [esp + 0x333], al
mov byte [esp + 0x85], al
mov byte [esp + 0x1fb], al
mov byte [esp + 0x5a], al
mov byte [esp + 0x2a7], al
mov byte [esp + 0x29f], al
jmp 0x4f3a41
mov dword [esp + 0xd0], edi
mov byte [esp + 0xfb], al
mov byte [esp + 0x1e3], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov byte [esp + 0x85], al
mov byte [esp + 0x1fb], al
mov byte [esp + 0x2a7], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x306], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x9f], al
mov eax, 0xc
mov dword [esp + 0x48], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x254], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x280], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x300], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x324], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x248], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x348], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0x344], ecx
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x384], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x388], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x3c0], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x318], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x374], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x258], ecx
mov dword [esp + 0x338], ecx
mov dword [esp + 0x378], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x1c8], ecx
mov byte [esp + 0x1e1], cl
mov byte [esp + 0x293], cl
mov byte [esp + 0x207], cl
mov byte [esp + 0x103], cl
mov byte [esp + 0x1b2], cl
mov byte [esp + 0x1b3], cl
mov byte [esp + 0x307], cl
mov byte [esp + 0x227], cl
mov byte [esp + 0xc8], cl
mov byte [esp + 0xef], cl
mov byte [esp + 0x247], cl
mov byte [esp + 0xca], cl
mov byte [esp + 0x187], cl
mov byte [esp + 0x1a3], cl
mov byte [esp + 0x333], cl
mov byte [esp + 0x5a], cl
mov byte [esp + 0x2e7], cl
mov byte [esp + 0x6a], cl
mov byte [esp + 0x163], cl
mov byte [esp + 0x1e2], cl
mov byte [esp + 0x27f], cl
mov byte [esp + 0x28b], cl
mov byte [esp + 0x2ca], cl
mov byte [esp + 0x2bf], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0x2cb], cl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x8f], cl
mov byte [esp + 0x87], cl
mov byte [esp + 0x52], cl
mov byte [esp + 0xbf], cl
mov byte [esp + 0x22e], cl
mov byte [esp + 0x1c6], cl
mov byte [esp + 0x113], cl
mov byte [esp + 0x43], cl
mov byte [esp + 0x53], cl
mov byte [esp + 0x11b], cl
mov byte [esp + 0x51], cl
mov byte [esp + 0x42], cl
mov byte [esp + 0x76], cl
mov byte [esp + 0x7e], cl
mov byte [esp + 0xab], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x8d], cl
mov byte [esp + 0x1c7], cl
mov byte [esp + 0xc9], cl
mov byte [esp + 0x27e], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0xe3], cl
mov byte [esp + 0x9e], cl
mov byte [esp + 0x86], cl
mov byte [esp + 0x8e], cl
mov byte [esp + 0x17f], cl
mov byte [esp + 0x1cf], cl
jmp 0x4f3a0b
mov eax, dword [esi + 0x9c]
mov dword [esp + 0x3a0], esi
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov dword [esp + 0x248], 0
cmp eax, ecx
mov byte [esp + 0x2ca], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x2bf], al
mov byte [esp + 0x306], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x1b3], al
mov byte [esp + 0x27f], al
mov byte [esp + 0xfb], al
mov byte [esp + 0x1e3], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov byte [esp + 0x5a], al
mov eax, 0xd
mov dword [esp + 0x384], 0x700002bb
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2b0], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x298], ecx
mov dword [esp + 0x30c], ecx
mov dword [esp + 0x310], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x324], ecx
mov dword [esp + 0x24c], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x250], ecx
mov dword [esp + 0x2e0], ecx
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x254], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x2a0], ecx
mov dword [esp + 0x300], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x35c], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x190], ecx
mov dword [esp + 0x334], ecx
mov dword [esp + 0x2f0], ecx
mov dword [esp + 0x280], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2d4], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x318], ecx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x284], ecx
mov dword [esp + 0x2a8], ecx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x18c], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0x268], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x2b8], ecx
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x260], ecx
mov dword [esp + 0x2d8], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x314], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x28c], ecx
mov dword [esp + 0x178], ecx
mov dword [esp + 0x294], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x358], ecx
mov dword [esp + 0x350], ecx
mov dword [esp + 0x354], ecx
mov dword [esp + 0x34c], ecx
mov dword [esp + 0x360], ecx
mov dword [esp + 0x348], ecx
mov dword [esp + 0x3b4], ecx
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x364], ecx
mov dword [esp + 0x344], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x2f4], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x258], ecx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x36c], ecx
mov dword [esp + 0x338], ecx
mov dword [esp + 0x378], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x274], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x2c0], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x108], ecx
mov dword [esp + 0x104], ecx
mov dword [esp + 0x148], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x26c], ecx
mov dword [esp + 0x194], ecx
mov dword [esp + 0x198], ecx
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x39c], ecx
mov dword [esp + 0x398], ecx
mov dword [esp + 0x37c], ecx
mov dword [esp + 0x390], ecx
mov dword [esp + 0x374], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x380], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x2f8], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x33c], ecx
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x388], ecx
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x31c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x394], ecx
mov dword [esp + 0x308], ecx
mov dword [esp + 0x3c0], ecx
mov byte [esp + 0x6a], cl
mov byte [esp + 0x163], cl
mov byte [esp + 0x1e2], cl
mov byte [esp + 0x1ce], cl
mov byte [esp + 0x9f], cl
mov byte [esp + 0x29f], cl
mov byte [esp + 0x85], cl
mov byte [esp + 0x1fb], cl
mov byte [esp + 0x2a7], cl
mov byte [esp + 0x1b2], cl
mov byte [esp + 0x227], cl
mov byte [esp + 0xc8], cl
mov byte [esp + 0xef], cl
mov byte [esp + 0x247], cl
mov byte [esp + 0xca], cl
mov byte [esp + 0x187], cl
mov byte [esp + 0x333], cl
mov byte [esp + 0x2e7], cl
mov byte [esp + 0xcb], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0x2cb], cl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x8f], cl
mov byte [esp + 0x87], cl
mov byte [esp + 0x52], cl
mov byte [esp + 0xbf], cl
mov byte [esp + 0x22e], cl
mov byte [esp + 0x1cf], cl
mov byte [esp + 0x1c6], cl
mov byte [esp + 0x113], cl
mov byte [esp + 0x43], cl
mov byte [esp + 0x53], cl
mov byte [esp + 0x11b], cl
mov byte [esp + 0x51], cl
mov byte [esp + 0x42], cl
mov byte [esp + 0x76], cl
mov byte [esp + 0x7e], cl
mov byte [esp + 0xab], cl
mov byte [esp + 0x5b], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x8d], cl
mov byte [esp + 0x1c7], cl
mov byte [esp + 0xc9], cl
mov byte [esp + 0x27e], cl
mov byte [esp + 0x12b], cl
mov byte [esp + 0xe3], cl
mov byte [esp + 0x9e], cl
mov byte [esp + 0x86], cl
mov byte [esp + 0x8e], cl
mov byte [esp + 0x17f], cl
mov byte [esp + 0x28b], cl
mov byte [esp + 0x307], cl
mov byte [esp + 0x293], cl
mov byte [esp + 0x207], cl
mov byte [esp + 0x103], cl
mov byte [esp + 0x1e1], cl
je 0x4fcfaf
jmp 0x4f9c23
mov eax, dword [esi + 0x9c]
mov dword [esp + 0x3a0], esi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x248], 0
cmp eax, ecx
mov byte [esp + 0x2ca], al
mov byte [esp + 0x22f], al
mov byte [esp + 0x2bf], al
mov byte [esp + 0x306], al
mov byte [esp + 0x32b], al
mov byte [esp + 0x1b3], al
mov byte [esp + 0x27f], al
mov byte [esp + 0xfb], al
mov byte [esp + 0x1e3], al
mov byte [esp + 0x2b7], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0x153], al
mov byte [esp + 0xc7], al
mov byte [esp + 0x5a], al
mov esi, 0x15
mov dword [esp + 0x384], 0x700002bb
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x310], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x35c], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x268], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x358], eax
mov dword [esp + 0x350], eax
mov dword [esp + 0x354], eax
mov dword [esp + 0x34c], eax
mov dword [esp + 0x360], eax
mov dword [esp + 0x348], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x344], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x36c], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x378], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x37c], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x374], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x33c], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x388], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x3c0], eax
mov byte [esp + 0x6a], al
mov byte [esp + 0x163], al
mov byte [esp + 0x1e2], al
mov byte [esp + 0x1ce], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x29f], al
mov byte [esp + 0x85], al
mov byte [esp + 0x1fb], al
mov byte [esp + 0x2a7], al
mov byte [esp + 0x1b2], al
mov byte [esp + 0x227], al
mov byte [esp + 0xc8], al
mov byte [esp + 0xef], al
mov byte [esp + 0x247], al
mov byte [esp + 0xca], al
mov byte [esp + 0x187], al
mov byte [esp + 0x333], al
mov byte [esp + 0x2e7], al
mov byte [esp + 0xcb], al
mov byte [esp + 0x77], al
mov byte [esp + 0x2cb], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x87], al
mov byte [esp + 0x52], al
mov byte [esp + 0xbf], al
mov byte [esp + 0x22e], al
mov byte [esp + 0x1cf], al
mov byte [esp + 0x1c6], al
mov byte [esp + 0x113], al
mov byte [esp + 0x43], al
mov byte [esp + 0x53], al
mov byte [esp + 0x11b], al
mov byte [esp + 0x51], al
mov byte [esp + 0x42], al
mov byte [esp + 0x76], al
mov byte [esp + 0x7e], al
mov byte [esp + 0xab], al
mov byte [esp + 0x5b], al
mov byte [esp + 0x7f], al
mov byte [esp + 0x8d], al
mov byte [esp + 0x1c7], al
mov byte [esp + 0xc9], al
mov byte [esp + 0x27e], al
mov byte [esp + 0x12b], al
mov byte [esp + 0xe3], al
mov byte [esp + 0x9e], al
mov byte [esp + 0x86], al
mov byte [esp + 0x8e], al
mov byte [esp + 0x17f], al
mov byte [esp + 0x28b], al
mov byte [esp + 0x307], al
mov byte [esp + 0x293], al
mov byte [esp + 0x207], al
mov byte [esp + 0x103], al
mov byte [esp + 0x1e1], al
jne 0x4fcec9
jmp 0x4fcfaf
cmp eax, 0xc
mov ecx, dword [esp + 0x3c8]
je 0x4f3a29
xor eax, eax
test al, al
jne 0x4f3a29
mov dword [esp + 0x380], ecx
jmp 0x4fbc14
mov eax, dword [esp + 0xd0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x248], eax
mov dword [esp + 0x380], ecx
lea esi, [esp + 0x458]
mov eax, dword [esp + 0x454]
mov edi, dword [esp + 0x458]
lea ecx, [edi + edi*2]
lea ecx, [ecx*8 + 0x18]
lea ebx, [esp + 0x454]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
je 0x4f3b45
mov dword [esp + 0x394], ebx
mov dword [esp + 0x31c], esi
mov esi, 0x18
mov dword [esp + 0x454], eax
inc dword [esp + 0x458]
lea ecx, [edi*8]
mov dword [esp + 0x114], edi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x10
mov eax, dword [esp + 0x454]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x454]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x454]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x454]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x454]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x384], 0x70000003
test eax, eax
jne 0x4f3b7f
mov edi, 6
mov ecx, eax
or ecx, 2
mov edx, eax
mov dword [esp + 0xcc], eax
xor edx, 2
add edx, ecx
mov eax, dword [esp + 0x248]
mov dword [esp + 0x308], eax
jne 0x4f7deb
jmp 0x4f3b94
mov dword [esp + 0x394], ebx
mov dword [esp + 0x114], edi
mov dword [esp + 0x31c], esi
mov dword [esp + 0x384], 0x70000003
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x248]
mov dword [esp + 0x308], eax
jmp 0x4fcfaf
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x308], eax
cmp esi, 0xa
jne 0x4f3baa
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x4fdbcd
mov ebx, 0x10
mov esi, dword [esp + 0x3a0]
mov dword [esp + 4], esi
mov edi, dword [esp + 0xcc]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x394]
mov eax, dword [eax]
mov ecx, dword [esp + 0x114]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
lea eax, [esi + 0x1a0]
mov dword [esp + 0x33c], eax
mov eax, dword [esi + 0x1a0]
lea ecx, [esi + 0x9c]
mov dword [esp + 0x2ac], ecx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x9c]
lea esi, [esi + 8]
mov dword [esp + 0x388], esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea eax, [esp + 0x450]
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 + 0x384], eax
test eax, eax
jne 0x4f3d18
mov al, 0x23
mov esi, 0xd
movzx eax, al
cmp eax, 0x23
jne 0x4f4892
mov byte [esp + 0x1e1], 0x5f
lea eax, [esp + 0x460]
mov dword [esp + 0xe4], eax
call fcn.0044c050
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0x464], edx
mov dword [esp + 0x460], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x230], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x394]
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 0x4f4933
mov eax, 0xc
xor ecx, ecx
test cl, cl
je 0x4f3d55
jmp 0x4f4933
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
jmp 0x4fb4f8
cmp eax, 2
je 0x4f8865
movzx eax, byte [esp + 0x1e1]
cmp eax, 0x41
mov esi, dword [esp + 0x31c]
mov edi, dword [esp + 0x394]
je 0x4f3e33
cmp eax, 0x5f
jne 0x4f3eda
mov edx, dword [esp + 0x12c]
mov dword [edi], edx
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 + 0x230]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + 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
mov esi, 7
mov byte [esp + 0x1e1], 0x41
mov byte [esp + 0x293], 0x30
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x4f3f7f
mov edx, 2
mov ecx, eax
mov dword [esp + 0x218], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x4f97b8
jmp 0x4f3f94
mov byte [esp + 0x1e1], 0x5f
mov byte [esp + 0x293], 0x30
mov edx, dword [esp + 0x12c]
mov dword [edi], edx
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 + 0x230]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + 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
mov dword [esp], 8
call fcn.00492770
test eax, eax
jne 0x4f3f88
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x218], eax
xor ecx, 2
add ecx, edx
jne 0x4f4933
jmp 0x4f9571
mov byte [esp + 0x1e1], 0x48
mov byte [esp + 0x293], 0x30
mov edx, dword [esp + 0x12c]
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 + 0x230]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edx + 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
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x218], eax
test eax, eax
je 0x4f4933
mov eax, 0xe
xor ecx, ecx
test cl, cl
je 0x4f955d
jmp 0x4f4933
mov dword [esp + 0x218], eax
jmp 0x4f3f94
mov dword [esp + 0x218], eax
jmp 0x4f9571
cmp esi, 7
je 0x4f9571
imul esi, esi
and esi, 3
cmp esi, 2
je 0x4f9571
mov byte [esp + 0x32b], 4
mov ecx, dword [esp + 0x1d8]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx esi, al
add esi, ecx
mov eax, dword [esp + 0x2b0]
cmp esi, eax
mov edi, eax
mov edx, dword [esp + 0x324]
jb 0x4fb873
mov dword [esp + 0x30c], edi
mov dword [esp + 0x324], edx
mov dword [esp + 0x310], esi
mov dword [esp + 0x23c], 7
mov dword [esp + 0x3cc], 0x14
mov eax, dword [edx]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x44c]
test eax, eax
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x370], ecx
mov edx, dword [esp + 0x3b4]
mov dword [esp + 0x340], edx
mov ebx, dword [esp + 0x3b0]
mov esi, dword [esp + 0x3ac]
mov edi, dword [esp + 0x3a8]
mov edx, dword [esp + 0x3c0]
je 0x4fa619
cmp dword [esp + 0x3cc], 5
jne 0x4f4084
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3c8], eax
jmp 0x4f9f3f
mov dword [esp], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, dword [esp + 0x370]
mov dword [esp + 0x370], eax
mov ebx, 0xf
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x448]
test eax, eax
je 0x4f40e3
mov dword [esp + 0x164], eax
mov eax, 0x12
xor ecx, ecx
test cl, cl
je 0x4fcf5c
jmp 0x4fa43a
mov dword [esp + 0x164], eax
jmp 0x4fa43a
mov byte [esp + 0x293], 0x13
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x218]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x394]
mov eax, dword [eax]
mov ecx, dword [esp + 0x230]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x450]
call fcn.004b44f0
mov ecx, dword [esp + 0x3a0]
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 0x4f41ac
mov esi, 5
mov dword [esp + 0x2f8], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x4f532d
jmp 0x4f41b3
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x388]
mov ecx, dword [ecx]
mov dword [esp + 0x480], 0
mov dword [esp + 0x47c], 0
mov dword [esp + 0x468], 4
mov dword [esp + 0x46c], 2
mov dword [esp + 0x470], ecx
mov dword [esp + 0x474], eax
mov dword [esp + 0x478], 0xfffffff9
test eax, eax
je 0x4f4556
mov al, 0x7c
movzx eax, al
cmp eax, 0x7c
jne 0x4f426c
mov esi, 0xd
mov byte [esp + 0x207], 0x43
lea eax, [esp + 0x47c]
mov dword [esp + 8], eax
lea eax, [esp + 0x480]
mov dword [esp + 4], eax
lea eax, [esp + 0x468]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f4556
jmp 0x4fd5b3
mov byte [esp + 0x207], 0x43
lea eax, [esp + 0x47c]
mov dword [esp + 8], eax
lea eax, [esp + 0x480]
mov dword [esp + 4], eax
lea eax, [esp + 0x468]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x4f4556
movzx eax, byte [esp + 0x207]
cmp eax, 0x44
je 0x4f4336
cmp eax, 0x62
mov ecx, dword [esp + 0x31c]
mov edx, dword [esp + 0x394]
jne 0x4f43b3
mov byte [esp + 0x207], 0x43
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0xf0], eax
mov eax, dword [ecx]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x4f441e
mov edx, 4
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0xdc], eax
jne 0x4fae4c
mov byte [esp + 0x207], 0x62
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x394]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x4f4427
mov edx, 0xf
mov ecx, eax
mov dword [esp + 0xdc], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x4fd649
jmp 0x4f4556
mov byte [esp + 0x207], 0x44
mov eax, dword [esp + 0x47c]
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x480]
mov dword [esp + 0xf0], eax
mov eax, dword [ecx]
mov dword [esp + 0x1a8], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x4f4433
mov edx, 1
mov ecx, eax
mov dword [esp + 0xdc], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x4f591d
mov dword [esp + 0xdc], eax
jmp 0x4f443f
mov dword [esp + 0xdc], eax
jmp 0x4f4556
mov dword [esp + 0xdc], eax
jmp 0x4f4556
mov eax, 0x18
mov byte [esp + 0x103], 0x54
cmp dword [esp + 0x1f4], 0
je 0x4f55b2
mov eax, dword [esp + 0x1f4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x138]
mov dword [esp], eax
call fcn.007c51d0
mov edx, dword [esp + 0x394]
mov dword [esp + 0x394], edx
mov eax, dword [edx]
mov ecx, dword [esp + 0x1a8]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x138]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x480]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2f8]
mov dword [esp], eax
call fcn.004234b0
mov esi, 0xf
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 + 0x450]
xor edx, edx
call fcn.00522bc0
mov dword [esp + 0x384], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f460f
mov al, 0x4a
mov edi, 0x20
movzx ecx, al
cmp ecx, 0x13
je 0x4f463e
mov eax, 2
cmp ecx, 0x1f
jne 0x4f4658
mov edx, dword [esp + 0x3c0]
jmp 0x4fbe2b
mov edx, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3b0]
mov ebx, dword [esp + 0x3ac]
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
jmp 0x4f6488
mov edx, dword [esp + 0x3c0]
mov ebx, dword [esp + 0x210]
mov ecx, dword [esp + 0x3c8]
jmp 0x4f98c3
mov bl, 0x24
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.0059ab80
mov dword [esp + 0x384], eax
test eax, eax
je 0x4f468c
xor eax, eax
test al, al
mov edx, dword [esp + 0x3c0]
je 0x4fcfaf
mov edx, dword [esp + 0x3c0]
jmp 0x4f9919
cmp eax, 9
jne 0x4f4744
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov edx, dword [esp + 0x3c0]
jne 0x4fdbc0
jmp 0x4fcfaf
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
test eax, eax
je 0x4f4ec8
mov esi, 0xa
mov ecx, dword [esp + 0x388]
mov ecx, dword [ecx]
mov dword [esp + 0x488], 0
mov dword [esp + 0x484], 0
mov dword [esp + 0x468], 4
mov dword [esp + 0x46c], 2
mov dword [esp + 0x470], ecx
mov dword [esp + 0x474], eax
mov dword [esp + 0x478], 0xfffffffd
lea eax, [esp + 0x484]
mov dword [esp + 8], eax
lea eax, [esp + 0x488]
mov dword [esp + 4], eax
lea eax, [esp + 0x468]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x4f4892
mov esi, 0xb
mov eax, dword [esp + 0x484]
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 0x488]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x124], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ebx, dword [esp + 0x394]
mov ecx, dword [ebx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x4f492a
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x6c], eax
jne 0x4f4b1a
jmp 0x4f4c39
mov ebx, dword [esp + 0x394]
cmp esi, 0xa
jne 0x4f48ad
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x4f4b1a
mov byte [esp + 0x1e1], 0x5f
lea eax, [esp + 0x460]
mov dword [esp + 0xe4], eax
call fcn.0044c050
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0x464], edx
mov dword [esp + 0x460], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x230], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [ebx]
mov dword [esp + 0x394], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x12c], eax
test eax, eax
je 0x4f4933
xor eax, eax
test al, al
je 0x4f3d5e
jmp 0x4f4933
mov dword [esp + 0x6c], eax
jmp 0x4f4c39
mov dword [esp + 0x384], 0x70000003
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov esi, dword [esp + 0x6c]
mov dword [ebx], esi
mov edi, dword [esp + 0x31c]
mov eax, dword [edi]
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edi], ecx
mov eax, dword [esp + 0x124]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esi + eax], 5
mov ecx, dword [ebx]
mov dword [ecx + eax + 4], 0xfffffffd
mov ecx, dword [ebx]
mov byte [ecx + eax + 8], 0xff
mov ecx, dword [ebx]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [ebx]
mov edx, dword [esp + 0x11c]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [ebx]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x4f4a0a
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x4f4a16
mov cl, 0x14
movzx ecx, cl
cmp ecx, 0x14
je 0x4f4a22
cmp ecx, 0x4b
jne 0x4f4a5f
mov dword [esp + 0x394], ebx
mov dword [esp + 0x1c0], eax
mov byte [esp + 0x1b2], 5
cmp dword [esp + 0x11c], 0
je 0x4f4abf
jmp 0x4f4a9a
mov dword [esp + 0x1c0], eax
jmp 0x4f4b1a
mov dword [esp + 0x1c0], eax
jmp 0x4f4b1a
mov dword [esp + 0x394], ebx
mov dword [esp + 0x1c0], eax
mov esi, 0x12
mov byte [esp + 0x1b2], 5
mov ecx, dword [esp + 0x11c]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x4f8580
jmp 0x4f4abf
mov dword [esp + 0x394], ebx
mov dword [esp + 0x1c0], eax
mov ecx, 0xf
mov byte [esp + 0x1b2], 5
mov edx, dword [esp + 0x11c]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edx, eax
je 0x4fa9f6
mov eax, dword [esp + 0x11c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c0]
mov dword [esp], eax
call fcn.007c51d0
mov eax, 0xb
movzx ecx, byte [esp + 0x1b2]
cmp ecx, 5
je 0x4f6ad1
mov eax, 0x12
cmp ecx, 0x25
jne 0x4f4af0
mov byte [esp + 0x1b2], 0x25
mov ebx, dword [esp + 0x394]
jmp 0x4f4b03
mov esi, dword [esp + 0x2f0]
mov ecx, dword [esp + 0x3a4]
jmp 0x4f7d98
mov eax, dword [ebx]
mov ecx, dword [esp + 0x124]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x1c0]
mov dword [eax + ecx*8 + 0x14], edx
mov esi, 6
mov eax, dword [esp + 0x488]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov dword [esp + 0x404], eax
mov dword [esp + 0x408], 0xfffffff8
lea eax, [esp + 0x440]
mov dword [esp + 8], eax
lea eax, [esp + 0x444]
mov dword [esp + 4], eax
lea eax, [esp + 0x3f8]
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
jne 0x4f4c39
mov al, 0x1f
movzx eax, al
cmp eax, 0x1f
je 0x4f4c5f
mov esi, 0x14
cmp eax, 0x2f
jne 0x4f4ce3
mov esi, 0xc
mov byte [esp + 0x307], 0x53
mov eax, dword [esp + 0x440]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x294], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [ebx]
mov dword [esp + 0x394], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x314], 0x70000003
test eax, eax
jne 0x4f4cef
mov edx, eax
or edx, 2
mov ecx, eax
mov dword [esp + 0x180], eax
xor ecx, 2
add ecx, edx
jne 0x4fb8ef
jmp 0x4fcd57
cmp esi, 6
jne 0x4f494a
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x4f494a
mov dword [esp + 0x394], ebx
jmp 0x4f4ec8
mov esi, 0xd
mov byte [esp + 0x307], 0x53
mov eax, dword [esp + 0x440]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x294], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [ebx]
mov dword [esp + 0x394], ebx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x314], 0x70000003
test eax, eax
jne 0x4f4cfb
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x180], eax
not ecx
test ecx, ecx
jne 0x4fb8ef
jmp 0x4f9675
mov dword [esp + 0x394], ebx
jmp 0x4faaf1
mov dword [esp + 0x180], eax
jmp 0x4fcd57
mov dword [esp + 0x180], eax
jmp 0x4f9675
mov byte [esp + 0x307], 0x53
mov eax, dword [esp + 0x440]
mov dword [esp + 0x28c], eax
mov eax, dword [esp + 0x444]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x31c]
mov eax, dword [eax]
mov dword [esp + 0x294], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x394]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x314], 0x70000003
je 0x4f4d7f
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x180], eax
jne 0x4f4d8b
jmp 0x4fb8ef
mov dword [esp + 0x180], eax
jmp 0x4fb8ef
mov edx, dword [esp + 0x180]
mov edi, dword [esp + 0x394]
mov dword [edi], edx
mov esi, dword [esp + 0x31c]
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 + 0x294]
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 + 0x28c]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [edi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x2e0], eax
test eax, eax
jne 0x4f4e3b
mov eax, dword [esp + 0x2e0]
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f4e3b
mov eax, 5
mov dword [esp + 0x314], 0x70000003
jmp 0x4fb8e6
mov eax, 7
mov ecx, 0x11
mov byte [esp + 0x1b3], 0x3e
mov esi, dword [esp + 0x28c]
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
mov dword [esp + 0x314], 0x70000003
cmp esi, edx
jne 0x4f6e32
jmp 0x4f6ef7
mov esi, 7
mov byte [esp + 0x307], 0x6c
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x444], 0
mov ecx, dword [esp + 0x314]
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x384], ecx
jne 0x4f837d
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
lea ecx, [esp + 0x44c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x450]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0059a8d0
mov dword [esp + 0x384], eax
test eax, eax
jne 0x4f4f4e
mov esi, dword [esp + 0x3a0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412c70
mov eax, dword [esp + 0x44c]
mov ecx, dword [eax + 4]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x4f4f5a
mov edi, 6
mov dword [esp + 0x364], 0
mov dword [esp + 0x344], 0
jmp 0x4f50a0
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov byte [esp + 0x29f], 0x1b
mov byte [esp + 0x2a7], 0x39
mov byte [esp + 0x5a], 0x21
mov byte [esp + 0x1fb], 0x4f
mov byte [esp + 0x85], 0x3e
mov byte [esp + 0x333], 8
mov byte [esp + 0xc7], 0x10
mov byte [esp + 0x2b7], 0x28
mov byte [esp + 0x1ce], 0x35
mov byte [esp + 0x1a3], 0x41
mov ecx, dword [esp + 0x3a4]
mov dword [esp + 0x370], ecx
mov dword [esp + 0x358], eax
mov byte [esp + 0x187], 0x37
mov byte [esp + 0x1e3], 0x4c
mov byte [esp + 0xca], 0x13
mov byte [esp + 0x247], 0x14
lea eax, [esp + 0x3dc]
mov dword [esp + 0x168], eax
lea eax, [esi + 0xe8]
mov dword [esp + 0x154], eax
lea eax, [esi + 0xa8]
mov dword [esp + 0x254], eax
lea eax, [esi + 0xa4]
mov dword [esp + 0x278], eax
lea eax, [esp + 0x3d8]
mov dword [esp + 0x5c], eax
lea eax, [esi + 0xb0]
mov dword [esp + 0x54], eax
mov dword [esp + 0x350], 0
mov dword [esp + 0x354], 0
mov dword [esp + 0x34c], 0
mov dword [esp + 0x360], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x364], 0
mov dword [esp + 0x344], 0
mov byte [esp + 0xfb], 0x71
mov byte [esp + 0xef], 0x3c
mov byte [esp + 0xc8], 0x63
mov byte [esp + 0x227], 7
mov byte [esp + 0x153], 0x28
jmp 0x4fc7b6
cmp edi, 4
je 0x4f6792
imul edi, edi
and edi, 3
cmp edi, 3
jne 0x4f6360
jmp 0x4f6792
mov byte [esp + 0x227], 0x27
mov ebx, dword [esp + 0x358]
mov esi, dword [ebx + 8]
mov dword [esp + 0x274], esi
mov eax, dword [esp + 0x360]
imul ecx, eax, 0x1c
mov edi, dword [esi + ecx + 4]
mov dword [esp + 0x2c0], edi
mov edx, edi
not edx
and edx, 1
add edx, edi
setne dl
movzx edx, dl
cmp edi, edx
lea edx, [ebx + 8]
mov dword [esp + 0x1ec], edx
lea ecx, [esi + ecx]
mov esi, 0x13
mov dword [esp + 0x1d4], ecx
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x38c], ecx
mov ecx, dword [esp + 0x354]
mov dword [esp + 0x39c], ecx
mov ecx, dword [esp + 0x34c]
mov dword [esp + 0x398], ecx
mov dword [esp + 0x37c], eax
mov eax, dword [esp + 0x348]
mov dword [esp + 0x390], eax
mov edx, dword [esp + 0x3c0]
jne 0x4f74bd
imul eax, dword [esp + 0x37c], 0x1c
mov ecx, dword [esp + 0x274]
cmp dword [ecx + eax + 0x14], 4
je 0x4f51d1
mov cl, 1
test cl, cl
je 0x4f51d1
mov ebx, 8
mov dword [esp + 0x378], 0x30000003
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
jmp 0x4fca7e
mov ecx, dword [esp + 0x274]
mov eax, dword [ecx + eax + 0x18]
mov esi, dword [eax]
mov dword [esp + 0x378], 0x30000003
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3a4], eax
jmp 0x4f62ca
imul eax, dword [esp + 0x37c], 0x1c
mov ecx, dword [esp + 0x274]
cmp dword [ecx + eax + 0x14], 8
je 0x4f52b7
mov cl, 1
test cl, cl
je 0x4f52b7
mov ecx, 0xf
mov dword [esp + 0x378], 0x30000003
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3a4], eax
jmp 0x4f603b
mov ecx, dword [esp + 0x274]
mov eax, dword [ecx + eax + 0x18]
mov ecx, dword [eax]
mov dword [esp + 0x3bc], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x3cc], eax
mov dword [esp + 0x378], 0x30000003
mov esi, dword [esp + 0x390]
jmp 0x4f5205
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov ebx, dword [esp + 0x3c8]
je 0x4fb7d9
mov esi, 4
mov eax, dword [esp + 0x16c]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
mov edx, eax
sub edx, ecx
cmp edx, 2
mov ecx, dword [esp + 0x2c0]
jae 0x4f5380
cmp esi, 4
jne 0x4f4574
mov ecx, esi
not ecx
and ecx, 1
add ecx, esi
je 0x4f4574
mov ecx, dword [esp + 0x2c0]
cmp ecx, 3
je 0x4f5582
mov eax, 6
mov edx, ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, edx
je 0x4f5582
cmp ecx, 0x21
jg 0x4f541e
cmp ecx, 0x11
je 0x4f565e
cmp ecx, 0x21
jne 0x4f5f15
mov dword [esp + 0x3d8], 0
mov eax, dword [esp + 0x1ec]
mov eax, dword [eax]
imul ecx, dword [esp + 0x37c], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 8], 0x2d
call fcn.0064be40
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f57d5
mov edx, 0xf
cmp ecx, 0x22
je 0x4f578a
cmp ecx, 0x27
jne 0x4f5f15
mov bl, 3
mov dword [esp + 0x3d0], 0
mov eax, dword [esp + 0x2d0]
mov eax, dword [eax]
cmp eax, 1
ja 0x4f545e
mov dword [esp + 0x2c0], ecx
mov eax, 0x10
mov ecx, 9
movzx edx, byte [esp + 0xfb]
cmp edx, 0xf
mov edx, dword [esp + 0x274]
mov dword [esp + 0x220], edx
jne 0x4f7157
cmp eax, 0x10
mov edx, dword [esp + 0x394]
jne 0x4f4538
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f4538
mov byte [esp + 0xfb], 0xf
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x398]
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x39c]
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], 0x80dc4c
call fcn.0043ab10
mov eax, dword [esp + 0x44c]
mov eax, dword [eax + 8]
mov dword [esp + 0x220], eax
mov eax, dword [esp + 0x3c0]
mov edi, dword [esp + 0x38c]
mov dword [esp + 0x3bc], esi
mov dword [esp + 0x3cc], ebx
mov ebx, dword [esp + 0x390]
jmp 0x4f7698
mov eax, dword [esp + 0x2d0]
mov eax, dword [eax]
cmp eax, 3
jb 0x4f5679
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x4f56b3
mov ecx, dword [esp + 0x1dc]
mov edx, dword [ecx]
cmp edx, 0x21
seta cl
mov esi, edx
and esi, 1
inc esi
xor esi, edx
sete dl
cmp eax, 2
jne 0x4f5987
mov eax, dword [esp + 0x390]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3a8], eax
mov cl, byte [esp + 0x1a3]
mov eax, dword [esp + 0x144]
jmp 0x4f5c98
cmp edx, 0xf
je 0x4f5cf2
mov dword [esp + 0x144], eax
mov edi, 2
mov ecx, dword [eax]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
mov esi, dword [esp + 0x2f4]
jne 0x4f9f3f
jmp 0x4f7f6e
mov esi, dword [esp + 0x390]
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
jmp 0x4f62ca
mov byte [esp + 0xca], 0xe
mov dword [esp + 4], 0x14
mov dword [esp], 1
call fcn.00493840
mov edx, eax
mov dword [esp + 0x378], 0x70000003
test edx, edx
jne 0x4f5fa1
mov eax, edx
not eax
and eax, 1
add eax, edx
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3c0], edx
jne 0x4fb45c
jmp 0x4fc1fe
mov dword [esp + 0x3c0], edx
mov dword [esp + 0x1ac], edx
jmp 0x4fc1fe
mov eax, 0x13
mov byte [esp + 0x1e3], 0x3a
mov ecx, dword [esp + 0x44c]
mov ecx, dword [ecx + 8]
imul edx, dword [esp + 0x37c], 0x1c
mov ecx, dword [ecx + edx + 0x18]
mov dword [esp + 0x2ec], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x2e8], ecx
mov edx, dword [esp + 0x3c0]
mov dword [edx], ecx
mov ecx, dword [esp + 0x2d0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x1dc]
cmp dword [edx], 0x21
sete dl
cmp ecx, 2
jne 0x4f605f
cmp ecx, 0xf
jne 0x4fc383
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov edx, dword [esp + 0x3c0]
jne 0x4fb45c
jmp 0x4fc383
cmp eax, 0xa
je 0x4f60d7
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov ebx, dword [esp + 0x3c8]
mov dword [esp + 0x3a4], edx
jne 0x4fc3ba
jmp 0x4f6116
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov ebx, dword [esp + 0x3c8]
mov dword [esp + 0x3a4], edx
mov eax, 0xc
movzx ecx, byte [esp + 0x53]
cmp ecx, 0x5a
jne 0x4f6155
mov esi, 0xb
mov byte [esp + 0x53], 0x37
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
jmp 0x4fd1e2
mov dword [esp + 0x3c8], ebx
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x334]
jmp 0x4f68d1
mov ecx, 2
mov eax, dword [esp + 0x2d0]
mov esi, dword [eax]
cmp esi, 7
jb 0x4f61c0
mov eax, 3
mov edx, esi
mov dword [esp + 0x170], esi
imul edx, edx
and edx, 3
cmp edx, 2
mov edx, dword [esp + 0x238]
mov dword [esp + 0x228], edx
mov edx, dword [esp + 0x234]
mov dword [esp + 0x2cc], edx
jne 0x4f91b4
jmp 0x4fd4c8
mov dword [esp + 0x170], esi
mov eax, dword [esp + 0x238]
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x234]
mov dword [esp + 0x2cc], eax
jmp 0x4fd4c8
mov eax, dword [esp + 0x1dc]
mov ecx, dword [eax]
cmp ecx, 0x64
setb al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
mov edx, dword [esp + 0x228]
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
mov esi, dword [esp + 0x170]
cmp esi, 7
jne 0x4f6299
imul esi, esi
and esi, 3
cmp esi, 1
ja 0x4f6299
or al, cl
je 0x4f6299
mov eax, 6
movzx ecx, dl
cmp dword [esp + 0x228], ecx
mov edi, dword [esp + 0x390]
mov ebx, edi
mov edx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], edx
mov esi, dword [esp + 0x398]
mov dword [esp + 0x3cc], esi
mov ecx, dword [esp + 0x2cc]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3b4], edi
mov dword [esp + 0x3b0], edx
mov dword [esp + 0x3ac], esi
mov esi, ebx
mov dword [esp + 0x3a8], ecx
je 0x4f8cff
jmp 0x4f62ca
mov esi, dword [esp + 0x390]
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x3c4], eax
mov eax, 3
mov ecx, dword [esp + 0x37c]
sub eax, ecx
xor eax, ecx
setne al
movzx edx, al
add edx, ecx
mov dword [esp + 0x360], edx
mov eax, dword [esp + 0x44c]
mov dword [esp + 0x358], eax
cmp edx, dword [eax + 4]
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x354], eax
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x350], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x364], eax
mov dword [esp + 0x348], esi
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x344], esi
mov eax, 0xe
jb 0x4fcccd
mov esi, dword [esp + 0x3a0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412cb0
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
lea ecx, [esp + 0x400]
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
lea ecx, [esp + 0x404]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x404], eax
lea eax, [esp + 0x408]
mov dword [esp + 0x104], eax
mov dword [esp + 0x408], 0xfffffffe
lea edi, [esp + 0x3f8]
lea eax, [esp + 0x440]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x410]
mov dword [esp + 0xc], eax
mov dword [esp], edi
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
test eax, eax
jne 0x4f64d7
mov eax, dword [esp + 0x410]
cmp eax, 0x636f6964
je 0x4f6537
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4f6537
lea eax, [esp + 0x3f8]
mov dword [esp + 0x148], eax
mov esi, 7
mov edx, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3b0]
mov ebx, dword [esp + 0x3ac]
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x378], 0x7000002f
mov eax, dword [esp + 0x364]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x374], eax
cmp esi, 7
je 0x4f65d3
mov eax, esi
and eax, 1
inc eax
xor eax, esi
mov esi, ecx
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov dword [esp + 0x3bc], edi
mov dword [esp + 0x3ac], ebx
mov dword [esp + 0x3cc], ebx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
jne 0x4fcfaf
mov dword [esp + 0x378], eax
mov dword [esp + 0x148], edi
mov eax, dword [esp + 0x364]
mov dword [esp + 0x374], eax
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3a4], eax
jmp 0x4fb45c
mov al, 0x45
movzx eax, al
cmp eax, 0x12
mov edi, dword [esp + 0x344]
mov bl, 0x4f
lea eax, [esp + 0x424]
lea ecx, [esi + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 8
call fcn.007c51d0
test edi, edi
jne 0x4f65e8
movzx eax, bl
cmp eax, 0x4f
jne 0x4f664f
lea eax, [esp + 0x3f8]
mov dword [esp + 0x148], eax
mov bl, 0x61
mov bh, 0x4b
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004124f0
mov eax, dword [esp + 0x2ac]
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 ecx, edi
mov eax, dword [esp + 0x364]
mov dword [esp + 0x370], eax
je 0x4f7abf
mov dword [esp + 0x3cc], ebx
mov dword [esp + 0x3bc], edi
mov esi, ecx
jmp 0x4fb45c
lea eax, [esp + 0x3f8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x364]
mov dword [esp + 0x374], eax
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x378], edi
mov dword [esp + 0x3a4], eax
jmp 0x4fb45c
lea eax, [esp + 0x3f8]
mov dword [esp + 0x148], eax
mov eax, 2
mov dword [esp + 0x378], edi
mov ecx, dword [esp + 0x364]
mov dword [esp + 0x370], ecx
jmp 0x4fb673
mov eax, 0x1c
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x280], ecx
test ecx, ecx
je 0x4f6712
xor ecx, ecx
test cl, cl
jne 0x4f6712
mov ecx, 0x11
movzx edx, byte [esp + 0x1ce]
cmp edx, 0x1a
je 0x4f6737
mov eax, 9
cmp edx, 0x35
je 0x4faa82
mov byte [esp + 0x1ce], 0x18
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0042d060
mov edx, dword [esp + 0x280]
mov ecx, dword [edx]
mov dword [esp + 0x1b4], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x1b8], edx
je 0x4fab09
jmp 0x4f6792
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3b0]
mov ecx, dword [esp + 0x3ac]
mov ebx, dword [esp + 0x3a8]
jmp 0x4f6743
mov edx, dword [esp + 0x3c0]
jmp 0x4f9800
cmp eax, 0xf
jne 0x4f676a
mov dword [esp + 0x3c4], ebx
mov dword [esp + 0x3cc], ecx
mov dword [esp + 0x3bc], edi
mov byte [esp + 0x2e7], 3
jmp 0x4f732b
mov dword [esp + 0x3c0], edx
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], ebx
jmp 0x4fab18
mov eax, dword [esp + 0x280]
lea eax, [eax + 4]
mov dword [esp + 0x2a0], eax
xor edi, edi
mov ebx, dword [esp + 0x1b4]
mov esi, 0xa
mov eax, dword [esp + 0x2a0]
mov eax, dword [eax]
mov dword [esp + 0x300], eax
mov ecx, edi
shl ecx, 6
mov edx, eax
add edx, ecx
je 0x4f6849
xor eax, eax
test al, al
jne 0x4f6849
mov dword [esp + 0x158], edx
movzx edx, byte [esp + 0x153]
cmp edx, 1
je 0x4f6890
mov eax, 0xb
cmp edx, 0x28
je 0x4f68c8
cmp edx, 0x38
jne 0x4f6949
mov eax, 1
mov byte [esp + 0x153], 7
mov esi, dword [esp + 0x300]
lea edx, [esi + ecx + 0x24]
mov dword [esp + 0xa4], edx
mov ecx, dword [esi + ecx + 0x24]
test ecx, ecx
je 0x4f69fb
mov dword [esp + 0x158], edx
mov dword [esp + 0x320], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x334], edi
cmp esi, 0xa
jne 0x4f6a4b
imul esi, esi
and esi, 3
cmp esi, 2
mov ecx, dword [esp + 0x320]
mov edi, dword [esp + 0x334]
jb 0x4f6c58
jmp 0x4f6a4b
mov esi, 0x10
mov byte [esp + 0x153], 0x38
mov edx, dword [esp + 0x300]
lea eax, [edx + ecx + 0x24]
mov dword [esp + 0xa4], eax
cmp dword [edx + ecx + 0x24], 0
mov ecx, ebx
mov dword [esp + 0x190], ecx
jne 0x4fcd7f
jmp 0x4fc022
mov ecx, ebx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x3cc], ecx
cmp eax, 0xb
jne 0x4f698c
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f698c
mov byte [esp + 0x153], 0x28
mov edx, dword [esp + 0x300]
lea eax, [edx + ecx + 0x24]
mov dword [esp + 0xa4], eax
mov eax, dword [edx + ecx + 0x24]
test eax, eax
jne 0x4f6a09
mov ebx, 0xa
mov byte [esp + 0x53], 0x5a
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
mov ecx, dword [esp + 0x3cc]
cmp ebx, 0xa
jne 0x4f6a17
mov edx, dword [esp + 0x3b8]
mov eax, edx
shl eax, 6
mov ecx, dword [esp + 0x19c]
mov eax, dword [ecx + eax + 0x1c]
cmp dword [eax], 3
je 0x4f6a71
xor eax, eax
test al, al
je 0x4fb235
mov eax, 9
mov ecx, 0xd
movzx edx, byte [esp + 0x17f]
cmp edx, 0x25
je 0x4fabc9
cmp ecx, 0xd
je 0x4f6b0e
xor eax, eax
test al, al
jne 0x4f6b0e
mov ebx, dword [esp + 0x394]
cmp eax, 0xb
je 0x4f6b18
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x4f6b18
mov dword [esp + 0x394], ebx
mov eax, 0x1f
mov byte [esp + 0xef], 0x15
cmp dword [esp + 0x2c0], 0x3e
je 0x4f5247
jmp 0x4fb26d
mov byte [esp + 0x17f], 0x25
jmp 0x4f6b25
mov byte [esp + 0x1b2], 0x66
jmp 0x4f4b03
mov edi, dword [esp + 0x334]
mov eax, edi
shl eax, 6
mov ecx, dword [esp + 0x300]
mov eax, dword [ecx + eax + 0x2c]
mov esi, dword [esp + 0xfc]
mov dword [esi + 0x1c8], eax
mov dword [esp], esi
call fcn.00412100
mov dword [esp], esi
call fcn.0042b9c0
mov eax, dword [esp + 0x1b8]
mov ecx, dword [eax]
mov edx, edi
mov dword [esp + 0x334], edx
mov eax, 1
mov esi, ecx
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx edi, cl
mov ebx, esi
add edi, edx
cmp edi, ebx
mov dword [esp + 0x320], ebx
jb 0x4f67ac
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f75b5
jmp 0x4fab09
cmp esi, 0xf
je 0x4f6de3
imul esi, esi
and esi, 3
cmp esi, 2
je 0x4f6de3
mov dword [esp + 0x3b8], ecx
mov esi, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3b0]
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x2b8]
mov bl, byte [esp + 0x2e7]
jmp 0x4f72fd
mov byte [esp + 0x22e], 0x79
mov eax, ecx
mov dword [esp + 0x3b8], ecx
shl eax, 6
mov ecx, dword [esp + 0x35c]
mov edx, dword [ecx + eax + 0x14]
test edx, edx
je 0x4f6f35
mov eax, 0xc
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov dword [esp + 0x1fc], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
je 0x4f9f3f
cmp eax, 7
jne 0x4f890a
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x4f890a
movzx ecx, byte [esp + 0x1b3]
cmp ecx, 0x3e
je 0x4f6f14
mov eax, 0x10
cmp ecx, 0x4c
jne 0x4f828f
mov esi, 0x11
mov byte [esp + 0x1b3], 0x4c
mov eax, dword [esp + 0x28c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp], eax
call fcn.007c51d0
cmp esi, 8
mov dl, byte [esp + 0x103]
je 0x4f6eb7
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x4f82d8
mov ecx, 9
movzx eax, dl
cmp eax, 0x4a
jne 0x4f6ef7
mov eax, 0xe
mov ecx, dword [esp + 0x1f4]
test ecx, ecx
jne 0x4f6f21
mov byte [esp + 0x103], 0x4a
mov edx, ecx
not ecx
and ecx, 1
add ecx, edx
mov edx, dword [esp + 0x394]
jne 0x4f4538
jmp 0x4fc422
cmp ecx, 9
je 0x4f44f1
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x4f82d8
jmp 0x4f44f1
mov byte [esp + 0x1b3], 0x3e
jmp 0x4f82b3
mov byte [esp + 0x103], 0x4a
mov edx, dword [esp + 0x394]
jmp 0x4fc422
mov dword [esp + 0x1fc], edx
jmp 0x4fd5d9
mov byte [esp + 0x85], 0x61
mov eax, dword [esp + 0x1ec]
mov eax, dword [eax]
imul ecx, dword [esp + 0x37c], 0x1c
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x120], eax
mov dword [esp + 4], 0x40
mov dword [esp], 1
call fcn.00493840
mov edx, eax
test edx, edx
mov dword [esp + 0xb0], 0x70000003
je 0x4f6fab
mov eax, edx
and eax, 1
inc eax
xor eax, edx
mov eax, dword [esp + 0x38c]
mov dword [esp + 0xac], eax
jne 0x4f99bf
jmp 0x4f72fd
mov eax, dword [esp + 0x38c]
mov dword [esp + 0xac], eax
jmp 0x4f72fd
mov eax, 0x17
mov byte [esp + 0x2a7], 0x39
mov esi, dword [esp + 0x268]
lea ecx, [esi + 0x34]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esi + 0x34]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
mov dword [esp + 0x260], esi
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x2d8], ecx
je 0x4f8f9c
mov eax, dword [esp + 0x260]
lea eax, [eax + 0x38]
mov dword [esp + 0x2a8], eax
xor esi, esi
mov edi, ebx
mov eax, dword [esp + 0x2a8]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov edx, dword [esp + 0x3a0]
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
mov ebx, eax
test ebx, ebx
je 0x4f70e5
mov eax, 0xf
cmp dword [ebx + 0x1c], 0
jne 0x4f708b
mov ecx, edi
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x214], esi
cmp eax, 6
mov edi, ecx
mov dword [esp + 0x3c0], edx
mov ecx, dword [esp + 0x214]
mov esi, ecx
jne 0x4f70dd
jmp 0x4f9cdc
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x3a0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
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 dword [esp], ebx
call fcn.004234b0
mov ecx, esi
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx esi, al
add esi, ecx
mov eax, dword [esp + 0x25c]
cmp esi, dword [eax]
jb 0x4f7125
mov dword [esp + 0x214], ecx
mov dword [esp + 0x210], ebx
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, edi
jne 0x4f712c
jmp 0x4f7020
mov ebx, edi
jmp 0x4f7020
mov ecx, 0x14
mov eax, dword [esp + 0x2d8]
test eax, eax
je 0x4f7150
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x3c8], ebx
jmp 0x4f71d8
mov dword [esp + 0x3c8], ebx
cmp ecx, 9
jne 0x4f71d8
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x4f71d8
mov esi, 0x16
mov byte [esp + 0xfb], 0x71
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x398]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x39c]
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 + 0x44c]
mov eax, dword [eax + 8]
mov dword [esp + 0x220], eax
jmp 0x4f764f
movzx ecx, byte [esp + 0x29f]
cmp ecx, 0x1b
je 0x4f734c
cmp ecx, 0x2e
je 0x4f7383
mov eax, 0xd
cmp ecx, 0x44
jne 0x4f7407
mov esi, dword [esp + 0x3b4]
mov edi, dword [esp + 0x3b0]
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov bl, byte [esp + 0x2e7]
cmp eax, 0xd
jne 0x4f6f41
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x4f6f41
mov byte [esp + 0x29f], 0x2c
mov edx, dword [esp + 0x3d0]
test edx, edx
jne 0x4f758d
mov byte [esp + 0x2e7], bl
mov eax, 8
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x18c], edx
je 0x4f759b
cmp eax, 8
je 0x4f75b5
mov byte [esp + 0x85], 0x3e
mov eax, dword [esp + 0x1ec]
mov eax, dword [eax]
imul ecx, dword [esp + 0x37c], 0x1c
mov eax, dword [eax + ecx + 0x18]
mov dword [esp + 0x120], eax
mov dword [esp + 4], 0x40
mov dword [esp], 1
call fcn.00493840
mov edx, eax
mov dword [esp + 0xb0], 0x70000003
test edx, edx
jne 0x4f7635
mov eax, edx
not eax
and eax, 1
add eax, edx
mov eax, dword [esp + 0x38c]
mov dword [esp + 0xac], eax
mov bl, byte [esp + 0x2e7]
je 0x4f99bf
mov eax, 0xf
movzx ecx, bl
cmp ecx, 0x4b
jne 0x4f7440
mov dword [esp + 0x3bc], edi
mov dword [esp + 0x2b8], edx
mov byte [esp + 0x2e7], 0x4b
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x378], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x3a4], eax
jmp 0x4fb45c
mov byte [esp + 0x29f], 0x44
mov edx, dword [esp + 0x3d0]
test edx, edx
jne 0x4f7569
mov eax, 9
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x18c], edx
jne 0x4f6c8a
jmp 0x4f759b
mov eax, 9
mov edi, 0x18
mov byte [esp + 0x29f], 0x1b
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 0x18c], ecx
test ecx, ecx
mov edx, dword [esp + 0x3c0]
je 0x4f7468
cmp edi, 0xe
jne 0x4f759b
imul edi, edi
and edi, 3
cmp edi, 2
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3a4]
jb 0x4fc1fe
jmp 0x4f759b
mov esi, 0x10
mov byte [esp + 0x29f], 0x2e
mov ecx, dword [esp + 0x3d0]
test ecx, ecx
jne 0x4f7572
mov eax, ecx
mov dword [esp + 0x18c], ecx
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x4f75b5
jmp 0x4f7579
mov byte [esp + 0x2e7], bl
mov dword [esp + 0x2b8], edx
mov edx, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x3cc]
mov ebx, dword [esp + 0x3c4]
jmp 0x4f6743
cmp eax, 9
jne 0x4f7479
mov dword [esp + 0x3c0], edx
jmp 0x4f75b5
mov eax, edx
mov esi, 0xa
mov ecx, dword [esp + 0x3a0]
mov ecx, dword [ecx + 0x9c]
mov dword [esp + 0x384], 0x700002bb
mov dword [esp + 0x248], 0
test ecx, ecx
jne 0x4f74bb
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
mov edx, eax
jne 0x4fcfaf
jmp 0x4f74bd
mov edx, eax
cmp esi, 0xa
jne 0x4f751e
mov ecx, esi
and ecx, 1
xor ecx, esi
not ecx
test ecx, ecx
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov esi, dword [esp + 0x390]
jne 0x4f3a41
jmp 0x4fc8c3
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov esi, dword [esp + 0x390]
jmp 0x4fc8c3
mov dword [esp + 0x18c], edx
jmp 0x4f759b
mov dword [esp + 0x18c], ecx
cmp esi, 6
je 0x4f9222
xor eax, eax
test al, al
je 0x4f759b
jmp 0x4f9222
mov byte [esp + 0x2e7], bl
mov dword [esp + 0x18c], edx
mov eax, dword [esp + 0x18c]
mov dword [esp], eax
call fcn.00627720
mov dword [esp + 0x3d0], 0
mov eax, 9
mov esi, dword [esp + 0x390]
mov ecx, dword [esp + 0x39c]
mov edx, dword [esp + 0x398]
mov edi, dword [esp + 0x38c]
cmp eax, 9
je 0x4f761b
xor eax, eax
test al, al
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], ecx
mov dword [esp + 0x3bc], ecx
mov dword [esp + 0x3ac], edx
mov dword [esp + 0x3cc], edx
mov dword [esp + 0x3a8], edi
mov dword [esp + 0x3c4], edi
je 0x4f9f3f
jmp 0x4f62ca
mov dword [esp + 0x3c4], edi
mov dword [esp + 0x3cc], edx
mov dword [esp + 0x3bc], ecx
jmp 0x4f62ca
mov eax, dword [esp + 0x38c]
mov dword [esp + 0xac], eax
mov bl, byte [esp + 0x2e7]
jmp 0x4f99bf
cmp esi, 6
je 0x4f9f3f
imul esi, esi
and esi, 3
cmp esi, 3
mov eax, dword [esp + 0x3c0]
mov edi, dword [esp + 0x38c]
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x3cc], ecx
mov ebx, dword [esp + 0x390]
je 0x4f9f3f
mov dword [esp + 0x370], eax
movzx eax, byte [esp + 0x247]
cmp eax, 0x14
jne 0x4f77a5
mov dword [esp + 0x3c0], 0xc
mov byte [esp + 0x247], 0x14
imul eax, dword [esp + 0x37c], 0x1c
add eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x33c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x2ac]
mov esi, dword [edx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x308]
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 + 0x378], eax
test eax, eax
mov ecx, edi
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x38c], ecx
mov edi, dword [esp + 0x3bc]
mov dword [esp + 0x39c], edi
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov esi, ebx
mov dword [esp + 0x390], esi
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3a8], ecx
mov edx, dword [esp + 0x370]
jne 0x4fb45c
jmp 0x4f9337
mov byte [esp + 0x247], 0x36
imul eax, dword [esp + 0x37c], 0x1c
add eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x33c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x2ac]
mov esi, dword [edx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x308]
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 + 0x378], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
mov ecx, edi
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x38c], ecx
mov edi, dword [esp + 0x3bc]
mov dword [esp + 0x39c], edi
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov esi, ebx
mov dword [esp + 0x390], esi
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3a8], ecx
mov ecx, 6
mov edx, dword [esp + 0x370]
je 0x4fc0b3
jmp 0x4fb45c
mov bl, 0x61
mov esi, dword [esp + 0x3a0]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004124f0
mov eax, dword [esp + 0x2ac]
mov eax, dword [eax]
test eax, eax
je 0x4f7ab1
mov bh, 0x4b
imul eax, eax
and eax, 3
cmp eax, 3
mov edi, dword [esp + 0x344]
mov ecx, dword [esp + 0x378]
je 0x4f7abf
movzx eax, bh
cmp eax, 0x1e
je 0x4f797c
cmp eax, 0x57
mov ebx, dword [esp + 0x148]
mov dword [esp + 0x344], edi
mov dword [esp + 0x3a0], esi
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10c]
mov dword [ecx], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x108]
mov dword [ecx], eax
mov eax, dword [esp + 0x104]
mov dword [eax], 0xffffffce
lea eax, [esp + 0x434]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.005953b0
mov dword [esp + 0x338], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x4f79fe
jmp 0x4f7c63
mov dword [esp + 0x378], ecx
mov dword [esp + 0x344], edi
mov dword [esp + 0x3a0], esi
mov esi, 0x18
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10c]
mov dword [ecx], eax
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x108]
mov dword [ecx], eax
mov eax, dword [esp + 0x104]
mov dword [eax], 0xffffffce
lea eax, [esp + 0x434]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x148]
mov dword [esp], ebx
call fcn.005953b0
mov dword [esp + 0x338], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f7b91
mov dword [esp + 0x148], ebx
mov edi, 0x14
mov esi, 0x12
lea eax, [esp + 0x440]
mov dword [esp + 8], eax
lea eax, [esp + 0x444]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00593400
mov dword [esp + 0x378], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x70], 0
cmp eax, ecx
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
je 0x4f9d98
cmp edi, 0xf
jne 0x4f7b7e
imul edi, edi
and edi, 3
cmp edi, 2
jae 0x4f7b7e
mov ecx, 0xb
mov byte [esp + 0x5a], 0x6d
mov dword [esp + 0x264], 0
mov eax, dword [esp + 0x3d0]
mov dword [esp + 0x268], eax
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4f83a4
mov edi, dword [esp + 0x344]
mov ecx, dword [esp + 0x378]
mov dword [esp + 0x378], ecx
movzx eax, bl
cmp eax, 0x1c
jne 0x4f7b1f
mov dword [esp + 0x344], edi
mov dword [esp + 0x3a0], esi
mov eax, 0xe
mov byte [esp + 0x1e2], 0x76
mov byte [esp + 0x6a], 0x13
mov ecx, dword [esp + 0x308]
test ecx, ecx
je 0x4f7c36
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x374], ecx
jne 0x4f8bc8
jmp 0x4fc933
mov dword [esp + 0x344], edi
mov dword [esp + 0x3a0], esi
mov byte [esp + 0x1e2], 0x76
mov byte [esp + 0x6a], 0x13
mov ecx, dword [esp + 0x308]
test ecx, ecx
je 0x4f7c49
mov eax, 0x13
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x374], ecx
mov ebx, dword [esp + 0x3c8]
jne 0x4f8ba3
jmp 0x4fc959
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4f7f84
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x374], eax
mov cl, byte [esp + 0x1a3]
cmp esi, 9
jne 0x4f7c1e
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x4f7c2a
mov byte [esp + 0x1a3], 0x7b
mov dword [esp + 0x3d4], 0
mov eax, dword [esp + 0x1ec]
mov eax, dword [eax]
imul ecx, dword [esp + 0x37c], 0x1c
mov edx, dword [eax + ecx + 0x14]
mov eax, dword [eax + ecx + 0x18]
lea ecx, [esp + 0x3d4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.006274b0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x4f667c
jmp 0x4fab18
mov byte [esp + 0x1a3], cl
jmp 0x4fb3f0
mov byte [esp + 0x1a3], cl
jmp 0x4fb3f0
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x374], ecx
jmp 0x4fc933
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x374], eax
jmp 0x4fc959
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4fb3f0
mov eax, 0x11
mov byte [esp + 0x6a], 0x2d
mov byte [esp + 0x163], 0x62
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx]
test edx, edx
jne 0x4f7cb0
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x2f0], edx
jne 0x4fc959
jmp 0x4f9fa0
mov dword [esp + 0x2f0], edx
jmp 0x4f9fa0
mov byte [esp + 0x163], 0x1f
mov eax, dword [esp + 0x1e4]
mov eax, dword [eax + 4]
mov dword [esp + 0x2f0], eax
test eax, eax
je 0x4fc959
mov eax, 5
xor ecx, ecx
test cl, cl
jne 0x4fc959
cmp eax, 5
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
jne 0x4f616f
jmp 0x4f7d34
mov byte [esp + 0x163], 0x62
mov eax, dword [esp + 0x1e4]
mov eax, dword [eax + 4]
mov dword [esp + 0x2f0], eax
test eax, eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
je 0x4fc959
mov eax, 0xf
mov esi, dword [esp + 0x2f0]
mov edi, dword [esi + 0xc]
mov ecx, dword [edi]
cmp ecx, 0xffffffce
jne 0x4f7d8a
mov edx, ecx
and edx, 1
xor edx, ecx
not edx
test edx, edx
je 0x4f7d8a
test edi, edi
jne 0x4f7e00
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f7e00
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x1e4], esi
jmp 0x4fc959
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x1e4], esi
cmp eax, 0xf
mov ebx, dword [esp + 0x394]
je 0x4f7dc5
xor eax, eax
test al, al
jne 0x4f7dc5
mov dword [esp + 0x3a4], ecx
mov dword [esp + 0x2f0], esi
mov byte [esp + 0x1b2], 5
jmp 0x4f4b03
mov dword [esp + 0x3a4], ecx
mov edi, 0xb
mov al, byte [esp + 0x163]
movzx ecx, al
cmp ecx, 0x62
jne 0x4f7cbc
mov dword [esp + 0x2f0], esi
cmp edi, 6
jne 0x4f7d05
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov eax, dword [edi + 8]
mov dword [esp + 0x440], eax
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00493840
mov dword [esp + 0x444], eax
test eax, eax
je 0x4f7e5d
mov ecx, dword [esp + 0x440]
mov edx, dword [edi + 4]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.007c51d0
mov esi, dword [esp + 0x2f4]
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x1e4], eax
jmp 0x4f7ede
mov eax, 0xc
mov dword [esp + 0x378], 0x70000003
mov ecx, dword [esp + 0x374]
mov dword [esp + 0x3a4], ecx
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x1e4], ecx
cmp eax, 0xc
jne 0x4f5f4b
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4f5f4b
mov edx, dword [esp + 0x3c0]
jmp 0x4fb45c
mov eax, dword [esp + 0x440]
mov ecx, dword [esp + 0x444]
lea edx, [esp + 0x448]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0062d620
test eax, eax
jne 0x4f7f49
mov edx, dword [esp + 0x448]
mov eax, dword [edx]
test eax, eax
jne 0x4f800a
mov ecx, 3
sub ecx, eax
mov dword [esp + 0x338], 0
xor ecx, eax
je 0x4f800a
mov dword [esp + 0x378], eax
mov edi, 5
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xe8], eax
cmp edi, 2
je 0x4f7fc1
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
je 0x4f7fc1
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
jmp 0x4fb45c
mov eax, 0xf
movzx ecx, byte [esp + 0x7f]
cmp ecx, 0x44
jne 0x4f7fdc
mov dword [esp + 0x2f4], edx
mov byte [esp + 0x17f], 0x14
mov byte [esp + 0x8e], 0x6a
mov byte [esp + 0x86], 0x68
mov byte [esp + 0x9e], 0x55
mov byte [esp + 0xe3], 0xb
mov byte [esp + 0x12b], 0xe
mov byte [esp + 0x27e], 0x7d
mov byte [esp + 0xc9], 0x3c
mov byte [esp + 0x1c7], 0x72
mov byte [esp + 0x8f], 0x77
mov byte [esp + 0x7f], 0x18
mov byte [esp + 0x5b], 5
mov byte [esp + 0xab], 7
mov byte [esp + 0x7e], 0x11
mov eax, dword [esp + 0x3a0]
lea ecx, [eax + 0xa4]
mov dword [esp + 0xf4], ecx
lea ecx, [eax + 0xa8]
mov dword [esp + 0x2dc], ecx
lea eax, [eax + 0x1b8]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x200], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x338], 0
mov eax, dword [esp + 0x70]
mov dword [esp + 0xe8], eax
mov byte [esp + 0x76], 0x2e
mov byte [esp + 0x42], 0x64
mov byte [esp + 0x51], 0x4a
mov byte [esp + 0x11b], 8
mov byte [esp + 0x53], 0x5a
mov byte [esp + 0x43], 0xd
mov byte [esp + 0x113], 0x51
mov byte [esp + 0x1c6], 0x4f
mov byte [esp + 0x1cf], 0x52
mov byte [esp + 0x22e], 0x79
mov byte [esp + 0xbf], 0x53
mov byte [esp + 0x52], 0x4d
mov byte [esp + 0x87], 0xa
mov byte [esp + 0x6b], 0x7a
mov byte [esp + 0x2cb], 0x31
mov byte [esp + 0x77], 0x16
mov byte [esp + 0xcb], 0x2f
mov byte [esp + 0x8d], 0x77
mov edx, dword [esp + 0x3dc]
test edx, edx
mov esi, dword [esp + 0x200]
jne 0x4f8195
cmp eax, 5
jne 0x4f82ab
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4f82ab
mov ebx, dword [esp + 0x3c8]
jmp 0x4fb9f9
mov byte [esp + 0x1b3], 0xf
mov eax, dword [esp + 0x28c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x178]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp], eax
call fcn.007c51d0
mov ecx, dword [esp + 0x394]
mov dword [esp + 0x394], ecx
mov eax, 2
mov ecx, dword [ecx]
mov edx, dword [esp + 0x294]
lea edx, [edx + edx*2]
mov esi, dword [esp + 0x2e0]
mov dword [ecx + edx*8 + 0x14], esi
mov dword [esp + 0x314], 0
cmp eax, 2
jne 0x4f9f3f
jmp 0x4fb8ef
cmp esi, 7
je 0x4f83c6
imul esi, esi
and esi, 3
cmp esi, 3
je 0x4f83d2
mov ecx, 0x13
mov eax, 0x1b
mov edx, dword [esp + 0x60]
cmp dword [edx], 5
jne 0x4fd72f
cmp ecx, 0xb
jne 0x4f83de
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov ebx, dword [esp + 0x3c8]
jne 0x4fcee7
jmp 0x4fb9f9
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov ebx, dword [esp + 0x3c8]
jmp 0x4fb9f9
movzx eax, byte [esp + 0xcb]
cmp eax, 0x1c
je 0x4f8446
cmp eax, 0x2f
je 0x4f847b
mov esi, 2
cmp eax, 0x5a
jne 0x4f84aa
mov byte [esp + 0xcb], 0x1c
mov eax, dword [esp + 0x194]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x13c], eax
test eax, eax
je 0x4fb9f9
mov eax, 0xd
xor ecx, ecx
test cl, cl
mov dword [esp + 0x3c8], ebx
je 0x4f8846
jmp 0x4fb9f9
mov byte [esp + 0xcb], 0x2f
mov eax, dword [esp + 0x194]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x13c], eax
test eax, eax
je 0x4fb9f9
mov eax, 0x1a
xor ecx, ecx
test cl, cl
je 0x4f8627
jmp 0x4fb9f9
mov byte [esp + 0xcb], 0x3f
mov eax, dword [esp + 0x194]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4f84b6
mov eax, ecx
mov dword [esp + 0x13c], ecx
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x4f84c2
jmp 0x4fb9f9
mov dword [esp + 0x3c8], ebx
jmp 0x4fb9aa
mov dword [esp + 0x13c], ecx
jmp 0x4fb9f9
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + 0x3b8]
mov eax, dword [eax + edx*4]
cmp eax, 3
jne 0x4fb9f9
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x4fb9f9
mov esi, 0x10
mov eax, edx
shl eax, 6
mov edx, dword [esp + 0x174]
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 + 0x3a0]
mov dword [esp], eax
call fcn.00410fa0
test eax, eax
jne 0x4f8579
mov edi, 0xc
mov al, byte [esp + 0x77]
movzx eax, al
cmp eax, 0x16
jne 0x4f8595
mov dword [esp + 0x3c8], ebx
cmp edi, 6
je 0x4f667c
imul edi, edi
and edi, 3
cmp edi, 2
je 0x4f667c
mov byte [esp + 0x77], 0x17
mov eax, dword [esp + 0x3dc]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x3b8]
mov dword [eax + ecx*4], 0
mov ebx, dword [esp + 0x3c8]
jmp 0x4fb9f9
mov dword [esp + 0x3c8], ebx
cmp esi, 0x10
mov ebx, dword [esp + 0x3c8]
jne 0x4f4a9a
jmp 0x4fb9f9
mov byte [esp + 0x77], 0x16
mov eax, dword [esp + 0x3dc]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x3b8]
mov dword [eax + ecx*4], 0
jmp 0x4fb9f9
mov byte [esp + 0x2cb], 0x31
call fcn.00449410
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x3dc]
mov eax, dword [eax + 0x10]
mov ecx, eax
not ecx
and ecx, 1
xor esi, esi
add ecx, eax
mov edx, dword [esp + 0x3b8]
lea ecx, [eax + edx*4]
cmove esi, ecx
test eax, eax
cmovne esi, ecx
mov eax, dword [esp + 0x448]
mov ecx, dword [eax + 8]
mov dword [esp + 0x35c], ecx
mov eax, edx
shl eax, 6
mov ecx, dword [ecx + eax + 0x10]
test ecx, ecx
jne 0x4f8663
mov eax, 0xd
mov edx, ecx
not edx
and edx, 1
add edx, ecx
je 0x4f8663
mov dword [esp + 0x32c], esi
cmp eax, 0xd
jne 0x4f84c2
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jb 0x4fba7c
jmp 0x4f84c2
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4fba67
mov eax, 0x10
mov ecx, dword [ecx]
mov dword [esp + 0x1bc], ecx
test esi, esi
je 0x4f869f
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0x32c], esi
xor edx, 2
add edx, ecx
je 0x4f86a6
mov ecx, 0x1c
cmp dword [esp + 0x1bc], 0
jne 0x4f8e79
jmp 0x4f86a6
mov dword [esp + 0x32c], esi
cmp eax, 0x10
jne 0x4f86c8
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov dword [esp + 0x3c8], ebx
jne 0x4f87b1
jmp 0x4fab18
mov dword [esp + 0x3c8], ebx
jmp 0x4fab18
mov eax, 6
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov esi, dword [esp + 0x35c]
lea edx, [esi + ecx + 0x14]
mov dword [esp + 0x48], edx
mov edx, dword [esi + ecx + 0x14]
test edx, edx
jne 0x4f872a
mov esi, 9
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x210]
mov ecx, dword [esp + 0x3c8]
mov edx, edi
jne 0x4f9c91
jmp 0x4f706f
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x210]
mov ecx, dword [esp + 0x3c8]
mov edx, edi
jmp 0x4f706f
mov dword [esp + 0x214], ecx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x8f], 0x77
mov esi, dword [esp + 0x98]
cmp dword [esi], 0
jne 0x4fd5d9
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x32c]
mov eax, dword [eax]
mov dword [esi], eax
jmp 0x4f9f34
mov byte [esp + 0x6b], 0x19
mov eax, dword [esi]
mov dword [esp + 0x32c], esi
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov edi, dword [esp + 0x3c0]
jne 0x4f86d4
mov ecx, dword [esp + 0x1bc]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x4f8865
mov eax, 2
mov ecx, dword [esp + 0x2dc]
cmp dword [ecx], 0
je 0x4f3d55
movzx eax, byte [esp + 0x87]
cmp eax, 0xa
mov eax, dword [esp + 0x3b8]
jne 0x4f894f
mov esi, 0x11
mov byte [esp + 0x87], 0x20
shl eax, 6
mov edx, dword [esp + 0x35c]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x64], ecx
mov edx, dword [edx + eax + 0x14]
test edx, edx
je 0x4f899a
mov eax, 0xf
mov ecx, edx
mov dword [esp + 0x88], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x4f89a1
cmp eax, 0xd
je 0x4f8a52
xor eax, eax
test al, al
mov ebx, dword [esp + 0x3c8]
je 0x4f89f2
jmp 0x4f84c2
movzx eax, byte [esp + 0x22e]
cmp eax, 0x1d
je 0x4f88bd
mov esi, 0xf
cmp eax, 0x79
mov ecx, dword [esp + 0x3b8]
jne 0x4f6d8f
mov byte [esp + 0x22e], 0x74
mov eax, ecx
shl eax, 6
mov ecx, dword [esp + 0x35c]
mov eax, dword [ecx + eax + 0x14]
mov dword [esp + 0x1fc], eax
test eax, eax
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jne 0x4f890a
jmp 0x4f9f3f
mov eax, 0x11
mov byte [esp + 0x22e], 0x1d
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov edx, dword [esp + 0x35c]
mov edx, dword [edx + ecx + 0x14]
test edx, edx
je 0x4f8980
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov dword [esp + 0x1fc], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
je 0x4f830d
mov esi, 0x1c
mov edx, dword [esp + 0x1fc]
mov eax, dword [edx]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f8944
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
mov eax, dword [esp + 0x36c]
jmp 0x4fa13a
mov dword [edx], 0
jmp 0x4f9f34
mov byte [esp + 0x87], 0xa
shl eax, 6
mov edx, dword [esp + 0x35c]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x64], ecx
mov eax, dword [edx + eax + 0x14]
test eax, eax
je 0x4f89b9
mov dword [esp + 0x88], eax
xor eax, eax
test al, al
je 0x4f89f2
jmp 0x4f89b9
mov dword [esp + 0x1fc], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jmp 0x4f830d
mov dword [esp + 0x88], edx
cmp esi, 9
je 0x4fab18
imul esi, esi
and esi, 3
cmp esi, 2
je 0x4fab18
movzx eax, byte [esp + 0x52]
cmp eax, 0x4d
jne 0x4f89ca
mov byte [esp + 0x52], 0x12
jmp 0x4f89cf
mov byte [esp + 0x52], 0x4d
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x64]
mov dword [eax], ecx
mov edx, dword [esp + 0x88]
cmp dword [edx], 0
jne 0x4f8a1c
mov eax, 0xb
movzx ecx, byte [esp + 0xbf]
cmp ecx, 0x53
jne 0x4f8a28
mov dword [esp + 0xc0], edx
jmp 0x4fbc38
mov dword [esp + 0xc0], edx
jmp 0x4fd5d9
mov byte [esp + 0xbf], 6
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov dword [edx], eax
mov dword [esp + 0x3c8], 1
mov dword [esp + 0xc0], edx
jmp 0x4f9f3f
mov ebx, dword [esp + 0x3c8]
jmp 0x4f84c2
mov eax, 0x13
mov byte [esp + 0x1cf], 0x52
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov edx, dword [esp + 0x35c]
mov edx, dword [edx + ecx + 0x18]
test edx, edx
jne 0x4f8aa6
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x1c8], edx
mov ebx, dword [esp + 0x3c8]
jne 0x4fd6ca
jmp 0x4f3a0b
mov dword [esp + 0x1c8], edx
jmp 0x4f3a0b
mov eax, 0xd
mov byte [esp + 0x1c6], 0x10
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov edx, dword [esp + 0x35c]
mov ecx, dword [edx + ecx + 0x1c]
mov dword [esp + 0x140], ecx
test ecx, ecx
mov ebx, dword [esp + 0x380]
je 0x4f8ed9
mov eax, 8
mov esi, dword [esp + 0x32c]
test esi, esi
je 0x4fd110
cmp eax, 4
je 0x4f8c1c
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4f8c1c
mov dword [esp + 0x3c8], ebx
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
mov eax, 0xf
movzx ecx, byte [esp + 0x6a]
cmp ecx, 0xd
je 0x4f8cf1
mov eax, 0x17
cmp ecx, 0x13
jne 0x4f8d1c
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
mov dl, byte [esp + 0x187]
jmp 0x4fcc49
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x4f8f33
movzx eax, byte [esp + 0x43]
cmp eax, 0xd
mov ecx, dword [esp + 0x3b8]
mov esi, dword [esp + 0x35c]
jne 0x4f8d90
mov eax, ecx
shl eax, 6
lea ecx, [esi + eax + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + eax + 0x14]
test ecx, ecx
je 0x4f9281
mov byte [esp + 0x43], 0x17
mov eax, ecx
mov dword [esp + 0x94], ecx
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x4fd1f8
jmp 0x4f6116
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
cmp eax, 6
jne 0x4f7c76
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x4fccef
jmp 0x4f7c76
mov byte [esp + 0x6a], 0xd
mov byte [esp + 0x163], 0x62
mov ecx, dword [esp + 0x308]
mov edx, dword [ecx]
test edx, edx
je 0x4f9186
mov ecx, edx
mov dword [esp + 0x2f0], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov dword [esp + 0x3a4], 3
jne 0x4f7d34
jmp 0x4fc898
mov eax, 0xa
shl ecx, 6
lea edx, [esi + ecx + 0x14]
mov dword [esp + 0x44], edx
mov edx, dword [esi + ecx + 0x14]
test edx, edx
je 0x4f9292
mov byte [esp + 0x43], 0xd
mov ecx, edx
and ecx, 1
inc ecx
xor ecx, edx
mov dword [esp + 0x94], edx
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3c8], ebx
mov edx, dword [esp + 0x3a4]
jne 0x4fd1f8
jmp 0x4f6083
cmp ecx, 0xc
je 0x4f8ea6
xor eax, eax
test al, al
jne 0x4f8eb2
mov eax, 0xb
movzx ecx, byte [esp + 0x6b]
cmp ecx, 0x7a
jne 0x4f8ebe
mov dword [esp + 0x3c8], ebx
mov esi, dword [esp + 0x32c]
jmp 0x4fd36a
mov dword [esp + 0x3c8], ebx
jmp 0x4f9f3f
mov dword [esp + 0x3c8], ebx
jmp 0x4f9f3f
mov ecx, 0x12
mov eax, 0xa
mov byte [esp + 0x6b], 0x7a
mov edx, dword [esp + 0x32c]
cmp dword [edx], 0
jne 0x4f8ef8
cmp eax, 0xa
je 0x4f917a
xor eax, eax
test al, al
mov dword [esp + 0x3c8], ebx
je 0x4f9f3f
jmp 0x4f87b1
cmp ecx, 9
jne 0x4f9047
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x4f9047
mov eax, 0xe
mov ecx, dword [esp + 0x32c]
mov ecx, dword [ecx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x4f8f9c
movzx eax, byte [esp + 0x51]
cmp eax, 0x4a
je 0x4f90f1
cmp eax, 0x4c
mov ecx, dword [esp + 0x3b8]
mov edx, dword [esp + 0x35c]
jne 0x4f913b
mov eax, 8
shl ecx, 6
mov esi, dword [edx + ecx + 0x14]
test esi, esi
jne 0x4f919d
mov byte [esp + 0x51], 0x47
mov ecx, 0xb
mov edx, esi
not edx
and edx, 1
add edx, esi
mov dword [esp + 0x78], esi
mov edx, dword [esp + 0x380]
mov dword [esp + 0x3c8], edx
jne 0x4fb8b6
jmp 0x4f91b4
cmp eax, 0xe
je 0x4f8fb0
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x4f712c
movzx eax, byte [esp + 0x113]
cmp eax, 0x51
jne 0x4f9000
mov byte [esp + 0x113], 0x51
mov eax, dword [esp + 0x3b8]
shl eax, 6
mov edx, dword [esp + 0x35c]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x130], ecx
mov eax, dword [edx + eax + 0x14]
test eax, eax
je 0x4f9075
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x4f9092
jmp 0x4f9075
mov esi, 6
mov byte [esp + 0x113], 0x70
mov eax, dword [esp + 0x3b8]
shl eax, 6
mov edx, dword [esp + 0x35c]
lea ecx, [edx + eax + 0x14]
mov dword [esp + 0x130], ecx
mov eax, dword [edx + eax + 0x14]
test eax, eax
je 0x4f905a
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov dword [esp + 0x3c8], ebx
jne 0x4f9092
jmp 0x4f9061
mov edi, dword [esp + 0x3c0]
mov dword [esp + 0x3c8], ebx
jmp 0x4f86d4
mov dword [esp + 0x3c8], ebx
cmp esi, 6
je 0x4f9075
imul esi, esi
and esi, 3
cmp esi, 3
jne 0x4f667c
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, dword [esp + 0x130]
mov dword [ecx], eax
mov ecx, 0xa
mov edx, dword [eax]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
sete bl
movzx esi, bl
cmp edx, esi
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jne 0x4f9f3f
jmp 0x4fcc31
mov eax, dword [esp + 0x3b8]
shl eax, 6
mov ecx, dword [esp + 0x35c]
mov ecx, dword [ecx + eax + 0x14]
test ecx, ecx
jne 0x4f91d2
mov byte [esp + 0x51], 0x4a
mov eax, ecx
mov dword [esp + 0x78], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jb 0x4f9f3f
jmp 0x4f940d
mov eax, 6
shl ecx, 6
mov edx, dword [edx + ecx + 0x14]
test edx, edx
jne 0x4f91e0
mov byte [esp + 0x51], 0x4c
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jne 0x4f9f3f
jmp 0x4fcad7
mov dword [esp + 0x3c8], ebx
jmp 0x4f87b1
mov dword [esp + 0x2f0], edx
mov dword [esp + 0x3a4], 3
jmp 0x4fc898
mov byte [esp + 0x51], 0x47
mov dword [esp + 0x78], esi
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
cmp eax, 3
jne 0x4f940d
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x4f61e8
jmp 0x4f940d
mov byte [esp + 0x51], 0x4a
mov dword [esp + 0x78], ecx
jmp 0x4f940d
mov byte [esp + 0x51], 0x4c
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jmp 0x4fcad7
mov edx, dword [esp + 0x4c]
mov eax, dword [edx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4fd5d9
mov eax, dword [esp + 0x32c]
mov eax, dword [eax]
mov dword [edx], eax
jmp 0x4f9f34
mov byte [esp + 0x43], 0x17
mov dword [esp + 0x94], ecx
jmp 0x4f6116
mov byte [esp + 0x43], 0xd
mov dword [esp + 0x94], edx
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3c8], ebx
mov edx, dword [esp + 0x3a4]
jmp 0x4f6083
mov eax, dword [esp + 0x32c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x134]
mov dword [ecx], eax
jmp 0x4f9f34
xor eax, eax
test al, al
jne 0x4fd295
mov dword [esp + 0x3c0], 0x1c
mov byte [esp + 0x11b], 0x12
mov eax, dword [esp + 0x94]
cmp dword [eax], 0
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
je 0x4f93b3
cmp dword [esp + 0x3c0], 0xc
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
je 0x4f62ca
jmp 0x4f9f3f
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
mov dword [ecx], eax
mov dword [esp + 0x3c8], 1
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
jmp 0x4f9f3f
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x4fd5d9
mov eax, 7
mov dword [edx], 0
mov dword [esp + 0x3c8], 1
cmp eax, 7
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
je 0x4f9f3f
jmp 0x4fa3de
cmp eax, 9
jne 0x4f9571
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x4f9f3f
mov eax, 3
movzx ecx, byte [esp + 0x293]
cmp ecx, 0x13
je 0x4fd2d9
mov edi, 0xa
cmp ecx, 0x30
je 0x4f974b
mov esi, 0x11
cmp ecx, 0x5d
jne 0x4f9675
mov esi, 3
mov byte [esp + 0x293], 0x30
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x218]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x394]
mov eax, dword [eax]
mov ecx, dword [esp + 0x230]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x450]
call fcn.004b44f0
mov ecx, dword [esp + 0x3a0]
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 0x4f9d83
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0x2f8], eax
not ecx
test ecx, ecx
mov eax, dword [esp + 0x374]
mov dword [esp + 0x370], eax
jne 0x4f4574
jmp 0x4f9d98
cmp esi, 0xd
jne 0x4f968a
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x4f4d8b
mov esi, 0xc
mov byte [esp + 0x293], 0x5d
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x218]
mov dword [esp], edi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x394]
mov eax, dword [eax]
mov ecx, dword [esp + 0x230]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], edi
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x450]
call fcn.004b44f0
mov ecx, dword [esp + 0x3a0]
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 0x4f9dc6
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov dword [esp + 0x2f8], eax
jne 0x4f41b3
jmp 0x4fa03c
cmp edi, 0xa
je 0x4f40ef
mov eax, edi
and eax, 1
inc eax
xor eax, edi
jne 0x4fab18
jmp 0x4f40ef
mov ecx, 3
sub ecx, edx
xor ecx, edx
setne cl
movzx ecx, cl
cmp edx, ecx
jne 0x4f4933
mov ecx, 0x10
mov eax, 7
mov edx, dword [esp + 0x80]
cmp dword [edx], 0
mov esi, dword [esp + 0x3c0]
mov edx, dword [esp + 0x380]
mov dword [esp + 0x3c8], edx
mov edx, esi
je 0x4fbca4
cmp ecx, 0x10
jne 0x4f9857
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x4f9857
mov eax, 0xf
mov ecx, dword [esp + 0x80]
mov dword [ecx], 0
mov dword [esp + 0x3c8], 1
mov dword [esp + 0x3c0], edx
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov edx, dword [esp + 0x3ac]
mov edi, dword [esp + 0x3a8]
jmp 0x4f75d6
mov esi, 0x15
mov edi, 0x10
mov byte [esp + 0x1ce], 0x35
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov ebx, edx
call fcn.0042d060
mov edx, dword [esp + 0x280]
mov ecx, dword [edx]
mov dword [esp + 0x1b4], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x1b8], edx
mov edx, ebx
mov ebx, dword [esp + 0x210]
mov ecx, dword [esp + 0x3c8]
jne 0x4f9c91
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x210], ebx
cmp edi, 0x10
jne 0x4f98e2
mov dword [esp + 0x3c0], edx
jmp 0x4fab09
mov bl, 0x24
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [esp], eax
mov esi, edx
call fcn.0059ab80
mov edx, esi
mov dword [esp + 0x384], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4fcfaf
mov byte [esp + 0x2e7], bl
movzx ecx, byte [esp + 0x1fb]
cmp ecx, 0x28
je 0x4f9a74
mov eax, 0x14
cmp ecx, 0x41
jne 0x4f9b1f
mov byte [esp + 0x1fb], 0x41
jmp 0x4f9a7c
cmp eax, 6
jne 0x4f9c42
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x4f9c42
mov edx, dword [esp + 0x3b8]
jmp 0x4fa096
mov byte [esp + 0x1fb], 0x28
mov ecx, dword [esp + 0x120]
movsd xmm0, qword [ecx]
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 ebx, dword [esp + 0x3c8]
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x268], edx
mov dword [esp + 0x264], edx
mov dword [esp + 0x2b8], edx
jmp 0x4fcee7
mov dword [esp + 0x2b8], edx
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], ecx
mov esi, dword [esp + 0x3a0]
mov edx, dword [esp + 0x3b8]
mov ebx, dword [esp + 0x318]
cmp eax, 0xe
je 0x4f9d42
mov dword [esp + 0x3b8], edx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4fb14f
mov dword [esp + 0x318], ebx
mov dword [esp + 0x3a0], esi
mov byte [esp + 0x1fb], 0x4f
mov ecx, dword [esp + 0x120]
movsd xmm0, qword [ecx]
mov edx, dword [esp + 0x2b8]
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 ebx, dword [esp + 0x3c8]
mov dword [esp + 0x268], edx
mov dword [esp + 0x264], edx
jmp 0x4fcee7
cmp eax, 0xd
je 0x4f3a41
xor eax, eax
test al, al
mov edx, dword [esp + 0x3c0]
je 0x4fcfaf
jmp 0x4f3a41
mov dword [esp + 0x318], ebx
lea eax, [esp + 0x3e4]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x3e4]
shl eax, 8
lea ecx, [esp + 0x3e8]
mov dword [esp + 0x1dc], ecx
or eax, dword [esp + 0x3e8]
mov dword [esi + 0xd0], eax
mov dword [esp + 0x3a0], esi
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
jmp 0x4f479e
cmp esi, 9
jne 0x4f9dd2
mov edi, edx
mov eax, 3
sub eax, esi
xor eax, esi
je 0x4f9dec
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
mov dword [esp + 0x3c0], edi
mov ecx, dword [esp + 0x214]
movzx eax, byte [esp + 0x8f]
cmp eax, 0x3f
je 0x4f8746
cmp eax, 0x77
jne 0x4f9d4e
mov dword [esp + 0x214], ecx
mov dword [esp + 0x210], ebx
mov eax, 0xa
mov byte [esp + 0x8f], 0x3f
mov esi, dword [esp + 0x98]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
je 0x4f876c
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jmp 0x4fda1f
mov dword [esp + 0x3b8], edx
jmp 0x4fb14f
mov esi, dword [esp + 0x98]
cmp dword [esi], 0
je 0x4f9e19
mov dword [esp + 0x214], ecx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x8f], 0x26
xor eax, eax
test al, al
je 0x4fd5d9
jmp 0x4f876c
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x370], eax
cmp esi, 3
je 0x4f9e06
imul esi, esi
and esi, 3
cmp esi, 2
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
mov esi, dword [esp + 0x2f4]
jne 0x4f7ede
jmp 0x4f41b3
mov dword [esp + 0x2f8], eax
jmp 0x4fa03c
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x210], ebx
mov dword [esp + 0x3c0], edx
jmp 0x4f6792
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x210], ebx
mov dword [esp + 0x3c0], edi
jmp 0x4f6792
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4f41b3
mov dword [esp + 0x214], ecx
mov dword [esp + 0x210], ebx
mov byte [esp + 0x8f], 0x26
jmp 0x4f876c
mov edx, dword [esp + 0x3b8]
shl edx, 6
mov esi, dword [esp + 0x35c]
mov eax, dword [esi + edx + 0x14]
test eax, eax
jne 0x4f9ebb
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4f9ec5
mov byte [esp + 0x5b], 0x33
lea esi, [esi + edx + 0x14]
jmp 0x4f9ecf
mov byte [esp + 0x5b], 0x33
jmp 0x4f5caa
mov byte [esp + 0x5b], 0x33
jmp 0x4f5caa
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
jmp 0x4f5caa
mov esi, 0xe
mov byte [esp + 0x1c7], 0x4c
mov eax, dword [esp + 0x2d4]
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 + 0x380]
mov dword [esp + 0x3c8], eax
je 0x4fb1f2
mov eax, dword [esp + 0x2d4]
mov dword [eax], 0
mov dword [esp + 0x3c8], 1
mov ecx, 0xb
mov edx, dword [esp + 0x448]
mov esi, dword [edx + 8]
add edx, 8
mov eax, dword [esp + 0x3b8]
shl eax, 6
mov edi, dword [esi + eax + 0x10]
test edi, edi
jne 0x4f9ff9
mov dword [esp + 0x318], esi
mov dword [esp + 0x240], edx
mov eax, 2
mov edx, edi
and edx, 1
xor edx, edi
mov dword [esp + 0x188], edi
not edx
test edx, edx
mov edx, dword [esp + 0x3c8]
mov dword [esp + 0x284], edx
je 0x4fa1a2
cmp eax, 2
jne 0x4f9fe6
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x4f9fe6
mov edx, dword [esp + 0x3b8]
mov eax, edx
shl eax, 6
mov ebx, dword [esp + 0x318]
mov eax, dword [ebx + eax + 0x18]
test eax, eax
jne 0x4fa021
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x4fa021
mov esi, dword [esp + 0x3a0]
jmp 0x4fa096
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
jmp 0x4f7d34
mov dword [esp + 0x188], edi
mov dword [esp + 0x318], esi
mov dword [esp + 0x240], edx
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x284], eax
jmp 0x4fa1a2
mov edi, 9
mov esi, 0x16
movzx eax, byte [esp + 0x86]
cmp eax, 0x5b
jne 0x4fb95a
cmp esi, 0xc
jne 0x4fa050
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x4f4574
mov eax, 0xe
mov byte [esp + 0x86], 0x68
mov edx, dword [esp + 0x3b8]
mov ecx, edx
shl ecx, 6
mov ebx, dword [esp + 0x318]
mov ecx, dword [ebx + ecx + 0x1c]
test ecx, ecx
jne 0x4fa196
mov esi, edx
mov edx, ecx
not edx
and edx, 1
add edx, ecx
mov edx, esi
mov esi, dword [esp + 0x3a0]
je 0x4f9b65
mov dword [esp + 0x318], ebx
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x3a0], esi
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov ecx, edx
shl ecx, 6
mov edx, dword [ebx + ecx]
mov edi, dword [ebx + ecx + 4]
mov ecx, dword [ebx + ecx + 0xc]
mov ebx, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov esi, 0xc
mov dword [esp], ebx
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
cmp esi, 0xc
je 0x4fb3a0
mov dword [esp + 0x36c], eax
imul esi, esi
and esi, 3
cmp esi, 3
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
jne 0x4f9f3f
jmp 0x4fa85d
mov esi, dword [esp + 0x3a0]
jmp 0x4f9b65
cmp ecx, 0xb
je 0x4fa297
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x4fa297
mov byte [esp + 0x12b], 0xe
mov eax, dword [esp + 0x1a4]
mov edx, dword [esp + 0x3b8]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x240]
mov ecx, dword [eax]
shl edx, 6
mov esi, dword [ecx + edx + 0x10]
mov esi, dword [esi]
mov eax, dword [ecx + edx]
mov dword [esp + 0x3c4], eax
mov ebx, dword [ecx + edx + 4]
mov ecx, dword [ecx + edx + 0xc]
mov eax, dword [esp + 0x388]
mov edx, dword [eax]
mov eax, dword [esp + 0x3a0]
mov edi, dword [eax]
mov dword [esp + 0x3bc], edi
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x3cc]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3bc]
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
jmp 0x4fb3a0
movzx eax, byte [esp + 0xc9]
cmp eax, 0x3a
mov ecx, dword [esp + 0x188]
je 0x4fa2de
cmp eax, 0x3c
je 0x4fa303
cmp eax, 0x5b
jne 0x4fa360
mov ecx, dword [ecx]
test ecx, ecx
je 0x4fa38a
mov byte [esp + 0xc9], 0x3c
mov eax, 9
cmp ecx, 3
je 0x4f4724
jmp 0x4fdbcd
mov ecx, dword [ecx]
test ecx, ecx
je 0x4fa394
mov byte [esp + 0xc9], 0x16
mov eax, 0xb
cmp ecx, 3
je 0x4fdbb0
jmp 0x4fdbcd
mov ecx, dword [ecx]
test ecx, ecx
je 0x4fa39e
mov byte [esp + 0xc9], 0x3a
mov eax, 4
cmp ecx, 3
mov edx, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x38c]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x3cc], ecx
mov esi, dword [esp + 0x390]
je 0x4fd28c
jmp 0x4fdbcd
mov eax, 0x11
mov ecx, dword [ecx]
test ecx, ecx
je 0x4fa6aa
mov byte [esp + 0xc9], 0x5b
mov esi, 0xa
cmp ecx, 3
je 0x4fdbc0
jmp 0x4f3b94
mov byte [esp + 0xc9], 0x3c
jmp 0x4fa3a6
mov byte [esp + 0xc9], 0x16
jmp 0x4fa3a6
mov byte [esp + 0xc9], 0x3a
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
mov ebx, 6
movzx eax, byte [esp + 0x9e]
cmp eax, 0x4f
jne 0x4fa509
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x370], eax
cmp ebx, 6
jne 0x4fbd54
mov byte [esp + 0x9e], 0x4f
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [esp + 0x3c8], eax
mov edx, dword [esp + 0x3b8]
shl edx, 6
mov eax, dword [esp + 0x318]
mov esi, dword [eax + edx]
mov edi, dword [eax + edx + 4]
mov edx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x3a0]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
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
jmp 0x4fa80b
mov dword [esp + 0x23c], 0x13
mov byte [esp + 0x9e], 0x55
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x370], edx
mov edx, dword [esp + 0x3b8]
shl edx, 6
mov eax, dword [esp + 0x318]
mov dword [esp + 0x340], esi
mov esi, dword [eax + edx]
mov edi, dword [eax + edx + 4]
mov edx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x3a0]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x3c0]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3b4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
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, dword [esp + 0x370]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x3c8]
mov ebx, dword [esp + 0x3bc]
mov esi, dword [esp + 0x3cc]
mov edi, dword [esp + 0x3c4]
mov dword [esp + 0x3c4], edi
mov dword [esp + 0x3cc], esi
mov dword [esp + 0x3bc], ebx
mov esi, dword [esp + 0x340]
mov dword [esp + 0x24c], eax
mov edi, dword [esp + 0x23c]
cmp edi, 7
jne 0x4fa69e
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3c0], edx
mov eax, ecx
mov dword [esp + 0x3c8], ecx
jne 0x4f40a2
jmp 0x4fa85d
mov dword [esp + 0x3c8], ecx
jmp 0x4fa85d
mov byte [esp + 0xc9], 0x5b
jmp 0x4f943f
mov byte [esp + 0x27e], 0x63
mov eax, dword [esp + 0x3dc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4fa6e7
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x1a4], ecx
jne 0x4fc136
jmp 0x4fbec2
mov dword [esp + 0x1a4], ecx
jmp 0x4fbec2
mov byte [esp + 0x12b], 0x3d
mov eax, dword [esp + 0x1a4]
mov edx, dword [esp + 0x3b8]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x240]
mov ecx, dword [eax]
shl edx, 6
mov esi, dword [ecx + edx + 0x10]
mov esi, dword [esi]
mov eax, dword [ecx + edx]
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x370], ebx
jmp 0x4fa773
mov byte [esp + 0xe3], 0x6a
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x240]
mov ecx, dword [eax]
mov edx, dword [esp + 0x3b8]
shl edx, 6
mov esi, dword [ecx + edx + 0x10]
mov esi, dword [esi]
mov eax, dword [ecx + edx]
mov dword [esp + 0x3c8], eax
mov ebx, dword [ecx + edx + 4]
mov ecx, dword [ecx + edx + 0xc]
mov eax, dword [esp + 0x388]
mov edx, dword [eax]
mov eax, dword [esp + 0x3a0]
mov edi, dword [eax]
mov dword [esp + 0x3c4], edi
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x3cc]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c4]
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 dword [esp + 0x36c], eax
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3c8], eax
mov dword [esp + 0x340], esi
mov edi, edx
mov ebx, 8
mov esi, dword [esp + 0x36c]
mov dword [esp], esi
call fcn.00411e90
mov dword [esp], esi
call fcn.004302d0
mov eax, 3
mov ecx, dword [esp + 0x3b8]
sub eax, ecx
xor eax, ecx
setne al
movzx esi, al
add esi, ecx
mov eax, dword [esp + 0x448]
cmp esi, dword [eax]
jb 0x4fad17
mov dword [esp + 0x2f4], eax
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4fad1e
mov ecx, dword [esp + 0x284]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jne 0x4fad77
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x444], 0
mov eax, dword [esp + 0x448]
lea ecx, [esp + 0x43c]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x444]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00627ff0
mov dword [esp + 0x378], eax
mov dword [esp + 0x338], 0
test eax, eax
jne 0x4faddd
mov ecx, dword [esp + 0x43c]
mov dword [esp + 0x440], ecx
mov eax, dword [esp + 0x2ac]
cmp dword [eax], 0
mov edx, dword [esp + 0x148]
jne 0x4faf2b
mov al, 0x11
movzx eax, al
cmp eax, 0x7d
mov edx, edi
mov edi, dword [esp + 0x3cc]
mov ebx, dword [esp + 0x3c4]
je 0x4faffc
mov dword [esp + 0x200], esi
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x338], 0
cmp eax, 0x7f
mov ecx, 7
mov eax, dword [esp + 0x340]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], edi
mov dword [esp + 0x3a8], ebx
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov edx, dword [esp + 0x284]
mov dword [esp + 0x258], edx
mov dword [esp + 0x370], eax
jne 0x4fd468
cmp ecx, 7
jne 0x4f4abf
mov eax, 3
sub eax, ecx
xor eax, ecx
je 0x4f4abf
mov ecx, dword [esp + 0xe8]
test ecx, ecx
mov dword [esp + 0x378], 0x700002bb
je 0x4fac1d
mov eax, 6
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov ecx, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x374]
mov dword [esp + 0x3a4], ecx
je 0x4fb45c
cmp eax, 6
je 0x4fab5c
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4fab5c
mov edi, 4
mov esi, 8
mov byte [esp + 0x1ce], 0x1a
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0042d060
mov edx, dword [esp + 0x280]
mov ecx, dword [edx]
mov dword [esp + 0x1b4], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
mov dword [esp + 0x1b8], edx
jne 0x4f50a0
cmp esi, 8
jne 0x4f4d07
mov eax, 3
sub eax, esi
xor eax, esi
je 0x4f4d07
mov eax, dword [esp + 0x3d4]
mov dword [esp], eax
call fcn.006275f0
mov eax, 0xb
movzx ecx, byte [esp + 0x333]
cmp ecx, 0x79
jne 0x4fab4f
cmp eax, 0xb
jne 0x4f9f3f
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f9f3f
mov byte [esp + 0x333], 0x79
jmp 0x4f5f15
mov byte [esp + 0x333], 8
jmp 0x4f5f15
mov eax, dword [esp + 0x374]
mov dword [esp + 0x370], eax
mov byte [esp + 0x27f], 0x5c
mov ecx, dword [esp + 0xe8]
lea eax, [ecx + 8]
mov dword [esp + 0xd4], eax
lea eax, [ecx + 4]
mov dword [esp + 0x2c4], eax
mov esi, dword [esp + 0x15c]
cmp esi, dword [ecx + 8]
jbe 0x4fadd4
mov eax, 4
mov ecx, esi
or ecx, 2
mov edx, esi
xor edx, 2
add edx, ecx
mov dword [esp + 0x250], esi
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x374], ecx
je 0x4fae23
cmp eax, 4
je 0x4fabe5
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x4fabe5
mov eax, dword [esp + 0x2c4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
jne 0x4fac5a
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
jmp 0x4fb44e
mov dword [esp + 0x378], ecx
cmp esi, 0x10
jne 0x4fae0e
mov eax, 3
sub eax, esi
xor eax, esi
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x370], eax
jne 0x4fb45c
jmp 0x4fae23
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x340]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3c0], edi
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
jmp 0x4fd539
mov dword [esp + 0x200], esi
mov eax, 0xb
mov dword [esp + 0x338], 0
mov edx, dword [esp + 0x340]
mov dword [esp + 0x3b4], edx
mov edx, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], edx
mov edx, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], edx
mov edx, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], edx
mov dword [esp + 0x258], ecx
mov edx, edi
jmp 0x4fbeab
mov dword [esp + 0x250], esi
jmp 0x4fae23
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov edx, edi
mov esi, dword [esp + 0x340]
jmp 0x4fb45c
mov eax, dword [esp + 0x374]
mov dword [esp + 0x370], eax
mov dword [esp + 0x3a4], eax
movzx ecx, byte [esp + 0x27f]
cmp ecx, 0x22
je 0x4fae9a
mov edx, 2
cmp ecx, 0x3e
jne 0x4faed9
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
cmp edx, 2
je 0x4fae5b
xor eax, eax
test al, al
je 0x4f4556
mov byte [esp + 0x27f], 0x5c
mov eax, dword [esp + 0x444]
mov ecx, dword [esp + 0x2c4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x250]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007c51d0
mov dword [esp + 0x338], 0
jmp 0x4fb3f0
mov byte [esp + 0x27f], 0x22
mov eax, dword [esp + 0x444]
mov ecx, dword [esp + 0x2c4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x250]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007c51d0
mov dword [esp + 0x338], 0
jmp 0x4f7c63
mov esi, 0xc
mov byte [esp + 0x27f], 0x3e
mov eax, dword [esp + 0x444]
mov ecx, dword [esp + 0x2c4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x250]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.007c51d0
mov dword [esp + 0x338], 0
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4fd4e7
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x444]
mov dword [esp + 8], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00593cf0
mov ecx, eax
mov dword [esp + 0x338], 0
test ecx, ecx
mov edx, dword [esp + 0x3cc]
mov ebx, dword [esp + 0x3c4]
jne 0x4fafb3
mov dword [esp + 0x3c0], edi
mov eax, dword [esp + 0x340]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], edx
mov dword [esp + 0x3a8], ebx
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
jmp 0x4fb3f0
mov esi, 0x10
mov eax, dword [esp + 0x340]
mov dword [esp + 0x3b4], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], edx
mov dword [esp + 0x3a8], ebx
mov dword [esp + 0x3c0], edi
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
jmp 0x4faca6
mov dword [esp + 0x200], esi
mov dword [esp + 0x15c], ecx
mov ebx, 0x15
mov dword [esp + 0x378], 0x700002bb
mov dword [esp + 0x338], 0
mov ecx, dword [esp + 0xe8]
test ecx, ecx
mov edi, dword [esp + 0x3bc]
jne 0x4fb0ae
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov esi, dword [esp + 0x340]
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], edi
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3c0], edx
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x334]
jne 0x4fb45c
jmp 0x4f69be
mov eax, dword [esp + 0x340]
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b0], edi
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3c0], edx
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x334]
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 0x258], eax
jmp 0x4f69be
mov eax, 6
mov byte [esp + 0x86], 0x5b
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov ebx, dword [esp + 0x318]
cmp dword [ebx + ecx + 0x1c], 0
je 0x4fb3e4
xor ecx, ecx
test cl, cl
mov esi, dword [esp + 0x3a0]
jne 0x4f9a50
movzx eax, byte [esp + 0x8e]
cmp eax, 0x47
jne 0x4fb1a1
mov dword [esp + 0x318], ebx
mov dword [esp + 0x3a0], esi
mov esi, 0xe
mov byte [esp + 0x8e], 0x47
call fcn.00449410
mov ecx, dword [esp + 0x448]
test eax, eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x19c], eax
lea eax, [ecx + 8]
mov dword [esp + 0x198], eax
jne 0x4f6865
mov dword [esp + 0x318], ebx
mov dword [esp + 0x3a0], esi
mov esi, 0x1a
mov byte [esp + 0x8e], 0x6a
call fcn.00449410
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
mov edx, dword [esp + 0x448]
cmp eax, ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x19c], eax
lea eax, [edx + 8]
mov dword [esp + 0x198], eax
jne 0x4f6a4b
cmp esi, 0xe
jne 0x4fb206
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x4f9f3f
mov edx, dword [esp + 0x3b8]
mov eax, edx
shl eax, 6
mov ecx, dword [esp + 0x19c]
mov eax, dword [ecx + eax + 0x18]
cmp dword [eax], 3
je 0x4fb228
mov al, 1
test al, al
jne 0x4fb235
mov eax, dword [esp + 0x26c]
mov dword [eax], 3
mov eax, dword [esp + 0x3dc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4fb256
mov eax, dword [eax + edx*4]
mov dword [esp + 0x3b8], edx
mov dword [esp + 0x270], eax
jmp 0x4fb27c
mov dword [esp + 0x3b8], edx
mov eax, 0x10
mov dword [esp + 0x270], 0
cmp eax, 0x10
je 0x4fb27c
mov dword [esp + 0x36c], eax
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
jmp 0x4fa85d
mov esi, dword [esp + 0x3a0]
jmp 0x4f9a50
mov ecx, dword [esp + 0x3a0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00412560
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x338]
mov dword [esp + 0x378], eax
mov eax, dword [esp + 0x374]
mov dword [esp + 0x3a4], eax
mov ebx, 0x18
mov ecx, dword [esp + 0x3a4]
test ecx, ecx
jne 0x4fb4d4
mov byte [esp + 0x28b], 0x56
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov dword [esp + 0x3b4], esi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov eax, dword [esp + 0x378]
mov dword [esp + 0x20c], eax
mov dword [esp + 0x208], ecx
mov dword [esp + 0x384], eax
jne 0x4fcfaf
jmp 0x4fb4f8
mov byte [esp + 0x28b], 0x56
mov eax, dword [esp + 0x378]
mov dword [esp + 0x20c], eax
mov dword [esp + 0x208], ecx
mov dword [esp + 0x384], eax
cmp ebx, 0x10
mov ecx, dword [esp + 0x3bc]
je 0x4fb5a5
mov eax, ebx
and eax, 1
inc eax
xor eax, ebx
je 0x4fb5a5
mov ebx, ecx
mov edi, esi
mov esi, edx
mov eax, 0xf
movzx ecx, byte [esp + 0x28b]
cmp ecx, 0x7d
jne 0x4fb5e0
mov dword [esp + 0x3b4], edi
mov dword [esp + 0x3b0], ebx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], ecx
mov edx, dword [esp + 0x3c8]
mov dword [esp + 0x3c0], esi
cmp eax, 0xf
jne 0x4fb5d4
mov dword [esp + 0x370], edx
mov esi, 1
mov byte [esp + 0x28b], 0x56
mov eax, dword [esp + 0x208]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x384], eax
jmp 0x4fcf82
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], ecx
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
jmp 0x4fcfaf
mov dword [esp + 0x3c8], edx
jmp 0x4f3a41
mov byte [esp + 0x28b], 0x7d
mov eax, dword [esp + 0x208]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x3b4], edi
mov dword [esp + 0x3b0], ebx
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x384], eax
mov edx, esi
jmp 0x4fcfaf
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
je 0x4fd471
mov eax, 3
mov dword [esp + 0x378], 0x700002bb
cmp dword [esp + 0xe8], 0
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
jne 0x4fab6a
cmp eax, 2
je 0x4f78a5
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4f78a5
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x374], ecx
mov edx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3a4], ecx
jmp 0x4fb45c
mov byte [esp + 0x2ca], 6
mov byte [esp + 0x22f], 0x7e
cmp edx, 2
jne 0x4fb7f0
mov eax, 0xd
mov ecx, 3
sub ecx, edx
xor ecx, edx
je 0x4fb7f0
cmp eax, 0xd
mov dword [esp + 0x3c8], ebx
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3a4]
jne 0x4fc3ba
jmp 0x4fdae1
mov byte [esp + 0x22f], 0x7e
mov eax, dword [esp + 0x3e8]
mov esi, dword [esp + 0x3dc]
mov dword [esp + 0x298], esi
cmp eax, 0x22
sbb dl, dl
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne ah
test esi, esi
sete al
mov ecx, esi
and ecx, 1
xor ecx, esi
cmp ecx, 0xffffffff
setne cl
test dl, ah
jne 0x4fb7f0
and al, cl
je 0x4fb7d9
jmp 0x4fb7f0
mov byte [esp + 0x2bf], 0x31
mov edx, dword [esp + 0x3dc]
test edx, edx
jne 0x4fb7d2
mov eax, 0xe
mov ecx, 3
sub ecx, edx
xor ecx, edx
mov dword [esp + 0x298], edx
jne 0x4fbcf4
jmp 0x4fb7d9
mov dword [esp + 0x298], edx
mov eax, dword [esp + 0x298]
mov dword [esp], eax
mov dword [esp + 4], 0x34
call fcn.0064bf00
mov eax, 0xb
mov byte [esp + 0x32b], 4
mov byte [esp + 0x306], 0x32
lea ecx, [esp + 0x458]
mov dword [esp + 0x2fc], ecx
mov edi, dword [esp + 0x458]
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
xor esi, esi
cmp edi, ecx
lea edx, [esp + 0x454]
mov dword [esp + 0x3c8], ebx
je 0x4f3fe4
cmp eax, 0xb
jne 0x4fb851
mov dword [esp + 0x2b0], edi
jmp 0x4fb873
mov dword [esp + 0x30c], edi
mov dword [esp + 0x324], edx
mov dword [esp + 0x310], esi
mov byte [esp + 0x2b7], 0x28
jmp 0x4fc55c
mov dword [esp + 0x324], edx
mov dword [esp + 0x310], esi
mov ecx, 9
mov eax, 0xd
mov edx, dword [edx]
mov edi, esi
lea esi, [edi + edi*2]
mov edx, dword [edx + esi*8 + 0x14]
mov dword [esp + 0x14c], edx
test edx, edx
mov edx, dword [esp + 0x2b0]
mov dword [esp + 0x30c], edx
mov dword [esp + 0x1d8], edi
je 0x4fb8e6
cmp ecx, 9
jne 0x4f9f3f
movzx eax, byte [esp + 0x306]
cmp eax, 0x32
je 0x4fbaf3
cmp eax, 0x67
jne 0x4fbafd
mov byte [esp + 0x306], 0x32
jmp 0x4fbb05
cmp eax, 5
jne 0x4fbb24
movzx eax, byte [esp + 0x307]
cmp eax, 0xd
je 0x4f4e7d
cmp eax, 0x6c
jne 0x4fb968
mov edi, 0xe
mov byte [esp + 0x307], 0xd
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x444], 0
mov ecx, dword [esp + 0x314]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x384], ecx
jne 0x4fcfaf
cmp edi, 9
je 0x4fb115
jmp 0x4f4ec8
mov edi, 9
mov esi, 0xc
mov byte [esp + 0x307], 0x53
mov eax, dword [esp + 0x444]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x444], 0
mov eax, dword [esp + 0x314]
test eax, eax
mov dword [esp + 0x384], eax
jne 0x4fc970
cmp esi, 2
je 0x4fb9bd
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x4f4ec8
mov eax, 0xc
mov byte [esp + 0xcb], 0x5a
mov ecx, dword [esp + 0x194]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x4fbd32
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x13c], edx
mov ebx, dword [esp + 0x3c8]
je 0x4fda3b
movzx eax, byte [esp + 0x2cb]
cmp eax, 0x4b
je 0x4f85b7
mov byte [esp + 0x2cb], 0x4b
call fcn.00449410
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x3dc]
mov eax, dword [eax + 0x10]
mov ecx, 3
sub ecx, eax
xor esi, esi
xor ecx, eax
mov edx, dword [esp + 0x3b8]
lea ecx, [eax + edx*4]
cmove esi, ecx
test eax, eax
cmovne esi, ecx
mov eax, dword [esp + 0x448]
mov ecx, dword [eax + 8]
mov dword [esp + 0x35c], ecx
mov eax, edx
shl eax, 6
mov ecx, dword [ecx + eax + 0x10]
test ecx, ecx
jne 0x4f8652
mov dword [esp + 0x32c], esi
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
movzx eax, byte [esp + 0x1cf]
cmp eax, 0x2a
je 0x4f8a5e
mov eax, 0xd
mov byte [esp + 0x1cf], 0x2a
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov edx, dword [esp + 0x35c]
mov edx, dword [edx + ecx + 0x18]
test edx, edx
jne 0x4fbbc7
mov esi, 6
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x1c8], edx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x380], ecx
mov ecx, dword [esp + 0x320]
mov edi, dword [esp + 0x334]
jne 0x4f764f
jmp 0x4fbbea
mov byte [esp + 0x306], 0x67
jmp 0x4fbb05
mov byte [esp + 0x306], 8
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x2b0], eax
movzx eax, byte [esp + 0x32b]
cmp eax, 0x70
je 0x4fbb80
mov esi, 0xb
cmp eax, 0x78
je 0x4f3f94
mov byte [esp + 0x32b], 0x78
mov eax, 3
mov ecx, dword [esp + 0x1d8]
sub eax, ecx
xor eax, ecx
setne al
movzx esi, al
add esi, ecx
mov ecx, dword [esp + 0x2b0]
cmp esi, ecx
jae 0x4fbd18
mov eax, esi
or eax, 2
mov edx, ecx
mov ecx, esi
xor ecx, 2
add ecx, eax
mov edi, edx
jmp 0x4fbbb5
mov byte [esp + 0x32b], 0x70
mov ecx, dword [esp + 0x1d8]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx esi, al
add esi, ecx
mov ecx, dword [esp + 0x2b0]
cmp esi, ecx
jb 0x4fbd26
xor eax, eax
test al, al
mov edi, ecx
mov edx, dword [esp + 0x324]
je 0x4f3fe4
jmp 0x4fb873
mov dword [esp + 0x1c8], edx
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x380], ecx
mov ecx, dword [esp + 0x320]
mov edi, dword [esp + 0x334]
mov edx, ecx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
mov ecx, edx
mov dword [esp + 0x320], ecx
mov dword [esp + 0x334], edi
je 0x4f6c58
mov eax, 0xc
movzx ecx, byte [esp + 0x1c6]
cmp ecx, 0x37
je 0x4fd556
mov eax, 1
cmp ecx, 0x4f
jne 0x4f8ab2
mov edx, dword [esp + 0x3b8]
mov esi, dword [esp + 0x35c]
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x4fbcc2
mov byte [esp + 0x1c6], 0x4f
mov eax, edx
mov dword [esp + 0x3b8], edx
shl eax, 6
mov eax, dword [esi + eax + 0x1c]
mov dword [esp + 0x35c], esi
mov dword [esp + 0x140], eax
test eax, eax
je 0x4fd5d9
mov eax, 0xc
xor ecx, ecx
test cl, cl
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jne 0x4f9f3f
cmp eax, 7
mov eax, dword [esp + 0x380]
mov ebx, eax
mov dword [esp + 0x3c8], eax
jne 0x4f8aea
jmp 0x4f9f3f
mov dword [esp + 0x35c], esi
mov dword [esp + 0x3b8], edx
mov eax, 0x17
mov byte [esp + 0xbf], 0x53
mov ecx, dword [esp + 0x2dc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xc0]
mov dword [edx], ecx
mov ebx, 1
cmp eax, 0xe
je 0x4fb7f0
imul eax, eax
and eax, 3
cmp eax, 3
mov dword [esp + 0x3c8], ebx
jne 0x4f9f3f
jmp 0x4fb7f0
mov edi, ecx
mov edx, dword [esp + 0x324]
jmp 0x4f3fe4
mov edx, dword [esp + 0x324]
jmp 0x4fb873
mov dword [esp + 0x13c], edx
mov ebx, dword [esp + 0x3c8]
jmp 0x4fda3b
mov eax, dword [esp + 0x164]
mov dword [esp], eax
call fcn.0062ddc0
mov eax, dword [esp + 0x1e8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esp + 0x293], 1
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x218]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [edi]
mov dword [esp + 0x394], edi
mov ecx, dword [esp + 0x230]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x388]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x308]
mov dword [esp + 4], eax
mov dword [esp], ecx
lea ecx, [esp + 0x450]
call fcn.004b44f0
mov ecx, dword [esp + 0x3a0]
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 0x4fbe1f
mov edx, eax
or edx, 2
mov dword [esp + 0x2f8], eax
mov ecx, eax
xor ecx, 2
add ecx, edx
jne 0x4f4574
jmp 0x4f41b3
mov dword [esp + 0x2f8], eax
jmp 0x4f41b3
cmp eax, 2
jne 0x4fbe40
cmp eax, 4
mov dword [esp + 0x3c0], edx
mov ebx, dword [esp + 0x3c8]
jne 0x4fb3f0
mov eax, 1
mov cl, byte [esp + 0xe3]
movzx ecx, cl
cmp ecx, 0xb
je 0x4fbef3
mov dword [esp + 0x370], ebx
cmp ecx, 0x6a
je 0x4fa738
mov byte [esp + 0xe3], 0xb
jmp 0x4fa740
mov dword [esp + 0x3c8], ebx
mov edx, dword [esp + 0x3a4]
mov dword [esp + 0x370], edx
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x4fc1c6
mov byte [esp + 0xe3], 0x43
mov eax, dword [esp + 0x240]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov edx, dword [eax + ecx + 0x10]
mov esi, dword [eax + ecx]
mov dword [esp + 0x3cc], esi
mov ebx, dword [eax + ecx + 4]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax]
mov edx, dword [edx]
mov eax, dword [esp + 0x388]
mov esi, dword [eax]
mov eax, dword [esp + 0x3a0]
mov edi, dword [eax]
mov dword [esp + 0x3c4], edi
mov eax, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov esi, 0xd
mov dword [esp + 0x10], ebx
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c4]
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 dword [esp + 0x36c], eax
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
mov ecx, dword [esp + 0x320]
mov edi, dword [esp + 0x334]
cmp esi, 0xd
mov dword [esp + 0x320], ecx
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x3c0]
mov dword [esp + 0x334], edi
je 0x4fa85d
jmp 0x4f6c58
cmp ecx, 6
je 0x4fc158
xor eax, eax
test al, al
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov ebx, dword [esp + 0x3c8]
jne 0x4f62ca
mov ecx, 0xc
movzx eax, byte [esp + 0x12b]
cmp eax, 0x3d
jne 0x4fa6f3
mov dword [esp + 0x3c8], ebx
jmp 0x4fa1a2
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
jmp 0x4f62ca
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
mov edx, dword [esp + 0x370]
movzx eax, byte [esp + 0x1e3]
mov edi, edx
cmp eax, 3
je 0x4f5fb4
cmp eax, 0x3a
jne 0x4fc2ee
mov ecx, dword [esp + 0x2ec]
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x3c0]
mov dword [edx + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x254]
mov dword [ecx], eax
mov eax, dword [esp + 0x21c]
mov eax, dword [eax]
mov dword [esp + 0x2e8], eax
mov edx, dword [esp + 0x3a4]
mov edi, esi
mov esi, edx
mov eax, 0x15
movzx edx, byte [esp + 0x2b7]
cmp edx, 0xe
je 0x4fc4fb
mov ecx, 0x14
cmp edx, 0x38
mov eax, 0x12
mov dword [esp + 0x3b4], edi
mov edx, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], edx
mov edx, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], edx
mov edx, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], edx
mov dword [esp + 0x3a4], esi
mov edx, dword [esp + 0x394]
jne 0x4fc446
cmp eax, 0xe
jne 0x4fc54d
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4fc54d
mov dword [esp + 0x394], edx
jmp 0x4f450c
cmp ecx, 5
je 0x4fc5b6
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x4fc5b6
mov dword [esp + 0x394], edx
mov eax, 0x19
mov byte [esp + 0x2b7], 0xe
mov ecx, dword [esp + 0x2ec]
mov ecx, dword [ecx + 8]
mov esi, dword [esp + 0x3c0]
mov dword [esi + 8], ecx
mov dword [esi + 0x10], 0
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x2e8]
mov dword [ecx], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x238], ecx
mov edx, dword [esp + 0x278]
mov dword [edx], ecx
mov ecx, dword [esp + 0x168]
mov dword [ecx], esi
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 0x234], ecx
cmp eax, 0xf
jne 0x4f616f
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x4f616f
mov byte [esp + 0x7f], 0x44
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd8]
mov dword [ecx], eax
jmp 0x4f9f34
mov dword [esp + 0x3b4], edi
mov ecx, dword [esp + 0x3bc]
mov dword [esp + 0x3b0], ecx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x3ac], ecx
mov ecx, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], ecx
mov dword [esp + 0x3a4], esi
mov esi, dword [esp + 0x310]
mov edx, dword [esp + 0x324]
mov edi, dword [esp + 0x30c]
jmp 0x4fb843
mov dword [esp + 0x394], edx
mov byte [esp + 0x2b7], 0x38
mov eax, dword [esp + 0x2ec]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x3c0]
mov dword [edx + 8], eax
mov dword [edx + 0x10], 0
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x2e8]
mov dword [eax], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x238], eax
mov ecx, dword [esp + 0x278]
mov dword [ecx], eax
mov eax, dword [esp + 0x168]
mov dword [eax], edx
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x234], eax
jmp 0x4f616f
mov dword [esp + 0x394], edx
mov byte [esp + 0xef], 0x3c
mov ecx, dword [esp + 0x2c0]
cmp ecx, 0x3e
jne 0x4f5302
mov edi, 4
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov esi, dword [esp + 0x390]
jne 0x4fd8a4
jmp 0x4f5302
mov byte [esp + 0x227], 0x25
mov ecx, dword [esp + 0x358]
lea eax, [ecx + 8]
mov dword [esp + 0x1ec], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x274], ecx
mov esi, dword [esp + 0x360]
imul eax, esi, 0x1c
lea edx, [ecx + eax]
mov dword [esp + 0x1d4], edx
mov ecx, dword [ecx + eax + 4]
mov dword [esp + 0x2c0], ecx
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
cmp ecx, eax
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x38c], ecx
mov eax, dword [esp + 0x354]
mov dword [esp + 0x39c], eax
mov edx, dword [esp + 0x34c]
mov dword [esp + 0x398], edx
mov dword [esp + 0x37c], esi
mov esi, dword [esp + 0x348]
mov dword [esp + 0x390], esi
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3bc], eax
mov dword [esp + 0x3cc], edx
je 0x4f516f
jmp 0x4fc8c3
mov byte [esp + 0x227], 0x46
mov ecx, dword [esp + 0x358]
lea eax, [ecx + 8]
mov dword [esp + 0x1ec], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x274], ecx
mov esi, dword [esp + 0x360]
imul eax, esi, 0x1c
lea edx, [ecx + eax]
mov dword [esp + 0x1d4], edx
mov edx, dword [ecx + eax + 4]
mov dword [esp + 0x2c0], edx
mov eax, edx
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edx, eax
jmp 0x4fc6fc
movzx ecx, byte [esp + 0x227]
cmp ecx, 7
je 0x4f50bd
mov eax, 1
cmp ecx, 0x25
je 0x4fc933
cmp ecx, 0x46
je 0x4fc75b
mov dword [esp + 0x3a4], 0xb
mov byte [esp + 0x227], 7
mov eax, dword [esp + 0x358]
mov edi, dword [eax + 8]
mov dword [esp + 0x274], edi
imul ecx, dword [esp + 0x360], 0x1c
mov ebx, dword [edi + ecx + 4]
mov dword [esp + 0x2c0], ebx
mov edx, ebx
or edx, 2
mov esi, ebx
xor esi, 2
add esi, edx
lea edx, [eax + 8]
mov dword [esp + 0x1ec], edx
lea ecx, [edi + ecx]
mov dword [esp + 0x1d4], ecx
setne cl
movzx ecx, cl
cmp ebx, ecx
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x3c4], ecx
mov eax, dword [esp + 0x354]
mov dword [esp + 0x3bc], eax
mov edx, dword [esp + 0x34c]
mov dword [esp + 0x3cc], edx
mov esi, dword [esp + 0x360]
mov dword [esp + 0x37c], esi
mov esi, dword [esp + 0x348]
mov edi, esi
mov dword [esp + 0x38c], ecx
mov dword [esp + 0x39c], eax
mov dword [esp + 0x398], edx
mov dword [esp + 0x390], esi
jne 0x4fc8c3
cmp dword [esp + 0x3a4], 3
je 0x4fc94b
xor eax, eax
test al, al
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
je 0x4f516f
jmp 0x4fc959
mov eax, dword [esp + 0x1d4]
mov edx, dword [eax]
cmp edx, 3
je 0x4fc9b8
mov ecx, 0x14
mov eax, edx
and eax, 1
inc eax
xor eax, edx
je 0x4fc9b8
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
jmp 0x4f6a8c
cmp eax, 1
je 0x4fc6a9
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4fc6a9
mov eax, dword [esp + 0x370]
mov dword [esp + 0x3a4], eax
movzx eax, byte [esp + 0x1e2]
cmp eax, 6
je 0x4fc985
mov edi, 0xe
cmp eax, 0x45
jne 0x4fc98f
cmp edi, 9
jne 0x4fcaae
mov edx, dword [esp + 0x3c0]
jmp 0x4fcfaf
mov byte [esp + 0x1e2], 0x76
jmp 0x4fc997
mov byte [esp + 0x1e2], 6
mov eax, dword [esp + 0x3a0]
mov dword [eax + 0x1c0], 1
mov dword [esp + 0x338], 0
jmp 0x4fb3f0
mov edi, esi
mov dword [esp + 0x16c], edx
mov eax, 0xd
movzx ecx, byte [esp + 0xc8]
cmp ecx, 0x63
jne 0x4fcae5
mov ebx, 0x18
mov byte [esp + 0xc8], 0x63
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x388]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x1d4]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x308]
mov dword [esp], eax
call fcn.004dd150
mov dword [esp + 0x378], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov esi, edi
mov dword [esp + 0x390], esi
jne 0x4fb45c
cmp ebx, 8
jne 0x4fcb01
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3a4], eax
mov edx, dword [esp + 0x3c0]
jne 0x4fb45c
jmp 0x4f62ca
mov eax, 0x14
mov byte [esp + 0x1e2], 0x45
mov ecx, dword [esp + 0x3a0]
mov dword [ecx + 0x1c0], 1
mov dword [esp + 0x338], 0
cmp eax, 6
je 0x4f940d
jmp 0x4fb3f0
mov ecx, dword [esp + 0x370]
mov dword [esp + 0x3a4], ecx
mov edx, dword [esp + 0x3c0]
mov ecx, edi
jmp 0x4fd7ca
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3a4], eax
jmp 0x4f62ca
mov byte [esp + 0xef], 0x2d
mov eax, dword [esp + 0x2c0]
cmp eax, 0x3e
je 0x4f5247
xor eax, eax
test al, al
je 0x4f5302
jmp 0x4f5247
mov byte [esp + 0x187], 0x37
mov ecx, dword [esp + 0x228]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov esi, dword [esp + 0x390]
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x3c4], eax
jne 0x4f62ca
jmp 0x4fccef
mov eax, 0xe
mov dl, byte [esp + 0x187]
movzx ecx, dl
cmp ecx, 0xd
je 0x4fcc49
cmp ecx, 0x37
jne 0x4fcb3b
mov ecx, 5
mov byte [esp + 0x187], 0xd
mov edx, dword [esp + 0x228]
mov eax, edx
and eax, 1
inc eax
xor eax, edx
sete al
movzx eax, al
cmp edx, eax
mov edi, dword [esp + 0x390]
mov ebx, edi
mov edx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], edx
mov esi, dword [esp + 0x398]
mov dword [esp + 0x3cc], esi
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x3c4], eax
mov dword [esp + 0x3b4], edi
mov dword [esp + 0x3b0], edx
mov dword [esp + 0x3ac], esi
mov esi, ebx
mov dword [esp + 0x3a8], eax
jne 0x4f62ca
cmp ecx, 5
je 0x4fccef
xor eax, eax
test al, al
je 0x4f92e2
jmp 0x4fccef
cmp eax, 0xe
jne 0x4fcd19
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x4fcd19
mov eax, 4
mov byte [esp + 0x187], 0x26
cmp dword [esp + 0x228], 0
mov edi, dword [esp + 0x390]
mov ebx, edi
mov edx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], edx
mov esi, dword [esp + 0x398]
mov dword [esp + 0x3cc], esi
mov ecx, dword [esp + 0x2cc]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3b4], edi
mov dword [esp + 0x3b0], edx
mov dword [esp + 0x3ac], esi
mov esi, ebx
mov dword [esp + 0x3a8], ecx
jne 0x4f62ca
cmp eax, 4
jne 0x4fcd06
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
je 0x4fc7b6
mov eax, dword [esp + 0x254]
mov eax, dword [eax]
mov ecx, dword [esp + 0x278]
mov dword [ecx], eax
jmp 0x4f6299
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
jmp 0x4fc7b6
mov byte [esp + 0x187], dl
mov byte [esp + 0x6a], 0x13
mov byte [esp + 0x163], 0x62
mov eax, dword [esp + 0x308]
mov ecx, dword [eax]
test ecx, ecx
je 0x4fcd73
mov esi, 0x16
mov eax, ecx
mov dword [esp + 0x2f0], ecx
imul eax, eax
and eax, 3
cmp eax, 3
je 0x4fc959
cmp esi, 0xc
mov eax, dword [esp + 0x3a4]
mov dword [esp + 0x370], eax
je 0x4f4d8b
jmp 0x4f7d34
mov dword [esp + 0x2f0], ecx
jmp 0x4fc959
mov dword [esp + 0x3cc], ecx
mov eax, 9
movzx ecx, byte [esp + 0xc7]
cmp ecx, 0x3d
jne 0x4fce6a
mov esi, 9
mov byte [esp + 0xc7], 0x10
call fcn.0042b980
mov ecx, eax
mov dword [esp + 0xfc], ecx
mov dword [ecx + 0x34], edi
mov eax, dword [esp + 0x3a0]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov eax, dword [esp + 0x388]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov eax, dword [esp + 0x158]
movsd xmm0, qword [eax]
movsd qword [ecx + 0x10], xmm0
mov dword [esp + 0x3c4], edi
shl edi, 6
mov ebx, dword [esp + 0x300]
movsd xmm0, qword [ebx + edi + 8]
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [ebx + edi + 0x10]
movsd qword [ecx + 0x20], xmm0
movsd xmm0, qword [ebx + edi + 0x18]
movsd qword [ecx + 0x28], xmm0
mov eax, dword [esp + 0xa4]
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 edx, dword [ebx + edi + 0x28]
test edx, edx
je 0x4fcead
mov ebx, dword [esp + 0x3a0]
mov edx, dword [esp + 0x1c8]
mov esi, dword [esp + 0x32c]
mov ecx, dword [esp + 0x3c8]
cmp eax, 4
jne 0x4f6b3e
cmp esi, 9
jne 0x4f3a41
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x4f6c1b
jmp 0x4f3a41
mov ecx, 1
mov al, byte [esp + 0x2a7]
movzx eax, al
cmp eax, 0x18
je 0x4fdbf6
cmp eax, 6
jne 0x4fbd45
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x4fbd45
mov ebx, dword [esp + 0x370]
jmp 0x4f712c
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
mov ebx, dword [esp + 0x370]
mov dword [esp + 0x3c8], ebx
mov edx, dword [esp + 0x3c0]
jne 0x4f700d
mov al, byte [esp + 0x36b]
movzx ecx, al
cmp ecx, 0x2f
je 0x4fd0ab
mov eax, 0x13
cmp ecx, 0x41
je 0x4fd0fb
mov eax, 4
cmp ecx, 0x54
jne 0x4fd2d2
mov eax, 7
mov byte [esp + 0x36b], 0x41
mov byte [esp + 0x2bf], 0x36
mov byte [esp + 0x2ca], 0x6f
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0x1d0], ecx
cmp ecx, 2
ja 0x4fd78b
xor ecx, ecx
test cl, cl
mov ebx, dword [esp + 0x3c8]
mov dword [esp + 0x3c0], edx
mov ecx, dword [esp + 0x384]
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x38c]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x390]
je 0x4fdaaa
jmp 0x4fd7ca
mov byte [esp + 0x36b], 0x54
mov byte [esp + 0x2bf], 0x36
mov byte [esp + 0x2ca], 0x6f
mov eax, dword [esp + 0x3e4]
mov dword [esp + 0x1d0], eax
cmp eax, 2
mov ebx, dword [esp + 0x3c8]
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x384]
mov dword [esp + 0x1e8], eax
jbe 0x4fdaaa
jmp 0x4fd98d
mov dword [esp + 0x3c0], edx
mov ebx, dword [esp + 0x3c8]
mov esi, dword [esp + 0x32c]
cmp eax, 8
je 0x4fd18d
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4fd18d
mov dword [esp + 0x32c], esi
mov eax, 0xd
mov byte [esp + 0x36b], 0x2f
mov byte [esp + 0x2bf], 0x36
mov byte [esp + 0x2ca], 0x6f
mov edx, dword [esp + 0x3e4]
cmp edx, 2
ja 0x4fd6a7
mov ecx, edx
mov dword [esp + 0x1d0], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, dword [esp + 0x384]
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
jne 0x4fdaaa
jmp 0x4fd6ca
mov eax, 1
mov cl, byte [esp + 0xab]
movzx ecx, cl
cmp ecx, 0x34
jne 0x4fd363
mov dword [esp + 0x32c], esi
mov esi, 0x12
mov byte [esp + 0xab], 7
mov eax, dword [esp + 0xf4]
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 dword [esp + 0x3c8], ebx
jne 0x4fd666
cmp esi, 0xb
je 0x4fd1f8
xor eax, eax
test al, al
mov dword [esp + 0x3c8], ebx
je 0x4fd3af
mov eax, 0x11
mov cl, byte [esp + 0x11b]
movzx ecx, cl
cmp ecx, 0x12
jne 0x4fd24d
mov eax, 0xc
mov edx, dword [esp + 0x94]
cmp dword [edx], 0
je 0x4fd712
mov byte [esp + 0x11b], 8
xor ecx, ecx
test cl, cl
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
je 0x4f9f3f
jmp 0x4fd72f
mov edx, dword [esp + 0x3c0]
mov ecx, dword [esp + 0x38c]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x3cc], ecx
mov esi, dword [esp + 0x390]
mov dword [esp + 0x3c8], ebx
cmp eax, 4
jne 0x4f92f9
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
jmp 0x4fdbc0
mov dword [esp + 0x3c0], edx
mov edi, dword [esp + 0x394]
cmp eax, 3
jne 0x4fd2f6
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x4fbd63
mov dword [esp + 0x394], edi
mov eax, 4
mov byte [esp + 0x36b], 0x17
mov byte [esp + 0x2bf], 0x36
mov byte [esp + 0x2ca], 0x6f
mov ecx, dword [esp + 0x3e4]
mov dword [esp + 0x1d0], ecx
cmp ecx, 2
mov ecx, dword [esp + 0x384]
mov dword [esp + 0x1e8], ecx
ja 0x4fd98d
cmp eax, 4
je 0x4fdaa3
imul eax, eax
and eax, 3
cmp eax, 2
mov ebx, dword [esp + 0x3c8]
jne 0x4fcee7
jmp 0x4fdaaa
mov dword [esp + 0x3c8], ebx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x4f8783
mov dword [esp + 0x32c], esi
mov byte [esp + 0xab], 0x34
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x4fd666
mov eax, dword [esp + 0x2dc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov esi, dword [esp + 0x35c]
mov edx, dword [esi + ecx + 0x14]
mov dword [esp + 0x2d4], edx
test edx, edx
setne byte [esp + 0x9f]
test eax, eax
je 0x4fd484
mov edx, eax
and edx, 1
inc edx
xor edx, eax
je 0x4fd484
mov eax, dword [esp + 0x2d4]
test eax, eax
jne 0x4fd41d
mov edi, esi
lea esi, [edi + ecx + 0x14]
mov dword [esp + 4], 4
mov dword [esp], 1
call fcn.00493a50
mov dword [esi], eax
mov esi, edi
mov dword [esp + 0x35c], esi
mov ecx, dword [eax]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x4fd5d9
mov ecx, 0xb
mov edx, dword [esp + 0x2dc]
mov edx, dword [edx]
mov dword [eax], edx
mov dword [esp + 0x3c8], 1
mov eax, dword [esp + 0x374]
mov dword [esp + 0x370], eax
cmp ecx, 7
je 0x4fb636
mov eax, dword [esp + 0x370]
mov dword [esp + 0x374], eax
jmp 0x4f9f3f
mov esi, 0x17
movzx eax, byte [esp + 0x8d]
cmp eax, 0x77
jne 0x4fd5ec
cmp dword [esp + 0x2d4], 0
mov eax, 0x1c
mov ecx, 4
mov byte [esp + 0x8d], 0x64
mov edx, dword [esp + 0x380]
mov dword [esp + 0x3c8], edx
je 0x4fd556
cmp ecx, 2
je 0x4fcb99
mov esi, 0xf
movzx eax, byte [esp + 0x1c7]
cmp eax, 0x72
je 0x4f9eea
cmp esi, 0xc
je 0x4fb3f0
imul esi, esi
and esi, 3
cmp esi, 3
je 0x4fb3f0
mov ebx, 6
mov byte [esp + 0x1c7], 0x72
mov eax, dword [esp + 0x2d4]
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 + 0x380]
mov dword [esp + 0x3c8], eax
je 0x4f9f3f
cmp ebx, 6
je 0x4f9f27
imul ebx, ebx
and ebx, 3
cmp ebx, 2
jne 0x4f814a
jmp 0x4f9f27
cmp eax, 0xc
jne 0x4f9f3f
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x4f9f3f
mov byte [esp + 0x1c6], 0x37
mov eax, dword [esp + 0x3b8]
shl eax, 6
mov ecx, dword [esp + 0x35c]
mov eax, dword [ecx + eax + 0x1c]
mov dword [esp + 0x140], eax
test eax, eax
je 0x4fd5d9
mov esi, 0xf
xor eax, eax
test al, al
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jne 0x4f9f3f
cmp esi, 0xd
mov eax, dword [esp + 0x3c8]
je 0x4f42a1
imul esi, esi
and esi, 3
cmp esi, 3
mov ebx, eax
jne 0x4f8aea
jmp 0x4f42a1
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
jmp 0x4f9f3f
cmp esi, 0xc
jne 0x4fd602
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x4f667c
mov ecx, 0x12
mov edx, 0x17
mov byte [esp + 0x8d], 0x77
test byte [esp + 0x9f], 1
mov eax, dword [esp + 0x380]
mov dword [esp + 0x3c8], eax
je 0x4fd649
cmp ecx, 0xf
je 0x4fcb14
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x4fd4d1
jmp 0x4fcb14
cmp edx, 0xf
jne 0x4f9f3f
movzx eax, byte [esp + 0x5b]
cmp eax, 0x33
je 0x4f9e8c
mov edx, 0x1b
mov byte [esp + 0x5b], 5
mov ecx, dword [esp + 0x3b8]
shl ecx, 6
mov esi, dword [esp + 0x35c]
mov eax, dword [esi + ecx + 0x14]
test eax, eax
je 0x4fdc4f
mov cl, byte [esp + 0x1a3]
jmp 0x4f5c98
mov dword [esp + 0x1d0], edx
mov ecx, dword [esp + 0x384]
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
cmp eax, 0xd
jne 0x4fd6f8
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x380], eax
mov dword [esp + 0x3c8], ebx
jne 0x4fd98d
jmp 0x4f9f3f
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x380], eax
mov dword [esp + 0x3c8], ebx
jmp 0x4f9f3f
mov byte [esp + 0x11b], 8
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x90], edx
cmp eax, 0xc
je 0x4fda66
imul eax, eax
and eax, 3
cmp eax, 3
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov esi, dword [esp + 0x390]
mov ebx, dword [esp + 0x3c8]
jne 0x4f83ea
jmp 0x4f93b3
mov ecx, dword [esp + 0x384]
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x38c]
mov dword [esp + 0x3c4], ecx
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x3bc], ecx
mov ecx, dword [esp + 0x398]
mov dword [esp + 0x3cc], ecx
mov ecx, dword [esp + 0x390]
cmp eax, 7
je 0x4fd91b
mov ebx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x4fd955
mov byte [esp + 0xc8], 0x54
mov eax, dword [esp + 0x33c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2ac]
mov edi, edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x388]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x1d4]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x308]
mov dword [esp], eax
call fcn.004dd150
mov edx, edi
mov dword [esp + 0x378], 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 + 0x3c4]
mov dword [esp + 0x3a4], edi
mov dword [esp + 0x38c], edi
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x398], ecx
mov esi, ebx
mov dword [esp + 0x390], esi
mov dword [esp + 0x3b4], esi
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3ac], ecx
mov dword [esp + 0x3a8], edi
mov edi, 0x11
jne 0x4fb45c
cmp edi, 4
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], esi
mov esi, dword [esp + 0x3b4]
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x3ac]
mov dword [esp + 0x3cc], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x3c4], eax
je 0x4f5247
jmp 0x4f62ca
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], ecx
jmp 0x4fd98d
mov dword [esp + 0x3c0], edx
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x38c], eax
mov eax, dword [esp + 0x3bc]
mov dword [esp + 0x39c], eax
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x398], eax
mov dword [esp + 0x390], ebx
movzx ecx, byte [esp + 0x2bf]
cmp ecx, 0x28
je 0x4fd9e7
mov eax, 7
cmp ecx, 0x36
jne 0x4fda34
mov eax, 0x19
mov byte [esp + 0x2bf], 0x28
mov ecx, dword [esp + 0x3dc]
mov dword [esp + 0x298], ecx
test ecx, ecx
mov ebx, dword [esp + 0x3c8]
je 0x4fb7f0
cmp eax, 0xc
je 0x4f52ec
mov ebx, dword [esp + 0x3c8]
jmp 0x4fb7d9
mov byte [esp + 0x2bf], 0x36
mov esi, dword [esp + 0x3dc]
test esi, esi
jne 0x4fda53
mov eax, 0x15
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0x298], esi
xor edx, 2
add edx, ecx
mov ebx, dword [esp + 0x3c8]
je 0x4fb7d9
cmp eax, 0xa
mov ebx, dword [esp + 0x3c8]
je 0x4f9f3f
jmp 0x4fb7f0
mov ebx, dword [esp + 0x3c8]
cmp eax, 7
je 0x4fb7a2
xor eax, eax
test al, al
je 0x4f84c2
jmp 0x4fb7a2
mov dword [esp + 0x298], esi
mov ebx, dword [esp + 0x3c8]
jmp 0x4fb7d9
mov edx, dword [esp + 0x3c0]
mov eax, dword [esp + 0x38c]
mov dword [esp + 0x3c4], eax
mov eax, dword [esp + 0x39c]
mov dword [esp + 0x3bc], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x3cc], eax
mov esi, dword [esp + 0x390]
jmp 0x4f93b3
mov ebx, dword [esp + 0x3c8]
movzx eax, byte [esp + 0x2ca]
cmp eax, 6
mov edx, dword [esp + 0x1d0]
jne 0x4fb6dd
mov byte [esp + 0x2ca], 0x6f
mov byte [esp + 0x22f], 0x7e
cmp edx, 2
je 0x4fdae1
xor eax, eax
test al, al
je 0x4fb7f0
movzx eax, byte [esp + 0x22f]
cmp eax, 7
je 0x4fdb65
cmp eax, 0x21
je 0x4fb757
mov eax, 0xe
mov byte [esp + 0x22f], 7
mov edx, dword [esp + 0x3e8]
mov edi, dword [esp + 0x3dc]
mov dword [esp + 0x298], edi
test edi, edi
sete cl
mov esi, edi
and esi, 1
xor esi, edi
cmp esi, 0xffffffff
setne ch
cmp edx, 0x22
jb 0x4fdc04
imul edx, edx
and edx, 3
cmp edx, 2
je 0x4fdc04
and cl, ch
mov dword [esp + 0x3c8], ebx
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x334]
je 0x4fb7d9
jmp 0x4fdc19
mov byte [esp + 0x22f], 0x21
mov eax, dword [esp + 0x3e8]
mov esi, dword [esp + 0x3dc]
cmp eax, 0x22
sbb cl, cl
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne al
test cl, al
jne 0x4fdc43
mov eax, 1
test esi, esi
mov dword [esp + 0x298], esi
mov dword [esp + 0x3c8], ebx
je 0x4fb7f0
cmp eax, 1
mov ebx, dword [esp + 0x3c8]
je 0x4fb7d9
mov eax, dword [esp + 0x26c]
mov dword [eax], 3
mov eax, 8
mov ecx, 0xb
movzx edx, byte [esp + 0x27e]
cmp edx, 0x7d
mov ebx, dword [esp + 0x3c8]
mov edx, dword [esp + 0x3c0]
jne 0x4fbe2b
cmp ecx, 1
je 0x4f6fbe
jmp 0x4fa6b7
mov dword [esp + 0x3c8], ebx
mov ecx, dword [esp + 0x190]
mov edi, dword [esp + 0x334]
cmp eax, 0xa
mov dword [esp + 0x190], ecx
mov dword [esp + 0x334], edi
mov ebx, dword [esp + 0x3c8]
mov ecx, dword [esp + 0x320]
jne 0x4fb7f0
jmp 0x4fcd7f
mov dword [esp + 0x298], esi
jmp 0x4fb7f0
lea esi, [esi + ecx + 0x14]
jmp 0x4f9ecf