45311b:	89 01                	mov    %eax,(%ecx)
45311d:	b0 01                	mov    $0x1,%al
45311f:	5d                   	pop    %ebp
453120:	c2 04 00             	ret    $0x4
453123:	8b ff                	mov    %edi,%edi
453125:	55                   	push   %ebp
453126:	8b ec                	mov    %esp,%ebp
453128:	83 ec 0c             	sub    $0xc,%esp
45312b:	33 c0                	xor    %eax,%eax
45312d:	33 d2                	xor    %edx,%edx
45312f:	53                   	push   %ebx
453130:	8b 5d 14             	mov    0x14(%ebp),%ebx
453133:	83 fb 40             	cmp    $0x40,%ebx
453136:	0f 83 c6 00 00 00    	jae    0x453202
45313c:	56                   	push   %esi
45313d:	57                   	push   %edi
45313e:	8d 4b ff             	lea    -0x1(%ebx),%ecx
453141:	40                   	inc    %eax
453142:	e8 b9 cb fe ff       	call   0x43fd00
453147:	8b f8                	mov    %eax,%edi
453149:	89 55 f8             	mov    %edx,-0x8(%ebp)
45314c:	8b f7                	mov    %edi,%esi
45314e:	8b cb                	mov    %ebx,%ecx
453150:	83 c6 ff             	add    $0xffffffff,%esi
453153:	83 d2 ff             	adc    $0xffffffff,%edx
453156:	33 c0                	xor    %eax,%eax
453158:	89 55 f4             	mov    %edx,-0xc(%ebp)
45315b:	40                   	inc    %eax
45315c:	33 d2                	xor    %edx,%edx
45315e:	e8 9d cb fe ff       	call   0x43fd00
453163:	23 45 0c             	and    0xc(%ebp),%eax
453166:	23 55 10             	and    0x10(%ebp),%edx
453169:	0b c2                	or     %edx,%eax
45316b:	c6 45 fd 01          	movb   $0x1,-0x3(%ebp)
45316f:	6a 00                	push   $0x0
453171:	5b                   	pop    %ebx
453172:	75 03                	jne    0x453177
453174:	88 5d fd             	mov    %bl,-0x3(%ebp)
453177:	8b 45 f8             	mov    -0x8(%ebp),%eax
45317a:	b1 01                	mov    $0x1,%cl
45317c:	23 7d 0c             	and    0xc(%ebp),%edi
45317f:	23 45 10             	and    0x10(%ebp),%eax
453182:	0b f8                	or     %eax,%edi
453184:	75 02                	jne    0x453188
453186:	8a cb                	mov    %bl,%cl
453188:	80 7d 18 00          	cmpb   $0x0,0x18(%ebp)
45318c:	88 4d ff             	mov    %cl,-0x1(%ebp)
45318f:	74 0f                	je     0x4531a0
453191:	8b 45 f4             	mov    -0xc(%ebp),%eax
453194:	23 45 10             	and    0x10(%ebp),%eax
453197:	23 75 0c             	and    0xc(%ebp),%esi
45319a:	0b f0                	or     %eax,%esi
45319c:	8a c3                	mov    %bl,%al
45319e:	74 02                	je     0x4531a2
4531a0:	b0 01                	mov    $0x1,%al
4531a2:	88 45 fe             	mov    %al,-0x2(%ebp)
4531a5:	84 c9                	test   %cl,%cl
4531a7:	75 04                	jne    0x4531ad
4531a9:	84 c0                	test   %al,%al
4531ab:	74 39                	je     0x4531e6
4531ad:	e8 31 f4 01 00       	call   0x4725e3
4531b2:	85 c0                	test   %eax,%eax
4531b4:	74 1c                	je     0x4531d2
4531b6:	3d 00 01 00 00       	cmp    $0x100,%eax
4531bb:	74 10                	je     0x4531cd
4531bd:	3d 00 02 00 00       	cmp    $0x200,%eax
4531c2:	75 22                	jne    0x4531e6
4531c4:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4531c8:	0f 94 c3             	sete   %bl
4531cb:	eb 19                	jmp    0x4531e6
4531cd:	8a 5d 08             	mov    0x8(%ebp),%bl
4531d0:	eb 14                	jmp    0x4531e6
4531d2:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4531d6:	74 0e                	je     0x4531e6
4531d8:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
4531dc:	75 06                	jne    0x4531e4
4531de:	80 7d fd 00          	cmpb   $0x0,-0x3(%ebp)
4531e2:	74 02                	je     0x4531e6
4531e4:	b3 01                	mov    $0x1,%bl
4531e6:	8b 45 0c             	mov    0xc(%ebp),%eax
4531e9:	8b 55 10             	mov    0x10(%ebp),%edx
4531ec:	8b 4d 14             	mov    0x14(%ebp),%ecx
4531ef:	e8 cc cb fe ff       	call   0x43fdc0
4531f4:	8b c8                	mov    %eax,%ecx
4531f6:	8b f2                	mov    %edx,%esi
4531f8:	0f b6 c3             	movzbl %bl,%eax
4531fb:	99                   	cltd
4531fc:	03 c1                	add    %ecx,%eax
4531fe:	5f                   	pop    %edi
4531ff:	13 d6                	adc    %esi,%edx
453201:	5e                   	pop    %esi
453202:	5b                   	pop    %ebx
453203:	8b e5                	mov    %ebp,%esp
453205:	5d                   	pop    %ebp
453206:	c3                   	ret
453207:	8b 01                	mov    (%ecx),%eax
453209:	c3                   	ret
45320a:	8b 01                	mov    (%ecx),%eax
45320c:	c3                   	ret
45320d:	cc                   	int3
45320e:	cc                   	int3
45320f:	cc                   	int3
453210:	8b ff                	mov    %edi,%edi
453212:	55                   	push   %ebp
453213:	8b ec                	mov    %esp,%ebp
453215:	81 ec ec 01 00 00    	sub    $0x1ec,%esp
45321b:	53                   	push   %ebx
45321c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45321f:	33 d2                	xor    %edx,%edx
453221:	56                   	push   %esi
453222:	8b c3                	mov    %ebx,%eax
453224:	be 20 00 00 00       	mov    $0x20,%esi
453229:	c1 e8 05             	shr    $0x5,%eax
45322c:	83 e3 1f             	and    $0x1f,%ebx
45322f:	8b ce                	mov    %esi,%ecx
453231:	89 45 f0             	mov    %eax,-0x10(%ebp)
453234:	2b cb                	sub    %ebx,%ecx
453236:	89 5d 0c             	mov    %ebx,0xc(%ebp)
453239:	57                   	push   %edi
45323a:	8d 46 e1             	lea    -0x1f(%esi),%eax
45323d:	89 4d e8             	mov    %ecx,-0x18(%ebp)
453240:	e8 bb ca fe ff       	call   0x43fd00
453245:	8b 7d 08             	mov    0x8(%ebp),%edi
453248:	48                   	dec    %eax
453249:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45324c:	f7 d0                	not    %eax
45324e:	89 45 ec             	mov    %eax,-0x14(%ebp)
453251:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
453258:	8b 17                	mov    (%edi),%edx
45325a:	8b 0c 97             	mov    (%edi,%edx,4),%ecx
45325d:	0f bd c1             	bsr    %ecx,%eax
453260:	74 03                	je     0x453265
453262:	40                   	inc    %eax
453263:	eb 02                	jmp    0x453267
453265:	33 c0                	xor    %eax,%eax
453267:	2b f0                	sub    %eax,%esi
453269:	8b 45 f0             	mov    -0x10(%ebp),%eax
45326c:	3b de                	cmp    %esi,%ebx
45326e:	0f 97 c1             	seta   %cl
453271:	03 d0                	add    %eax,%edx
453273:	83 fa 73             	cmp    $0x73,%edx
453276:	88 4d ff             	mov    %cl,-0x1(%ebp)
453279:	89 55 f8             	mov    %edx,-0x8(%ebp)
45327c:	0f 97 c3             	seta   %bl
45327f:	83 fa 73             	cmp    $0x73,%edx
453282:	75 08                	jne    0x45328c
453284:	84 c9                	test   %cl,%cl
453286:	74 04                	je     0x45328c
453288:	b1 01                	mov    $0x1,%cl
45328a:	eb 02                	jmp    0x45328e
45328c:	32 c9                	xor    %cl,%cl
45328e:	84 db                	test   %bl,%bl
453290:	0f 85 a2 00 00 00    	jne    0x453338
453296:	84 c9                	test   %cl,%cl
453298:	0f 85 9a 00 00 00    	jne    0x453338
45329e:	83 fa 72             	cmp    $0x72,%edx
4532a1:	72 08                	jb     0x4532ab
4532a3:	ba 72 00 00 00       	mov    $0x72,%edx
4532a8:	89 55 f8             	mov    %edx,-0x8(%ebp)
4532ab:	8b da                	mov    %edx,%ebx
4532ad:	83 fa ff             	cmp    $0xffffffff,%edx
4532b0:	74 64                	je     0x453316
4532b2:	8b f2                	mov    %edx,%esi
4532b4:	8d 4f 04             	lea    0x4(%edi),%ecx
4532b7:	2b f0                	sub    %eax,%esi
4532b9:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
4532bc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4532bf:	8d 3c b7             	lea    (%edi,%esi,4),%edi
4532c2:	83 c7 04             	add    $0x4,%edi
4532c5:	3b d8                	cmp    %eax,%ebx
4532c7:	72 47                	jb     0x453310
4532c9:	8b 45 08             	mov    0x8(%ebp),%eax
4532cc:	8b 08                	mov    (%eax),%ecx
4532ce:	3b f1                	cmp    %ecx,%esi
4532d0:	73 04                	jae    0x4532d6
4532d2:	8b 17                	mov    (%edi),%edx
4532d4:	eb 02                	jmp    0x4532d8
4532d6:	33 d2                	xor    %edx,%edx
4532d8:	8d 46 ff             	lea    -0x1(%esi),%eax
4532db:	3b c1                	cmp    %ecx,%eax
4532dd:	73 05                	jae    0x4532e4
4532df:	8b 47 fc             	mov    -0x4(%edi),%eax
4532e2:	eb 02                	jmp    0x4532e6
4532e4:	33 c0                	xor    %eax,%eax
4532e6:	23 45 ec             	and    -0x14(%ebp),%eax
4532e9:	4b                   	dec    %ebx
4532ea:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4532ed:	4e                   	dec    %esi
4532ee:	23 55 e4             	and    -0x1c(%ebp),%edx
4532f1:	83 ef 04             	sub    $0x4,%edi
4532f4:	d3 e8                	shr    %cl,%eax
4532f6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4532f9:	d3 e2                	shl    %cl,%edx
4532fb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4532fe:	0b c2                	or     %edx,%eax
453300:	89 01                	mov    %eax,(%ecx)
453302:	83 e9 04             	sub    $0x4,%ecx
453305:	8b 45 f0             	mov    -0x10(%ebp),%eax
453308:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45330b:	83 fb ff             	cmp    $0xffffffff,%ebx
45330e:	75 b5                	jne    0x4532c5
453310:	8b 55 f8             	mov    -0x8(%ebp),%edx
453313:	8b 7d 08             	mov    0x8(%ebp),%edi
453316:	85 c0                	test   %eax,%eax
453318:	74 09                	je     0x453323
45331a:	83 c7 04             	add    $0x4,%edi
45331d:	8b c8                	mov    %eax,%ecx
45331f:	33 c0                	xor    %eax,%eax
453321:	f3 ab                	rep stos %eax,%es:(%edi)
453323:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
453327:	74 01                	je     0x45332a
453329:	42                   	inc    %edx
45332a:	8b 45 08             	mov    0x8(%ebp),%eax
45332d:	5f                   	pop    %edi
45332e:	5e                   	pop    %esi
45332f:	5b                   	pop    %ebx
453330:	89 10                	mov    %edx,(%eax)
453332:	b0 01                	mov    $0x1,%al
453334:	8b e5                	mov    %ebp,%esp
453336:	5d                   	pop    %ebp
453337:	c3                   	ret
453338:	6a 00                	push   $0x0
45333a:	8d 85 18 fe ff ff    	lea    -0x1e8(%ebp),%eax
453340:	c7 85 14 fe ff ff 00 	movl   $0x0,-0x1ec(%ebp)
453347:	00 00 00
45334a:	50                   	push   %eax
45334b:	8d 47 04             	lea    0x4(%edi),%eax
45334e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
453354:	68 cc 01 00 00       	push   $0x1cc
453359:	50                   	push   %eax
45335a:	e8 43 03 00 00       	call   0x4536a2
45335f:	83 c4 10             	add    $0x10,%esp
453362:	32 c0                	xor    %al,%al
453364:	5f                   	pop    %edi
453365:	5e                   	pop    %esi
453366:	5b                   	pop    %ebx
453367:	8b e5                	mov    %ebp,%esp
453369:	5d                   	pop    %ebp
45336a:	c3                   	ret
45336b:	8b ff                	mov    %edi,%edi
45336d:	55                   	push   %ebp
45336e:	8b ec                	mov    %esp,%ebp
453370:	53                   	push   %ebx
453371:	8a 7d 10             	mov    0x10(%ebp),%bh
453374:	8a 5d 14             	mov    0x14(%ebp),%bl
453377:	84 ff                	test   %bh,%bh
453379:	75 08                	jne    0x453383
45337b:	84 db                	test   %bl,%bl
45337d:	75 04                	jne    0x453383
45337f:	32 c0                	xor    %al,%al
453381:	eb 3a                	jmp    0x4533bd
453383:	e8 5b f2 01 00       	call   0x4725e3
453388:	85 c0                	test   %eax,%eax
45338a:	74 1d                	je     0x4533a9
45338c:	3d 00 01 00 00       	cmp    $0x100,%eax
453391:	74 11                	je     0x4533a4
453393:	3d 00 02 00 00       	cmp    $0x200,%eax
453398:	75 e5                	jne    0x45337f
45339a:	33 c0                	xor    %eax,%eax
45339c:	38 45 08             	cmp    %al,0x8(%ebp)
45339f:	0f 94 c0             	sete   %al
4533a2:	eb 19                	jmp    0x4533bd
4533a4:	8a 45 08             	mov    0x8(%ebp),%al
4533a7:	eb 14                	jmp    0x4533bd
4533a9:	84 ff                	test   %bh,%bh
4533ab:	74 0e                	je     0x4533bb
4533ad:	84 db                	test   %bl,%bl
4533af:	75 05                	jne    0x4533b6
4533b1:	38 5d 0c             	cmp    %bl,0xc(%ebp)
4533b4:	74 05                	je     0x4533bb
4533b6:	33 c0                	xor    %eax,%eax
4533b8:	40                   	inc    %eax
4533b9:	eb 02                	jmp    0x4533bd
4533bb:	33 c0                	xor    %eax,%eax
4533bd:	5b                   	pop    %ebx
4533be:	5d                   	pop    %ebp
4533bf:	c3                   	ret
4533c0:	8b ff                	mov    %edi,%edi
4533c2:	55                   	push   %ebp
4533c3:	8b ec                	mov    %esp,%ebp
4533c5:	ff 09                	decl   (%ecx)
4533c7:	8a 45 08             	mov    0x8(%ebp),%al
4533ca:	8b 09                	mov    (%ecx),%ecx
4533cc:	84 c0                	test   %al,%al
4533ce:	74 14                	je     0x4533e4
4533d0:	38 01                	cmp    %al,(%ecx)
4533d2:	74 10                	je     0x4533e4
4533d4:	e8 56 9a ff ff       	call   0x44ce2f
4533d9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4533df:	e8 f2 98 ff ff       	call   0x44ccd6
4533e4:	5d                   	pop    %ebp
4533e5:	c2 04 00             	ret    $0x4
4533e8:	8b ff                	mov    %edi,%edi
4533ea:	55                   	push   %ebp
4533eb:	8b ec                	mov    %esp,%ebp
4533ed:	83 01 fe             	addl   $0xfffffffe,(%ecx)
4533f0:	66 8b 45 08          	mov    0x8(%ebp),%ax
4533f4:	8b 09                	mov    (%ecx),%ecx
4533f6:	66 85 c0             	test   %ax,%ax
4533f9:	74 15                	je     0x453410
4533fb:	66 39 01             	cmp    %ax,(%ecx)
4533fe:	74 10                	je     0x453410
453400:	e8 2a 9a ff ff       	call   0x44ce2f
453405:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
45340b:	e8 c6 98 ff ff       	call   0x44ccd6
453410:	5d                   	pop    %ebp
453411:	c2 04 00             	ret    $0x4
453414:	83 39 00             	cmpl   $0x0,(%ecx)
453417:	75 13                	jne    0x45342c
453419:	e8 11 9a ff ff       	call   0x44ce2f
45341e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
453424:	e8 ad 98 ff ff       	call   0x44ccd6
453429:	32 c0                	xor    %al,%al
45342b:	c3                   	ret
45342c:	b0 01                	mov    $0x1,%al
45342e:	c3                   	ret
45342f:	83 39 00             	cmpl   $0x0,(%ecx)
453432:	75 13                	jne    0x453447
453434:	e8 f6 99 ff ff       	call   0x44ce2f
453439:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
45343f:	e8 92 98 ff ff       	call   0x44ccd6
453444:	32 c0                	xor    %al,%al
453446:	c3                   	ret
453447:	b0 01                	mov    $0x1,%al
453449:	c3                   	ret
45344a:	8b ff                	mov    %edi,%edi
45344c:	55                   	push   %ebp
45344d:	8b ec                	mov    %esp,%ebp
45344f:	66 8b 45 08          	mov    0x8(%ebp),%ax
453453:	6a 30                	push   $0x30
453455:	59                   	pop    %ecx
453456:	66 3b c1             	cmp    %cx,%ax
453459:	0f 82 87 01 00 00    	jb     0x4535e6
45345f:	66 83 f8 3a          	cmp    $0x3a,%ax
453463:	73 07                	jae    0x45346c
453465:	0f b7 c0             	movzwl %ax,%eax
453468:	2b c1                	sub    %ecx,%eax
45346a:	5d                   	pop    %ebp
45346b:	c3                   	ret
45346c:	ba 10 ff 00 00       	mov    $0xff10,%edx
453471:	66 3b c2             	cmp    %dx,%ax
453474:	0f 83 5e 01 00 00    	jae    0x4535d8
45347a:	ba 60 06 00 00       	mov    $0x660,%edx
45347f:	66 3b c2             	cmp    %dx,%ax
453482:	0f 82 5e 01 00 00    	jb     0x4535e6
453488:	8d 4a 0a             	lea    0xa(%edx),%ecx
45348b:	66 3b c1             	cmp    %cx,%ax
45348e:	73 07                	jae    0x453497
453490:	0f b7 c0             	movzwl %ax,%eax
453493:	2b c2                	sub    %edx,%eax