ab20ba:	cc                   	int3
ab20bb:	cc                   	int3
ab20bc:	cc                   	int3
ab20bd:	cc                   	int3
ab20be:	cc                   	int3
ab20bf:	cc                   	int3
ab20c0:	cc                   	int3
ab20c1:	cc                   	int3
ab20c2:	cc                   	int3
ab20c3:	cc                   	int3
ab20c4:	cc                   	int3
ab20c5:	cc                   	int3
ab20c6:	cc                   	int3
ab20c7:	cc                   	int3
ab20c8:	cc                   	int3
ab20c9:	cc                   	int3
ab20ca:	cc                   	int3
ab20cb:	cc                   	int3
ab20cc:	cc                   	int3
ab20cd:	cc                   	int3
ab20ce:	cc                   	int3
ab20cf:	cc                   	int3
ab20d0:	cc                   	int3
ab20d1:	8d 41 2c             	lea    0x2c(%ecx),%eax
ab20d4:	c3                   	ret
ab20d5:	8d 41 34             	lea    0x34(%ecx),%eax
ab20d8:	c3                   	ret
ab20d9:	8b 01                	mov    (%ecx),%eax
ab20db:	33 c9                	xor    %ecx,%ecx
ab20dd:	41                   	inc    %ecx
ab20de:	23 c1                	and    %ecx,%eax
ab20e0:	83 c8 00             	or     $0x0,%eax
ab20e3:	75 02                	jne    0xab20e7
ab20e5:	33 c9                	xor    %ecx,%ecx
ab20e7:	8a c1                	mov    %cl,%al
ab20e9:	c3                   	ret
ab20ea:	cc                   	int3
ab20eb:	cc                   	int3
ab20ec:	cc                   	int3
ab20ed:	cc                   	int3
ab20ee:	8b 01                	mov    (%ecx),%eax
ab20f0:	33 c9                	xor    %ecx,%ecx
ab20f2:	41                   	inc    %ecx
ab20f3:	23 c1                	and    %ecx,%eax
ab20f5:	83 c8 00             	or     $0x0,%eax
ab20f8:	75 02                	jne    0xab20fc
ab20fa:	33 c9                	xor    %ecx,%ecx
ab20fc:	8a c1                	mov    %cl,%al
ab20fe:	c3                   	ret
ab20ff:	cc                   	int3
ab2100:	cc                   	int3
ab2101:	cc                   	int3
ab2102:	cc                   	int3
ab2103:	8b 01                	mov    (%ecx),%eax
ab2105:	33 c9                	xor    %ecx,%ecx
ab2107:	41                   	inc    %ecx
ab2108:	23 c1                	and    %ecx,%eax
ab210a:	83 c8 00             	or     $0x0,%eax
ab210d:	75 02                	jne    0xab2111
ab210f:	33 c9                	xor    %ecx,%ecx
ab2111:	8a c1                	mov    %cl,%al
ab2113:	c3                   	ret
ab2114:	cc                   	int3
ab2115:	cc                   	int3
ab2116:	cc                   	int3
ab2117:	cc                   	int3
ab2118:	8b 01                	mov    (%ecx),%eax
ab211a:	33 c9                	xor    %ecx,%ecx
ab211c:	41                   	inc    %ecx
ab211d:	23 c1                	and    %ecx,%eax
ab211f:	83 c8 00             	or     $0x0,%eax
ab2122:	75 02                	jne    0xab2126
ab2124:	33 c9                	xor    %ecx,%ecx
ab2126:	8a c1                	mov    %cl,%al
ab2128:	c3                   	ret
ab2129:	cc                   	int3
ab212a:	cc                   	int3
ab212b:	cc                   	int3
ab212c:	cc                   	int3
ab212d:	8b ff                	mov    %edi,%edi
ab212f:	55                   	push   %ebp
ab2130:	8b ec                	mov    %esp,%ebp
ab2132:	56                   	push   %esi
ab2133:	0f b6 75 08          	movzbl 0x8(%ebp),%esi
ab2137:	8b d6                	mov    %esi,%edx
ab2139:	c1 ea 03             	shr    $0x3,%edx
ab213c:	0f b6 04 0a          	movzbl (%edx,%ecx,1),%eax
ab2140:	81 e6 07 00 00 80    	and    $0x80000007,%esi
ab2146:	79 05                	jns    0xab214d
ab2148:	4e                   	dec    %esi
ab2149:	83 ce f8             	or     $0xfffffff8,%esi
ab214c:	46                   	inc    %esi
ab214d:	0f ab f0             	bts    %esi,%eax
ab2150:	88 04 0a             	mov    %al,(%edx,%ecx,1)
ab2153:	5e                   	pop    %esi
ab2154:	5d                   	pop    %ebp
ab2155:	c2 04 00             	ret    $0x4
ab2158:	cc                   	int3
ab2159:	cc                   	int3
ab215a:	cc                   	int3
ab215b:	cc                   	int3
ab215c:	cc                   	int3
ab215d:	cc                   	int3
ab215e:	cc                   	int3
ab215f:	cc                   	int3
ab2160:	cc                   	int3
ab2161:	cc                   	int3
ab2162:	8b ff                	mov    %edi,%edi
ab2164:	55                   	push   %ebp
ab2165:	8b ec                	mov    %esp,%ebp
ab2167:	56                   	push   %esi
ab2168:	0f b7 75 08          	movzwl 0x8(%ebp),%esi
ab216c:	e8 d4 76 95 ff       	call   0x409845
ab2171:	8b ce                	mov    %esi,%ecx
ab2173:	c1 e9 03             	shr    $0x3,%ecx
ab2176:	03 c8                	add    %eax,%ecx
ab2178:	0f b6 01             	movzbl (%ecx),%eax
ab217b:	81 e6 07 00 00 80    	and    $0x80000007,%esi
ab2181:	79 05                	jns    0xab2188
ab2183:	4e                   	dec    %esi
ab2184:	83 ce f8             	or     $0xfffffff8,%esi
ab2187:	46                   	inc    %esi
ab2188:	0f ab f0             	bts    %esi,%eax
ab218b:	88 01                	mov    %al,(%ecx)
ab218d:	5e                   	pop    %esi
ab218e:	5d                   	pop    %ebp
ab218f:	c2 04 00             	ret    $0x4
ab2192:	cc                   	int3
ab2193:	cc                   	int3
ab2194:	cc                   	int3
ab2195:	cc                   	int3
ab2196:	cc                   	int3
ab2197:	cc                   	int3
ab2198:	cc                   	int3
ab2199:	cc                   	int3
ab219a:	cc                   	int3
ab219b:	cc                   	int3
ab219c:	cc                   	int3
ab219d:	cc                   	int3
ab219e:	8b 41 20             	mov    0x20(%ecx),%eax
ab21a1:	83 f8 02             	cmp    $0x2,%eax
ab21a4:	75 04                	jne    0xab21aa
ab21a6:	c6 41 24 00          	movb   $0x0,0x24(%ecx)
ab21aa:	83 f8 03             	cmp    $0x3,%eax
ab21ad:	74 0a                	je     0xab21b9
ab21af:	83 f8 04             	cmp    $0x4,%eax
ab21b2:	74 05                	je     0xab21b9
ab21b4:	83 f8 08             	cmp    $0x8,%eax
ab21b7:	75 04                	jne    0xab21bd
ab21b9:	c6 41 24 01          	movb   $0x1,0x24(%ecx)
ab21bd:	c3                   	ret
ab21be:	cc                   	int3
ab21bf:	cc                   	int3
ab21c0:	cc                   	int3
ab21c1:	cc                   	int3
ab21c2:	cc                   	int3
ab21c3:	cc                   	int3
ab21c4:	cc                   	int3
ab21c5:	cc                   	int3
ab21c6:	8b 41 28             	mov    0x28(%ecx),%eax
ab21c9:	83 f8 02             	cmp    $0x2,%eax
ab21cc:	75 04                	jne    0xab21d2
ab21ce:	c6 41 2c 00          	movb   $0x0,0x2c(%ecx)
ab21d2:	83 f8 03             	cmp    $0x3,%eax
ab21d5:	74 0a                	je     0xab21e1
ab21d7:	83 f8 04             	cmp    $0x4,%eax
ab21da:	74 05                	je     0xab21e1
ab21dc:	83 f8 08             	cmp    $0x8,%eax
ab21df:	75 04                	jne    0xab21e5
ab21e1:	c6 41 2c 01          	movb   $0x1,0x2c(%ecx)
ab21e5:	c3                   	ret
ab21e6:	cc                   	int3
ab21e7:	cc                   	int3
ab21e8:	cc                   	int3
ab21e9:	cc                   	int3
ab21ea:	cc                   	int3
ab21eb:	cc                   	int3
ab21ec:	cc                   	int3
ab21ed:	cc                   	int3
ab21ee:	cc                   	int3
ab21ef:	cc                   	int3
ab21f0:	8b ff                	mov    %edi,%edi
ab21f2:	55                   	push   %ebp
ab21f3:	8b ec                	mov    %esp,%ebp
ab21f5:	81 ec ec 01 00 00    	sub    $0x1ec,%esp
ab21fb:	53                   	push   %ebx
ab21fc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
ab21ff:	33 d2                	xor    %edx,%edx
ab2201:	56                   	push   %esi
ab2202:	8b c3                	mov    %ebx,%eax
ab2204:	be 20 00 00 00       	mov    $0x20,%esi
ab2209:	c1 e8 05             	shr    $0x5,%eax
ab220c:	83 e3 1f             	and    $0x1f,%ebx
ab220f:	8b ce                	mov    %esi,%ecx
ab2211:	89 45 f4             	mov    %eax,-0xc(%ebp)
ab2214:	2b cb                	sub    %ebx,%ecx
ab2216:	89 5d 0c             	mov    %ebx,0xc(%ebp)
ab2219:	57                   	push   %edi
ab221a:	8d 46 e1             	lea    -0x1f(%esi),%eax
ab221d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
ab2220:	e8 3a 87 97 ff       	call   0x42a95f
ab2225:	8b 55 08             	mov    0x8(%ebp),%edx
ab2228:	48                   	dec    %eax
ab2229:	89 45 e8             	mov    %eax,-0x18(%ebp)
ab222c:	f7 d0                	not    %eax
ab222e:	89 45 ec             	mov    %eax,-0x14(%ebp)
ab2231:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
ab2238:	8b 3a                	mov    (%edx),%edi
ab223a:	8b 0c ba             	mov    (%edx,%edi,4),%ecx
ab223d:	0f bd c1             	bsr    %ecx,%eax
ab2240:	74 03                	je     0xab2245
ab2242:	40                   	inc    %eax
ab2243:	eb 02                	jmp    0xab2247
ab2245:	33 c0                	xor    %eax,%eax
ab2247:	8b 4d f4             	mov    -0xc(%ebp),%ecx
ab224a:	2b f0                	sub    %eax,%esi
ab224c:	3b de                	cmp    %esi,%ebx
ab224e:	0f 97 c3             	seta   %bl
ab2251:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
ab2254:	88 5d ff             	mov    %bl,-0x1(%ebp)
ab2257:	83 f8 73             	cmp    $0x73,%eax
ab225a:	0f 97 c7             	seta   %bh
ab225d:	83 f8 73             	cmp    $0x73,%eax
ab2260:	75 08                	jne    0xab226a
ab2262:	84 db                	test   %bl,%bl
ab2264:	74 04                	je     0xab226a
ab2266:	b3 01                	mov    $0x1,%bl
ab2268:	eb 02                	jmp    0xab226c
ab226a:	32 db                	xor    %bl,%bl
ab226c:	84 ff                	test   %bh,%bh
ab226e:	0f 85 98 00 00 00    	jne    0xab230c
ab2274:	84 db                	test   %bl,%bl
ab2276:	0f 85 90 00 00 00    	jne    0xab230c
ab227c:	be 72 00 00 00       	mov    $0x72,%esi
ab2281:	3b c6                	cmp    %esi,%eax
ab2283:	0f 42 f0             	cmovb  %eax,%esi
ab2286:	89 75 f8             	mov    %esi,-0x8(%ebp)
ab2289:	8b de                	mov    %esi,%ebx
ab228b:	83 fe ff             	cmp    $0xffffffff,%esi
ab228e:	74 5f                	je     0xab22ef
ab2290:	2b f1                	sub    %ecx,%esi
ab2292:	8d 7a 04             	lea    0x4(%edx),%edi
ab2295:	8b c3                	mov    %ebx,%eax
ab2297:	40                   	inc    %eax
ab2298:	8d 3c b7             	lea    (%edi,%esi,4),%edi
ab229b:	8d 04 82             	lea    (%edx,%eax,4),%eax
ab229e:	89 45 f0             	mov    %eax,-0x10(%ebp)
ab22a1:	3b d9                	cmp    %ecx,%ebx
ab22a3:	72 47                	jb     0xab22ec
ab22a5:	8b 0a                	mov    (%edx),%ecx
ab22a7:	3b f1                	cmp    %ecx,%esi
ab22a9:	73 04                	jae    0xab22af
ab22ab:	8b 17                	mov    (%edi),%edx
ab22ad:	eb 02                	jmp    0xab22b1
ab22af:	33 d2                	xor    %edx,%edx
ab22b1:	8d 46 ff             	lea    -0x1(%esi),%eax
ab22b4:	3b c1                	cmp    %ecx,%eax
ab22b6:	73 05                	jae    0xab22bd
ab22b8:	8b 47 fc             	mov    -0x4(%edi),%eax
ab22bb:	eb 02                	jmp    0xab22bf
ab22bd:	33 c0                	xor    %eax,%eax
ab22bf:	23 45 ec             	and    -0x14(%ebp),%eax
ab22c2:	4b                   	dec    %ebx
ab22c3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
ab22c6:	4e                   	dec    %esi
ab22c7:	23 55 e8             	and    -0x18(%ebp),%edx
ab22ca:	83 ef 04             	sub    $0x4,%edi
ab22cd:	d3 e8                	shr    %cl,%eax
ab22cf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ab22d2:	d3 e2                	shl    %cl,%edx
ab22d4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
ab22d7:	0b c2                	or     %edx,%eax
ab22d9:	8b 55 08             	mov    0x8(%ebp),%edx
ab22dc:	89 01                	mov    %eax,(%ecx)
ab22de:	83 e9 04             	sub    $0x4,%ecx
ab22e1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
ab22e4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
ab22e7:	83 fb ff             	cmp    $0xffffffff,%ebx
ab22ea:	75 b5                	jne    0xab22a1
ab22ec:	8b 75 f8             	mov    -0x8(%ebp),%esi
ab22ef:	85 c9                	test   %ecx,%ecx
ab22f1:	74 07                	je     0xab22fa
ab22f3:	8d 7a 04             	lea    0x4(%edx),%edi
ab22f6:	33 c0                	xor    %eax,%eax
ab22f8:	f3 ab                	rep stos %eax,%es:(%edi)
ab22fa:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
ab22fe:	74 01                	je     0xab2301
ab2300:	46                   	inc    %esi
ab2301:	5f                   	pop    %edi
ab2302:	89 32                	mov    %esi,(%edx)
ab2304:	b0 01                	mov    $0x1,%al
ab2306:	5e                   	pop    %esi
ab2307:	5b                   	pop    %ebx
ab2308:	8b e5                	mov    %ebp,%esp
ab230a:	5d                   	pop    %ebp
ab230b:	c3                   	ret
ab230c:	6a 00                	push   $0x0
ab230e:	8d 85 18 fe ff ff    	lea    -0x1e8(%ebp),%eax
ab2314:	c7 85 14 fe ff ff 00 	movl   $0x0,-0x1ec(%ebp)
ab231b:	00 00 00
ab231e:	50                   	push   %eax
ab231f:	8d 42 04             	lea    0x4(%edx),%eax
ab2322:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
ab2328:	68 cc 01 00 00       	push   $0x1cc
ab232d:	50                   	push   %eax
ab232e:	e8 bd 0c 00 00       	call   0xab2ff0
ab2333:	83 c4 10             	add    $0x10,%esp
ab2336:	32 c0                	xor    %al,%al
ab2338:	5f                   	pop    %edi
ab2339:	5e                   	pop    %esi
ab233a:	5b                   	pop    %ebx
ab233b:	8b e5                	mov    %ebp,%esp
ab233d:	5d                   	pop    %ebp
ab233e:	c3                   	ret
ab233f:	cc                   	int3
ab2340:	cc                   	int3
ab2341:	cc                   	int3
ab2342:	cc                   	int3
ab2343:	cc                   	int3
ab2344:	cc                   	int3
ab2345:	cc                   	int3
ab2346:	cc                   	int3
ab2347:	cc                   	int3
ab2348:	cc                   	int3
ab2349:	cc                   	int3
ab234a:	cc                   	int3
ab234b:	cc                   	int3
ab234c:	cc                   	int3
ab234d:	cc                   	int3
ab234e:	cc                   	int3
ab234f:	cc                   	int3
ab2350:	cc                   	int3
ab2351:	cc                   	int3
ab2352:	cc                   	int3
ab2353:	cc                   	int3
ab2354:	cc                   	int3
ab2355:	cc                   	int3
ab2356:	cc                   	int3
ab2357:	cc                   	int3
ab2358:	cc                   	int3
ab2359:	cc                   	int3
ab235a:	cc                   	int3
ab235b:	cc                   	int3
ab235c:	cc                   	int3
ab235d:	cc                   	int3
ab235e:	cc                   	int3
ab235f:	cc                   	int3
ab2360:	cc                   	int3
ab2361:	cc                   	int3
ab2362:	cc                   	int3