Function at 0x529ee0
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x850
mov dword [esp + 0x2e8], ecx
mov eax, dword [ebp + 0x30]
mov ebx, 0x7cb1dce9
cmp eax, 0x27
je 0x52a55f
cmp eax, 0x28
jne 0x52a6fc
mov ecx, dword [ebp + 0x3c]
mov eax, dword [0x7dc5e8]
mov dword [esp + 0x328], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x3d4], 0
mov dword [esp + 0x3d0], 0
mov dword [esp + 0x3d8], 0
mov dword [esp + 0x3cc], 0
mov dword [esp + 0x3c8], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x3a0], xmm0
movaps xmmword [esp + 0x390], xmm0
mov dword [esp + 0x3b4], 0
mov dword [esp + 0x3b0], 0
mov byte [esp + 0x3b8], 0
mov dword [esp + 0x38c], 0
mov dword [esp + 0x388], 0
mov dword [esp + 0x384], 0
mov dword [esp + 0x380], 0
mov dword [esp + 0x37c], 0
movaps xmmword [esp + 0x360], xmm0
movaps xmmword [esp + 0x350], xmm0
movaps xmmword [esp + 0x340], xmm0
movaps xmmword [esp + 0x330], xmm0
mov dword [esp + 0x32c], 0
movsd xmm0, qword [0x7dc5e0]
movsd qword [esp + 0x320], xmm0
movsd xmm0, qword [0x7dc5d8]
movsd qword [esp + 0x318], xmm0
test ecx, ecx
lea edx, [ebx - 0x7cb1dccf]
je 0x52a92f
mov dword [esp + 0x1dc], eax
xor edx, ebx
add dl, 0x30
movzx eax, dl
cmp eax, 0x18
jne 0x52adcf
mov byte [esp + 0x8a], al
mov byte [esp + 0x18f], al
mov byte [esp + 0xd3], al
mov byte [esp + 0x1f3], al
mov byte [esp + 0x63], al
mov byte [esp + 0x62], al
mov byte [esp + 0x24e], al
mov byte [esp + 0xab], al
mov byte [esp + 0x226], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x2f0], al
mov byte [esp + 0xbb], al
mov byte [esp + 0x2b4], al
mov byte [esp + 0x2a8], al
mov ecx, 6
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xec], eax
mov byte [esp + 0x29c], al
mov byte [esp + 0x227], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x16f], al
mov byte [esp + 0x1b7], al
mov byte [esp + 0xff], al
mov byte [esp + 0xd2], al
mov byte [esp + 0xaa], al
mov byte [esp + 0xeb], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x24f], al
mov byte [esp + 0x244], al
mov byte [esp + 0x20b], al
mov byte [esp + 0x187], al
mov byte [esp + 0x1e9], al
mov byte [esp + 0x18e], al
mov byte [esp + 0x21b], al
mov byte [esp + 0x2bc], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d8], al
mov byte [esp + 0x298], al
mov byte [esp + 0x1ea], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x1c7], al
mov byte [esp + 0x12f], al
mov byte [esp + 0xf3], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x11e], al
mov byte [esp + 0x213], al
mov byte [esp + 0x22c], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0x290], dl
mov dword [esp + 0x288], esi
mov byte [esp + 0xdf], al
mov byte [esp + 0x11f], ah
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x180], edx
mov dword [esp + 0x98], edi
cmp ecx, 4
mov edi, dword [esp + 0x2ec]
mov al, byte [esp + 0x290]
jne 0x52a50a
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
jne 0x530eea
mov eax, 7
mov ecx, dword [ebp + 0x3c]
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov ecx, dword [esp + 0x25c]
mov edx, dword [esp + 0x228]
mov dword [esp + 0x2ec], edi
cmp eax, 7
jne 0x5366a6
mov dword [esp + 0x228], edx
mov dword [esp + 0x25c], ecx
mov ecx, 3
sub ecx, eax
xor ecx, eax
jne 0x52e0d0
jmp 0x5366a6
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x2a8], edx
mov eax, 0x7cb1dce9
xor eax, 0x7cb1dce3
xor ebx, 0x7cb1dce5
mov ecx, ebx
xor ecx, eax
add cl, 0x20
mov edx, dword [edx + 4]
mov dword [esp + 0x228], edx
test edx, edx
mov byte [esp + 0x278], dl
mov byte [esp + 0x2e8], dl
mov byte [esp + 0x24f], dl
mov byte [esp + 0x284], dl
mov byte [esp + 0x2a4], dl
mov byte [esp + 0x2bc], dl
mov byte [esp + 0x2b0], dl
mov byte [esp + 0x288], dl
mov byte [esp + 0x290], dl
mov byte [esp + 0x24e], dl
mov byte [esp + 0x2cc], dl
mov dword [esp + 0x260], esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x2ac], esi
mov dword [esp + 0x26c], esi
mov dword [esp + 0x2f8], esi
mov dword [esp + 0x300], esi
mov dword [esp + 0x240], esi
mov dword [esp + 0x268], esi
mov dword [esp + 0x2f4], esi
mov dword [esp + 0x2dc], esi
mov dword [esp + 0x2b8], esi
mov dword [esp + 0x298], esi
mov dword [esp + 0x2b4], esi
mov dword [esp + 0x294], esi
mov dword [esp + 0x280], esi
mov dword [esp + 0x28c], esi
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x274], esi
mov dword [esp + 0x264], esi
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x244], esi
mov dword [esp + 0x2e0], esi
mov dword [esp + 0x29c], esi
mov dword [esp + 0x2a0], esi
mov dword [esp + 0x2f0], esi
mov dword [esp + 0x2fc], esi
mov dword [esp + 0x248], esi
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x304], esi
mov dword [esp + 0x2ec], esi
mov dword [esp + 0x22c], esi
mov dword [esp + 0x27c], esi
mov dword [esp + 0x2d8], esi
mov dword [esp + 0x23c], esi
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x254], esi
mov dword [esp + 0x238], edi
mov byte [esp + 0x2c0], dl
mov byte [esp + 0x250], dl
mov byte [esp + 0x270], dl
jne 0x52cdcf
jmp 0x52d23c
mov dword [esp + 0x2bc], edx
add ebx, 0x834e2326
mov dword [esp + 4], 0x20
mov dword [esp], 1
call fcn.00493840
mov esi, eax
test esi, esi
jne 0x52a7ee
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x52a7ee
mov dword [esp + 0x304], 0x70000003
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x288], eax
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x2dc], al
mov byte [esp + 0x2b0], al
mov byte [esp + 0x28c], al
mov byte [esp + 0x294], al
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x2ac], eax
jmp 0x52b470
add bl, 0x40
movzx eax, bl
cmp eax, 0x4f
jne 0x52b273
mov edi, esi
mov byte [esp + 0x2f0], 0x1b
mov byte [esp + 0x294], 0x71
lea esi, [esp + 0x44c]
mov dword [esp], esi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 4], esi
mov eax, dword [esp + 0x2e8]
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0043cd60
mov dword [esp + 0x304], 0x70000003
test eax, eax
jne 0x52b3b3
mov ecx, 0xa
mov edx, eax
and edx, 1
xor edx, eax
not edx
test edx, edx
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x288], eax
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x284], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x2dc], al
mov byte [esp + 0x2b0], al
mov byte [esp + 0x28c], al
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x2ac], eax
mov esi, edi
jne 0x52c3a2
jmp 0x52bf5a
mov dword [esp + 0x1dc], eax
mov byte [esp + 0x8a], al
mov byte [esp + 0x18f], al
mov byte [esp + 0x63], al
mov byte [esp + 0x62], al
mov byte [esp + 0xeb], al
mov byte [esp + 0x24e], al
mov byte [esp + 0x22c], al
mov byte [esp + 0x226], al
mov byte [esp + 0x187], al
mov byte [esp + 0x2f0], al
mov byte [esp + 0xbb], al
mov byte [esp + 0x29c], al
mov byte [esp + 0x227], al
mov byte [esp + 0x16f], al
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x188], eax
mov byte [esp + 0xd3], al
mov byte [esp + 0x1b7], al
mov byte [esp + 0x1f3], al
mov byte [esp + 0xff], al
mov byte [esp + 0xd2], al
mov byte [esp + 0xaa], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0xab], al
mov byte [esp + 0x6b], al
mov byte [esp + 0x244], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0xdf], al
mov byte [esp + 0x1e9], al
mov byte [esp + 0x18e], al
mov byte [esp + 0x11f], al
mov byte [esp + 0x21b], al
mov byte [esp + 0x2bc], al
mov byte [esp + 0x2b4], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2a8], al
mov byte [esp + 0x2d8], al
mov byte [esp + 0x298], al
mov byte [esp + 0x1ea], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x1c7], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0x12f], al
mov byte [esp + 0xf3], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x11e], al
mov byte [esp + 0x24f], al
mov byte [esp + 0x20b], al
mov byte [esp + 0x213], al
mov dword [esp + 0x98], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x180], eax
mov edi, edx
jmp 0x534513
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov byte [esp + 0x6b], al
mov byte [esp + 0xd3], al
mov byte [esp + 0x1f3], al
mov byte [esp + 0x24e], al
mov byte [esp + 0x22c], al
mov byte [esp + 0xab], al
mov byte [esp + 0x244], al
mov byte [esp + 0x187], al
mov byte [esp + 0x2f0], al
mov byte [esp + 0x12f], al
mov byte [esp + 0x16f], al
mov byte [esp + 0x24f], al
mov byte [esp + 0x20b], al
mov byte [esp + 0x1b7], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x27c], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x274], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0x128], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x270], eax
mov dword [esp + 0x26c], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0xe4], eax
mov byte [esp + 0xff], al
mov byte [esp + 0x63], al
mov byte [esp + 0x62], al
mov byte [esp + 0xd2], al
mov byte [esp + 0xaa], al
mov byte [esp + 0xeb], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x226], al
mov byte [esp + 0x1a3], al
mov byte [esp + 0xdf], al
mov byte [esp + 0x1e9], al
mov byte [esp + 0x18e], al
mov byte [esp + 0x11f], al
mov byte [esp + 0x21b], al
mov byte [esp + 0xbb], al
mov byte [esp + 0x298], al
mov byte [esp + 0x227], al
mov byte [esp + 0x1ea], al
mov byte [esp + 0x9f], al
mov byte [esp + 0x1c7], al
mov byte [esp + 0x1eb], al
mov byte [esp + 0xf3], al
mov byte [esp + 0x8b], al
mov byte [esp + 0x11e], al
mov byte [esp + 0x213], al
mov byte [esp + 0x2bc], al
mov byte [esp + 0x2b4], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2a8], al
mov byte [esp + 0x29c], al
mov byte [esp + 0x2d8], al
mov dword [esp + 0x98], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x180], eax
jmp 0x52e0d0
mov dword [esp + 0x280], 6
mov ebx, 1
mov byte [esp + 0x2f0], 0x1b
mov byte [esp + 0x294], 0x71
lea edi, [esp + 0x44c]
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 4], edi
mov eax, dword [esp + 0x2e8]
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.0043cd60
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x304], 0x70000003
cmp eax, ecx
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x288], eax
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x284], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x2dc], al
mov byte [esp + 0x2b0], al
mov byte [esp + 0x28c], al
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2b4], eax
je 0x52ba2e
jmp 0x52bf3b
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x2fc], eax
mov byte [esp + 0x2c8], al
mov byte [esp + 0x2a0], al
mov byte [esp + 0x284], al
mov byte [esp + 0x2a4], al
mov byte [esp + 0x2b8], al
mov byte [esp + 0x2d4], al
mov byte [esp + 0x2dc], al
mov byte [esp + 0x2b0], al
mov byte [esp + 0x28c], al
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x2ac], eax
mov esi, edi
jmp 0x52bf5a
mov dword [esp + 0x2d0], edi
mov edi, ebx
mov ebx, eax
cmp edi, 4
jne 0x52c769
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x52c769
mov dword [esp + 0x2b4], edx
mov byte [esp + 0x2f0], cl
mov edi, esi
xor esi, esi
jmp 0x52b4f8
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
add esi, eax
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.007c3e70
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov eax, dword [ebx]
mov dword [eax + 4], ecx
mov eax, dword [ebx]
mov ecx, dword [esp + 0x2e8]
mov dword [eax], ecx
mov dword [edi], 1
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x52b4b0
mov esi, edi
jmp 0x52b58d
mov dword [esp + 0x2b4], edx
mov byte [esp + 0x294], 0x25
mov dword [esp + 4], 0xc
mov dword [esp], 1
call fcn.00493840
mov dword [esi + 4], eax
test eax, eax
je 0x52c42c
lea edi, [esi + 4]
mov ebx, 4
mov dword [esp + 0x280], 0x17
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov ecx, dword [edi]
mov dword [ecx + 8], eax
mov eax, dword [edi]
cmp dword [eax + 8], 0
mov cl, byte [esp + 0x2f0]
mov edx, dword [esp + 0x2b4]
mov eax, edi
mov edi, dword [esp + 0x2d0]
jne 0x52b470
jmp 0x52bc28
mov edi, 0x1b
mov byte [esp + 0x2a4], 0x2e
mov byte [esp + 0x284], 0x66
mov ebx, esi
lea esi, [esp + 0x44c]
mov dword [esp], esi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 8], esi
mov esi, ebx
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp], eax
mov dword [esp + 0xc], 0x400
call fcn.0043e1a0
test eax, eax
jne 0x52c5bb
movzx eax, byte [esp + 0x2a4]
cmp eax, 0xd
je 0x52b638
cmp eax, 0x2e
je 0x52b66e
cmp eax, 0x51
mov ecx, dword [ebp + 0x10]
jne 0x52b68d
mov byte [esp + 0x2a4], 0x2b
mov byte [esp + 0x2b8], 0x15
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
cmp ecx, eax
jne 0x52b7fc
jmp 0x52c66a
mov edi, 0x15
mov byte [esp + 0x2a4], 0x51
mov byte [esp + 0x2b8], 0x15
mov eax, dword [ebp + 0x10]
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x52b7fc
jmp 0x52b787
mov byte [esp + 0x2a4], 0x2e
mov byte [esp + 0x2b8], 0x15
cmp dword [ebp + 0x10], 0
je 0x52c66a
jmp 0x52b7fc
mov edi, 0xe
mov byte [esp + 0x2a4], 0xd
mov byte [esp + 0x2b8], 0x15
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
je 0x52c66a
jmp 0x52bdbd
mov byte [esp + 0x284], 0x66
mov dword [esp + 4], 0x10
mov dword [esp], 1
call fcn.00493840
lea ecx, [esi + 0x14]
mov dword [esp + 0x288], ecx
mov dword [esi + 0x14], eax
test eax, eax
je 0x52c42c
mov bl, 0x5c
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52c42c
movzx eax, bl
cmp eax, 0x78
jne 0x52b745
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov edx, dword [esp + 0x288]
mov ecx, dword [edx]
mov dword [ecx + 0xc], eax
mov eax, dword [edx]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x52b7a6
mov eax, 5
mov edx, ecx
or edx, 2
xor ecx, 2
add ecx, edx
jne 0x52c6a1
jmp 0x52b7a6
mov edi, 0xf
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov edx, dword [esp + 0x288]
mov ecx, dword [edx]
mov dword [ecx + 0xc], eax
mov eax, dword [edx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x52b787
mov dword [esp + 0x280], 6
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x52b96a
cmp edi, 0xf
jne 0x52c66a
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
jne 0x52c42c
jmp 0x52c66a
mov edi, 0x19
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.007c3e70
inc eax
mov edx, dword [esp + 0x288]
mov ecx, dword [edx]
mov dword [ecx + 8], eax
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x2bc]
mov dword [eax], ecx
mov dword [esi + 0x10], 1
cmp edi, 0xe
jne 0x52b5ef
imul edi, edi
and edi, 3
cmp edi, 2
jb 0x52c769
jmp 0x52b5ef
mov dword [esp + 0x300], esi
xor eax, eax
mov ecx, 3
lea edx, [esi + 0xc]
lea esi, [esi + 8]
jmp 0x52b85d
mov byte [esp + 0x2dc], 0x3c
mov byte [esp + 0x2d4], 0x2e
inc eax
dec ecx
mov dword [esp + 0x2e0], 0
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x2f8], esi
test eax, eax
jne 0x52bb8d
mov edi, eax
xor edi, ecx
jne 0x52b820
jmp 0x52bb8d
mov byte [esp + 0x2b8], 0x15
mov eax, dword [ebp + 0x18]
mov ecx, eax
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
je 0x52c256
mov byte [esp + 0x2b0], 0x24
mov byte [esp + 0x2c8], 8
lea eax, [esi + 0x1c]
mov dword [esp + 0x2d0], eax
lea eax, [esi + 0x18]
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2a8], 0
xor edi, edi
mov dword [esp + 0x300], esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x27c], 0xc
mov dword [esp + 0x280], 3
lea ebx, [esp + 0x44c]
mov dword [esp], ebx
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
lea eax, [esi + edi*4]
mov dword [esp + 0x2cc], eax
mov eax, dword [esi + edi*4]
mov esi, dword [esp + 0x300]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp], eax
mov dword [esp + 0x18], 0x400
mov dword [esp + 0xc], 0xffffffff
call fcn.0043ae40
test eax, eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0x29c], eax
mov dword [esp + 0x298], edi
jne 0x52b98e
mov eax, dword [esp + 0x280]
cmp eax, 3
je 0x52c1c0
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x52b7a6
jmp 0x52c1c0
mov ecx, dword [esp + 0x27c]
cmp ecx, 0xc
jne 0x52c3c1
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov ecx, dword [esp + 0x29c]
je 0x52c3c1
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
add eax, ecx
mov dword [esp + 0x2c0], eax
lea eax, [eax*4]
lea eax, [eax + eax*2]
mov edi, dword [esp + 0x2d0]
mov ebx, ecx
mov ecx, dword [edi]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00492a60
test eax, eax
je 0x52c42c
mov dword [esp + 0x280], 0x10
mov dword [edi], eax
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov ecx, dword [edi]
lea edx, [ebx*4]
lea edx, [edx + edx*2]
mov dword [ecx + edx + 8], eax
mov eax, dword [edi]
cmp dword [eax + edx + 8], 0
je 0x52c42c
mov ecx, dword [esp + 0x280]
cmp ecx, 6
jne 0x52ba49
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x52b58d
mov al, byte [esp + 0x2c8]
movzx eax, al
cmp eax, 8
je 0x52badc
mov edi, 2
cmp eax, 0x35
jne 0x52c6de
mov ebx, 0x10
mov byte [esp + 0x2c8], 0x13
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.007c3e70
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov edi, dword [esp + 0x2d0]
mov ecx, dword [edi]
mov edx, dword [esp + 0x29c]
lea edx, [edx*4]
lea edx, [edx + edx*2]
mov dword [ecx + edx + 4], eax
mov eax, dword [esp + 0x2cc]
mov eax, dword [eax]
mov ecx, dword [edi]
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov dword [eax], ecx
mov dword [esp + 0x2a8], ecx
jmp 0x52bf2d
mov dword [esp + 0x300], esi
xor edi, edi
lea ebx, [esp + 0x44c]
mov eax, dword [esp + 0x29c]
lea eax, [eax*4]
lea esi, [eax + eax*2]
jmp 0x52bb60
mov byte [esp + 0x2c8], 8
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov dword [esp], ebx
call fcn.007c3e70
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
mov edx, dword [esp + 0x2d0]
mov eax, dword [edx]
mov dword [eax + esi + 4], ecx
mov eax, dword [esp + 0x2cc]
mov eax, dword [eax]
mov ecx, dword [edx]
mov dword [ecx + esi], eax
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov dword [eax], ecx
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x52bb00
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x2a8], eax
mov esi, dword [esp + 0x300]
jmp 0x52c1c0
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x280], 0xe
lea edi, [esp + 0x44c]
mov dword [esp], edi
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007c51a0
mov ebx, dword [esp + 0x2e4]
lea eax, [esi + ebx*4]
mov dword [esp + 0x2f4], eax
mov eax, dword [esi + ebx*4]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2bc]
mov dword [esp], eax
mov dword [esp + 0x14], 0x400
call fcn.0043bb90
test eax, eax
jne 0x52bc5a
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x2ac], eax
mov edx, ebx
mov esi, dword [esp + 0x300]
mov cl, byte [esp + 0x2f0]
mov edi, dword [esp + 0x2d0]
mov dword [esp + 0x2b4], edx
mov dword [esp + 0x2d0], edi
mov byte [esp + 0x2f0], cl
cmp dword [esp + 0x280], 0xe
je 0x52c0e4
xor eax, eax
test al, al
je 0x52c42c
jmp 0x52c0e4
movzx ecx, byte [esp + 0x2d4]
cmp ecx, 0x60
je 0x52bc9d
mov eax, 0xa
cmp ecx, 0x67
jne 0x52bd19
mov ecx, dword [esp + 0x2e0]
mov dword [esp + 0x2ac], ecx
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x2b4], ecx
mov esi, dword [esp + 0x300]
jmp 0x52c385
mov edi, 4
mov byte [esp + 0x2d4], 0x60
mov esi, dword [esp + 0x2e0]
lea eax, [esi + 1]
mov dword [esp + 0x2ec], eax
lea eax, [esi*4 + 4]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x2d8]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x52bd9a
mov dword [esp + 0x290], eax
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0x2ac], esi
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2b4], eax
mov esi, dword [esp + 0x300]
jb 0x52c42c
jmp 0x52bdbd
mov byte [esp + 0x2d4], 0x2e
mov esi, dword [esp + 0x2e0]
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add eax, esi
mov dword [esp + 0x2ec], eax
lea eax, [eax*4]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x2d8]
mov ecx, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00492a60
mov dword [esp + 0x290], eax
test eax, eax
je 0x52bdda
mov eax, 6
xor ecx, ecx
test cl, cl
mov dword [esp + 0x2ac], esi
mov ecx, dword [esp + 0x2e4]
mov dword [esp + 0x2b4], ecx
mov esi, dword [esp + 0x300]
je 0x52c638
jmp 0x52c42c
mov dword [esp + 0x290], eax
mov dword [esp + 0x2ac], esi
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2b4], eax
mov esi, dword [esp + 0x300]
cmp edi, 4
je 0x52be9d
imul edi, edi
and edi, 3
cmp edi, 2
jne 0x52b7fc
jmp 0x52be9d
mov dword [esp + 0x2ac], esi
mov eax, dword [esp + 0x2e4]
mov dword [esp + 0x2b4], eax
mov esi, dword [esp + 0x300]
jmp 0x52c42c
mov edi, 0x17
mov byte [esp + 0x2d4], 0x67
mov eax, dword [esp + 0x2ac]
mov edx, eax
or eax, 2
mov ecx, edx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, edx
mov dword [esp + 0x2ec], eax
lea eax, [eax*4]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x2d8]
mov ecx, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00492a60
test eax, eax
jne 0x52be65
mov dword [esp + 0x290], eax
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x52c42c
jmp 0x52be6c
mov dword [esp + 0x290], eax
cmp edi, 0x10
jne 0x52be9d
mov byte [esp + 0x2a0], 0x32
mov ecx, dword [esi + 0x1c]
test ecx, ecx
jne 0x52c3c1
mov eax, 0x10
mov edx, ecx
not edx
and edx, 1
add edx, ecx
jne 0x52c242
jmp 0x52c3c1
mov ebx, 2
movzx ecx, byte [esp + 0x2dc]
cmp ecx, 0x18
je 0x52bf3b
mov eax, 1
cmp ecx, 0x3c
je 0x52bf80
mov edi, 0xc
mov byte [esp + 0x2dc], 0x3c
mov eax, dword [esp + 0x2d8]
mov ecx, dword [esp + 0x290]
mov dword [eax], ecx
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov ebx, dword [esp + 0x2fc]
mov ecx, dword [ebx]
mov edx, dword [esp + 0x2ac]
lea edx, [edx*4]
lea edx, [edx + edx*2]
mov dword [ecx + edx + 8], eax
mov eax, dword [ebx]
mov eax, dword [eax + edx + 8]
test eax, eax
je 0x52c1ac
mov ebx, 0xd
imul eax, eax
and eax, 3
cmp eax, 3
je 0x52c1ac
cmp ebx, 0xd
jne 0x52c1c0
jmp 0x52c04f
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ebx, eax
jne 0x52bffd
mov edx, dword [esp + 0x2b4]
movzx ecx, byte [esp + 0x294]
cmp ecx, 0x25
je 0x52b510
mov eax, 0x11
cmp ecx, 0x71
jne 0x52c156
mov dword [esp + 0x2b4], 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 0x52c120
mov byte [esp + 0x2dc], 0x18
mov eax, dword [esp + 0x2d8]
mov ecx, dword [esp + 0x290]
mov dword [eax], ecx
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov edi, dword [esp + 0x2fc]
mov ecx, dword [edi]
mov edx, dword [esp + 0x2ac]
lea edx, [edx*4]
lea edx, [edx + edx*2]
mov dword [ecx + edx + 8], eax
mov eax, dword [edi]
mov eax, dword [eax + edx + 8]
test eax, eax
je 0x52c42c
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x52c04f
jmp 0x52c42c
mov byte [esp + 0x2dc], 0x14
mov eax, dword [esp + 0x2d8]
mov ecx, dword [esp + 0x290]
mov dword [eax], ecx
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.004938e0
mov edi, dword [esp + 0x2fc]
mov ecx, dword [edi]
mov edx, dword [esp + 0x2ac]
lea edx, [edx*4]
lea edx, [edx + edx*2]
mov dword [ecx + edx + 8], eax
mov eax, dword [edi]
cmp dword [eax + edx + 8], 0
je 0x52c42c
mov dword [esp + 0x300], esi
xor esi, esi
lea edi, [esp + 0x44c]
mov eax, dword [esp + 0x2ac]
lea eax, [eax*4]
lea ebx, [eax + eax*2]
mov ecx, dword [esp + 0x2e0]
jmp 0x52c0c5
inc esi
mov dword [esp], edi
call fcn.007c3e70
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
mov edx, dword [esp + 0x2fc]
mov eax, dword [edx]
mov dword [eax + ebx + 4], ecx
mov eax, dword [esp + 0x2f4]
mov eax, dword [eax]
mov ecx, dword [edx]
mov dword [ecx + ebx], eax
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2ec]
mov dword [eax], ecx
mov eax, esi
imul eax, eax
and eax, 3
test esi, esi
je 0x52c080
cmp eax, 2
je 0x52c080
mov dword [esp + 0x2e0], ecx
mov esi, dword [esp + 0x300]
mov edi, 0x1c
mov edx, dword [esp + 0x2b4]
lea ecx, [edx + 1]
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jae 0x52c1a0
mov eax, 1
mov dword [esp + 0x2e4], ecx
not ecx
and ecx, 1
lea ecx, [edx + ecx + 1]
test ecx, ecx
jne 0x52c292
jmp 0x52c661
mov byte [esp + 0x294], 0x71
mov dword [esp + 4], 0xc
mov dword [esp], 1
call fcn.00493840
mov dword [esi + 4], eax
test eax, eax
je 0x52c42c
xor eax, eax
test al, al
je 0x52b53e
jmp 0x52c42c
mov dword [esp + 0x2b4], edx
mov edi, 0x18
mov byte [esp + 0x294], 0xc
mov dword [esp + 4], 0xc
mov dword [esp], 1
call fcn.00493840
mov dword [esi + 4], eax
test eax, eax
je 0x52c194
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x52b53e
mov dword [esp + 0x300], esi
jmp 0x52c408
mov dword [esp + 0x2e4], ecx
jmp 0x52c661
cmp edi, 0xc
jne 0x52c1c0
mov eax, 3
sub eax, edi
xor eax, edi
jne 0x52c42c
movzx eax, byte [esp + 0x2b0]
cmp eax, 0x24
jne 0x52c202
mov byte [esp + 0x2b0], 0x66
mov ecx, dword [esp + 0x298]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
adc ecx, 0
cmp ecx, dword [ebp + 0x18]
jae 0x52c256
mov eax, 3
sub eax, ecx
xor eax, ecx
mov edi, ecx
jne 0x52b8c5
jmp 0x52c256
mov byte [esp + 0x2b0], 0x24
mov ecx, dword [esp + 0x298]
mov eax, ecx
and eax, 1
xor eax, ecx
cmp eax, 0xffffffff
setne al
movzx edi, al
add edi, ecx
cmp edi, dword [ebp + 0x18]
jb 0x52b8c5
mov eax, 0x12
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x52b8c5
cmp eax, 0x10
jne 0x52c256
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x52c620
mov eax, dword [esi + 4]
test eax, eax
je 0x52c26b
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x52c3c1
mov eax, 0xe
cmp dword [esi + 0x14], 0
je 0x52c28a
mov byte [esp + 0x28c], 0x73
xor ecx, ecx
test cl, cl
je 0x52c3c1
jmp 0x52c292
mov byte [esp + 0x28c], 0x73
cmp eax, 1
je 0x52c2d2
xor eax, eax
test al, al
jne 0x52c2c6
movzx eax, byte [esp + 0x28c]
cmp eax, 0x74
jne 0x52c2de
mov al, 0x5a
cmp dword [esi + 0xc], 0
je 0x52c314
mov byte [esp + 0x28c], 0x73
xor ecx, ecx
test cl, cl
je 0x52c3c1
jmp 0x52c31c
mov dword [esp + 0x300], esi
jmp 0x52bb8d
mov dword [esp + 0x300], esi
jmp 0x52bb8d
mov ecx, 0xd
mov byte [esp + 0x28c], 0x74
mov edx, dword [esi + 0xc]
test edx, edx
jne 0x52c39b
mov al, 0x5a
mov edi, esi
mov esi, edx
or esi, 2
xor edx, 2
add edx, esi
mov esi, edi
jne 0x52c31c
mov edx, dword [esp + 0x2b4]
jmp 0x52c3a2
mov byte [esp + 0x28c], 0x73
movzx eax, al
cmp eax, 8
je 0x52c359
mov edi, 0x10
cmp eax, 0x2d
jne 0x52be6c
mov eax, 0x10
mov dword [esp + 0x27c], 0xd
mov byte [esp + 0x2a0], 0x32
cmp dword [esi + 0x1c], 0
jne 0x52b98e
jmp 0x52c4f4
mov edi, 0xc
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x52c5b3
mov byte [esp + 0x2a0], 0x32
mov eax, 0x10
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x52c5bb
cmp eax, 0xa
jne 0x52c3c1
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x52bdfb
jmp 0x52c3c1
mov edx, dword [esp + 0x2b4]
mov dword [esp + 0x2b4], edx
cmp ecx, 0xa
je 0x52b58d
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x52b58d
mov dword [esp + 0x300], esi
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
jmp 0x52c3f3
mov edi, 8
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esp + 0x300]
mov dword [eax], edx
mov dword [esp + 0x304], 0
mov edx, ecx
not edx
and edx, 1
mov esi, ecx
add esi, edx
setne bl
movzx esi, bl
cmp ecx, esi
jb 0x52c3d0
cmp edi, 8
jne 0x52c425
mov eax, edi
not eax
and eax, 1
add eax, edi
mov esi, dword [esp + 0x300]
jne 0x52c769
jmp 0x52c42c
mov esi, dword [esp + 0x300]
mov eax, 2
mov cl, byte [esp + 0x2f0]
movzx ecx, cl
cmp ecx, 0x14
jne 0x52c4f4
xor ebx, ebx
jmp 0x52c4d5
mov edi, 0xe
mov byte [esp + 0x2f0], 0x1b
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], 0x39
mov dword [esp + 0x20], 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], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.005859d0
mov dword [esp], esi
call fcn.004936c0
mov dword [esp + 0x304], 0x70000003
test ebx, ebx
jne 0x52b7df
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
jne 0x52c450
jmp 0x52b7df
cmp eax, 2
jne 0x52c620
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x52c620
xor edi, edi
jmp 0x52c594
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], 0x39
mov dword [esp + 0x20], 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], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.005859d0
mov dword [esp], esi
call fcn.004936c0
mov dword [esp + 0x304], 0x70000003
mov eax, edi
and eax, 1
lea ecx, [eax + 1]
xor ecx, edi
test edi, edi
je 0x52c520
test ecx, ecx
je 0x52c520
jmp 0x52c769
mov byte [esp + 0x2a0], 0x32
cmp edi, 0xc
je 0x52c620
xor eax, eax
test al, al
jne 0x52c620
movzx eax, byte [esp + 0x284]
cmp eax, 0x2b
jne 0x52b6c0
mov byte [esp + 0x284], 0x2b
mov bl, 0x5c
mov dword [esp + 4], 0x10
mov dword [esp], 1
call fcn.00493840
lea ecx, [esi + 0x14]
mov dword [esp + 0x288], ecx
mov dword [esi + 0x14], eax
test eax, eax
jne 0x52b702
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x52c42c
jmp 0x52b702
mov eax, 0xd
mov cl, byte [esp + 0x2a0]
movzx ecx, cl
cmp ecx, 0x32
jne 0x52c6be
cmp eax, 6
je 0x52be9d
mov edi, 0xd
mov byte [esp + 0x2a0], 0x32
mov dword [esp], esi
call fcn.004936c0
mov dword [esp + 0x304], 0
cmp edi, 0xd
je 0x52c769
movzx eax, byte [esp + 0x2b8]
cmp eax, 0x1b
je 0x52b870
mov eax, 7
mov byte [esp + 0x2b8], 0x1b
mov ecx, dword [ebp + 0x18]
mov edx, ecx
and ecx, 1
inc ecx
xor ecx, edx
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x52b894
cmp eax, 5
je 0x52c42c
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x52c256
jmp 0x52c42c
mov edi, 4
mov byte [esp + 0x2a0], 7
mov dword [esp], esi
call fcn.004936c0
mov dword [esp + 0x304], 0
cmp edi, 2
jne 0x52c769
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
je 0x52c769
mov edi, 0xe
mov byte [esp + 0x2c8], 0x35
lea eax, [esp + 0x44c]
mov dword [esp], eax
call fcn.007c3e70
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov ebx, dword [esp + 0x2d0]
mov eax, dword [ebx]
mov edx, dword [esp + 0x29c]
lea edx, [edx*4]
lea edx, [edx + edx*2]
mov dword [eax + edx + 4], ecx
mov eax, dword [esp + 0x2cc]
mov eax, dword [eax]
mov ecx, dword [ebx]
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x2c4]
mov ecx, dword [esp + 0x2c0]
mov dword [eax], ecx
mov dword [esp + 0x2a8], ecx
jmp 0x52c1ac
mov eax, dword [esp + 0x304]
jmp 0x52d910
mov byte [esp + 0x2c0], bh
mov byte [esp + 0x278], 0x51
mov edx, dword [esp + 0x2ac]
lea eax, [edx + edx*2]
mov ecx, dword [esp + 0x258]
mov ecx, dword [ecx + eax*4 + 8]
test ecx, ecx
jne 0x52c7d2
mov dword [esp + 0x2d0], esi
mov eax, ecx
or eax, 2
mov dword [esp + 0x2e4], ecx
xor ecx, 2
add ecx, eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x268], edx
jne 0x52c87d
jmp 0x52c7e0
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x2b8], edi
mov byte [esp + 0x2bc], bl
mov ebx, dword [esp + 0x2a8]
mov eax, dword [esp + 0x2ac]
xor esi, esi
lea edi, [eax + eax*2]
mov ecx, dword [esp + 0x260]
jmp 0x52c840
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x2e4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [ebx + 4]
mov dword [eax + edi*4 + 8], 0
mov ecx, dword [ebx]
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x52c810
mov dword [esp + 0x26c], ecx
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x268], eax
mov dword [esp + 0x2a8], ebx
mov bl, byte [esp + 0x2bc]
mov edi, dword [esp + 0x2b8]
mov eax, dword [esp + 0x268]
inc eax
mov edx, dword [esp + 0x26c]
cmp eax, edx
jae 0x52c8c2
mov ecx, dword [esp + 0x2a8]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x258], ecx
mov dword [esp + 0x260], edx
mov dword [esp + 0x2ac], eax
mov esi, dword [esp + 0x2d0]
mov bh, byte [esp + 0x2c0]
jmp 0x52d724
mov byte [esp + 0x2bc], bl
xor ecx, ecx
mov ebx, dword [esp + 0x2a8]
jmp 0x52c8f5
mov eax, 0xa
cmp edx, 2
adc ecx, 0
mov edx, dword [ebx + 4]
mov dword [esp + 0x2f8], edx
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sbb esi, esi
and esi, 1
cmp ecx, esi
jb 0x52c8e0
mov bl, byte [esp + 0x2bc]
mov bh, byte [esp + 0x2c0]
cmp eax, 6
je 0x52c932
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x52c932
mov esi, dword [esp + 0x2d0]
jmp 0x52cf45
mov ecx, 0x10
mov eax, 0xb
mov dl, 0x58
mov dword [esp + 0x230], edx
mov byte [esp + 0x2e8], 0x44
mov byte [esp + 0x278], 0x51
mov edx, dword [esp + 0x2a8]
mov esi, dword [edx]
mov dword [esp + 0x260], esi
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp esi, edx
mov dword [esp + 0x2ac], 0
mov edx, dword [esp + 0x228]
mov dword [esp + 0x258], edx
mov dword [esp + 0x2f8], edx
mov esi, dword [esp + 0x2d0]
jne 0x52d711
jmp 0x52cf32
mov byte [esp + 0x2e8], 0x50
mov eax, dword [esp + 0x2f8]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x2a8]
mov dword [eax + 4], 0
mov eax, 0xc
mov edx, dword [esp + 0x2a8]
lea ecx, [edx + 0x14]
mov dword [esp + 0x300], ecx
mov ecx, dword [edx + 0x14]
test ecx, ecx
jne 0x52ca2c
mov byte [esp + 0x2c0], bh
mov byte [esp + 0x24f], 0x5d
mov byte [esp + 0x288], 0x64
mov dword [esp + 0x2d0], esi
mov edx, ecx
or edx, 2
mov esi, ecx
mov dword [esp + 0x240], esi
mov cl, bl
xor esi, 2
add esi, edx
mov esi, 0xf
jne 0x52d79f
jmp 0x52ca51
mov byte [esp + 0x2c0], bh
mov byte [esp + 0x24f], 0x5d
mov dword [esp + 0x240], ecx
mov byte [esp + 0x288], 0x64
mov dword [esp + 0x2d0], esi
cmp eax, 0xc
mov esi, dword [esp + 0x2d0]
je 0x52ca73
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x52ca73
mov bh, byte [esp + 0x2c0]
jmp 0x52dcac
mov eax, 6
movzx edx, byte [esp + 0x24f]
cmp edx, 0xa
je 0x52caa9
cmp edx, 0x13
je 0x52cab5
mov eax, 0xf
mov ecx, 7
cmp edx, 0x73
mov bh, byte [esp + 0x2c0]
jne 0x52d6aa
jmp 0x52d2d2
mov dl, byte [esp + 0x288]
jmp 0x52dbae
mov ecx, 3
mov byte [esp + 0x24f], 0x73
mov byte [esp + 0x2b0], 0x66
mov bl, 0x3e
mov byte [esp + 0x2a4], 0x12
mov byte [esp + 0x284], 0x47
mov edi, dword [esp + 0x2a8]
mov edx, dword [edi + 0x10]
mov dword [esp + 0x2f4], edx
mov eax, edx
and eax, 1
inc eax
xor eax, edx
sete al
movzx eax, al
cmp edx, eax
lea eax, [edi + 0x10]
mov edi, 0
mov dword [esp + 0x29c], eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2b4], eax
mov bh, byte [esp + 0x2c0]
jne 0x52d52e
jmp 0x52d9b9
mov byte [esp + 0x24f], 0x13
mov byte [esp + 0x2b0], 0x66
mov bl, 0x3e
mov byte [esp + 0x2a4], 0x12
mov byte [esp + 0x284], 0x47
mov ecx, dword [esp + 0x2a8]
lea eax, [ecx + 0x10]
mov dword [esp + 0x29c], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x2f4], ecx
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
sete al
movzx eax, al
xor edi, edi
cmp ecx, eax
jmp 0x52d326
mov byte [esp + 0x2a4], 0xb
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x300]
mov eax, dword [eax]
mov dword [eax + edi + 0xc], 0
mov eax, dword [esp + 0x29c]
mov edx, dword [eax]
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb ecx, ecx
and ecx, 1
cmp esi, ecx
jb 0x52cb90
mov dword [esp + 0x298], edx
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
mov edx, dword [esp + 0x27c]
mov eax, edx
not eax
and eax, 1
add eax, edx
setne al
movzx ecx, al
add ecx, edx
cmp ecx, dword [esp + 0x298]
mov edx, dword [esp + 0x2b4]
jb 0x52cc88
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52cc88
mov dword [esp + 0x2f0], ecx
xor eax, eax
jmp 0x52cc5a
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x300]
mov edx, dword [ecx]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x52cc40
mov dword [esp + 0x2b4], edx
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2d8], eax
jmp 0x52d9b9
mov dword [esp + 0x2f0], ecx
xor ecx, ecx
movsx eax, bl
movzx edx, bl
cmp eax, 0x4c
jg 0x52ccc9
cmp edx, 0x3e
je 0x52cd4e
mov eax, 7
cmp edx, 0x45
mov edx, dword [esp + 0x2dc]
jne 0x52cd21
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x2d8], ecx
jmp 0x52de29
cmp edx, 0x4d
je 0x52cd81
mov eax, 2
cmp edx, 0x6b
mov edx, dword [esp + 0x2dc]
jne 0x52cd21
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x2d8], ecx
mov dl, byte [esp + 0x290]
jmp 0x52ddf4
mov bl, 0x45
inc ecx
mov eax, dword [esp + 0x300]
mov edx, dword [eax]
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2f4], eax
mov edi, dword [esp + 0x2f0]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jb 0x52cd00
mov dword [esp + 0x2dc], edx
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2d8], eax
jmp 0x52de98
mov bl, 0x40
mov eax, dword [esp + 0x300]
mov eax, dword [eax]
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2f4], eax
mov edi, dword [esp + 0x2f0]
jmp 0x52de98
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2c0], bh
mov eax, 0x11
mov byte [esp + 0x2bc], 0x4d
mov ecx, dword [esp + 0x300]
mov ecx, dword [ecx]
mov dword [esp + 0x2dc], ecx
mov ecx, dword [esp + 0x2f0]
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0x230]
mov dh, byte [esp + 0x25c]
mov esi, dword [esp + 0x234]
mov dword [esp + 0x234], esi
mov byte [esp + 0x25c], dh
cmp eax, 0xa
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edx, dword [esp + 0x298]
mov edi, dword [esp + 0x2b8]
je 0x52ce31
imul eax, eax
and eax, 3
cmp eax, 3
je 0x52ce31
mov dword [esp + 0x230], ecx
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2d8], edx
mov dword [esp + 0x2f4], edx
jmp 0x52de98
mov eax, 6
mov dword [esp + 0x230], ecx
movzx ecx, cl
cmp ecx, 0x58
jne 0x52cec1
mov al, 0x26
mov dword [esp + 0x230], eax
mov byte [esp + 0x2e8], 0x44
mov byte [esp + 0x278], 0x51
mov eax, dword [esp + 0x2a8]
mov ecx, dword [eax]
mov dword [esp + 0x260], ecx
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
mov dword [esp + 0x2ac], 0
cmp ecx, eax
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2d8], edx
mov eax, dword [esp + 0x228]
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x258], eax
jne 0x52d724
jmp 0x52cf45
mov dword [esp + 0x2f4], edx
mov dword [esp + 0x2f0], edi
mov dword [esp + 0x2d8], edx
jmp 0x52c917
mov byte [esp + 0x288], 0x28
mov byte [esp + 0x290], 0x19
mov byte [esp + 0x25c], 0x33
mov ecx, dword [esp + 0x2a8]
lea eax, [ecx + 0xc]
mov dword [esp + 0x2fc], eax
mov edx, dword [ecx + 0xc]
test edx, edx
jne 0x52cfe0
mov ecx, 0xb
mov eax, edx
or eax, 2
mov dword [esp + 0x248], edx
xor edx, 2
add edx, eax
mov bh, byte [esp + 0x2c0]
je 0x52dcac
cmp ecx, 0xb
je 0x52dddc
xor eax, eax
test al, al
jne 0x52dddc
movzx eax, byte [esp + 0x2e8]
cmp eax, 0x50
je 0x52c9aa
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
xor esi, esi
mov ebx, dword [esp + 0x2a8]
jmp 0x52cfac
mov byte [esp + 0x2e8], 0x44
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x2f8]
mov dword [esp], eax
call fcn.004936c0
mov dword [ebx + 4], 0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x52cf80
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
mov bh, byte [esp + 0x2c0]
jmp 0x52c9cf
mov dword [esp + 0x248], edx
mov bh, byte [esp + 0x2c0]
jmp 0x52dcac
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov dword [esp + 0x294], eax
mov dword [esp + 0x2ac], ecx
mov byte [esp + 0x2c0], bh
mov ecx, dword [esp + 0x28c]
lea edi, [ecx + ecx*2]
mov ecx, dword [esp + 0x280]
mov ebx, dword [ecx + edi*4 + 8]
test ebx, ebx
mov edx, eax
je 0x52d096
xor eax, eax
test al, al
mov edx, dword [esp + 0x294]
jne 0x52d096
xor esi, esi
mov edx, dword [esp + 0x294]
jmp 0x52d080
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov dword [esp], ebx
call fcn.004936c0
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [eax + edi*4 + 8], 0
mov eax, dword [esp + 0x2c8]
mov edx, dword [eax]
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x52d050
mov ecx, 6
mov al, byte [esp + 0x270]
movzx eax, al
cmp eax, 8
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
je 0x52d110
cmp eax, 0x34
jne 0x52d138
mov byte [esp + 0x270], 0x68
mov esi, dword [esp + 0x28c]
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add eax, esi
mov dword [esp + 0x234], eax
cmp eax, edx
mov dword [esp + 0x254], edx
mov dword [esp + 0x238], esi
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
jae 0x52e055
jmp 0x52d1ad
mov dword [esp + 0x254], edx
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x238], eax
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
jmp 0x52dfcc
mov eax, 9
mov byte [esp + 0x270], 8
mov esi, dword [esp + 0x28c]
mov ecx, esi
not ecx
and ecx, 1
add ecx, esi
setne cl
movzx ecx, cl
add ecx, esi
mov dword [esp + 0x234], ecx
cmp ecx, edx
mov dword [esp + 0x254], edx
jb 0x52d193
xor ecx, ecx
test cl, cl
mov dword [esp + 0x238], esi
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
je 0x52e055
jmp 0x52dd2b
mov dword [esp + 0x238], esi
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
jmp 0x52dd2b
mov byte [esp + 0x2bc], bl
mov eax, dword [esp + 0x2fc]
mov eax, dword [eax]
mov dword [esp + 0x280], eax
mov eax, dword [esp + 0x254]
mov ecx, dword [esp + 0x234]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x2ac]
jmp 0x52cff3
mov ebx, 0x14
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov ecx, dword [esp + 0x2fc]
mov esi, dword [ecx]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x52d1f0
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov ecx, dword [esp + 0x230]
mov esi, dword [esp + 0x234]
mov dword [esp + 0x234], esi
mov dword [esp + 0x230], ecx
cmp ebx, 0xc
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
je 0x52d286
mov byte [esp + 0x25c], dh
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
jne 0x52ddc7
jmp 0x52c9cf
mov byte [esp + 0x25c], dh
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
jmp 0x52c9cf
mov eax, 0x16
mov byte [esp + 0x290], 0x21
mov edx, dword [esp + 0x2a8]
lea ecx, [edx + 0x1c]
mov dword [esp + 0x304], ecx
mov ecx, dword [edx + 0x1c]
test ecx, ecx
je 0x52d2d2
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
jne 0x52d346
cmp eax, 0xf
je 0x52d2e5
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x52d90e
mov byte [esp + 0x24f], 0xa
mov byte [esp + 0x2b0], 0x66
mov bl, 0x3e
mov byte [esp + 0x2a4], 0x12
mov byte [esp + 0x284], 0x47
mov ecx, dword [esp + 0x2a8]
lea eax, [ecx + 0x10]
mov dword [esp + 0x29c], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x2f4], eax
xor edi, edi
test eax, eax
mov eax, dword [esp + 0x240]
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2b4], eax
jne 0x52de98
jmp 0x52d9b9
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov edi, dword [esp + 0x2a8]
mov eax, 0xe
mov byte [esp + 0x250], 0xe
mov byte [esp + 0x2cc], 0x12
mov byte [esp + 0x24e], 0x1d
mov esi, dword [edi + 0x18]
mov edx, esi
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
mov dword [esp + 0x2d4], 0
cmp esi, edx
mov edx, esi
mov dword [esp + 0x264], ecx
mov dword [esp + 0x2e0], ecx
lea ecx, [edi + 0x18]
mov dword [esp + 0x2ec], ecx
mov esi, dword [esp + 0x2ac]
je 0x52dacb
mov dword [esp + 0x2ac], esi
mov ecx, dword [esp + 0x2d4]
lea edi, [ecx + ecx*2]
mov eax, dword [esp + 0x264]
mov esi, dword [eax + edi*4 + 8]
test esi, esi
je 0x52d48b
mov byte [esp + 0x2c0], bh
xor ebx, ebx
mov eax, edx
mov dword [esp + 0x274], edx
mov dword [esp + 0x2e4], ecx
jmp 0x52d44e
mov dword [esp + 0x2e4], 6
mov eax, ebx
not eax
and eax, 1
add eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp], esi
call fcn.004936c0
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov dword [eax + edi*4 + 8], 0
mov eax, dword [esp + 0x2ec]
mov eax, dword [eax]
test ebx, ebx
je 0x52d410
mov cl, 1
test cl, cl
je 0x52d410
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x23c], eax
mov bh, byte [esp + 0x2c0]
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x2e4]
jmp 0x52d4be
mov dword [esp + 0x244], edx
mov dword [esp + 0x274], edx
mov dword [esp + 0x23c], ecx
mov ecx, dword [esp + 0x2ac]
mov eax, dword [esp + 0x294]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
jmp 0x52d4fe
mov byte [esp + 0x2bc], bl
cmp ecx, 6
mov edi, dword [esp + 0x2b8]
je 0x52d4f0
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x2ac]
jne 0x52cff3
jmp 0x52d4fe
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x2ac]
mov dword [esp + 0x2ac], ecx
mov dword [esp + 0x294], eax
mov eax, 0xf
mov ecx, 1
movzx edx, byte [esp + 0x24e]
cmp edx, 0x1d
mov bl, byte [esp + 0x2bc]
jne 0x52dc94
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
cmp ecx, eax
jne 0x52de98
mov byte [esp + 0x24e], 0x1d
mov bh, 0x24
mov eax, 3
mov edx, dword [esp + 0x23c]
sub eax, edx
xor eax, edx
setne al
movzx ecx, al
add ecx, edx
mov eax, dword [esp + 0x244]
cmp ecx, eax
jb 0x52d595
mov edx, eax
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x2c4], edx
jne 0x52d7ad
jmp 0x52d622
mov dword [esp + 0x22c], ecx
jmp 0x52d622
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov eax, 9
mov byte [esp + 0x24e], 4
mov edx, dword [esp + 0x23c]
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
movzx esi, cl
add esi, edx
mov edi, dword [esp + 0x244]
cmp esi, edi
jae 0x52d6ec
mov ecx, esi
or ecx, 2
mov edx, esi
mov dword [esp + 0x22c], esi
xor edx, 2
add edx, ecx
mov dword [esp + 0x2c4], edi
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
mov bh, 0x24
je 0x52d711
mov ecx, 0xd
movzx eax, byte [esp + 0x2cc]
cmp eax, 0x12
mov edx, dword [esp + 0x274]
jne 0x52d66a
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov eax, dword [esp + 0x244]
mov dword [esp + 0x2c4], eax
mov esi, dword [esp + 0x2ac]
jmp 0x52da00
mov ecx, 1
mov byte [esp + 0x2cc], 0x12
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0x244]
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x22c]
mov dword [esp + 0x2d4], eax
mov eax, ecx
or eax, 2
mov edx, ecx
xor edx, 2
add edx, eax
setne al
movzx eax, al
cmp ecx, eax
jne 0x52cb33
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov edx, dword [esp + 0x274]
mov esi, dword [esp + 0x2ac]
jmp 0x52d3c7
mov dword [esp + 0x22c], esi
mov dword [esp + 0x2c4], edi
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
mov bh, 0x24
cmp eax, 9
je 0x52d7ad
xor eax, eax
test al, al
jne 0x52d7ad
mov eax, 7
movzx ecx, byte [esp + 0x278]
cmp ecx, 0x53
je 0x52d918
mov byte [esp + 0x278], 0x53
mov edx, dword [esp + 0x2ac]
lea eax, [edx + edx*2]
mov ecx, dword [esp + 0x258]
mov ecx, dword [ecx + eax*4 + 8]
test ecx, ecx
jne 0x52d825
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x2d0], esi
mov esi, 0x17
mov eax, ecx
mov dword [esp + 0x2e4], ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [esp + 0x260]
mov dword [esp + 0x26c], eax
mov dword [esp + 0x268], edx
jae 0x52c7e0
cmp esi, 0xf
jne 0x52c87d
jmp 0x52db8a
mov ecx, 0xa
movzx edx, bh
cmp edx, 0x24
je 0x52d812
mov eax, 0xd
cmp edx, 0x6f
je 0x52dd48
xor ecx, ecx
mov edx, dword [esp + 0x2e0]
jmp 0x52d802
mov eax, 4
mov bh, 0x6f
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esp + 0x304]
mov edx, dword [edx]
test ecx, ecx
je 0x52d7e0
mov dword [esp + 0x2e0], edx
jmp 0x52e087
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x2d0], esi
jmp 0x52dc59
mov dword [esp + 0x2e4], ecx
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x2d0], esi
jmp 0x52c7e0
mov eax, 0xe
mov bh, 0x24
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov edx, dword [esp + 0x304]
mov edx, dword [edx]
mov dword [esp + 0x2e0], edx
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x52d840
mov bl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2d0]
mov edi, dword [esp + 0x2b8]
cmp eax, 8
je 0x52d89f
xor eax, eax
test al, al
je 0x52e08c
mov dword [esp + 0x2b8], edi
mov edi, 6
mov byte [esp + 0x2a4], 0x12
mov eax, dword [esp + 0x2a0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x300]
mov eax, dword [eax]
mov ecx, dword [esp + 0x27c]
shl ecx, 4
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x29c]
mov eax, dword [eax]
mov dword [esp + 0x298], eax
jmp 0x52ddb7
mov eax, dword [esp + 0x2e0]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x304]
mov dword [eax], 0
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp eax, 7
je 0x52c775
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x52cbfe
jmp 0x52c775
mov byte [esp + 0x288], dl
mov byte [esp + 0x24f], 0x5d
mov byte [esp + 0x2b0], 0x66
mov bl, 0x3e
mov byte [esp + 0x2a4], 0x12
mov byte [esp + 0x284], 0x47
mov ecx, dword [esp + 0x2a8]
lea eax, [ecx + 0x10]
mov dword [esp + 0x29c], eax
mov eax, dword [ecx + 0x10]
xor edi, edi
test eax, eax
mov ecx, dword [esp + 0x240]
je 0x52d9a4
mov dword [esp + 0x2f4], eax
imul eax, eax
and eax, 3
cmp eax, 3
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x2b4], ecx
jne 0x52de98
jmp 0x52d9b9
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x2b4], ecx
movzx edx, byte [esp + 0x2b0]
cmp edx, 0x14
je 0x52db58
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov eax, 0x14
mov ecx, 0x17
cmp edx, 0x66
mov edx, dword [esp + 0x274]
mov esi, dword [esp + 0x2ac]
jne 0x52dacb
mov byte [esp + 0x2c0], bh
mov ebx, esi
xor eax, eax
cmp ecx, 0xd
mov esi, dword [esp + 0x22c]
mov edi, dword [esp + 0x264]
je 0x52daa3
xor ecx, ecx
test cl, cl
jne 0x52daa3
mov dword [esp + 0x274], edx
mov byte [esp + 0x2b0], 0x19
mov eax, dword [esp + 0x2b4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x300]
mov dword [eax], 0
mov dword [esp + 0x2ac], ebx
mov bl, byte [esp + 0x2bc]
mov edi, dword [esp + 0x2b8]
jmp 0x52db8a
mov byte [esp + 0x2cc], 0x30
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, dword [esp + 0x304]
mov edi, dword [ecx]
mov edx, dword [esp + 0x2c4]
mov dword [esp + 0x2d4], esi
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x52da70
mov dword [esp + 0x264], edi
mov esi, ebx
mov bh, byte [esp + 0x2c0]
jmp 0x52d3c7
cmp eax, 0xe
je 0x52e08c
xor eax, eax
test al, al
jne 0x52e08c
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x274], edx
mov ebx, esi
xor esi, esi
mov byte [esp + 0x2b0], al
mov edi, dword [esp + 0x2b8]
jmp 0x52db35
mov byte [esp + 0x2b0], 0x66
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x2b4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x300]
mov dword [eax], 0
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x52db00
mov dword [esp + 0x2ac], ebx
mov bl, byte [esp + 0x2bc]
jmp 0x52db8a
mov byte [esp + 0x2c0], bh
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2b0], 0x14
mov eax, dword [esp + 0x2b4]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x300]
mov dword [eax], 0
mov dl, byte [esp + 0x288]
movzx ecx, dl
cmp ecx, 0x24
mov esi, dword [esp + 0x2d0]
je 0x52cedb
mov eax, 8
cmp ecx, 0x28
jne 0x52dc14
mov bh, byte [esp + 0x2c0]
cmp eax, 6
je 0x52d934
mov eax, 5
mov byte [esp + 0x288], 0x64
mov byte [esp + 0x290], 0x19
mov byte [esp + 0x25c], 0x33
mov edx, dword [esp + 0x2a8]
lea ecx, [edx + 0xc]
mov dword [esp + 0x2fc], ecx
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x52dc8d
mov ecx, edx
and ecx, 1
xor ecx, edx
mov dword [esp + 0x248], edx
not ecx
test ecx, ecx
jne 0x52dddc
jmp 0x52dc94
mov eax, 0x12
mov ecx, 6
mov byte [esp + 0x288], 0x24
mov byte [esp + 0x290], 0x19
mov byte [esp + 0x25c], 0x33
mov esi, dword [esp + 0x2a8]
lea edx, [esi + 0xc]
mov dword [esp + 0x2fc], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x248], edx
test edx, edx
jne 0x52ca51
cmp ecx, 6
mov esi, dword [esp + 0x2d0]
jne 0x52dc71
mov bh, byte [esp + 0x2c0]
jmp 0x52dddc
mov eax, 0xe
mov bh, 7
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 0x2e0], ecx
jmp 0x52de80
mov dword [esp + 0x248], edx
cmp eax, 5
jne 0x52d5a1
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x52d5a1
mov eax, 0xa
mov cl, byte [esp + 0x25c]
movzx ecx, cl
cmp ecx, 0x33
jne 0x52dd48
mov ecx, 5
mov byte [esp + 0x270], 0x34
mov edx, dword [esp + 0x2a8]
lea eax, [edx + 8]
mov dword [esp + 0x2c8], eax
mov esi, dword [edx + 8]
mov dword [esp + 0x28c], 0
test esi, esi
jne 0x52dfad
mov byte [esp + 0x25c], 0x33
mov eax, 0xb
mov edx, 3
sub edx, esi
xor edx, esi
mov dword [esp + 0x294], esi
mov edx, dword [esp + 0x248]
mov dword [esp + 0x280], edx
mov esi, edx
je 0x52dfcc
cmp eax, 9
je 0x52d1ad
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x52ddc7
jmp 0x52d1ad
mov dword [esp + 0x2b8], edi
mov edx, dword [esp + 0x2a8]
cmp eax, 0xa
jne 0x52deef
mov edi, 0x12
mov ecx, 7
mov byte [esp + 0x25c], 0x54
mov byte [esp + 0x270], 0x34
mov dword [esp + 0x2a8], edx
lea eax, [edx + 8]
mov dword [esp + 0x2c8], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x294], eax
mov dword [esp + 0x28c], 0
test eax, eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x280], eax
mov esi, eax
jne 0x52d4be
cmp edi, 6
mov edi, dword [esp + 0x2b8]
je 0x52cbfe
mov dword [esp], esi
call fcn.004936c0
mov eax, dword [esp + 0x2fc]
mov dword [eax], 0
mov eax, 9
mov dl, byte [esp + 0x290]
movzx ecx, dl
cmp ecx, 0x19
jne 0x52df0b
cmp eax, 2
jne 0x52d2a0
mov byte [esp + 0x290], dl
mov eax, 0xc
mov bl, 0x6b
mov ecx, dword [esp + 0x300]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x2d8]
mov dword [esp + 0x2f4], ecx
mov edi, dword [esp + 0x2f0]
mov dword [esp + 0x2dc], edx
cmp eax, 7
jne 0x52de98
xor ecx, ecx
jmp 0x52de6d
mov eax, 0x19
mov bl, 0x3e
inc ecx
mov edx, dword [esp + 0x300]
mov edx, dword [edx]
mov dword [esp + 0x2dc], edx
mov edx, dword [esp + 0x2d8]
mov dword [esp + 0x2f4], edx
mov edi, dword [esp + 0x2f0]
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x52de40
cmp eax, 0xe
je 0x52e08c
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52e08c
movzx eax, byte [esp + 0x284]
cmp eax, 0x40
jne 0x52df3b
mov eax, 0x10
mov byte [esp + 0x284], 0x47
mov ecx, edi
shl ecx, 4
mov edx, dword [esp + 0x2dc]
mov ecx, dword [edx + ecx + 0xc]
mov dword [esp + 0x2a0], ecx
test ecx, ecx
mov dword [esp + 0x27c], edi
mov ecx, dword [esp + 0x2f4]
mov dword [esp + 0x298], ecx
jne 0x52e071
jmp 0x52d918
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
xor ecx, ecx
mov dword [esp + 0x2a8], edx
jmp 0x52d865
mov eax, dword [esp + 0x2a8]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x52d90e
mov byte [esp + 0x290], 0x19
mov eax, dword [esp + 0x2a8]
lea eax, [eax + 0x1c]
mov dword [esp + 0x304], eax
jmp 0x52d346
mov eax, 0xa
mov byte [esp + 0x284], 0x40
mov ecx, edi
shl ecx, 4
mov edx, dword [esp + 0x2dc]
mov edx, dword [edx + ecx + 0xc]
test edx, edx
jne 0x52df8c
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x2a0], edx
mov ecx, dword [esp + 0x2f4]
mov dword [esp + 0x298], ecx
mov dword [esp + 0x27c], edi
jne 0x52cbfe
jmp 0x52e03f
mov dword [esp + 0x2a0], edx
mov ecx, dword [esp + 0x2f4]
mov dword [esp + 0x298], ecx
mov dword [esp + 0x27c], edi
jmp 0x52e03f
mov dword [esp + 0x294], esi
mov byte [esp + 0x25c], 0x33
mov eax, dword [esp + 0x248]
mov dword [esp + 0x280], eax
mov esi, eax
cmp ecx, 5
jne 0x52dfeb
mov byte [esp + 0x2bc], bl
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x2ac]
jmp 0x52cff3
mov eax, 1
mov edx, dword [esp + 0x238]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov ecx, dword [esp + 0x254]
cmp edx, ecx
jae 0x52e030
mov byte [esp + 0x270], 0x34
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
mov dword [esp + 0x234], edx
jne 0x52d1ad
jmp 0x52e03f
mov dword [esp + 0x234], edx
mov byte [esp + 0x270], 0x34
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
cmp eax, ecx
jne 0x52e071
mov byte [esp + 0x2bc], bl
mov byte [esp + 0x2c0], bh
xor eax, eax
mov dh, byte [esp + 0x25c]
jmp 0x52d20c
mov eax, 8
movzx ecx, byte [esp + 0x2a4]
cmp ecx, 0xb
jne 0x52d890
cmp eax, 4
jne 0x52e09c
movzx eax, byte [esp + 0x250]
cmp eax, 0x20
jmp 0x52d8f2
mov dword [esp + 0x2b8], edi
mov dword [esp + 0x2d0], esi
mov byte [esp + 0x2bc], bl
mov byte [esp + 0x2c0], bh
xor esi, esi
mov edi, dword [esp + 0x27c]
shl edi, 4
mov byte [esp + 0x2a4], al
jmp 0x52cbc7
mov eax, dword [ebp + 0x40]
test eax, eax
setne byte [esp + 0x8a]
mov edx, dword [ebp + 0x28]
mov edi, dword [esp + 0x2ec]
mov esi, dword [esp + 0x2fc]
je 0x52e0fd
mov dword [eax + 4], 0
mov dword [eax], 0
test edx, edx
sete al
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
or cl, al
mov byte [esp + 0x18f], cl
je 0x52e13e
mov eax, 6
mov dword [esp + 0x1f8], 0
mov esi, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1fc]
jmp 0x52f0ba
mov cl, 0x4a
mov eax, 0x11
movzx ecx, cl
cmp ecx, 0x40
je 0x52e163
mov eax, 0x1c
cmp ecx, 0x4a
jne 0x52e173
mov eax, 4
mov ecx, dword [edx]
jmp 0x535f28
mov dword [esp + 0x1f8], 0
jmp 0x53326c
mov dword [esp + 0x1f8], 0
jmp 0x52ed81
mov eax, 9
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [edi]
test ecx, ecx
je 0x52e190
mov edi, dword [esp + 0x304]
jmp 0x52f3ed
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x1a8], esi
xor eax, eax
test al, al
je 0x52f497
call fcn.0044c050
mov esi, eax
mov edi, edx
lea eax, [esp + 0x3d0]
mov dword [esp], eax
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x3d0], 0x28
lea eax, [esp + 0x3d8]
mov dword [esp + 0x2f8], eax
mov eax, dword [esp + 0x3d4]
mov ebx, dword [esp + 0x3d8]
lea ecx, [ebx + ebx*2]
lea ecx, [ecx*8 + 0x18]
lea edx, [esp + 0x3d4]
mov dword [esp + 0x304], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00492a60
test eax, eax
jne 0x52e294
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x52e294
mov dword [esp + 0x154], ebx
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], esi
mov ecx, 1
mov dword [esp + 0x2fc], 0x70000003
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
jmp 0x535136
mov cl, 0x5f
movzx ecx, cl
cmp ecx, 0x30
je 0x52e387
cmp ecx, 0x73
jne 0x52e472
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], esi
mov esi, 0x15
mov dword [esp + 0x3d4], eax
mov ecx, dword [esp + 0x3d8]
mov edx, ecx
or edx, 2
mov edi, ecx
xor edi, 2
add edi, edx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x3d8], edx
lea ecx, [ebx*8]
mov dword [esp + 0x154], ebx
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x10
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x3d4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x114], eax
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
jne 0x53385a
jmp 0x5343e3
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], esi
mov esi, 0xa
mov dword [esp + 0x3d4], eax
mov ecx, dword [esp + 0x3d8]
mov edx, ecx
or edx, 2
mov edi, ecx
xor edi, 2
add edi, edx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x3d8], edx
lea ecx, [ebx*8]
mov dword [esp + 0x154], ebx
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x10
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x3d4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x52e54d
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
jne 0x5343e3
jmp 0x530501
mov dword [esp + 0x144], edi
mov dword [esp + 0x148], esi
mov dword [esp + 0x3d4], eax
mov ecx, dword [esp + 0x3d8]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esp + 0x3d8], edx
lea ecx, [ebx*8]
mov dword [esp + 0x154], ebx
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x10
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 4], 0
mov eax, dword [esp + 0x3d4]
mov byte [eax + ecx + 8], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x10], 8
mov eax, dword [esp + 0x3d4]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov dword [esp + 0x114], eax
test eax, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x52e56e
mov edi, 0xf
xor eax, eax
test al, al
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
je 0x52e588
jmp 0x5343e3
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
jmp 0x530501
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x300], eax
mov dword [esp + 0x23c], eax
jmp 0x5343e3
cmp edi, 4
je 0x53170f
mov eax, dword [esp + 0x1dc]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x114]
mov dword [esp], esi
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0x154]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
mov edx, dword [esp + 0x23c]
test edx, edx
sete al
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
setne cl
and cl, al
movzx eax, cl
cmp eax, 1
jne 0x52e616
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
test eax, eax
jne 0x52e616
mov byte [esp + 0x1f3], 0x10
mov byte [esp + 0xd3], cl
mov esi, 8
or byte [esp + 0x3c8], 2
jmp 0x530129
mov byte [esp + 0x1f3], 0x10
mov byte [esp + 0xd3], cl
movzx eax, byte [esp + 0x1f3]
cmp eax, 0x10
je 0x52e690
cmp eax, 0x3c
jne 0x52e6f6
mov edi, 0x17
mov eax, dword [esp + 0x2f8]
mov esi, dword [eax]
lea eax, [esi + esi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x52e754
xor ecx, ecx
test cl, cl
jne 0x52e754
mov byte [esp + 0x1f3], 0x3c
mov cl, 0x66
mov ebx, dword [esp + 0x2f8]
jmp 0x52e796
mov byte [esp + 0x1f3], 0x6a
mov ebx, dword [esp + 0x2f8]
mov esi, dword [ebx]
lea eax, [esi + esi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x52e788
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x52e78c
mov dword [esp + 0x124], esi
mov byte [esp + 0x1f3], 0x6a
jmp 0x5343e3
mov byte [esp + 0x1f3], 0x10
mov ebx, dword [esp + 0x2f8]
mov esi, dword [ebx]
lea eax, [esi + esi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x52e790
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x52e794
mov dword [esp + 0x124], esi
mov byte [esp + 0x1f3], 0x10
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x70000003
mov dword [esp + 0x124], esi
mov byte [esp + 0x1f3], 0x3c
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov ebx, dword [esp + 0x2d0]
jmp 0x5358c6
mov cl, 0x66
jmp 0x52e796
mov cl, 0x66
jmp 0x52e796
mov cl, 0x66
jmp 0x52e796
mov cl, 0x66
movzx ecx, cl
cmp ecx, 0x54
je 0x52e855
cmp ecx, 0x7c
jne 0x52e908
mov cl, 0x75
mov dword [esp + 0x1ec], ecx
mov edi, dword [esp + 0x304]
mov dword [edi], eax
mov ecx, dword [ebx]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov dword [esp + 0x2f8], ebx
lea ecx, [esi*8]
mov dword [esp + 0x124], esi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0xe
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0xbc], eax
test eax, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x5343e3
xor eax, eax
test al, al
je 0x536911
jmp 0x5343e3
mov edi, dword [esp + 0x304]
mov dword [edi], eax
mov ecx, dword [ebx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [ebx], ecx
mov dword [esp + 0x2f8], ebx
lea ecx, [esi*8]
mov dword [esp + 0x124], esi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0xe
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov esi, 5
mov al, 0x75
mov dword [esp + 0x1ec], eax
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x52e9b2
mov ecx, eax
mov dword [esp + 0xbc], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x5343e3
jmp 0x5368fd
mov edi, dword [esp + 0x304]
mov dword [edi], eax
mov ecx, dword [ebx]
mov edx, ecx
or edx, 2
mov dword [esp + 0x2f8], ebx
mov dword [esp + 0x124], esi
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov ecx, dword [esp + 0x124]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0xe
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], 4
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov al, 0x75
mov dword [esp + 0x1ec], eax
mov dword [esp], 4
call fcn.00492770
mov dword [esp + 0xbc], eax
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x536911
jmp 0x5343e3
mov dword [esp + 0xbc], eax
jmp 0x5368fd
lea eax, [esp + 0x3c8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov edi, dword [esp + 0x304]
mov eax, dword [edi]
mov ecx, dword [esp + 0x124]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x390]
mov dword [esp], eax
mov dword [esp + 4], 0x29
call fcn.00446640
mov eax, dword [esp + 0x2f8]
mov esi, dword [eax]
lea eax, [esi + esi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x52ea63
mov dword [esp + 0x1ec], 0
mov dword [esp + 0xac], esi
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
mov dword [esp + 0x2fc], 0x70000003
test ecx, ecx
jne 0x5343e3
jmp 0x52ea75
mov dword [esp + 0x1ec], 0
mov dword [esp + 0xac], esi
mov edx, dword [esp + 0x304]
mov dword [edx], eax
mov edi, dword [esp + 0x2f8]
inc dword [edi]
mov esi, dword [esp + 0xac]
lea ecx, [esi*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x25
mov eax, dword [edx]
mov dword [eax + ecx + 4], 0
mov eax, dword [edx]
mov byte [eax + ecx + 8], 0
mov eax, dword [edx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edx]
mov dword [eax + ecx + 0x10], 0x29
mov eax, dword [edx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], 0x29
call fcn.00492770
mov ebx, eax
test ebx, ebx
jne 0x52eb07
mov eax, ebx
not eax
and eax, 1
add eax, ebx
je 0x52eb07
mov dword [esp + 0xc8], ebx
mov ecx, 0xd
mov dword [esp + 0x2fc], 0x70000003
jmp 0x5368c0
mov al, 0xc
movzx eax, al
cmp eax, 0xc
je 0x52ebde
cmp eax, 0x6a
jne 0x52ec87
mov dword [esp + 0x290], 0x1a
mov byte [esp + 0xff], 0xd
lea eax, [esp + 0x390]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], 0x29
call fcn.007c51d0
mov edi, dword [esp + 0x304]
mov eax, dword [edi]
lea ecx, [esi + esi*2]
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esp + 0xc8], ebx
lea eax, [esp + 0x3e0]
mov dword [esp + 0x74], eax
call fcn.0044c050
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x3e0], eax
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x52ecb1
mov edx, 0xd
mov dword [esp + 0x80], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x534213
jmp 0x536569
mov byte [esp + 0xff], 0xd
lea eax, [esp + 0x390]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], 0x29
call fcn.007c51d0
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
lea ecx, [esi + esi*2]
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esp + 0xc8], ebx
lea eax, [esp + 0x3e0]
mov dword [esp + 0x74], eax
call fcn.0044c050
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x3e0], eax
mov eax, dword [edi]
mov dword [esp + 0x84], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x52ecbd
mov ecx, eax
mov dword [esp + 0x80], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x534291
jmp 0x52ecc4
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x2fc], 0x70000003
mov esi, 3
mov bl, byte [esp + 0x213]
mov edx, dword [esp + 0x20c]
jmp 0x5307a8
mov dword [esp + 0x80], eax
jmp 0x536569
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x304]
mov dword [esi], ecx
mov eax, dword [esp + 0x2f8]
inc dword [eax]
mov edi, dword [esp + 0x84]
lea eax, [edi*8]
lea eax, [eax + eax*2]
mov dword [ecx + eax], 4
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0x10], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov dword [esp], 8
call fcn.00492770
mov ebx, eax
test ebx, ebx
je 0x534291
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esi]
lea ecx, [edi + edi*2]
mov dword [eax + ecx*8 + 0x14], ebx
mov eax, 0xe
mov ebx, 0xc
test byte [esp + 0xd3], 1
mov edi, dword [esp + 0x2ec]
mov esi, dword [esp + 0x2fc]
jne 0x52ee68
cmp eax, 0xe
je 0x52edd6
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52edd6
xor eax, eax
mov edx, dword [ebp + 0x28]
mov esi, dword [esp + 0x1f8]
jmp 0x52edb0
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc eax, 0
mov esi, dword [edx]
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x52eda0
mov dword [esp + 0x1f8], esi
mov dword [esp + 0x2ec], edi
jmp 0x52e1d3
mov eax, 0xb
mov byte [esp + 0xd2], 0x6b
mov ecx, dword [esp + 0x23c]
mov edx, dword [ecx]
test edx, edx
jne 0x52ee36
mov dword [esp + 0x2fc], esi
mov byte [esp + 0xaa], 0x69
mov byte [esp + 0x2d4], 0x3b
mov byte [esp + 0xeb], 0x4f
mov byte [esp + 0x62], 0x66
mov byte [esp + 0x63], 0x21
mov ecx, 9
mov esi, edx
mov dword [esp + 0x220], esi
not edx
and edx, 1
add edx, esi
jne 0x52fe6a
jmp 0x52ee94
mov dword [esp + 0x2fc], esi
mov dword [esp + 0x220], edx
mov byte [esp + 0xaa], 0x69
mov byte [esp + 0x2d4], 0x3b
mov byte [esp + 0xeb], 0x4f
mov byte [esp + 0x62], 0x66
mov byte [esp + 0x63], 0x21
jmp 0x52ee94
mov dword [esp + 0x2fc], esi
mov dword [esp + 0x2ec], edi
cmp ebx, 0xc
jne 0x5343e3
mov eax, ebx
or eax, 2
xor ebx, 2
add ebx, eax
jne 0x52f4c1
jmp 0x5343e3
mov dword [esp + 0x2ec], edi
cmp eax, 0xb
je 0x52eeaa
xor eax, eax
test al, al
je 0x535ffc
mov edx, dword [esp + 0x220]
mov ecx, dword [edx + 0xc]
mov ebx, dword [ecx]
cmp ebx, 0xfffffff0
je 0x52eee7
mov esi, 0xd
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
je 0x52eee7
mov dword [esp + 0x118], ecx
mov dword [esp + 0x1b0], edx
mov edi, dword [esp + 0x2ec]
jmp 0x534dab
mov dword [esp + 0x190], ebx
mov dword [esp + 0x118], ecx
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov eax, dword [esp + 0x2f8]
mov edi, dword [eax]
lea eax, [edi + edi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x52eff6
mov dword [esp + 0xb0], esi
mov dword [esp + 0x128], ebx
xor ecx, ecx
test cl, cl
jne 0x52f00d
mov ebx, dword [esp + 0x304]
mov dword [ebx], eax
mov esi, dword [esp + 0x2f8]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esi], ecx
lea ecx, [edi*8]
mov dword [esp + 0x1a8], edi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x12
mov eax, dword [ebx]
mov dword [eax + ecx + 4], 0xfffffff0
mov eax, dword [ebx]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0xb0]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
mov esi, edx
mov edi, 3
mov dword [esp], esi
call fcn.00492770
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
mov eax, dword [esp + 0x220]
mov dword [esp + 0x1b0], eax
jne 0x535c08
mov dword [esp + 0x1a8], edi
mov dword [esp + 0x128], ebx
mov dword [esp + 0xb0], esi
jmp 0x52f014
mov dword [esp + 0x1a8], edi
mov eax, dword [esp + 0x220]
mov dword [esp + 0x1b0], eax
jmp 0x5343e3
mov bl, 0x36
inc esi
mov dword [esp + 8], edi
mov eax, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x52f030
mov byte [esp + 0x62], bl
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov eax, 0xb
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x1a8]
lea edx, [esi + esi*2]
mov edi, dword [esp + 0x1fc]
mov dword [ecx + edx*8 + 0x14], edi
mov ecx, edi
cmp eax, 6
jne 0x52e1bb
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x1a8], esi
jmp 0x52e1d3
mov eax, ebx
shr eax, 0x18
cmp eax, 1
je 0x52f0e5
cmp eax, 4
jne 0x52f104
mov dword [esp + 0x220], edx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x98], eax
mov byte [esp + 0xd2], 0x6b
jmp 0x52f12d
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2dc], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x2e4], eax
mov esi, dword [esp + 0x190]
mov dword [esp], esi
call fcn.0068e2e0
mov ebx, eax
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0x168], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov edi, dword [esp + 0x304]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x52f1b0
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x52f1b0
mov dword [esp + 0x2fc], 0x70000003
jmp 0x5343e3
mov ecx, esi
and ecx, 0xffffff
mov dword [edi], eax
mov edi, dword [esp + 0x2f8]
mov edx, dword [edi]
mov esi, edx
and esi, 1
xor esi, edx
cmp esi, 0xffffffff
mov dword [esp + 0x2fc], ebx
setne bl
movzx esi, bl
add esi, edx
mov dword [edi], esi
mov esi, dword [esp + 0x304]
mov edx, dword [esp + 0x168]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov edi, dword [esp + 0x2fc]
mov dword [eax + edx], edi
mov eax, dword [esi]
mov dword [eax + edx + 4], ecx
mov eax, dword [esi]
mov ecx, dword [esp + 0x98]
mov byte [eax + edx + 8], cl
mov eax, dword [esi]
mov dword [eax + edx + 0xc], 0
mov eax, dword [esi]
mov ecx, dword [esp + 0x2e4]
mov dword [eax + edx + 0x10], ecx
mov eax, dword [esi]
mov dword [eax + edx + 0x14], 0
mov dword [esp], ecx
call fcn.00492770
test eax, eax
je 0x52f26d
mov dword [esp + 0x2fc], 0x70000003
mov esi, 6
mov ecx, eax
mov dword [esp + 0x1f4], eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x536858
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x70000003
mov dword [esp + 0x1f4], eax
jmp 0x5343e3
mov byte [esp + 0xeb], 0x4f
mov ecx, dword [esp + 0x2e4]
test ecx, ecx
jne 0x52f331
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
mov ebx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x304]
jne 0x52f385
jmp 0x52f33f
mov ebx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x304]
mov dword [esp + 0x304], edi
xor esi, esi
mov edi, 3
jmp 0x52f370
inc esi
mov eax, dword [esp + 0x2e4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c51d0
dec edi
mov eax, esi
xor eax, edi
setne al
movzx eax, al
cmp esi, eax
jb 0x52f350
mov edi, dword [esp + 0x304]
mov ecx, 0xb
movzx edx, byte [esp + 0x2d4]
cmp edx, 0x3b
je 0x52f3cc
mov eax, 1
cmp edx, 0x5a
jne 0x52f3e6
mov byte [esp + 0x2d4], 0x5d
mov eax, dword [edi]
mov dword [esp + 0x304], edi
mov ecx, dword [esp + 0x168]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
mov dword [esp + 0x1f4], ebx
jmp 0x52f497
mov dword [esp + 0x304], edi
mov dword [esp + 0x1f4], ebx
mov bl, byte [esp + 0x1eb]
jmp 0x536bb5
mov edx, dword [esp + 0x1f8]
mov dword [esp + 0x1f8], edx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jne 0x52f465
xor eax, eax
mov ecx, dword [esp + 0x168]
lea ecx, [ecx + ecx*2]
jmp 0x52f442
mov byte [esp + 0x2d4], 0x5a
mov edx, eax
or edx, 2
mov esi, eax
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [edi]
mov dword [edx + ecx*8 + 0x14], ebx
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x52f420
mov dword [esp + 0x304], edi
mov dword [esp + 0x1f4], ebx
jmp 0x52f497
mov dword [esp + 0x1f4], ebx
jmp 0x52e1d3
mov byte [esp + 0x2d4], 0x3b
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0x168]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x1f4]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x1b0]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x52f657
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x220], ecx
not eax
test eax, eax
je 0x52eeaa
mov cl, 0x46
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
test eax, eax
jne 0x52f4d8
mov edi, dword [esp + 0x2ec]
jmp 0x534de2
mov byte [esp + 0x1a3], 0x46
mov dword [esp + 0x314], 0
mov dword [esp + 0x310], 0
mov ecx, dword [esp + 0x2e8]
mov dword [esp + 0x320], ecx
mov dword [esp + 0x400], 0
mov dword [esp + 0x3fc], 0
lea esi, [esp + 0x3e8]
mov dword [esp + 0x3e8], 4
lea ebx, [esp + 0x3ec]
mov dword [esp + 0x3ec], 2
lea edi, [esp + 0x3f0]
mov dword [esp + 0x3f0], ecx
lea ecx, [esp + 0x3f4]
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x3f4], eax
lea eax, [esp + 0x3f8]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x3f8], 0xfffffffc
lea eax, [esp + 0x3fc]
mov dword [esp + 8], eax
lea eax, [esp + 0x400]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52f663
mov dword [esp + 0x1cc], edi
mov al, 0x4d
lea edx, [esp + 0x3e8]
mov edi, 0x19
movzx ecx, al
cmp ecx, 3
je 0x52f67d
mov eax, 0xf
cmp ecx, 0x48
jne 0x52f697
lea eax, [esp + 0x3e8]
mov dword [esp + 0x204], eax
mov esi, 5
mov edi, dword [esp + 0x3fc]
mov eax, dword [esp + 0x400]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0x10c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x52f6b1
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
je 0x52f6b1
mov dword [esp + 0x220], ecx
jmp 0x52eeaa
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x204], esi
jmp 0x52faa9
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x204], edx
mov ebx, dword [esp + 0xe0]
jmp 0x5339a0
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x204], edx
mov esi, dword [esp + 0x274]
jmp 0x53681d
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x230], edi
mov ecx, dword [ebp + 0x28]
mov edx, dword [esp + 0x130]
jmp 0x5323c2
movzx ecx, bl
cmp ecx, 0x12
je 0x52f77d
cmp ecx, 0x60
mov edi, dword [esp + 0x230]
jne 0x52f81b
mov edi, dword [esp + 0x304]
mov dword [edi], eax
mov esi, dword [esp + 0x2f8]
mov ecx, dword [esi]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov dword [esi], ecx
mov ecx, dword [esp + 0x10c]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 3
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffc
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov edx, dword [esp + 0x230]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
test eax, eax
je 0x52f8ae
mov eax, 8
mov byte [esp + 0x24e], 0x3b
mov ecx, dword [esp + 0x230]
test ecx, ecx
je 0x52f8e6
mov edx, 0xe
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x53200f
cmp eax, 2
jne 0x52fa8b
jmp 0x5366a6
mov esi, 0x18
mov byte [esp + 0x24e], 0x53
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
add ebx, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x200]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x258]
mov dword [esp], eax
call fcn.007c51d0
mov eax, ebx
and eax, 1
xor eax, ebx
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp ebx, eax
jb 0x52f900
mov edi, dword [esp + 0x2ec]
cmp esi, 0xf
jne 0x52f996
mov eax, esi
not eax
and eax, 1
add eax, esi
je 0x52f996
mov ecx, dword [esp + 0x234]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
jne 0x52f9a2
mov ebx, dword [esp + 0x160]
mov esi, dword [esp + 0x294]
jmp 0x5309e8
mov dword [esp + 0x2ec], edi
jmp 0x52fa8b
mov dword [esp + 0x2ec], edi
mov al, 0xf
movzx eax, al
xor edi, edi
cmp eax, 0x3d
jne 0x52fa21
mov ebx, dword [esp + 0x160]
mov esi, dword [esp + 0x294]
jmp 0x52fa02
mov eax, 3
sub eax, edi
xor eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x52f9d0
mov ebx, dword [esp + 0x160]
jmp 0x52fa67
test edi, edi
jne 0x52fa78
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10c]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x258]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esp + 0x400]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x408], 0
mov dword [esp + 0x404], 0
mov ecx, dword [esp + 0x204]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1c8]
mov dword [ecx], 2
mov ecx, dword [esp + 0x2e8]
mov edx, dword [esp + 0x1cc]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [ecx], eax
test eax, eax
mov eax, dword [esp + 0x1d0]
mov dword [eax], 0xfffffffd
je 0x52fc04
mov al, 0x5a
movzx eax, al
cmp eax, 0x5a
je 0x52fb76
cmp eax, 0x67
jne 0x52fbba
mov esi, 0xf
lea eax, [esp + 0x404]
mov dword [esp + 8], eax
lea eax, [esp + 0x408]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52fc04
mov eax, dword [esp + 0x408]
mov dword [esp], eax
call fcn.004936c0
lea esi, [esp + 0x318]
mov dword [esp + 0x318], 3
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x324], eax
lea eax, [esp + 0x38c]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00594ba0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x52fd35
mov byte [esp + 0x244], 0x41
lea eax, [esp + 0x318]
mov dword [esp + 0x110], eax
mov esi, 0x13
mov ebx, 3
mov eax, dword [esp + 0x38c]
lea ecx, [esp + 0x388]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
mov dword [esp + 0x240], 0x7000002b
cmp eax, ecx
jne 0x536ded
mov dword [esp + 0x240], 0x7000002b
mov byte [esp + 0x244], 0x41
mov dword [esp + 0x110], esi
jmp 0x530541
mov esi, dword [esp + 0x404]
mov eax, dword [esp + 0x408]
mov dword [esp + 0x2a4], eax
mov ebx, dword [esp + 0x2f8]
mov eax, dword [ebx]
mov dword [esp + 0x1e4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov edi, dword [esp + 0x304]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x52fe27
mov dword [edi], eax
mov ecx, dword [ebx]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [ebx], edx
mov ecx, dword [esp + 0x1e4]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 5
mov eax, dword [edi]
mov dword [eax + ecx + 4], 0xfffffffd
mov eax, dword [edi]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edi]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edi]
mov dword [eax + ecx + 0x10], esi
mov eax, dword [edi]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], esi
call fcn.00492770
test eax, eax
jne 0x52fe33
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
je 0x52fe33
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x2e0], eax
jmp 0x52fc04
mov dword [esp + 0x2c4], esi
jmp 0x52fc04
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x2e0], eax
mov al, 0x36
mov ecx, 0xd
movzx edx, al
cmp edx, 0x36
mov edi, dword [esp + 0x2ec]
je 0x52fea6
mov eax, 0xf
mov ecx, 0x12
cmp edx, 0x4d
je 0x534be3
cmp ecx, 9
je 0x52feb9
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x52fec5
mov dword [esp + 0x2ec], edi
mov edi, 0xe
mov eax, 0xb
mov byte [esp + 0x22c], 0x34
cmp dword [esp + 0x2c4], 0
jne 0x535041
jmp 0x533ea3
mov ebx, dword [esp + 0x160]
mov esi, dword [esp + 0x294]
jmp 0x532782
mov dword [esp + 0x2ec], edi
jmp 0x52f4c1
mov dword [esp + 0x2ec], edi
jmp 0x52f4c1
mov esi, 0x17
mov dword [esp + 0x314], 0
mov dword [esp + 0x310], 0
mov eax, dword [esp + 0x388]
test eax, eax
je case.0x52ffbf.3
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je case.0x52ffbf.3
mov esi, 4
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx]
mov edx, dword [eax]
mov dword [esp + 0x90], edx
shr edx, 0x18
cmp dword [ecx + 0x14], 0
je 0x52fff5
xor ecx, ecx
test cl, cl
jne 0x52fff5
mov dword [esp + 0xc0], eax
mov esi, 0x10
lea edi, [edx - 1]
mov dword [esp + 0x78], edx
cmp edi, 4
ja case.0x52ffbf.3
mov eax, 0xa
mov ecx, 0xe
mov edx, 0x13
jmp dword [edi*4 + 0x7dbc74]
cmp esi, 0x10
jne 0x5305a1
mov ecx, dword [esp + 0x90]
cmp ecx, 0xffffffce
jne 0x5300d4
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x530147
jmp 0x5300d4
mov edi, eax
mov cl, byte [esp + 0xab]
cmp esi, 4
je 0x530020
xor eax, eax
test al, al
jne 0x530020
mov dword [esp + 0xc0], edi
mov dword [esp + 0x78], edx
mov byte [esp + 0xab], cl
jmp 0x530d83
movzx eax, cl
cmp eax, 0x36
je 0x530053
cmp eax, 0x6e
jne 0x53008f
mov dword [esp + 0xc0], edi
mov byte [esp + 0xab], 0x39
cmp edx, 5
je 0x5300bc
cmp edx, 2
mov dword [esp + 0x78], edx
je 0x530147
jmp 0x5300d4
mov dword [esp + 0xc0], edi
mov byte [esp + 0xab], 0x6e
cmp edx, 2
je 0x5300c5
mov esi, 0x11
cmp edx, 5
mov dword [esp + 0x78], edx
je 0x530147
cmp esi, 0xf
jne 0x5300d4
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x52fd54
jmp 0x5300d4
mov dword [esp + 0xc0], edi
mov eax, 0xa
mov byte [esp + 0xab], 0x36
cmp edx, 2
je 0x5300cb
mov eax, 3
cmp edx, 5
mov dword [esp + 0x78], edx
je 0x5363c8
jmp 0x5300d4
mov dword [esp + 0x78], edx
jmp 0x530147
mov dword [esp + 0x78], edx
jmp 0x530147
mov dword [esp + 0x78], edx
jmp 0x534a27
mov eax, 0x13
mov cl, byte [esp + 0x24f]
movzx ecx, cl
cmp ecx, 0x3f
jne 0x536038
cmp esi, 4
jne 0x52e625
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x52ff3f
jmp 0x52e625
mov edi, 0x12
mov esi, 0x10
mov edx, dword [esp + 0x110]
mov dword [edx], 4
mov eax, dword [esp + 0xc0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc4]
mov dword [ecx], eax
lea eax, [esp + 0x310]
mov dword [esp + 8], eax
lea eax, [esp + 0x314]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x531469
cmp esi, 9
jne 0x5301bb
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x5303f8
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x38c], 0
mov dword [esp + 0x240], 0x7000000a
jmp 0x530541
mov ecx, 1
mov bl, 0x3e
mov eax, dword [esp + 0x388]
mov esi, 0xffffff
and esi, dword [eax + 4]
mov eax, dword [esp + 0x314]
cmp esi, dword [esp + 0x310]
jne 0x530363
mov dword [esp + 0x108], eax
mov eax, esi
or eax, 2
mov edx, esi
mov dword [esp + 0xb4], esi
xor edx, 2
add edx, eax
je 0x531437
mov byte [esp + 0x226], 0x3e
mov eax, dword [esp + 0xc4]
mov esi, dword [eax]
mov dword [esp], esi
call fcn.0068e2e0
mov ebx, eax
mov edi, dword [esp + 0x2f8]
mov eax, dword [edi]
mov dword [esp + 0x8c], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x530376
mov dword [esp + 0x2ac], ebx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x530386
mov ecx, esi
shr ecx, 0x18
mov dword [esp + 0x290], ecx
and esi, 0xffffff
mov ecx, dword [esp + 0x304]
mov dword [ecx], eax
mov ebx, dword [edi]
mov edi, ebx
or edi, 2
mov edx, ebx
xor edx, 2
add edx, edi
mov edi, dword [esp + 0x2f8]
setne dl
movzx edx, dl
add edx, ebx
mov dword [edi], edx
mov edx, dword [esp + 0x8c]
lea edx, [edx*8]
lea edx, [edx + edx*2]
mov ebx, dword [esp + 0x2ac]
mov dword [eax + edx], ebx
mov eax, dword [ecx]
mov dword [eax + edx + 4], esi
mov eax, dword [ecx]
mov ebx, dword [esp + 0x290]
mov byte [eax + edx + 8], bl
mov eax, dword [ecx]
mov dword [eax + edx + 0xc], 0
mov eax, dword [ecx]
mov esi, dword [esp + 0xb4]
mov dword [eax + edx + 0x10], esi
mov eax, dword [ecx]
mov dword [eax + edx + 0x14], 0
mov dword [esp], esi
call fcn.00492770
test eax, eax
jne 0x530396
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x530396
mov dword [esp + 0x94], eax
mov ecx, 0xd
mov dword [esp + 0x2ac], 0x70000003
mov edi, dword [esp + 0x2ec]
mov edx, dword [esp + 0x250]
jmp 0x533943
mov dword [esp + 0xb4], esi
mov dword [esp + 0x108], eax
jmp 0x531437
mov dword [esp + 0x2ac], 0x70000003
jmp 0x53395a
mov dword [esp + 0x2ac], 0x70000003
jmp 0x53395a
mov dword [esp + 0x94], eax
mov al, byte [esp + 0x6b]
movzx eax, al
cmp eax, 0xc
jne 0x5303d3
mov eax, 0xa
mov dword [esp + 0x2ac], 0x70000003
mov esi, dword [esp + 0x294]
mov edx, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x2c0]
jmp 0x5326d2
mov byte [esp + 0x6b], 0x34
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp esi, eax
mov dword [esp + 0x2ac], eax
je 0x53049c
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call fcn.007c51d0
mov dword [esp + 0x2ac], eax
jmp 0x53049c
mov bl, 0x2a
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp], edi
call fcn.004936c0
mov dword [esp + 0x314], 0
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x38c], 0
mov ecx, 0x70000001
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x530430
mov dword [esp + 0x240], ecx
mov byte [esp + 0x226], bl
jmp 0x530541
xor eax, eax
mov ecx, dword [esp + 0x8c]
lea ecx, [ecx + ecx*2]
mov ebx, dword [esp + 0x94]
jmp 0x5304eb
mov esi, 0x12
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
adc eax, 0
mov edx, dword [esp + 0x304]
mov edx, dword [edx]
mov dword [edx + ecx*8 + 0x14], ebx
mov dword [esp + 0x2ac], 0
mov edx, eax
or edx, 2
mov edi, eax
xor edi, 2
add edi, edx
setne dl
movzx edx, dl
cmp eax, edx
jb 0x5304c0
cmp esi, 0xa
je 0x52e591
xor eax, eax
test al, al
je 0x53395a
jmp 0x52e591
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x38c], 0
mov dword [esp + 0x240], ebx
mov dword [esp + 0xe0], ebx
mov dl, byte [esp + 0x244]
movzx eax, dl
cmp eax, 0x41
jne 0x53055a
mov byte [esp + 0x244], 0x49
jmp 0x53058e
xor eax, eax
jmp 0x530574
mov dl, 0x41
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add eax, ecx
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
cmp eax, ecx
jb 0x530560
mov byte [esp + 0x244], dl
mov eax, dword [esp + 0x240]
mov dword [esp + 0x2fc], eax
jmp 0x5343e3
mov edi, 0xc
mov byte [esp + 0x20b], 0x42
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x38c], 0
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx]
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x410], 0
mov dword [esp + 0x40c], 0
mov ecx, dword [esp + 0x204]
mov dword [ecx], 4
mov ecx, dword [esp + 0x1c8]
mov dword [ecx], 2
mov ecx, dword [esp + 0x2e8]
mov edx, dword [esp + 0x1cc]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [ecx], eax
mov eax, dword [esp + 0x1d0]
mov dword [eax], 0xfffffff9
jne 0x530652
mov esi, dword [esp + 0x19c]
mov dl, byte [esp + 0x16f]
mov ebx, dword [esp + 0x2fc]
jmp 0x533f9f
mov al, 0x16
movsx ecx, al
movzx eax, al
cmp ecx, 0x4c
jg 0x5306aa
cmp eax, 0x16
je 0x530706
cmp eax, 0x46
mov edi, dword [esp + 0x2ec]
jne 0x530883
lea eax, [esp + 0x40c]
mov dword [esp + 8], eax
lea eax, [esp + 0x410]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jmp 0x5306f3
cmp eax, 0x4d
je 0x530755
cmp eax, 0x5a
mov edi, dword [esp + 0x2ec]
jne 0x530883
lea eax, [esp + 0x40c]
mov dword [esp + 8], eax
lea eax, [esp + 0x410]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
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 0x534d32
jmp 0x5308e7
mov esi, 0xd
lea eax, [esp + 0x40c]
mov dword [esp + 8], eax
lea eax, [esp + 0x410]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
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
mov edi, dword [esp + 0x2ec]
jne 0x534d32
jmp 0x530f51
mov esi, 4
mov edi, 9
lea eax, [esp + 0x40c]
mov dword [esp + 8], eax
lea eax, [esp + 0x410]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
mov dword [esp], eax
call fcn.00593400
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov bl, byte [esp + 0x213]
mov edx, dword [esp + 0x20c]
jne 0x534d14
mov dword [esp + 0x20c], edx
cmp esi, 3
mov edi, dword [esp + 0x304]
jne 0x5308c7
mov byte [esp + 0x213], bl
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
mov eax, dword [esp + 0x2ec]
je 0x5308d7
mov byte [esp + 0xff], 0xd
lea eax, [esp + 0x390]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xc8]
mov dword [esp], esi
mov dword [esp + 8], 0x29
call fcn.007c51d0
mov eax, dword [edi]
mov ecx, dword [esp + 0xac]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x3e0]
mov dword [esp + 0x74], eax
call fcn.0044c050
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x3e0], eax
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5308db
mov edx, 7
mov dword [esp + 0x80], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x536371
jmp 0x534291
mov esi, 9
lea eax, [esp + 0x40c]
mov dword [esp + 8], eax
lea eax, [esp + 0x410]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x204]
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
je 0x5308e7
jmp 0x533321
mov byte [esp + 0x213], bl
mov edi, dword [esp + 0x2ec]
jmp 0x5308e7
mov edi, eax
jmp 0x5308e7
mov dword [esp + 0x80], eax
jmp 0x534291
mov dword [esp + 0x2ec], edi
mov eax, dword [esp + 0x40c]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x21c], eax
mov esi, dword [esp + 0x2f8]
mov edi, dword [esi]
lea eax, [edi + edi*2]
lea eax, [eax*8 + 0x18]
mov ebx, dword [esp + 0x304]
mov ecx, dword [ebx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x5309c9
mov dword [ebx], eax
mov ecx, dword [esi]
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add edx, ecx
mov dword [esi], edx
lea ecx, [edi*8]
mov dword [esp + 0xd8], edi
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 0x22
mov eax, dword [ebx]
mov dword [eax + ecx + 4], 0xfffffff9
mov eax, dword [ebx]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [ebx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [ebx]
mov edx, dword [esp + 0x234]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [ebx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x160], eax
test eax, eax
je 0x5309dc
mov esi, 0xf
xor eax, eax
test al, al
mov edi, dword [esp + 0x2ec]
je 0x52f957
jmp 0x534d32
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0x2ec]
jmp 0x534d32
mov edi, dword [esp + 0x2ec]
jmp 0x534d32
mov dword [esp + 0x294], esi
mov dword [esp + 0x160], ebx
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], ebx
jmp 0x534d32
mov eax, dword [ebp + 0x34]
lea ecx, [eax + 0xc]
mov eax, dword [eax + 0xc]
cmp dword [eax + 0x14], 0
je 0x530a3f
mov dword [esp + 0x214], eax
mov dword [esp + 0x238], ecx
mov byte [esp + 0x1a3], 0xe
xor eax, eax
test al, al
je 0x530a9e
jmp 0x530a55
mov dword [esp + 0x214], eax
mov dword [esp + 0x238], ecx
mov byte [esp + 0x1a3], 0xe
mov dword [esp + 0x2ec], edi
mov byte [esp + 0xdf], 0x31
mov edx, dword [esp + 0x214]
mov eax, dword [edx + 4]
test eax, eax
je 0x530a92
mov ecx, 0xc
imul eax, eax
and eax, 3
cmp eax, 2
mov dword [esp + 0xec], edx
jne 0x535581
mov dword [esp + 0xec], edx
jmp 0x53171e
mov dword [esp + 0x418], 0
mov dword [esp + 0x414], 0
mov dword [esp + 0x3e8], 4
mov dword [esp + 0x3ec], 2
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], 0
mov dword [esp + 0x3f8], 1
lea eax, [esp + 0x414]
mov dword [esp + 8], eax
lea eax, [esp + 0x418]
mov dword [esp + 4], eax
lea eax, [esp + 0x3e8]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x530c58
xor edi, edi
cmp edx, 0xb
mov ebx, 0xffffffff
je 0x530cf4
imul edx, edx
and edx, 3
cmp edx, 2
jne 0x530147
jmp 0x530cf4
mov esi, 6
mov byte [esp + 0x187], 0x18
inc edi
mov eax, dword [esp + 0x1a4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x194]
mov dword [esp], eax
call fcn.007c51d0
dec ebx
mov eax, edi
and eax, 1
xor eax, ebx
setne al
movzx eax, al
cmp edi, eax
jb 0x530cc0
mov cl, byte [esp + 0xab]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0xc0]
jmp 0x52fffe
xor esi, esi
cmp eax, 5
je 0x530d2d
xor eax, eax
test al, al
je 0x530147
mov bl, byte [esp + 0x187]
mov edi, dword [esp + 0x1a4]
jmp 0x530d61
mov bl, 0x58
inc esi
mov dword [esp + 8], edi
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x194]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp esi, eax
jb 0x530d40
mov dword [esp + 0x1a4], edi
mov byte [esp + 0x187], bl
mov ecx, dword [esp + 0x164]
mov eax, dword [esp + 0x194]
jmp 0x530dba
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x304]
mov dword [esp + 0x304], edx
mov dword [esp + 0x194], eax
mov dword [esp + 0x164], ecx
mov edx, dword [edx]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*8 + 0x14], eax
mov dword [esp + 0x214], eax
xor edi, edi
mov ebx, dword [esp + 0x238]
mov ecx, dword [esp + 0x214]
jmp 0x530e27
mov esi, 4
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x418]
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [ebx]
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp edi, eax
jb 0x530e00
mov dword [esp + 0x214], ecx
mov dl, byte [esp + 0x22c]
mov ebx, dword [esp + 0x2fc]
jmp 0x5327db
mov esi, 0x19
movzx ecx, al
cmp ecx, 2
mov ebx, dword [ebp + 0x2c]
je 0x530f51
mov eax, 0xd
cmp ecx, 0x3d
je 0x530f90
mov eax, 7
cmp ecx, 0x5e
jne 0x530f9c
mov dword [esp + 0x2ec], edi
mov eax, 0xf
mov byte [esp + 0x1e9], 0x34
mov edx, dword [ebx]
mov dword [esp + 0x174], edx
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x53501f
jmp 0x5366fe
cmp esi, 0xd
jne 0x530f66
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x5308e7
mov dword [esp + 0x2ec], edi
mov eax, 0x17
mov byte [esp + 0x1e9], 0x34
mov ecx, dword [ebx]
mov dword [esp + 0x174], ecx
test ecx, ecx
je 0x531324
jmp 0x53438e
mov esi, dword [esp + 0x294]
jmp 0x532f4c
mov edx, dword [esp + 0x250]
cmp eax, 7
je 0x530fc1
xor eax, eax
test al, al
jne 0x530fc1
mov dword [esp + 0x250], edx
mov dword [esp + 0x2ec], edi
jmp 0x53622a
mov dword [esp + 0x250], edx
mov dword [esp + 0x2ec], edi
mov eax, 7
mov ecx, 8
mov byte [esp + 0x1e9], 0x34
mov edx, dword [ebx]
mov dword [esp + 0x174], edx
test edx, edx
jne 0x53517e
jmp 0x536b55
lea eax, [esp + 0x32c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0x3e
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 + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00524b40
test eax, eax
jne 0x5310cf
mov eax, dword [esp + 0x2f8]
mov edi, dword [eax]
lea esi, [edi + edi*2]
lea eax, [esi*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x531166
mov edi, 4
mov esi, 0xb
mov dword [esp + 0x420], 0
mov dword [esp + 0x41c], 0
mov dword [esp + 0x3e8], 4
mov dword [esp + 0x3ec], 2
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x3f0], eax
mov dword [esp + 0x3f4], 0
mov dword [esp + 0x3f8], 2
lea eax, [esp + 0x41c]
mov dword [esp + 8], eax
lea eax, [esp + 0x420]
mov dword [esp + 4], eax
lea eax, [esp + 0x3e8]
mov dword [esp], eax
call fcn.00593400
test eax, eax
jne 0x52e588
cmp esi, 0xb
je 0x5313d4
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x5313d4
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov edi, dword [esp + 0x2d0]
jmp 0x5345ba
mov esi, dword [esp + 0x41c]
mov edi, dword [esp + 0x420]
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0xa4], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
jne 0x531487
mov ecx, 8
mov edx, 3
sub edx, eax
xor edx, eax
je 0x531487
mov dword [esp + 0x14c], edi
mov dword [esp + 0x7c], esi
mov bl, byte [esp + 0x226]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ecx, eax
jne 0x531516
movzx eax, bl
cmp eax, 0x2a
je 0x531522
mov edi, 5
cmp eax, 0x45
jne 0x5315af
cmp edi, 5
mov ecx, dword [esp + 0x240]
jne 0x5301e5
xor esi, esi
mov edi, dword [esp + 0x108]
jmp 0x530475
mov dword [esp + 0x14c], edi
mov edx, dword [esp + 0x304]
mov dword [edx], eax
mov ecx, dword [esp + 0x2f8]
inc dword [ecx]
mov ecx, dword [esp + 0xa4]
lea ecx, [ecx*8]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx], 6
mov eax, dword [edx]
mov dword [eax + ecx + 4], 2
mov eax, dword [edx]
mov byte [eax + ecx + 8], 0xff
mov eax, dword [edx]
mov dword [eax + ecx + 0xc], 0
mov eax, dword [edx]
mov dword [eax + ecx + 0x10], esi
mov eax, dword [edx]
mov dword [eax + ecx + 0x14], 0
mov dword [esp], esi
mov dword [esp + 0x7c], esi
call fcn.00492770
test eax, eax
je 0x531600
mov ecx, 4
mov edx, eax
and edx, 1
inc edx
xor edx, eax
mov dword [esp + 0x134], eax
jne 0x5353b5
jmp 0x53170f
mov byte [esp + 0x226], bl
jmp 0x53170f
mov byte [esp + 0x226], bl
xor edi, edi
mov ebx, dword [esp + 0x108]
mov ecx, dword [esp + 0x240]
jmp 0x531590
mov eax, edi
not eax
and eax, 1
add eax, edi
setne al
movzx eax, al
cmp edi, eax
jb 0x531540
mov esi, 0xb
mov byte [esp + 0x226], 0x3e
mov eax, dword [esp + 0x108]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x314], 0
mov eax, dword [esp + 0x38c]
mov dword [esp], eax
call fcn.00595380
mov dword [esp + 0x38c], 0
mov dword [esp + 0x240], 0x70000001
jmp 0x5316f7
mov dword [esp + 0x134], eax
jmp 0x53170f
mov bl, 0x40
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x531663
mov eax, dword [esp + 0x420]
mov dword [esp], eax
call fcn.004936c0
mov edi, dword [esp + 0x2f8]
mov ebx, dword [edi]
lea eax, [ebx + ebx*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
jne 0x531773
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x531773
mov dword [esp + 0xd4], eax
mov dword [esp + 0x170], ebx
jmp 0x5343e3
mov cl, 0x16
mov esi, 0x16
movzx ecx, cl
cmp ecx, 0x21
je 0x531824
cmp ecx, 0x5c
jne 0x531837
mov esi, dword [esp + 0x304]
mov dword [esi], eax
mov edx, dword [edi]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
adc edx, 0
mov dword [edi], edx
lea ecx, [ebx*8]
mov dword [esp + 0x170], ebx
lea edi, [ecx + ecx*2]
mov dword [eax + edi], 8
mov dword [esp + 0xd4], eax
mov ecx, dword [esi]
mov dword [ecx + edi + 4], 0
mov ecx, dword [esi]
mov byte [ecx + edi + 8], 0
mov ecx, dword [esi]
mov dword [ecx + edi + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [ebp + 0x10]
mov dword [ecx + edi + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + edi + 0x14], 0
mov bl, 0x4b
mov dword [esp], edx
call fcn.00492770
test eax, eax
jne 0x5318d1
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
mov dword [esp + 0x2f4], eax
jne 0x5343e3
jmp 0x5330d2
mov dword [esp + 0xd4], eax
mov dword [esp + 0x170], ebx
jmp 0x533032
mov esi, dword [esp + 0x304]
mov dword [esi], eax
mov edx, dword [edi]
mov ecx, edx
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, edx
mov dword [edi], ecx
lea ecx, [ebx*8]
mov dword [esp + 0x170], ebx
lea edi, [ecx + ecx*2]
mov dword [eax + edi], 8
mov dword [esp + 0xd4], eax
mov ecx, dword [esi]
mov dword [ecx + edi + 4], 0
mov ecx, dword [esi]
mov byte [ecx + edi + 8], 0
mov ecx, dword [esi]
mov dword [ecx + edi + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [ebp + 0x10]
mov dword [ecx + edi + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + edi + 0x14], 0
mov bl, 0x4b
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x2f4], eax
test eax, eax
jne 0x5330d2
mov ecx, 0xf
mov dword [esp + 0x2fc], 0x70000003
jmp 0x532b6a
mov dword [esp + 0x2f4], eax
jmp 0x5330d2
mov esi, 8
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x53190a
mov byte [esp + 0x2f0], 0x2c
mov eax, 0xf
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jne 0x531ada
jmp 0x536cdc
mov byte [esp + 0x2f0], 0x2c
jmp 0x536cdc
mov byte [esp + 0x2f0], 0x3d
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x2f4]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x531920
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0x170]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x2f4]
mov dword [eax + ecx*8 + 0x14], edx
lea esi, [esp + 0x3d0]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.00572ee0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x531a39
lea eax, [esp + 0x3cc]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x2e8]
mov dword [esp], eax
call fcn.0059a8d0
test eax, eax
jne 0x531a45
mov dword [esp + 0x2fc], eax
mov ecx, dword [esp + 0x3cc]
mov edx, dword [ecx + 4]
mov eax, edx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp edx, eax
jne 0x531a51
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2cc], ecx
mov esi, dword [esp + 0x274]
jmp 0x531b46
mov dword [esp + 0x2fc], eax
jmp 0x5343e3
mov dword [esp + 0x2fc], eax
jmp 0x5343e3
mov dword [esp + 0x2d0], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x274], 0
mov eax, 4
imul ecx, dword [esp + 0x274], 0x1c
mov edi, dword [esp + 0x6c]
mov edx, dword [edi + ecx + 4]
mov esi, edx
imul esi, esi
and esi, 3
cmp esi, 2
sbb esi, esi
and esi, 1
cmp edx, esi
jne 0x536cb6
mov ebx, 0x13
mov eax, dword [edi + ecx + 0x14]
mov esi, 0x30000003
cmp eax, 4
jne 0x531aeb
mov edx, eax
or edx, 2
xor eax, 2
add eax, edx
je 0x531af7
mov eax, 0x15
mov ecx, dword [edi + ecx + 0x18]
mov dword [esp + 0x2fc], 0
cmp dword [ecx], 0
jne 0x5343e3
cmp eax, 0xf
mov esi, dword [esp + 0x274]
jne 0x531b46
jmp 0x532208
mov edi, dword [esp + 0x2ec]
jmp 0x52ee68
mov edi, dword [esp + 0x2ec]
jmp 0x52ee68
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, esi
adc ecx, 0
mov eax, dword [esp + 0x2d0]
cmp ecx, eax
jae 0x531b3f
mov dword [esp + 0x2a0], edx
mov eax, ecx
and eax, 1
xor eax, ecx
mov dword [esp + 0x274], ecx
not eax
test eax, eax
jne 0x531a71
jmp 0x531b46
mov dword [esp + 0x2a0], edx
mov edi, 0xc
mov al, byte [esp + 0x18f]
test al, 1
jne 0x531ba2
mov dword [esp + 0x254], esi
mov byte [esp + 0x11f], 0x43
mov byte [esp + 0x21b], 0x74
mov eax, 2
mov ecx, dword [esp + 0x23c]
test ecx, ecx
mov edx, dword [esp + 0x300]
mov esi, dword [esp + 0x2cc]
mov dword [esp + 0x290], esi
mov ebx, dword [esp + 0x2d0]
je 0x536189
jmp 0x5346cc
mov dword [esp + 0x254], esi
mov byte [esp + 0x11f], 0x43
mov byte [esp + 0x21b], 0x74
mov edx, dword [esp + 0x300]
mov esi, dword [esp + 0x2cc]
mov dword [esp + 0x290], esi
mov ebx, dword [esp + 0x2d0]
mov ecx, dword [esp + 0x23c]
jmp 0x5346cc
mov edi, 0x15
mov byte [esp + 0x11f], 0x66
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x104], eax
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x531c5c
mov dword [esp + 0x290], edi
mov edi, 0x13
mov eax, dword [esp + 0x104]
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x531d04
mov dword [esp + 0x1ec], ebx
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x290]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x288], eax
mov esi, dword [esp + 0x254]
jne 0x531d41
jmp 0x534951
mov dword [esp + 0x1ec], ebx
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x290]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x288], eax
mov esi, dword [esp + 0x254]
jmp 0x534951
mov dword [esp + 0x254], esi
mov dword [esp + 0x28c], ebx
mov eax, dword [ebp + 0x2c]
mov esi, dword [eax]
mov edx, dword [esp + 0x1dc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edx + 8]
mov dword [esp + 0x43c], ecx
mov dword [esp + 0x438], eax
mov eax, esi
and eax, 1
inc eax
xor eax, esi
sete al
movzx eax, al
cmp esi, eax
mov dword [esp + 0x2cc], 9
mov ecx, dword [esp + 0x144]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x440], ecx
mov dword [esp + 0x434], 0
mov dword [esp + 0x430], 0
mov dword [esp + 0x42c], 0
mov dword [esp + 0x428], 0
mov dword [esp + 0x424], 0
jne 0x532035
mov cl, 0x3b
mov edx, 0xb
movzx ecx, cl
cmp ecx, 0x3b
jne 0x531e5a
mov edi, 3
mov dword [esp + 0x430], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x434], eax
mov dword [esp + 0x15c], 0
test eax, eax
mov dword [esp + 0x158], 0x70000003
je 0x5320d7
mov edx, 8
mov dword [esp + 0x27c], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x5320ee
cmp edx, 8
je 0x531eb9
mov edi, 0x1e
mov dword [esp + 0x430], 0x1c
mov dword [esp + 4], 1
mov dword [esp], 0x1c
call fcn.00493840
mov dword [esp + 0x434], eax
mov dword [esp + 0x15c], 0
test eax, eax
mov dword [esp + 0x158], 0x70000003
je 0x53212b
mov dword [esp + 0x27c], eax
xor eax, eax
test al, al
jne 0x532142
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
xor ebx, ebx
lea edi, [esp + 0x424]
lea esi, [esp + 0x440]
mov dword [esp + 0x268], eax
jmp 0x531fc7
mov dword [esp + 0x268], 0x11
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 2
adc ebx, 0
mov dword [esp + 0x42c], 0x636f6964
mov dword [esp + 0x424], 1
lea eax, [esp + 0x42c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x27c]
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x434]
add eax, 4
lea ecx, [esp + 0x438]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, dword [esp + 0x434]
add eax, 0xc
lea ecx, [esp + 0x428]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x434]
add eax, 0x10
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.007c51d0
mov eax, dword [esp + 0x434]
add eax, 0x14
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov eax, 3
sub eax, ebx
xor eax, ebx
setne al
movzx eax, al
cmp ebx, eax
jb 0x531ef0
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov edx, dword [esp + 0x268]
cmp edx, 0xe
jne 0x532248
mov al, byte [esp + 0x24e]
movzx eax, al
xor ebx, ebx
cmp eax, 0x53
jne 0x532080
mov edi, dword [esp + 0x230]
jmp 0x52f93c
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
mov esi, dword [esp + 0x290]
mov ecx, dword [esp + 0x28c]
mov dword [esp + 0x2d0], ecx
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov edi, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x270]
mov edx, dword [esp + 0x26c]
jmp 0x535a92
mov esi, dword [esp + 0x200]
jmp 0x5320bc
mov edi, 0x11
mov byte [esp + 0x24e], 0x3b
inc ebx
mov eax, dword [esp + 0x230]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x258]
mov dword [esp], eax
call fcn.007c51d0
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp ebx, eax
jb 0x532090
jmp 0x53272d
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
mov dword [esp + 0x27c], eax
jmp 0x5320fc
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
jmp 0x5321bd
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
mov dword [esp + 0x27c], eax
jmp 0x532150
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], esi
mov eax, dword [esp + 0x254]
mov ecx, dword [esp + 0x290]
mov edx, dword [esp + 0x28c]
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x2cc], ecx
cmp edi, 0xf
jne 0x5321b1
mov dword [esp + 0x274], eax
mov eax, edi
not eax
and eax, 1
add eax, edi
je 0x535b9f
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov ecx, dword [esp + 0xa4]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x134]
mov dword [eax + ecx*8 + 0x14], edx
jmp 0x53170f
mov dword [esp + 0x274], eax
jmp 0x535b9f
cmp edi, 3
je 0x535b9f
mov eax, 6
mov byte [esp + 0x2f0], 0x2c
mov ecx, dword [ebp + 0x10]
mov edx, ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x532208
cmp eax, 6
jne 0x53170f
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x531964
jmp 0x53170f
mov eax, 7
mov ecx, 5
movzx edx, byte [esp + 0x2f0]
cmp edx, 0x2c
je 0x534171
cmp ecx, 5
mov ebx, dword [ebp + 0x38]
jne 0x5366a6
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jae 0x5366a6
xor esi, esi
mov edi, dword [ebp + 0x10]
jmp 0x531950
mov dword [esp + 4], 0x1c
mov dword [esp], 1
call fcn.00493840
mov edi, eax
mov esi, 3
test edi, edi
jne 0x532289
mov eax, 3
sub eax, edi
xor eax, edi
je 0x532289
mov dword [esp + 0x15c], edi
mov dword [esp + 0x158], 0x70000003
jmp 0x535b9f
mov dword [edi], 0xfffffffe
mov eax, dword [esp + 0x430]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x434]
mov dword [edi + 4], eax
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.00493840
mov ebx, eax
test ebx, ebx
jne 0x5322f9
sub esi, ebx
xor esi, ebx
je 0x5322f9
mov dword [esp + 0x15c], edi
mov esi, 0xb
mov dword [esp + 0x158], 0x70000003
cmp esi, 0xb
jne 0x52fd54
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
jne 0x535b9f
jmp 0x52fd54
mov esi, 0xb
mov eax, edi
add eax, 0xc
mov dword [esp + 8], edi
mov dword [esp + 0x15c], edi
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.007c5200
mov dword [esp + 0x158], 0x70000003
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1d8], ebx
jmp 0x53630b
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
adc esi, 0
mov eax, dword [esp + 0x434]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp], edi
call fcn.004936c0
mov edx, dword [esp + 0x300]
mov ecx, ebx
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
cmp esi, eax
jb 0x532340
mov dword [esp + 0x1d8], edx
mov dword [esp + 0x1e0], ecx
mov ecx, dword [esp + 0x1e0]
test ecx, ecx
jne 0x532448
mov al, 0x36
mov esi, 0x15
movzx eax, al
cmp eax, 0x36
jne 0x532462
mov dword [esp + 0x2fc], ecx
mov edx, dword [esp + 0x1d8]
mov ecx, dword [ebp + 0x28]
cmp esi, 5
je 0x5324b5
mov eax, esi
and eax, 1
inc eax
xor eax, esi
je 0x5324c1
mov eax, 1
mov dword [ecx], edx
mov ecx, dword [esp + 0x3cc]
mov dword [esp + 0x284], ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x288], edx
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x264]
mov dword [esp + 0x264], edx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
mov edi, edx
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov ebx, dword [esp + 0x2d0]
je 0x5356f4
jmp 0x536f83
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x130], eax
mov dword [esp + 0x2fc], ecx
jmp 0x5343e3
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0x1d8]
mov dword [eax], edx
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x284], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov ebx, dword [esp + 0x2d0]
mov dword [esp + 0x288], edx
mov dword [esp + 0x2fc], ecx
mov dword [esp + 0x130], edx
jmp 0x5356f4
mov dword [esp + 0x130], edx
jmp 0x52faa9
mov dword [esp + 0x130], edx
jmp 0x52faa9
mov dword [esp + 0x28c], ebx
mov dl, 0x74
mov byte [esp + 0x1ea], 0x75
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x2a0], eax
mov eax, dword [eax + 0x14]
test eax, eax
sete cl
imul eax, eax
and eax, 3
cmp eax, 3
sete dh
or dh, cl
mov byte [esp + 0x1b7], dh
movzx eax, dh
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
xor cl, dh
mov edi, dword [esp + 0x248]
mov eax, edi
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp edi, eax
mov al, 0x1d
movzx ebx, cl
jne 0x535927
mov dword [esp + 0x280], 0
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x21b], 0x74
jmp 0x535889
mov bh, 0x45
mov byte [esp + 0x298], 0x18
mov byte [esp + 0x2d8], 0x24
mov byte [esp + 0x29c], 0x12
mov byte [esp + 0x2a8], 0x3d
mov byte [esp + 0x2b8], 7
mov byte [esp + 0x2b4], 8
mov bl, 0x30
mov byte [esp + 0x2bc], 0x15
inc eax
mov dword [esp + 0x2c8], 0
mov edx, dword [esp + 0x270]
mov dword [esp + 0x2b0], edx
mov dword [esp + 0x2c0], 0
mov esi, ecx
mov edi, dword [esp + 0x26c]
mov edx, eax
not edx
and edx, 1
add edx, eax
setne dl
movzx edx, dl
cmp eax, edx
jb 0x532560
mov dword [esp + 0x2ec], edi
mov byte [esp + 0x227], bh
mov dword [esp + 0x1bc], esi
mov byte [esp + 0xbb], bl
mov esi, dword [esp + 0x290]
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
jmp 0x535ab1
mov eax, dword [esp + 0x2b0]
mov esi, dword [eax + 8]
mov ebx, dword [esp + 0x2c0]
imul eax, ebx, 0x1c
mov ecx, dword [esi + eax + 4]
cmp ecx, 1
je 0x532694
mov byte [esp + 0x2bc], 0x15
mov eax, 0x10
cmp ecx, 0x33
je 0x5326a1
mov eax, 0xb
cmp ecx, 0x10
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x2c8]
mov dword [esp + 0x264], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x250], ebx
mov ebx, dword [esp + 0x160]
mov edi, dword [esp + 0x2ec]
jne 0x532806
jmp 0x532755
mov byte [esp + 0x2bc], 0x15
jmp 0x533ab8
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x2c8]
mov dword [esp + 0x264], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x250], ebx
mov edx, dword [esp + 0x2ec]
mov edi, dword [esp + 0x2f8]
mov dword [esp + 0x2c0], ebx
cmp eax, 0xa
jne 0x53273b
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x53273b
mov dword [esp + 0x2f8], edi
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x294], esi
mov edi, 7
mov esi, 9
mov byte [esp + 0x6b], 0xc
mov ecx, dword [esp + 0xb4]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
jne 0x5301a7
cmp edi, 7
jne 0x52fa8b
jmp 0x53049c
mov dword [esp + 0x2f8], edi
mov dword [esp + 0x2ec], edx
mov dword [esp + 0x294], esi
jmp 0x532c15
mov eax, 5
imul ecx, dword [esp + 0x250], 0x1c
mov edx, dword [esi + ecx]
cmp edx, 1
je 0x532806
mov ecx, 8
imul edx, edx
and edx, 3
cmp edx, 3
je 0x532806
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov dword [esp + 0x160], ebx
cmp ecx, 8
jne 0x5327ab
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x53622a
mov eax, 9
mov esi, 0x14
mov dl, 0x34
mov edi, dword [esp + 0x2c4]
mov ecx, edi
and ecx, 1
inc ecx
xor ecx, edi
sete cl
movzx ecx, cl
cmp edi, ecx
mov ebx, dword [esp + 0x2fc]
jne 0x532ce7
cmp esi, 4
je 0x5328a9
mov dword [esp + 0x2fc], ebx
mov byte [esp + 0x22c], dl
imul esi, esi
and esi, 3
cmp esi, 3
jne 0x5357cd
jmp 0x530a5c
cmp eax, 5
jne 0x5328bc
mov dword [esp + 0x160], ebx
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x5328d6
imul ecx, dword [esp + 0x250], 0x1c
mov eax, dword [esi + ecx + 0x14]
cmp eax, 8
jne 0x5328e9
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x5328e9
mov bl, byte [esp + 0xbb]
movzx eax, bl
cmp eax, 0x2f
je 0x532907
cmp eax, 0x30
jne 0x532945
mov dword [esp + 0x2fc], ebx
mov byte [esp + 0x22c], dl
jmp 0x530a5c
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov dword [esp + 0x160], ebx
jmp 0x53622a
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
jmp 0x53622a
mov dword [esp + 0x2fc], 0x30000003
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
jmp 0x5343e3
mov dword [esp + 0x2ec], edi
mov byte [esp + 0xbb], 7
mov eax, dword [esi + ecx + 0x18]
mov dword [esp + 0x294], esi
movsd xmm0, qword [eax]
movsd qword [esp + 0x380], xmm0
mov dword [esp + 0x2fc], 0x30000003
mov edi, dword [esp + 0x278]
jmp 0x536f83
mov bl, 8
mov edx, 3
sub edx, eax
xor edx, eax
setne dl
movzx edx, dl
add eax, edx
mov edi, dword [esi + ecx]
mov edx, eax
imul edx, edx
and edx, 3
cmp edx, 2
sbb edx, edx
and edx, 1
cmp eax, edx
jb 0x5329c0
mov eax, dword [esp + 0x278]
mov dword [esp + 0x290], eax
mov edx, 0x10
movzx ecx, bh
cmp ecx, 6
je 0x532a5d
mov eax, 0xd
cmp ecx, 7
jne 0x532b0b
mov dword [esp + 0x178], edi
mov byte [esp + 0x2b8], bh
mov dword [esp + 0x294], esi
mov byte [esp + 0x2b4], bl
mov eax, dword [esp + 0x290]
mov dword [esp + 0x278], eax
cmp edx, 0xa
je 0x53511f
cmp eax, 0xa
je 0x530147
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
mov edi, dword [esp + 0x278]
jne 0x5334ae
jmp 0x530147
cmp ecx, 0xc
jne 0x5343e3
jmp 0x535ffc
mov dword [esp + 0x294], esi
mov eax, 8
cmp ecx, 0x33
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x2c8]
mov dword [esp + 0x264], ecx
mov dword [esp + 0x278], ecx
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c0], ebx
jne 0x53663c
mov eax, 0xb
imul ecx, dword [esp + 0x250], 0x1c
mov esi, dword [esp + 0x294]
mov edi, dword [esi + ecx]
mov edx, 3
sub edx, edi
xor edx, edi
setne dl
movzx edx, dl
cmp edi, edx
jne 0x532cc8
mov eax, 7
mov edx, dword [esi + ecx + 0x14]
mov ebx, 0x30000003
cmp edx, 4
jne 0x532cdc
imul edx, edx
and edx, 3
cmp edx, 1
ja 0x532cdc
mov dword [esp + 0x64], edi
xor eax, eax
jmp 0x532ca4
mov esi, 6
cmp edx, 0xffffffff
setne dl
movzx edx, dl
add eax, edx
mov edx, dword [esp + 0x294]
mov edx, dword [edx + ecx + 0x18]
mov edx, dword [edx]
mov edi, dword [esp + 0x1bc]
mov dword [edi], edx
mov edx, dword [esp + 0x278]
mov dword [esp + 0x264], edx
mov edx, eax
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
setne bl
movzx edi, bl
cmp eax, edi
jb 0x532c70
mov dword [esp + 0x2fc], 0x30000003
jmp 0x532d7a
mov dword [esp + 0x64], edi
mov edx, dword [esp + 0x278]
mov bl, byte [esp + 0x1eb]
jmp 0x532d21
mov dword [esp + 0x64], edi
mov dl, byte [esp + 0x22c]
cmp eax, 7
je 0x532d0e
mov dword [esp + 0x2fc], ebx
mov byte [esp + 0x22c], dl
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x534f4e
jmp 0x5343e3
mov dword [esp + 0x2fc], ebx
mov byte [esp + 0x22c], dl
jmp 0x5343e3
mov byte [esp + 0x1eb], bl
cmp eax, 3
jne 0x532d44
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
je 0x532d44
mov dword [esp + 0x278], edx
jmp 0x536b21
mov dword [esp + 0x290], edx
imul eax, dword [esp + 0x250], 0x1c
mov esi, dword [esp + 0x294]
add eax, esi
mov dword [esp + 0x1c0], eax
mov edi, dword [esp + 0x64]
mov bl, byte [esp + 0x2b4]
mov bh, byte [esp + 0x2b8]
jmp 0x5329f8
cmp esi, 6
jne 0x5343e3
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
mov edi, dword [esp + 0x264]
jne 0x536f83
jmp 0x5343e3
cmp edi, 0x19
mov esi, dword [esp + 0x294]
ja 0x532e00
mov eax, 0x10068
bt eax, edi
jae 0x532dc3
mov byte [esp + 0x29c], 0x12
jmp 0x5366a6
mov ecx, 0xf
cmp edi, 0x16
je 0x532e3d
mov eax, 0xa
cmp edi, 0x19
jne 0x532e00
mov byte [esp + 0x29c], 0x12
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
mov ebx, dword [esp + 0x2c0]
jmp 0x5337aa
mov byte [esp + 0x29c], 0x12
mov eax, 9
lea ecx, [edi - 0x21]
cmp ecx, 0x11
ja 0x532e5f
mov edx, 0x30007
bt edx, ecx
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
jb 0x5366a6
jmp 0x5368a4
mov byte [esp + 0x29c], 0x12
mov dword [esp + 0x25c], esi
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jmp 0x532223
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
jmp 0x5368a4
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebx]
test eax, eax
jne 0x532e9e
mov byte [esp + 0x2d8], 0x24
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x532ea6
mov esi, dword [esp + 0x294]
jmp 0x532ec7
mov byte [esp + 0x2d8], 0x24
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jmp 0x536f12
mov eax, 0x18
movzx ecx, byte [esp + 0x298]
cmp ecx, 0xc
je 0x532f30
mov eax, 0xa
cmp ecx, 0x5d
jne 0x533110
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
mov ecx, dword [esp + 0x228]
mov dword [esp + 0x278], ecx
mov ecx, dword [esp + 0x25c]
cmp eax, 0xa
je 0x5331ba
xor eax, eax
test al, al
jne 0x5331ba
mov dword [esp + 0x294], ecx
jmp 0x5366a6
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
mov edi, dword [esp + 0x2ec]
cmp eax, 0xd
jne 0x532f93
mov eax, 7
mov byte [esp + 0x1e9], 0x34
mov edx, dword [ebx]
test edx, edx
jne 0x533257
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov ecx, edx
mov dword [esp + 0x174], edx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
jb 0x531324
jmp 0x53326c
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov esi, 7
mov byte [esp + 0x298], 0xc
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x144]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0x13
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x2fc], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5343e3
cmp esi, 7
je 0x535ed9
mov esi, dword [esp + 0x304]
mov edi, dword [esp + 0xd4]
mov dword [esi], edi
mov edx, dword [esp + 0x2f8]
mov eax, dword [edx]
mov ecx, eax
and ecx, 1
xor ecx, eax
cmp ecx, 0xffffffff
setne cl
movzx ecx, cl
add ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x170]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [edi + eax], 8
mov ecx, dword [esi]
mov dword [ecx + eax + 4], 0
mov ecx, dword [esi]
mov byte [ecx + eax + 8], 0
mov ecx, dword [esi]
mov dword [ecx + eax + 0xc], 0
mov ecx, dword [esi]
mov edx, dword [ebp + 0x10]
mov dword [ecx + eax + 0x10], edx
mov ecx, dword [esi]
mov dword [ecx + eax + 0x14], 0
mov bl, 0x4b
mov dword [esp], edx
call fcn.00492770
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2fc], 0x70000003
test eax, eax
je 0x5343e3
mov edi, 0xe
mov ecx, 8
movzx eax, bl
mov dword [esp + 0x2fc], 0x70000003
cmp eax, 0x4b
jne 0x5321bd
cmp ecx, 8
jne 0x530147
mov eax, ecx
not eax
and eax, 1
add eax, ecx
jne 0x5318dd
jmp 0x530147
mov byte [esp + 0x298], 0x5d
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x144]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0x13
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x2fc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x25c], esi
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jne 0x5343e3
jmp 0x535ed9
mov dword [esp + 0x294], ecx
mov edi, 0xa
mov byte [esp + 0x298], 0x18
mov ecx, dword [esp + 0x1dc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x144]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x148]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1ac]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 8], eax
mov dword [esp + 0x14], 0x13
mov dword [esp + 4], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.0054c950
mov dword [esp + 0x2fc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5343e3
jmp 0x535de2
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov dword [esp + 0x174], edx
cmp eax, 7
mov edx, dword [esp + 0x1f8]
je 0x53501f
xor eax, eax
test al, al
jne 0x53501f
xor ecx, ecx
mov edi, dword [ebp + 0x28]
mov ebx, dword [esp + 0x1f4]
jmp 0x52e1ab
mov dword [esp + 0x2b0], eax
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 3
je 0x53374c
mov dword [esp + 0x290], edi
mov dword [esp + 0x2c0], ebx
mov al, 0x7e
xor ecx, ecx
movsx edx, al
cmp edx, 0x3a
jle 0x533405
movzx eax, al
cmp eax, 0x3b
mov ebx, dword [esp + 0x238]
mov edi, dword [esp + 0x178]
je 0x53337d
cmp eax, 0x65
je 0x533588
mov esi, 2
cmp eax, 0x7e
jne 0x53368e
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov edi, dword [esp + 0x2ec]
cmp esi, 2
jne 0x534d32
mov dword [esp + 0x2ec], edi
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x260]
jmp 0x5336c1
mov eax, 8
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [ebx]
mov dword [esp + 0x2a0], edx
mov edx, dword [esp + 0x290]
mov dword [esp + 0x280], edx
test ecx, ecx
jne 0x53338f
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
jne 0x533350
mov ecx, dword [esp + 0x290]
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x290], ecx
mov esi, dword [esp + 0x294]
mov edx, dword [esp + 0x1c0]
cmp eax, 8
jne 0x53345c
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x53345c
mov dword [esp + 0x178], edi
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x290]
mov dword [esp + 0x278], eax
jmp 0x536c9e
movzx edx, al
cmp edx, 0x23
mov ebx, dword [esp + 0x238]
mov edi, dword [esp + 0x178]
je 0x53361a
mov eax, 0xf
cmp edx, 0x39
jne 0x53368e
mov ecx, dword [esp + 0x290]
mov dword [esp + 0x2c8], ecx
mov dword [esp + 0x264], ecx
mov dword [esp + 0x260], ecx
mov edi, dword [esp + 0x120]
mov dl, byte [esp + 0x16f]
jmp 0x533fdc
mov ebx, 0x18
mov byte [esp + 0x2b8], 7
cmp edi, 1
je 0x5336cd
cmp edi, 2
je 0x53370a
mov dword [esp + 0x294], esi
cmp edi, 3
mov dword [esp + 0x178], edi
mov dword [esp + 0xe4], edx
mov dword [esp + 0x1c0], edx
mov edi, dword [esp + 0x290]
mov dword [esp + 0x278], edi
jne 0x536f83
mov esi, 0x18
mov ebx, 1
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x2ec]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, 0x26
mov ecx, dword [esp + 0x2e8]
call fcn.00589f50
mov dword [esp + 0x2fc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
mov dword [esp + 0x278], edi
mov dword [esp + 0x264], edi
jne 0x533e85
cmp ebx, 1
je 0x533740
imul ebx, ebx
and ebx, 3
cmp ebx, 2
mov dword [esp + 0x278], edi
mov dword [esp + 0x264], edi
jne 0x535ffc
jmp 0x536f83
mov edx, dword [esp + 0x2a0]
mov edi, dword [esp + 0x280]
jmp 0x5335bf
mov esi, 0xd
mov eax, 3
sub eax, ecx
xor eax, ecx
setne al
movzx eax, al
add ecx, eax
mov edx, dword [ebx]
mov edi, dword [esp + 0x290]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sbb eax, eax
and eax, 1
cmp ecx, eax
jb 0x5335a0
mov dword [esp + 0x280], edi
mov dword [esp + 0x2a0], edx
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
cmp esi, 0xd
jne 0x52f8ba
imul esi, esi
and esi, 3
cmp esi, 2
jb 0x536c9e
jmp 0x52f8ba
mov edx, dword [esp + 0x2a0]
mov esi, dword [esp + 0x280]
mov edi, dword [esp + 0x290]
jmp 0x533655
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx eax, al
add ecx, eax
mov edx, dword [ebx]
mov esi, edi
test ecx, ecx
jne 0x533666
mov eax, ecx
and eax, 1
xor eax, ecx
not eax
test eax, eax
jne 0x533640
mov dword [esp + 0x280], esi
mov dword [esp + 0x2a0], edx
mov dword [esp + 0x2c8], edi
mov dword [esp + 0x264], edi
mov dword [esp + 0x260], edi
jmp 0x536c9e
mov dword [esp + 0x178], edi
mov dword [esp + 0x238], ebx
mov eax, dword [ebx]
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], eax
mov dword [esp + 0x280], eax
jmp 0x536c9e
mov dword [esp + 0x178], edi
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x290]
mov dword [esp + 0x278], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x1c0], edx
mov edi, dword [esp + 0x2ec]
jmp 0x535b7e
mov dword [esp + 0x178], edi
mov dword [esp + 0x294], esi
mov eax, dword [esp + 0x290]
mov dword [esp + 0x278], eax
mov dword [esp + 0x264], eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x1c0], edx
jmp 0x535ffc
mov dword [esp + 0x278], edi
jmp 0x536f83
mov eax, edi
mov dword [esp + 0x264], edi
mov dl, byte [esp + 0x2bc]
mov esi, dword [esp + 0x2cc]
movzx ecx, dl
cmp ecx, 9
je 0x5337c6
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x2c8], eax
mov esi, 7
cmp ecx, 0x15
je 0x533845
mov eax, 0x10
cmp ecx, 0x76
jne 0x533872
mov dword [esp + 0x260], edi
mov byte [esp + 0x2bc], dl
mov esi, dword [esp + 0x294]
cmp eax, 0xa
jne 0x5338c5
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x294], esi
jmp 0x5366a6
mov dword [esp + 0x2cc], esi
mov edx, eax
mov eax, 0xc
mov ecx, dword [esp + 0x2b0]
mov esi, dword [ecx + 8]
imul ecx, ebx, 0x1c
mov ecx, dword [esi + ecx + 4]
cmp ecx, 1
je 0x533a3a
mov dword [esp + 0x260], edi
mov byte [esp + 0x2bc], 9
cmp ecx, 0x10
je 0x533a73
mov dword [esp + 0x294], esi
cmp ecx, 0x33
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x264], edx
mov dword [esp + 0x278], edx
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c0], ebx
je 0x532c15
jmp 0x53622a
mov dword [esp + 0x260], edi
mov dword [esp + 0x2c0], ebx
mov byte [esp + 0x2bc], dl
cmp esi, 7
je 0x532621
xor eax, eax
test al, al
je 0x52e591
jmp 0x532621
mov eax, dword [esp + 0x2b0]
mov esi, dword [eax + 8]
imul eax, ebx, 0x1c
mov ecx, dword [esi + eax + 4]
cmp ecx, 1
je 0x533ab0
mov dword [esp + 0x260], edi
mov byte [esp + 0x2bc], 0x5f
cmp ecx, 0x10
jne 0x532bd6
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x264], eax
mov dword [esp + 0x278], eax
jmp 0x533a8f
mov esi, 0x10
mov eax, dword [esp + 0x2b0]
mov ecx, dword [eax + 8]
mov dword [esp + 0x294], ecx
imul eax, ebx, 0x1c
mov edx, dword [ecx + eax + 4]
cmp edx, 1
mov edi, dword [esp + 0x2ec]
je 0x533ae2
mov byte [esp + 0x2bc], 0x76
mov esi, 5
cmp edx, 0x10
je 0x533b45
mov ecx, 0x13
mov eax, 8
cmp edx, 0x33
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x2c8]
mov dword [esp + 0x264], edx
mov dword [esp + 0x278], edx
mov edx, ebx
mov dword [esp + 0x2c0], ebx
mov ebx, dword [ebp + 0x2c]
jne 0x530fa3
mov dword [esp + 0x250], edx
mov dword [esp + 0x2ec], edi
cmp ecx, 0xd
jne 0x532c15
mov esi, 1
mov edi, 0xc
mov eax, dword [esp + 0x314]
mov dword [esp], eax
call fcn.004936c0
mov dword [esp + 0x314], 0
mov ecx, dword [esp + 0x2ac]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ecx, eax
mov ebx, ecx
jne 0x533b1b
mov dword [esp + 0xe0], ebx
cmp edi, 0xc
je 0x5300d4
xor eax, eax
test al, al
jne 0x5300d4
mov dword [esp + 0x260], edi
mov byte [esp + 0x2bc], 9
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x264], edx
mov dword [esp + 0x278], edx
mov ecx, ebx
mov edi, dword [esp + 0x2ec]
jmp 0x534abd
mov dword [esp + 0x138], ecx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x264], edx
mov dword [esp + 0x278], edx
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c0], ebx
mov ebx, dword [esp + 0x160]
mov edi, dword [esp + 0x2ec]
jmp 0x532755
mov byte [esp + 0x2bc], 0x5f
mov dword [esp + 0x294], esi
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x2c8]
mov edi, eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x250], ebx
jmp 0x536f83
mov byte [esp + 0x2bc], 0x76
mov dword [esp + 0x138], edx
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x264], eax
mov dword [esp + 0x278], eax
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c0], ebx
mov ebx, dword [esp + 0xe0]
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
cmp esi, eax
je 0x530519
mov dword [esp + 0xe0], ebx
mov edi, dword [esp + 0x264]
jmp 0x536f83
mov dword [esp + 0x138], edx
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x264], eax
mov dword [esp + 0x250], ebx
mov dword [esp + 0x2c0], ebx
mov ebx, dword [esp + 0x160]
cmp esi, 5
je 0x533b96
mov dword [esp + 0x278], eax
imul esi, esi
and esi, 3
cmp esi, 2
mov esi, dword [esp + 0x294]
jne 0x5309e8
jmp 0x532755
mov dword [esp + 0x278], eax
mov esi, dword [esp + 0x294]
jmp 0x532755
mov eax, 0x11
mov edx, ecx
not edx
and edx, 1
add edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [ebx]
mov dword [esp + 0x2a0], edx
mov edx, dword [esp + 0x260]
mov dword [esp + 0x280], edx
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x533bb0
mov dword [esp + 0x238], ebx
mov dword [esp + 0x120], edi
mov edi, dword [esp + 0x2ec]
jmp 0x536c82
mov eax, dword [esp + 0x2a0]
mov eax, dword [eax + 4]
test eax, eax
jne 0x533c3e
mov byte [esp + 0x1ea], 0x3e
mov byte [esp + 0x1c7], 0x10
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x536841
jmp 0x533c4e
mov byte [esp + 0x1ea], 0x3e
mov byte [esp + 0x1c7], 0x10
mov eax, dword [esp + 0x2a0]
cmp dword [eax + 0x14], 0
je 0x533c65
xor eax, eax
test al, al
je 0x536841
mov al, 0xf
movzx eax, al
cmp eax, 0x17
jne 0x533c98
mov al, 0x5e
mov esi, dword [esp + 0x280]
mov ecx, esi
or ecx, dword [esp + 0x32c]
mov edx, ecx
and edx, 1
inc edx
xor edx, ecx
sete dl
movzx edx, dl
cmp ecx, edx
jne 0x533cb0
jmp 0x536841
mov al, 0x5e
mov esi, dword [esp + 0x280]
mov ecx, esi
or ecx, dword [esp + 0x32c]
je 0x536841
movzx eax, al
cmp eax, 0x52
jne 0x533d4e
mov byte [esp + 0x9f], 0x15
mov dword [esp + 0x30c], 0
mov dword [esp + 0x308], 0
lea ebx, [esp + 0x318]
mov dword [esp + 0x318], 4
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], 0xfffffffa
lea eax, [esp + 0x308]
mov dword [esp + 4], eax
lea eax, [esp + 0x30c]
mov dword [esp], eax
call fcn.00449120
test eax, eax
je 0x533e0e
mov dword [esp + 0x280], esi
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x5360e5
mov byte [esp + 0x9f], 0x15
mov dword [esp + 0x30c], 0
mov dword [esp + 0x308], 0
lea ebx, [esp + 0x318]
mov dword [esp + 0x318], 4
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], 0xfffffffa
lea eax, [esp + 0x308]
mov dword [esp + 4], eax
lea eax, [esp + 0x30c]
mov dword [esp], eax
call fcn.00449120
test eax, eax
je 0x533e0e
mov dword [esp + 0x280], esi
mov ecx, 0x17
imul eax, eax
and eax, 3
cmp eax, 2
je 0x533e15
mov dword [esp + 0x280], esi
mov edi, 0x14
mov esi, 8
mov eax, dword [esp + 0x30c]
mov ecx, dword [esp + 0x308]
lea edx, [esp + 0x37c]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 4], 0
call fcn.00593f40
mov ebx, eax
mov dword [esp + 0x2fc], ebx
mov eax, dword [esp + 0x30c]
mov dword [esp], eax
call fcn.004936c0
mov eax, ebx
imul eax, eax
and eax, 3
cmp eax, 3
sete al
movzx eax, al
cmp ebx, eax
jne 0x533ea3
cmp esi, 8
jne 0x5343e3
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x536841
jmp 0x5343e3
cmp edi, 0xe
jne 0x5343e3
mov al, 0x14
mov dword [esp + 0x180], eax
mov byte [esp + 0x12f], 0x36
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x2fc], 0x700002bb
je 0x533f01
mov dword [esp + 0x100], eax
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x536c50
jmp 0x5343e3
mov dword [esp + 0x100], eax
jmp 0x5343e3
mov byte [esp + 0x12f], 0x36
mov eax, dword [esp + 0x100]
mov esi, dword [eax]
mov dword [esp + 0x2fc], 0x700002bb
test esi, esi
jne 0x533f6d
jmp 0x5343e3
mov esi, dword [ecx + 4]
test esi, esi
je 0x533f56
mov dword [esp + 0x2fc], 0x700002bb
mov dword [esp + 0x19c], ecx
xor eax, eax
test al, al
je 0x533f6d
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x700002bb
mov dword [esp + 0x19c], ecx
jmp 0x5343e3
mov edi, 5
mov dl, 0x21
mov eax, dword [esi + 0xc]
mov dword [esp + 0x120], eax
mov eax, dword [eax]
mov ebx, 0x700002bb
cmp eax, 0xfffffffe
jne 0x534041
imul eax, eax
and eax, 3
cmp eax, 2
mov ecx, esi
jae 0x534043
cmp edi, 5
jne 0x534020
imul edi, edi
and edi, 3
cmp edi, 2
jae 0x534020
mov eax, 0x19
movzx ecx, dl
cmp ecx, 0xf
jne 0x534077
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x19c], esi
mov edi, dword [esp + 0x120]
mov ebx, dword [esp + 0x238]
xor ecx, ecx
cmp eax, 0xf
je 0x534102
imul eax, eax
and eax, 3
cmp eax, 2
je 0x534102
mov dword [esp + 0x238], ebx
mov byte [esp + 0x16f], 0x21
test edi, edi
mov dword [esp + 0x120], edi
je 0x534121
mov esi, dword [esp + 0x19c]
jmp 0x5340a7
mov dword [esp + 0x2fc], ebx
mov byte [esp + 0x16f], dl
mov dword [esp + 0x19c], esi
mov edi, dword [esp + 0x2ec]
jmp 0x534d32
mov ecx, esi
mov byte [esp + 0x16f], dl
cmp edi, 3
jne 0x533f32
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x533f32
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x19c], ecx
jmp 0x5366a6
mov eax, 7
mov byte [esp + 0x16f], 0xf
mov ecx, dword [esp + 0x120]
test ecx, ecx
mov edx, 0x700002bb
je 0x53668f
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x53668f
mov edi, 3
mov eax, dword [esp + 0x120]
mov eax, dword [eax + 4]
add eax, 4
lea ecx, [esp + 0x380]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
mov edx, 0x700002bb
mov ecx, esi
cmp edi, 3
jne 0x53410e
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x19c], ecx
mov eax, 3
sub eax, edi
xor eax, edi
jne 0x5341dc
jmp 0x52fc04
mov byte [esp + 0x16f], dl
jmp 0x533bdd
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x19c], ecx
jmp 0x52fc04
mov eax, 1
mov dword [esp + 0x2fc], 0x700002bb
jmp 0x536bda
xor esi, esi
cmp eax, 7
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x38]
je 0x5341c3
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x536b21
jmp 0x5341c3
mov byte [esp + 0x2f0], 0x2c
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
add esi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x2f4]
mov dword [esp], eax
call fcn.007c51d0
mov eax, esi
and eax, 1
xor eax, esi
cmp eax, 0xffffffff
setne al
movzx eax, al
cmp esi, eax
jb 0x534190
jmp 0x531964
mov edx, 0xb
mov byte [esp + 0x11e], 0x6d
mov byte [esp + 0xf3], 0x16
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx]
mov dword [esp + 0xcc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x536d81
cmp edx, 0xb
jne 0x534291
mov ecx, edx
or ecx, 2
xor edx, 2
add edx, ecx
je 0x534291
mov eax, 8
mov cl, byte [esp + 0xf3]
movzx edx, cl
cmp edx, 0x25
je 0x534830
mov ecx, 0xa
cmp edx, 0x33
jne 0x534330
mov byte [esp + 0xf3], 0x16
mov byte [esp + 0x8b], 0x5e
lea ecx, [esp + 0x318]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x318], 4
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x324], eax
jmp 0x53488a
mov bl, byte [esp + 0xff]
movzx ecx, bl
cmp ecx, 0xd
je 0x534300
cmp ecx, 0x1f
je 0x534318
mov eax, 0x13
cmp ecx, 0x27
je 0x53505d
xor ecx, ecx
jmp 0x5342d5
mov eax, 0xc
mov bl, 0x65
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
adc ecx, 0
mov edx, ecx
and edx, 1
xor edx, ecx
cmp edx, 0xffffffff
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x5342c0
mov dword [esp + 0x2fc], 0x70000003
mov byte [esp + 0xff], bl
jmp 0x534b5d
mov dword [esp + 0x2fc], 0x70000003
mov byte [esp + 0xff], 0x27
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x70000003
mov byte [esp + 0xff], 0xd
jmp 0x5343e3
mov ebx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x2cc]
jmp 0x536941
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x2fc], 0
test edx, edx
mov eax, 0xb
mov byte [esp + 0x11e], 0x43
mov edx, dword [esp + 0x380]
mov dword [esp + 0x140], edx
mov esi, dword [esp + 0x384]
mov dword [esp + 0x13c], esi
mov ecx, dword [esp + 0x1dc]
mov dword [ecx + 4], esi
mov dword [ecx], edx
je 0x5343e3
cmp eax, 0xb
jne 0x53501f
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x536e6a
jmp 0x53501f
mov ecx, 3
sub ecx, eax
xor ecx, eax
setne cl
movzx ecx, cl
add eax, ecx
mov dword [edx], esi
mov dword [edx + 4], edi
xor ebx, ebx
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sbb ecx, ecx
and ecx, 1
cmp eax, ecx
jb 0x5343b0
mov dword [esp + 0x2fc], ebx
mov eax, 0x16
mov bl, 0x18
mov ecx, dword [esp + 0x2f8]
mov ecx, dword [ecx]
xor edx, edx
test ecx, ecx
jne 0x53443e
mov dword [esp + 0x1b8], ecx
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov esi, dword [esp + 0x2cc]
mov dword [esp + 0x290], esi
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x150], ecx
jb 0x53461a
jmp 0x534c76
mov dword [esp + 0x1b8], ecx
mov ecx, dword [esp + 0x2fc]
mov dword [esp + 0x150], ecx
mov esi, dword [esp + 0x2cc]
jmp 0x534c76
mov eax, edi
and eax, 1
xor eax, edi
not eax
test eax, eax
je 0x534d1d
mov esi, 0xe
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
lea ecx, [edx + edx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x5344bf
mov byte [esp + 0x213], 0x18
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov ecx, dword [esp + 0x1b8]
mov dword [esp + 0x188], ecx
mov dword [esp + 0x198], edx
mov dword [esp + 0x20c], edx
jne 0x5344e8
jmp 0x5313ab
mov byte [esp + 0x213], 0x18
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x188], eax
mov dword [esp + 0x198], edx
mov dword [esp + 0x20c], edx
jmp 0x5313ab
mov edi, 0xc
mov dword [esp], eax
call fcn.004936c0
mov ecx, dword [esp + 0x2f8]
mov eax, dword [ecx]
mov dword [esp + 0x188], eax
mov ebx, dword [esp + 0x20c]
mov esi, dword [esp + 0x2cc]
cmp edi, 0xc
jne 0x53454c
mov dword [esp + 0x198], ebx
mov dword [esp + 0x2f8], ecx
mov eax, edi
or eax, 2
xor edi, 2
add edi, eax
mov dword [esp + 0x290], esi
mov dword [esp + 0x2cc], esi
mov edi, dword [esp + 0x2d0]
jne 0x5345ba
jmp 0x52e0d0
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x198], ebx
mov dword [esp + 0x2f8], ecx
jmp 0x52e0d0
mov eax, 3
mov ecx, dword [esp + 0x198]
sub eax, ecx
xor eax, ecx
setne al
movzx edx, al
add edx, ecx
mov ecx, dword [esp + 0x188]
cmp edx, ecx
jae 0x534605
mov dword [esp + 0x28c], edi
mov eax, edx
and eax, 1
xor eax, edx
not eax
test eax, eax
mov dword [esp + 0x1b8], ecx
mov bl, byte [esp + 0x213]
jne 0x534ca3
jmp 0x53461a
mov dword [esp + 0x28c], edi
mov dword [esp + 0x1b8], ecx
mov bl, byte [esp + 0x213]
mov dword [esp + 0x20c], edx
mov edi, 7
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.004936c0
mov esi, dword [esp + 0x3cc]
test esi, esi
je 0x53468d
xor eax, eax
test al, al
jne 0x53468d
xor edi, edi
jmp 0x534672
mov eax, edi
and eax, 1
xor eax, edi
cmp eax, 0xffffffff
setne al
movzx eax, al
add edi, eax
mov dword [esp], esi
mov dword [esp + 4], 0x2a
call fcn.0064bf00
mov eax, edi
or eax, 2
mov ecx, edi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp edi, eax
jb 0x534650
jmp 0x534711
mov byte [esp + 0x213], bl
mov eax, dword [esp + 0x274]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x2d0], eax
mov esi, dword [esp + 0x284]
mov ecx, dword [esp + 0x23c]
mov edx, dword [esp + 0x288]
mov ebx, dword [esp + 0x28c]
cmp edi, 7
je 0x534711
mov dword [esp + 0x288], edx
mov dword [esp + 0x23c], ecx
imul edi, edi
and edi, 3
cmp edi, 2
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x248], eax
mov dword [esp + 0x284], esi
jne 0x5356f4
mov eax, dword [esp + 0x150]
jmp 0x52d910
mov al, 0x75
mov dword [esp + 0x1ec], eax
lea eax, [esp + 0x3c8]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xbc]
mov dword [esp], esi
mov dword [esp + 8], 4
call fcn.007c51d0
mov edi, dword [esp + 0x304]
mov eax, dword [edi]
mov ecx, dword [esp + 0x124]
lea ecx, [ecx + ecx*2]
mov dword [eax + ecx*8 + 0x14], esi
lea eax, [esp + 0x390]
mov dword [esp], eax
mov dword [esp + 4], 0x29
call fcn.00446640
mov eax, dword [esp + 0x2f8]
mov eax, dword [eax]
mov dword [esp + 0xac], eax
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [edi]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
mov dword [esp + 0x2fc], 0x70000003
je 0x5347df
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
mov ecx, dword [esp + 0x290]
mov dword [esp + 0x2cc], ecx
mov ecx, dword [esp + 0x28c]
mov dword [esp + 0x2d0], ecx
jne 0x52ea75
jmp 0x5343e3
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
jmp 0x5343e3
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x19c], ecx
mov byte [esp + 0x63], 0x21
cmp dword [esp + 0xb0], 0
je 0x52f095
mov eax, 0x13
xor ecx, ecx
test cl, cl
jne 0x52f095
cmp eax, 8
jne 0x5348d7
mov ecx, 3
sub ecx, eax
xor ecx, eax
mov edx, dword [esp + 0xcc]
je 0x5348d7
mov byte [esp + 0xf3], 0x33
mov byte [esp + 0x8b], 0x5e
lea ecx, [esp + 0x318]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x318], 4
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], edx
mov dword [esp + 0x328], 0xfffffffe
lea eax, [esp + 0x37c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x330]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov dword [esp + 0x2fc], eax
test eax, eax
jne 0x5343e3
jmp 0x536a0c
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x2d0]
mov esi, dword [esp + 0x274]
mov dword [esp + 0x28c], eax
mov bl, byte [esp + 0x62]
movzx eax, bl
cmp eax, 0x36
jne 0x53491b
mov dword [esp + 0x254], esi
xor esi, esi
mov edi, dword [esp + 0xb0]
jmp 0x52f051
mov edi, 0xa
mov byte [esp + 0x62], 0x66
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp], eax
call fcn.007c51d0
mov ebx, dword [esp + 0x28c]
cmp edi, 0xa
jne 0x534986
mov eax, 3
sub eax, edi
xor eax, edi
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x274], esi
jne 0x52f095
jmp 0x5356f4
mov dword [esp + 0x274], esi
jmp 0x5356f4
mov esi, 0xa
mov al, byte [esp + 0x63]
movzx eax, al
cmp eax, 0x55
jne 0x5349de
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x2fc]
cmp esi, 8
jne 0x534800
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x534800
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x19c], ecx
jmp 0x52fd54
mov eax, 0x15
mov esi, 5
mov byte [esp + 0x63], 0x55
mov edx, dword [esp + 0xb0]
mov ecx, edx
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp edx, ecx
jne 0x534a27
cmp esi, 5
jne 0x530541
mov eax, esi
or eax, 2
xor esi, 2
add esi, eax
jne 0x52f095
jmp 0x530541
cmp eax, 0xa
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x2d0]
mov esi, dword [esp + 0x274]
je 0x530147
jmp 0x5348f3
xor eax, eax
test al, al
jne 0x534db4
movzx eax, byte [esp + 0xd2]
cmp eax, 0x3f
jne 0x52f0d6
mov dword [esp + 0x220], edx
mov edx, ebx
shr edx, 0x18
cmp edx, 1
mov cl, byte [esp + 0xaa]
je 0x534af9
mov dword [esp + 0x190], ebx
mov byte [esp + 0xd2], 0x3f
mov eax, 0xd
cmp edx, 4
mov dword [esp + 0x98], edx
jne 0x52f284
cmp eax, 0xc
je 0x534b14
mov dword [esp + 0x250], ecx
mov dword [esp + 0x2c0], ebx
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, dword [esp + 0x264]
jne 0x52f134
jmp 0x536f83
mov dword [esp + 0x190], ebx
mov dword [esp + 0x98], edx
mov byte [esp + 0xd2], 0x3f
jmp 0x52f12d
mov dword [esp + 0x250], ecx
mov dword [esp + 0x2ec], edi
mov dword [esp + 0x294], esi
mov edi, dword [esp + 0x264]
jmp 0x536f83
mov eax, 0x17
mov byte [esp + 0xaa], 0x44
mov edx, dword [esp + 0x190]
cmp edx, 0xffffffce
jne 0x534b5d
mov ecx, edx
not ecx
and ecx, 1
add ecx, edx
jne 0x52f134
cmp eax, 0xc
jne 0x52f497
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5343e3
mov eax, 0x17
mov ecx, dword [esp + 0x2e4]
test ecx, ecx
je 0x534bbf
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x20c], edx
mov byte [esp + 0x213], bl
mov byte [esp + 0xeb], 0x79
mov ecx, 7
xor edx, edx
test dl, dl
mov edi, dword [esp + 0x2ec]
je 0x536b40
jmp 0x534be3
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x20c], edx
mov byte [esp + 0x213], bl
mov byte [esp + 0xeb], 0x79
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x2ec], edi
cmp eax, 0xf
jne 0x534c21
imul eax, eax
and eax, 3
cmp eax, 2
mov edi, dword [esp + 0x304]
jae 0x534c34
mov eax, 0x14
mov byte [esp + 0x22c], 0x34
cmp dword [esp + 0x2c4], 0
je 0x5357cd
jmp 0x535507
mov ebx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x304]
jmp 0x52f385
mov ebx, dword [esp + 0x1f4]
jmp 0x52f385
mov al, byte [esp + 0xeb]
movzx ecx, al
cmp ecx, 0x23
je 0x534e34
mov eax, 0xf
cmp ecx, 0x4f
jne 0x52f301
mov bl, byte [esp + 0x213]
mov edx, dword [esp + 0x20c]
mov esi, dword [esp + 0x2cc]
cmp eax, 0xf
je 0x534b7a
imul eax, eax
and eax, 3
cmp eax, 3
je 0x534b7a
mov dword [esp + 0x290], esi
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x28c], eax
mov edi, 3
movzx eax, bl
cmp eax, 0x18
jne 0x534cf8
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
lea ecx, [edx + edx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x534566
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
cmp edi, 3
je 0x53445f
mov dword [esp + 0x20c], edx
mov byte [esp + 0x213], bl
mov edi, dword [esp + 0x2ec]
mov bl, byte [esp + 0x20b]
movzx eax, bl
cmp eax, 0x3e
je 0x534d81
cmp eax, 0x42
jne 0x534dc4
xor esi, esi
jmp 0x534d62
mov bl, 0x2b
inc esi
mov eax, dword [esp + 0x410]
mov dword [esp], eax
call fcn.004936c0
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
jb 0x534d50
mov byte [esp + 0x20b], bl
jmp 0x534ddb
mov esi, 2
mov byte [esp + 0x20b], 0x42
mov eax, dword [esp + 0x410]
mov dword [esp], eax
call fcn.004936c0
mov ebx, dword [esp + 0x190]
mov edx, dword [esp + 0x220]
cmp esi, 2
jne 0x534a51
mov dword [esp + 0x220], edx
mov dword [esp + 0x190], ebx
jmp 0x534ddb
mov byte [esp + 0x20b], 0x3e
mov eax, dword [esp + 0x410]
mov dword [esp], eax
call fcn.004936c0
mov cl, byte [esp + 0x1a3]
movzx eax, cl
cmp eax, 0x46
je 0x530a12
mov eax, dword [ebp + 0x34]
lea edx, [eax + 0xc]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x214], eax
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x534e6f
mov dword [esp + 0x238], edx
mov byte [esp + 0x1a3], 0x46
mov eax, 0x10
mov edx, 3
sub edx, ecx
xor edx, ecx
je 0x530a9e
mov dword [esp + 0x2ec], edi
jmp 0x52f2e2
mov byte [esp + 0xeb], 0x23
mov ecx, dword [esp + 0x2e4]
mov eax, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete al
movzx eax, al
cmp ecx, eax
mov ebx, dword [esp + 0x1f4]
mov edi, dword [esp + 0x304]
jne 0x52f33f
jmp 0x52f385
mov dword [esp + 0x238], edx
mov byte [esp + 0x1a3], 0x46
jmp 0x530a9e
mov dword [esp + 0x254], esi
mov esi, dword [esp + 0x3fc]
mov eax, dword [esp + 0x400]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x2f8]
mov edi, dword [eax]
lea eax, [edi + edi*2]
lea eax, [eax*8 + 0x18]
mov ecx, dword [esp + 0x304]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00492a60
test eax, eax
je 0x534efb
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
je 0x534efb
mov dword [esp + 0x10c], edi
mov dword [esp + 0x230], esi
mov bl, 0x55
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x274], ecx
jmp 0x52f6ce
mov dword [esp + 0x10c], edi
mov dword [esp + 0x230], esi
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
jmp 0x52faa9
mov bh, byte [esp + 0x22c]
movzx eax, bh
cmp eax, 0x28
je 0x534f1c
mov byte [esp + 0x1e9], 0x3e
mov byte [esp + 0x18e], 0x40
lea eax, [esp + 0x32c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0x3e
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 + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00524b40
mov dword [esp + 0x2fc], eax
test eax, eax
jne 0x5343e3
jmp 0x53511f
mov eax, 0xc
mov cl, byte [esp + 0x1e9]
movzx ecx, cl
cmp ecx, 0x21
je 0x53505d
mov eax, 7
cmp ecx, 0x3e
jne 0x534f66
cmp eax, 7
je 0x531004
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x534f4e
cmp eax, 0xc
jne 0x53524f
mov esi, 0x11
mov byte [esp + 0x1e9], 0x21
mov byte [esp + 0x18e], 0x40
lea eax, [esp + 0x32c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x10], eax
mov dword [esp + 0x40], 0x3e
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 + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00524b40
mov dword [esp + 0x2fc], eax
test eax, eax
jne 0x532d7a
mov eax, 2
mov ecx, 0xe
movzx edx, byte [esp + 0x18e]
cmp edx, 0x1c
jne 0x53517e
cmp ecx, 1
je 0x5343e3
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x5343e3
mov esi, 0x16
mov byte [esp + 0x18e], 0x40
mov al, 0xd
mov ecx, dword [esp + 0x32c]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 2
sete dl
movzx edx, dl
cmp ecx, edx
je 0x53608c
jmp 0x5351aa
cmp eax, 2
je 0x535192
imul eax, eax
and eax, 3
cmp eax, 2
jne 0x53501f
mov byte [esp + 0x18e], 0x1c
mov al, 0xd
cmp dword [esp + 0x32c], 0
je 0x531324
movzx eax, al
cmp eax, 0x64
jne 0x535267
lea eax, [esp + 0x380]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x3a
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], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.005859d0
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
je 0x5310eb
mov dword [esp + 0x2fc], eax
mov ecx, 0xd
mov edi, dword [esp + 0x2ec]
mov dword [esp + 0x2ec], edi
cmp ecx, 0xd
jne 0x53171e
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x70000003
mov byte [esp + 0xff], 0x1f
jmp 0x5343e3
mov edi, 5
lea eax, [esp + 0x380]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x3a
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], 0
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
call fcn.005859d0
mov dword [esp + 0x2fc], eax
test eax, eax
jne 0x5343e3
cmp edi, 5
je 0x5310eb
mov eax, edi
and eax, 1
inc eax
xor eax, edi
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov ebx, dword [esp + 0x2d0]
jne 0x5356f4
mov ecx, 0x14
mov byte [esp + 0x11f], 0x1e
mov eax, dword [eax]
mov dword [esp + 0x104], eax
mov edx, dword [eax + 0x14]
test edx, edx
jne 0x535376
mov al, 0x44
mov esi, edx
not esi
and esi, 1
add esi, edx
mov esi, dword [esp + 0x254]
mov dword [esp + 0x274], esi
mov edx, dword [esp + 0x290]
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x248], ebx
mov dword [esp + 0x284], edx
mov edx, dword [esp + 0x300]
mov dword [esp + 0x288], edx
jne 0x5355b3
jmp 0x5353b5
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x248], ebx
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x288], eax
cmp ecx, 4
je 0x53160c
imul ecx, ecx
and ecx, 3
cmp ecx, 3
jne 0x535599
mov dword [esp + 0x2ec], edi
mov byte [esp + 0x11f], 0x43
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x104], eax
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x53543f
mov al, 0x44
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov esi, dword [esp + 0x254]
mov dword [esp + 0x274], esi
mov dword [esp + 0x248], ebx
mov ecx, dword [esp + 0x290]
mov dword [esp + 0x284], ecx
mov ecx, dword [esp + 0x300]
mov dword [esp + 0x288], ecx
jb 0x5355b3
jmp 0x5356f4
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x290]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x288], eax
jmp 0x5356f4
mov al, byte [esp + 0x11f]
movzx ecx, al
cmp ecx, 0x1e
mov eax, dword [esp + 0x238]
je 0x535307
mov dword [esp + 0x288], edx
mov eax, 8
cmp ecx, 0x3d
je 0x5354cf
mov eax, 0x12
cmp ecx, 0x43
mov edx, dword [esp + 0x288]
jne 0x531be1
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x248], ecx
mov edi, dword [esp + 0x2ec]
jmp 0x535d54
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x274], ecx
mov ecx, dword [esp + 0x2d0]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x284], esi
mov ecx, dword [esp + 0x290]
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x2d0], ebx
cmp eax, 8
jne 0x534f4e
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
je 0x534f4e
mov dword [esp + 0x254], esi
mov dword [esp + 0x28c], ebx
movzx edx, al
cmp edx, 0x27
mov ebx, dword [esp + 0x1ec]
mov esi, dword [esp + 0x300]
mov edi, dword [esp + 0x290]
je 0x53561d
mov dword [esp + 0x290], edi
cmp eax, 0xe
jne 0x5356ad
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
jne 0x53471d
mov dword [esp + 0x1ec], ebx
mov edi, 0xa
mov eax, dword [esp + 0x104]
cmp dword [eax + 0x18], 0
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x248], ebx
mov eax, dword [esp + 0x290]
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x300]
mov dword [esp + 0x288], eax
je 0x5358c6
movzx eax, byte [esp + 0x21b]
cmp eax, 0x70
je 0x53581d
cmp eax, 0x74
je 0x5324cd
mov dword [esp + 0x28c], ebx
mov dl, 0x70
mov al, 0x1d
mov ecx, dword [esp + 0x238]
mov edi, dword [ecx]
cmp dword [edi + 0x14], 0
sete ah
movzx ecx, ah
imul ecx, ecx
cmp ecx, 2
setb cl
xor cl, ah
movzx ebx, cl
mov esi, dword [esp + 0x248]
mov ecx, esi
and ecx, 1
inc ecx
xor ecx, esi
sete cl
movzx ecx, cl
cmp esi, ecx
jne 0x535911
mov byte [esp + 0x1ea], 0x75
mov byte [esp + 0x1b7], ah
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x2a0], edi
mov byte [esp + 0x21b], 0x70
mov edi, 2
mov dword [esp + 0x280], 0
mov eax, dword [esp + 0x284]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x28c]
mov ecx, dword [esp + 0x290]
cmp edi, 2
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x2d0], eax
je 0x536c9e
mov esi, 0xb
mov eax, dword [esp + 0x304]
mov eax, dword [eax]
mov edi, dword [esp + 0x1e4]
lea ecx, [edi + edi*2]
mov edx, dword [esp + 0x2e0]
mov dword [eax + ecx*8 + 0x14], edx
cmp esi, 0xb
jne 0x5358fe
mov dword [esp + 0x28c], ebx
mov dl, 0x32
mov byte [esp + 0x1ea], 0x75
mov eax, dword [esp + 0x238]
mov eax, dword [eax]
mov dword [esp + 0x2a0], eax
cmp dword [eax + 0x14], 0
sete byte [esp + 0x1b7]
setne cl
mov esi, dword [esp + 0x248]
mov eax, esi
and eax, 1
inc eax
xor eax, esi
sete al
movzx eax, al
cmp esi, eax
mov al, 0x1d
movzx ebx, cl
jne 0x535927
mov dword [esp + 0x280], 0
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x21b], 0x32
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 0x26c], eax
jmp 0x536c9e
cmp edi, 0xa
je 0x535fe9
mov eax, edi
and eax, 1
inc eax
xor eax, edi
mov esi, dword [esp + 0x274]
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], ebx
jne 0x5343e3
jmp 0x531d41
mov byte [esp + 0x1ea], 0x75
mov byte [esp + 0x1b7], ah
mov dword [esp + 0x2a0], edi
mov edi, 0x12
mov dword [esp + 0x280], 0
movzx ecx, al
cmp ecx, 0x15
je 0x535bc2
mov eax, 9
cmp ecx, 0x1d
je 0x535d0e
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x21b], dl
mov edi, 0x13
cmp ecx, 0x76
jne 0x535daa
mov eax, dword [esp + 0x1dc]
lea ecx, [eax + 0x1ac]
mov dword [esp + 0x2cc], eax
mov bl, byte [esp + 0xbb]
mov esi, dword [esp + 0x1bc]
mov bh, byte [esp + 0x227]
mov eax, dword [esp + 0x2ec]
xor edi, edi
jmp 0x535a35
mov dword [esp + 0x2cc], 8
mov bh, 0x45
mov byte [esp + 0x298], 0x18
mov byte [esp + 0x2d8], 0x24
mov byte [esp + 0x29c], 0x12
mov byte [esp + 0x2a8], 0x3d
mov byte [esp + 0x2b8], 7
mov byte [esp + 0x2b4], 8
mov bl, 0x30
mov byte [esp + 0x2bc], 0x15
mov edx, edi
not edx
and edx, 1
add edx, edi
setne dl
movzx edx, dl
add edi, edx
mov dword [esp + 0x2c8], 0
mov edx, dword [esp + 0x284]
mov dword [esp + 0x2b0], edx
mov dword [esp + 0x2c0], 0
mov esi, ecx
mov eax, dword [esp + 0x288]
mov edx, edi
and edx, 1
inc edx
xor edx, edi
test edi, edi
je 0x5359b0
test edx, edx
je 0x5359b0
mov byte [esp + 0x227], bh
mov dword [esp + 0x1bc], esi
mov byte [esp + 0xbb], bl
mov esi, dword [esp + 0x290]
mov ecx, dword [esp + 0x28c]
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x280], 0
mov ecx, dword [esp + 0x284]
mov edx, dword [esp + 0x288]
mov edi, eax
cmp dword [esp + 0x2cc], 8
jne 0x535ad2
mov dword [esp + 0x26c], edx
mov dword [esp + 0x270], ecx
mov dword [esp + 0x2ec], edi
mov dl, byte [esp + 0x2bc]
mov ebx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2c8]
mov edi, dword [esp + 0x260]
jmp 0x533763
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x26c], edx
mov dword [esp + 0x270], ecx
mov esi, 0x12
mov ebx, 0xc
mov dword [esp + 0x3e8], 4
mov dword [esp + 0x3ec], 2
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x3f0], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x3f4], eax
mov dword [esp + 0x3f8], 0xfffffffe
lea eax, [esp + 0x430]
mov dword [esp + 8], eax
lea eax, [esp + 0x434]
mov dword [esp + 4], eax
lea eax, [esp + 0x3e8]
mov dword [esp], eax
call fcn.00593400
mov dword [esp + 0x158], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
mov dword [esp + 0x15c], 0
cmp eax, ecx
je 0x536c2f
cmp ebx, 0xc
jne 0x535ff5
mov dword [esp + 0x2ec], edi
mov eax, ebx
and eax, 1
xor eax, ebx
not eax
test eax, eax
je 0x535ffc
xor esi, esi
mov ecx, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1d8]
mov edi, dword [esp + 0x15c]
mov ebx, dword [esp + 0x158]
jmp 0x53236e
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x21b], dl
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 0x26c], eax
cmp edi, 3
je 0x534992
xor eax, eax
test al, al
jne 0x534992
mov ecx, 8
mov dh, 0x45
mov bh, 0x18
mov byte [esp + 0x2d8], 0x24
mov byte [esp + 0x29c], 0x12
mov byte [esp + 0x2a8], 0x3d
mov byte [esp + 0x2b8], 7
mov bl, 8
mov dl, 0x30
mov byte [esp + 0x2bc], 0x15
mov eax, dword [esp + 0x1dc]
lea esi, [eax + 0x1ac]
mov edi, dword [esp + 0x270]
mov dword [esp + 0x2b0], edi
mov dword [esp + 0x2c8], 0
mov dword [esp + 0x2c0], 0
mov edi, dword [esp + 0x26c]
mov byte [esp + 0x298], bh
mov dword [esp + 0x2ec], edi
mov byte [esp + 0x2b4], bl
mov byte [esp + 0x227], dh
mov dword [esp + 0x1bc], esi
mov byte [esp + 0xbb], dl
cmp ecx, 8
jne 0x5360de
mov dword [esp + 0x1dc], eax
mov eax, ecx
not eax
and eax, 1
add eax, ecx
mov esi, dword [esp + 0x2cc]
mov dword [esp + 0x290], esi
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x28c], eax
mov dl, byte [esp + 0x2bc]
mov ebx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2c8]
mov edi, dword [esp + 0x260]
jne 0x533763
jmp 0x53611d
mov dword [esp + 0x1ac], ebx
mov byte [esp + 0x21b], dl
mov ecx, dword [esp + 0x274]
mov dword [esp + 0x254], ecx
mov esi, dword [esp + 0x284]
mov dword [esp + 0x270], esi
mov edx, dword [esp + 0x288]
mov dword [esp + 0x26c], edx
mov edi, dword [esp + 0x2ec]
mov ebx, dword [esp + 0x28c]
cmp eax, 9
jne 0x5353d2
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x5353d2
mov dword [esp + 0x28c], ebx
mov dword [esp + 0x284], esi
mov dword [esp + 0x288], edx
xor eax, eax
mov ecx, dword [esp + 0x1dc]
lea ecx, [ecx + 0x1ac]
mov bl, byte [esp + 0xbb]
mov esi, dword [esp + 0x1bc]
mov bh, byte [esp + 0x227]
jmp 0x5325ca
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 0x26c], eax
cmp edi, 0xa
je 0x535ed9
imul edi, edi
and edi, 3
cmp edi, 2
je 0x535ed9
xor eax, eax
mov ecx, 3
mov edx, dword [esp + 0x1dc]
lea edx, [edx + 0x1ac]
mov bh, byte [esp + 0xbb]
mov edi, dword [esp + 0x1bc]
jmp 0x535e98
mov byte [esp + 0x227], 0x45
mov byte [esp + 0x298], 0x18
mov byte [esp + 0x2d8], 0x24
mov byte [esp + 0x29c], 0x12
mov byte [esp + 0x2a8], 0x3d
mov byte [esp + 0x2b8], 7
mov byte [esp + 0x2b4], 8
mov bh, 0x30
mov byte [esp + 0x2bc], 0x15
inc eax
dec ecx
mov dword [esp + 0x2c8], 0
mov esi, dword [esp + 0x270]
mov dword [esp + 0x2b0], esi
mov dword [esp + 0x2c0], 0
mov edi, edx
mov esi, dword [esp + 0x26c]
mov dword [esp + 0x2ec], esi
mov esi, eax
xor esi, ecx
setne bl
movzx esi, bl
cmp eax, esi
jb 0x535e20
mov dword [esp + 0x1bc], edi
mov byte [esp + 0xbb], bh
mov dl, byte [esp + 0x2bc]
mov ebx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2c8]
mov edi, dword [esp + 0x260]
jmp 0x53375c
mov bl, byte [esp + 0x227]
movzx eax, bl
cmp eax, 0x45
je 0x535f53
cmp eax, 0x4d
jne 0x535f7c
mov eax, 0x11
mov byte [esp + 0x227], 0x4d
mov ecx, dword [esp + 0x3cc]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x25c], ecx
mov dword [esp + 0x228], 1
mov edi, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x2ec], edi
cmp eax, 4
jne 0x536f12
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x52e1d3
jmp 0x536f12
mov byte [esp + 0x227], 0x45
mov eax, dword [esp + 0x3cc]
mov eax, dword [eax + 8]
mov dword [esp + 0x25c], eax
mov dword [esp + 0x228], 1
jmp 0x536f12
xor ecx, ecx
mov dword [esp + 0x25c], eax
mov edi, dword [esp + 0x2ec]
jmp 0x535fb9
mov eax, 6
mov bl, 0x3a
mov edx, 3
sub edx, ecx
xor edx, ecx
setne dl
movzx edx, dl
add ecx, edx
mov edx, dword [esp + 0x3cc]
mov edx, dword [edx + 8]
mov dword [esp + 0x25c], edx
mov edx, ecx
or edx, 2
mov esi, ecx
xor esi, 2
add esi, edx
setne dl
movzx edx, dl
cmp ecx, edx
jb 0x535f90
mov dword [esp + 0x228], 1
mov byte [esp + 0x227], bl
mov edx, dword [ebp + 0x3c]
jmp 0x536ef1
mov esi, dword [esp + 0x274]
jmp 0x531d41
mov dword [esp + 0x2ec], edi
mov al, byte [esp + 0x2a8]
movzx ecx, al
cmp ecx, 0x3d
je 0x5360a9
mov eax, 0xe
cmp ecx, 0x75
jne 0x5360c4
mov eax, 0xe
mov byte [esp + 0x2a8], 0x3d
test byte [esp + 0x1b7], 1
jne 0x536773
cmp eax, 0xe
jne 0x53604c
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x5366a6
mov esi, 0xf
mov byte [esp + 0x24f], 0x36
mov eax, dword [esp + 0x38c]
lea ecx, [esp + 0x388]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00595290
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5305a1
cmp esi, 0xf
jne 0x531324
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x52ff3f
jmp 0x531324
mov byte [esp + 0x2a8], 0x75
test byte [esp + 0x1b7], 1
jne 0x536773
jmp 0x5366a6
mov esi, dword [esp + 0x140]
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x2fc]
jmp 0x536e3b
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x290], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x28c], eax
mov dl, byte [esp + 0x2bc]
mov ebx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2c8]
mov edi, dword [esp + 0x260]
mov dword [esp + 0x260], edi
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2c0], ebx
mov byte [esp + 0x2bc], dl
mov eax, 3
mov cl, byte [esp + 0x9f]
movzx ecx, cl
cmp ecx, 0x15
jne 0x5361fb
mov ecx, dword [esp + 0x274]
mov dword [esp + 0x254], ecx
mov ecx, dword [esp + 0x248]
mov dword [esp + 0x2d0], ecx
mov esi, dword [esp + 0x284]
mov ecx, dword [esp + 0x23c]
mov edx, dword [esp + 0x288]
mov ebx, dword [esp + 0x28c]
mov dword [esp + 0x23c], ecx
cmp eax, 2
jne 0x5361a4
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
jne 0x535475
mov dword [esp + 0x288], edx
mov dword [esp + 0x2fc], 0x700002bb
mov byte [esp + 0x9f], 0xb
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x248], eax
mov dword [esp + 0x284], esi
mov eax, dword [esp + 0x290]
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], ebx
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
jmp 0x5343e3
mov dword [esp + 0x2fc], 0x700002bb
mov byte [esp + 0x9f], 0x15
jmp 0x5347df
mov bl, 0x26
imul eax, ecx, 0x1c
lea ecx, [esi + eax]
mov dword [esp + 0x1c0], ecx
mov edi, dword [esi + eax]
jmp 0x5329ea
mov bl, byte [esp + 0x2b4]
movzx eax, bl
cmp eax, 8
mov esi, dword [esp + 0x294]
mov bh, byte [esp + 0x2b8]
mov ecx, dword [esp + 0x250]
jne 0x536213
xor eax, eax
imul ecx, ecx, 0x1c
lea edx, [esi + ecx]
mov dword [esp + 0x1c0], edx
jmp 0x5329d6
cmp edi, 0x20
jg 0x5362be
cmp edi, 0xf
jg 0x536328
mov byte [esp + 0x29c], 0x64
mov eax, 5
cmp edi, 3
je 0x5363ac
cmp edi, 5
mov ecx, dword [esp + 0x294]
je 0x5366a6
mov eax, 0xb
cmp edi, 6
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
je 0x532efc
jmp 0x536f12
mov byte [esp + 0x29c], 0x64
cmp edi, 0x30
jg 0x53637f
cmp edi, 0x21
je 0x5366a6
mov esi, 0x16
cmp edi, 0x22
je 0x5363e5
cmp edi, 0x23
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jne 0x536f12
cmp esi, 0xb
jne 0x5366a6
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x53238f
jmp 0x5366a6
mov eax, 0xd
cmp edi, 0x10
je 0x536414
mov byte [esp + 0x29c], 0x64
cmp edi, 0x16
mov eax, dword [esp + 0x294]
je 0x5366a6
mov edx, 2
cmp edi, 0x19
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jne 0x536f12
cmp edx, 2
jne 0x52ecc4
jmp 0x5366a6
lea eax, [edi - 0x31]
cmp eax, 2
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jb 0x5366a6
jmp 0x536f12
mov ecx, dword [esp + 0x294]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
cmp eax, 3
je 0x530147
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x5366a6
jmp 0x530147
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
mov edx, dword [esp + 0x2e0]
mov edi, dword [esp + 0x1e4]
jmp 0x5357f0
mov byte [esp + 0x29c], 0x64
mov ecx, dword [esp + 0x294]
mov edx, dword [esp + 0x278]
mov edi, dword [esp + 0x2ec]
jmp 0x52a52d
mov eax, 0x17
mov ecx, dword [esp + 0x138]
cmp ecx, 0x22
jg 0x536498
lea ecx, [ecx - 3]
cmp ecx, 0x1f
ja 0x53670c
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x29c], 0x23
mov edx, 0x8048000d
bt edx, ecx
jae 0x53650d
mov dword [esp + 0x2cc], edi
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
jmp 0x5366a6
mov esi, edi
mov edi, 3
cmp ecx, 0x23
je 0x53658d
cmp ecx, 0x31
mov edx, dword [esp + 0x294]
je 0x5365f5
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x29c], 0x23
cmp ecx, 0x32
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov dword [esp + 0x2cc], esi
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x25c], edx
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
je 0x5366a6
jmp 0x536f12
cmp ecx, 0xd
mov edx, dword [esp + 0x28c]
mov esi, dword [esp + 0x254]
je 0x536650
mov dword [esp + 0x290], 0xb
cmp ecx, 0x1e
mov dword [esp + 0x274], esi
mov dword [esp + 0x2cc], edi
mov dword [esp + 0x2d0], edx
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
jne 0x536f12
mov ecx, dword [esp + 0x290]
cmp ecx, 0xb
jne 0x52ecc4
mov eax, 3
sub eax, ecx
xor eax, ecx
jne 0x5366a6
jmp 0x52ecc4
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x29c], 0x23
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov dword [esp + 0x2cc], esi
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 0x25c], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0x228], eax
mov dl, byte [esp + 0x16f]
mov ecx, dword [esp + 0x19c]
mov ebx, dword [esp + 0x2fc]
jmp 0x534043
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x29c], 0x23
mov ecx, dword [esp + 0x254]
mov dword [esp + 0x274], ecx
mov dword [esp + 0x2cc], esi
mov ecx, dword [esp + 0x28c]
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x25c], edx
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
cmp eax, 8
je 0x53622a
xor eax, eax
test al, al
je 0x5366a6
jmp 0x53622a
mov dword [esp + 0x274], esi
mov dword [esp + 0x2cc], edi
mov dword [esp + 0x2d0], edx
mov esi, dword [esp + 0x19c]
mov ecx, dword [esp + 0x294]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
mov edx, dword [esp + 0x2fc]
mov dword [esp + 0x2fc], edx
cmp eax, 7
mov dword [esp + 0x19c], esi
je 0x5343e3
movzx eax, byte [esp + 0x2d8]
cmp eax, 0x24
jne 0x532e79
mov eax, 4
mov byte [esp + 0x2d8], 0x60
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [ebx]
mov edx, ecx
imul edx, edx
and edx, 3
cmp edx, 3
sete dl
movzx edx, dl
cmp ecx, edx
mov esi, dword [esp + 0x294]
je 0x532ec7
mov dword [esp + 0x25c], esi
mov ecx, dword [esp + 0x278]
mov dword [esp + 0x228], ecx
cmp eax, 4
jne 0x531324
jmp 0x536f12
mov dword [esp + 0x1ec], ebx
mov byte [esp + 0x29c], 0x23
mov eax, dword [esp + 0x254]
mov dword [esp + 0x274], eax
mov dword [esp + 0x2cc], edi
mov eax, dword [esp + 0x28c]
mov dword [esp + 0x2d0], eax
jmp 0x532ea6
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], esi
mov eax, 2
mov byte [esp + 0x2a8], 2
test byte [esp + 0x1b7], 1
je 0x52f8e6
mov al, byte [esp + 0x29c]
movzx eax, al
cmp eax, 0x12
mov edi, dword [esp + 0x138]
je 0x532da0
mov ecx, 2
cmp eax, 0x23
jne 0x536262
mov eax, dword [esp + 0x274]
mov dword [esp + 0x254], eax
mov edi, dword [esp + 0x2cc]
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x28c], eax
mov ebx, dword [esp + 0x1ec]
cmp ecx, 2
je 0x536436
jmp 0x531ca0
mov eax, 0x11
mov byte [esp + 0x1ea], 0x75
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x53680e
mov dword [esp + 0x2a0], edx
mov byte [esp + 0x1c7], 0x10
imul ecx, ecx
and ecx, 3
cmp ecx, 2
mov dword [esp + 0x274], esi
jne 0x533c4e
jmp 0x53681d
mov dword [esp + 0x2a0], edx
mov byte [esp + 0x1c7], 0x10
cmp eax, 0xf
jne 0x53683a
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x534e83
mov dword [esp + 0x274], esi
jmp 0x536841
mov dword [esp + 0x274], esi
mov esi, 0xb
mov ecx, 0x11
movzx edx, byte [esp + 0x1c7]
cmp edx, 0x1d
jne 0x5368c0
cmp esi, 6
je 0x534c40
imul esi, esi
and esi, 3
cmp esi, 2
je 0x534c40
mov eax, 0x14
mov byte [esp + 0x1c7], 0x10
mov byte [esp + 0x1eb], 0x24
mov ecx, dword [esp + 0x380]
mov dword [esp + 0x2fc], 0
or ecx, dword [esp + 0x384]
je 0x5343e3
cmp eax, 9
je 0x536f12
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
jne 0x536aa3
jmp 0x536f12
cmp ecx, 0xd
je 0x5343e3
mov esi, 4
mov byte [esp + 0x1c7], 0x1d
mov byte [esp + 0x1eb], 0x24
mov eax, dword [esp + 0x380]
mov dword [esp + 0x2fc], 0
or eax, dword [esp + 0x384]
jne 0x536aa3
cmp esi, 4
jne 0x536911
mov eax, 3
sub eax, esi
xor eax, esi
jne 0x5343e3
mov ecx, 0x11
mov eax, 0xe
mov ebx, dword [esp + 0x1ec]
test bl, bl
mov edx, dword [esp + 0x2cc]
mov edi, edx
mov esi, dword [esp + 0x2d0]
mov dword [esp + 0x28c], esi
je 0x535690
mov dword [esp + 0x2cc], edx
cmp ecx, 0xa
je 0x536957
xor eax, eax
test al, al
je 0x52e9be
mov dword [esp + 0x1ec], ebx
mov esi, 0x15
mov edi, 6
mov byte [esp + 0xf3], 0x25
mov byte [esp + 0x8b], 0x5e
lea ecx, [esp + 0x318]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x318], 4
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x320], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], 0xfffffffe
lea eax, [esp + 0x37c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x330]
mov dword [esp + 0xc], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.005938f0
mov dword [esp + 0x2fc], eax
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x536cdc
cmp edi, 6
jne 0x534b35
movzx eax, byte [esp + 0x8b]
cmp eax, 0x3a
jne 0x536d04
mov byte [esp + 0x8b], 0x5e
lea eax, [esp + 0x334]
lea ecx, [esp + 0x380]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
lea eax, [esp + 0x37c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x330]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
mov dword [esp + 0x2fc], eax
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x5343e3
jmp 0x536d81
mov ecx, 0x17
movzx edx, byte [esp + 0x1eb]
cmp edx, 0x1f
je 0x536b55
mov eax, 0x10
mov ecx, 8
cmp edx, 0x64
jne 0x536bda
cmp ecx, 8
jne 0x52faa9
mov ecx, 0x13
mov eax, dword [esp + 0x180]
movzx eax, al
cmp eax, 0x14
jne 0x533ec1
mov edi, dword [esp + 0x2ec]
cmp ecx, 7
jne 0x536bf7
mov dword [esp + 0x2ec], edi
jmp 0x52f331
cmp ecx, 8
je 0x531324
mov eax, ecx
and eax, 1
inc eax
xor eax, ecx
je 0x531324
mov byte [esp + 0x1eb], bl
cmp ecx, 0xb
jne 0x5341dc
mov eax, ecx
or eax, 2
xor ecx, 2
add ecx, eax
jne 0x52f471
jmp 0x5341dc
cmp eax, 1
jne 0x534136
mov eax, 0xa
mov esi, 0xd
mov dword [esp + 0x180], 0
mov byte [esp + 0x12f], 0x36
mov ecx, dword [ebp + 0x28]
mov ecx, dword [ecx]
mov dword [esp + 0x100], ecx
mov dword [esp + 0x2fc], 0x700002bb
test ecx, ecx
je 0x536c82
cmp esi, 0xd
jne 0x536cf8
mov dword [esp + 0x2ec], edi
mov eax, esi
and eax, 1
xor eax, esi
not eax
test eax, eax
je 0x532248
mov ecx, 8
mov al, byte [esp + 0x12f]
movzx eax, al
cmp eax, 0x36
jne 0x533f0d
mov esi, dword [esp + 0x140]
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x2fc]
jmp 0x536e89
mov dword [esp + 0x2ec], edi
cmp eax, 0xa
jne 0x536c9e
mov ecx, eax
or ecx, 2
xor eax, 2
add eax, ecx
jne 0x5343e3
mov eax, 0xd
mov cl, byte [esp + 0x1ea]
movzx ecx, cl
cmp ecx, 0x3e
jne 0x533c0d
mov esi, dword [esp + 0x274]
mov edx, dword [esp + 0x2a0]
cmp eax, 4
je 0x531b03
xor eax, eax
test al, al
je 0x5367d3
jmp 0x531b03
cmp esi, 8
je 0x531964
mov eax, esi
and eax, 1
inc eax
xor eax, esi
jne 0x5343e3
jmp 0x531964
mov dword [esp + 0x2ec], edi
jmp 0x532248
lea eax, [esp + 0x334]
lea ecx, [esp + 0x380]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.007c51d0
lea eax, [esp + 0x37c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x330]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0x1c
mov dword [esp + 4], 0
call fcn.00593f40
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x537017
mov byte [esp + 0x8b], 0x3a
mov al, byte [esp + 0x11e]
movzx ecx, al
cmp ecx, 0x68
je 0x536e06
mov eax, 0x14
cmp ecx, 0x6d
jne 0x536ee7
mov dword [esp + 0x2fc], 0
cmp dword [ebp + 0x3c], 0
mov eax, 5
mov esi, 4
mov byte [esp + 0x11e], 0x6d
mov edx, dword [esp + 0x380]
mov dword [esp + 0x140], edx
mov edi, dword [esp + 0x384]
mov dword [esp + 0x13c], edi
mov ecx, dword [esp + 0x1dc]
mov dword [ecx + 4], edi
mov dword [ecx], edx
je 0x536fcf
cmp esi, 4
jne 0x5305a1
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x536e6a
jmp 0x5305a1
xor ebx, ebx
mov eax, dword [ebp + 0x3c]
test eax, eax
mov eax, 0xa
mov ecx, 0x14
mov byte [esp + 0x11e], 0x68
mov esi, dword [esp + 0x380]
mov edi, dword [esp + 0x384]
mov edx, dword [esp + 0x1dc]
mov dword [edx + 4], edi
mov dword [edx], esi
je 0x536e89
cmp eax, 0xa
jne 0x536743
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x536743
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], esi
xor eax, eax
mov edx, dword [ebp + 0x3c]
mov esi, dword [esp + 0x140]
mov edi, dword [esp + 0x13c]
mov ebx, dword [esp + 0x2fc]
jmp 0x5343c8
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x13c], edi
mov dword [esp + 0x140], esi
cmp ecx, 8
je 0x536ead
xor eax, eax
test al, al
je 0x5343e3
mov eax, dword [esp + 0x100]
mov esi, dword [eax]
test esi, esi
je 0x536fb7
mov dword [esp + 0x2fc], 0x700002bb
mov byte [esp + 0x12f], 0x55
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 3
jne 0x533f6d
jmp 0x5343e3
mov edx, dword [ebp + 0x3c]
mov edi, dword [esp + 0x2ec]
cmp eax, 6
jne 0x534343
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x534343
mov dword [esp + 0x2ec], edi
imul eax, dword [esp + 0x250], 0x1c
add eax, dword [esp + 0x25c]
mov ecx, dword [ebp + 0x2c]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x2ec]
mov dword [esp], eax
mov dword [esp + 0xc], 1
mov ecx, dword [esp + 0x2e8]
mov edx, dword [esp + 0x1ac]
call fcn.004fddc0
mov dword [esp + 0x2fc], 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 + 0x228]
mov edi, eax
mov dword [esp + 0x264], eax
jne 0x5343e3
mov ecx, dword [esp + 0x250]
mov eax, ecx
not eax
and eax, 1
add eax, ecx
setne al
movzx ebx, al
add ebx, ecx
mov eax, dword [esp + 0x3cc]
cmp ebx, dword [eax + 4]
jae 0x533297
mov dword [esp + 0x2b0], eax
jmp 0x53374c
mov dword [esp + 0x2fc], 0x700002bb
mov byte [esp + 0x12f], 0x55
jmp 0x5343e3
cmp eax, 5
jne 0x536fe3
imul eax, eax
and eax, 3
cmp eax, 2
jb 0x5343e3
mov byte [esp + 0x187], 0x73
mov eax, dword [esp + 0x1a4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x194]
mov dword [esp], esi
call fcn.007c51d0
mov eax, esi
jmp 0x530db3
mov byte [esp + 0x8b], 0x3a
mov edx, 4
mov cl, byte [esp + 0x8a]
mov dword [esp + 0x2fc], eax
cmp edx, 4
jne 0x537052
mov byte [esp + 0x8a], cl
mov ecx, 3
sub ecx, edx
xor ecx, edx
jne 0x5343e3
jmp 0x531324
mov byte [esp + 0x8a], cl
jmp 0x531324