40c0a0:	e8 6f 09 00 00       	call   0x40ca14
40c0a5:	8b 46 04             	mov    0x4(%esi),%eax
40c0a8:	40                   	inc    %eax
40c0a9:	50                   	push   %eax
40c0aa:	ff 75 18             	push   0x18(%ebp)
40c0ad:	57                   	push   %edi
40c0ae:	e8 ca 0f 00 00       	call   0x40d07d
40c0b3:	68 00 01 00 00       	push   $0x100
40c0b8:	ff 75 28             	push   0x28(%ebp)
40c0bb:	ff 73 0c             	push   0xc(%ebx)
40c0be:	ff 75 18             	push   0x18(%ebp)
40c0c1:	ff 75 10             	push   0x10(%ebp)
40c0c4:	57                   	push   %edi
40c0c5:	ff 75 08             	push   0x8(%ebp)
40c0c8:	e8 d7 06 00 00       	call   0x40c7a4
40c0cd:	83 c4 38             	add    $0x38,%esp
40c0d0:	85 c0                	test   %eax,%eax
40c0d2:	74 07                	je     0x40c0db
40c0d4:	57                   	push   %edi
40c0d5:	50                   	push   %eax
40c0d6:	e8 61 eb ff ff       	call   0x40ac3c
40c0db:	5f                   	pop    %edi
40c0dc:	5e                   	pop    %esi
40c0dd:	5b                   	pop    %ebx
40c0de:	5d                   	pop    %ebp
40c0df:	c3                   	ret
40c0e0:	55                   	push   %ebp
40c0e1:	8b ec                	mov    %esp,%ebp
40c0e3:	83 ec 64             	sub    $0x64,%esp
40c0e6:	53                   	push   %ebx
40c0e7:	56                   	push   %esi
40c0e8:	57                   	push   %edi
40c0e9:	8b 7d 18             	mov    0x18(%ebp),%edi
40c0ec:	33 c0                	xor    %eax,%eax
40c0ee:	57                   	push   %edi
40c0ef:	ff 75 14             	push   0x14(%ebp)
40c0f2:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c0f5:	ff 75 0c             	push   0xc(%ebp)
40c0f8:	88 45 e8             	mov    %al,-0x18(%ebp)
40c0fb:	e8 60 0f 00 00       	call   0x40d060
40c100:	8b c8                	mov    %eax,%ecx
40c102:	83 c4 0c             	add    $0xc,%esp
40c105:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40c108:	83 f9 ff             	cmp    $0xffffffff,%ecx
40c10b:	0f 8c 6c 03 00 00    	jl     0x40c47d
40c111:	3b 4f 04             	cmp    0x4(%edi),%ecx
40c114:	0f 8d 63 03 00 00    	jge    0x40c47d
40c11a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c11d:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40c123:	0f 85 f7 00 00 00    	jne    0x40c220
40c129:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40c12d:	0f 85 ed 00 00 00    	jne    0x40c220
40c133:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40c13a:	74 16                	je     0x40c152
40c13c:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40c143:	74 0d                	je     0x40c152
40c145:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40c14c:	0f 85 ce 00 00 00    	jne    0x40c220
40c152:	33 f6                	xor    %esi,%esi
40c154:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40c157:	0f 85 c3 00 00 00    	jne    0x40c220
40c15d:	e8 38 fc ff ff       	call   0x40bd9a
40c162:	39 70 10             	cmp    %esi,0x10(%eax)
40c165:	0f 84 a8 02 00 00    	je     0x40c413
40c16b:	e8 2a fc ff ff       	call   0x40bd9a
40c170:	8b 58 10             	mov    0x10(%eax),%ebx
40c173:	e8 22 fc ff ff       	call   0x40bd9a
40c178:	c6 45 e8 01          	movb   $0x1,-0x18(%ebp)
40c17c:	8b 40 14             	mov    0x14(%eax),%eax
40c17f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c182:	85 db                	test   %ebx,%ebx
40c184:	0f 84 f3 02 00 00    	je     0x40c47d
40c18a:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40c190:	75 2a                	jne    0x40c1bc
40c192:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40c196:	75 24                	jne    0x40c1bc
40c198:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40c19f:	74 12                	je     0x40c1b3
40c1a1:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40c1a8:	74 09                	je     0x40c1b3
40c1aa:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40c1b1:	75 09                	jne    0x40c1bc
40c1b3:	39 73 1c             	cmp    %esi,0x1c(%ebx)
40c1b6:	0f 84 c1 02 00 00    	je     0x40c47d
40c1bc:	e8 d9 fb ff ff       	call   0x40bd9a
40c1c1:	39 70 1c             	cmp    %esi,0x1c(%eax)
40c1c4:	74 62                	je     0x40c228
40c1c6:	e8 cf fb ff ff       	call   0x40bd9a
40c1cb:	8b 40 1c             	mov    0x1c(%eax),%eax
40c1ce:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c1d1:	e8 c4 fb ff ff       	call   0x40bd9a
40c1d6:	ff 75 f4             	push   -0xc(%ebp)
40c1d9:	53                   	push   %ebx
40c1da:	89 70 1c             	mov    %esi,0x1c(%eax)
40c1dd:	e8 1a 09 00 00       	call   0x40cafc
40c1e2:	59                   	pop    %ecx
40c1e3:	59                   	pop    %ecx
40c1e4:	84 c0                	test   %al,%al
40c1e6:	75 40                	jne    0x40c228
40c1e8:	8b 7d f4             	mov    -0xc(%ebp),%edi
40c1eb:	39 37                	cmp    %esi,(%edi)
40c1ed:	0f 8e 25 02 00 00    	jle    0x40c418
40c1f3:	8b 47 04             	mov    0x4(%edi),%eax
40c1f6:	68 a0 dc 43 00       	push   $0x43dca0
40c1fb:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
40c1ff:	e8 81 05 00 00       	call   0x40c785
40c204:	84 c0                	test   %al,%al
40c206:	0f 85 11 02 00 00    	jne    0x40c41d
40c20c:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c20f:	83 c6 10             	add    $0x10,%esi
40c212:	40                   	inc    %eax
40c213:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c216:	3b 07                	cmp    (%edi),%eax
40c218:	0f 8d fa 01 00 00    	jge    0x40c418
40c21e:	eb d3                	jmp    0x40c1f3
40c220:	8b 55 10             	mov    0x10(%ebp),%edx
40c223:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c226:	eb 06                	jmp    0x40c22e
40c228:	8b 55 fc             	mov    -0x4(%ebp),%edx
40c22b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40c22e:	33 c0                	xor    %eax,%eax
40c230:	89 7d d0             	mov    %edi,-0x30(%ebp)
40c233:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40c236:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40c23c:	0f 85 a0 01 00 00    	jne    0x40c3e2
40c242:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40c246:	0f 85 96 01 00 00    	jne    0x40c3e2
40c24c:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40c253:	74 16                	je     0x40c26b
40c255:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40c25c:	74 0d                	je     0x40c26b
40c25e:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40c265:	0f 85 77 01 00 00    	jne    0x40c3e2
40c26b:	39 47 0c             	cmp    %eax,0xc(%edi)
40c26e:	0f 86 0e 01 00 00    	jbe    0x40c382
40c274:	ff 75 20             	push   0x20(%ebp)
40c277:	8d 45 d0             	lea    -0x30(%ebp),%eax
40c27a:	57                   	push   %edi
40c27b:	ff 75 14             	push   0x14(%ebp)
40c27e:	51                   	push   %ecx
40c27f:	50                   	push   %eax
40c280:	8d 45 c0             	lea    -0x40(%ebp),%eax
40c283:	50                   	push   %eax
40c284:	e8 f7 e7 ff ff       	call   0x40aa80
40c289:	8b 55 c4             	mov    -0x3c(%ebp),%edx
40c28c:	83 c4 18             	add    $0x18,%esp
40c28f:	8b 45 c0             	mov    -0x40(%ebp),%eax
40c292:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c295:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c298:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40c29b:	0f 83 e1 00 00 00    	jae    0x40c382
40c2a1:	6b ca 14             	imul   $0x14,%edx,%ecx
40c2a4:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c2a7:	8b 00                	mov    (%eax),%eax
40c2a9:	8d 7d 9c             	lea    -0x64(%ebp),%edi
40c2ac:	6a 05                	push   $0x5
40c2ae:	8b 70 10             	mov    0x10(%eax),%esi
40c2b1:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c2b4:	03 f1                	add    %ecx,%esi
40c2b6:	59                   	pop    %ecx
40c2b7:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40c2b9:	39 45 9c             	cmp    %eax,-0x64(%ebp)
40c2bc:	0f 8f a4 00 00 00    	jg     0x40c366
40c2c2:	3b 45 a0             	cmp    -0x60(%ebp),%eax
40c2c5:	0f 8f 9b 00 00 00    	jg     0x40c366
40c2cb:	33 c9                	xor    %ecx,%ecx
40c2cd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40c2d0:	39 4d a8             	cmp    %ecx,-0x58(%ebp)
40c2d3:	0f 84 8d 00 00 00    	je     0x40c366
40c2d9:	8b 53 1c             	mov    0x1c(%ebx),%edx
40c2dc:	8b 42 0c             	mov    0xc(%edx),%eax
40c2df:	8b 30                	mov    (%eax),%esi
40c2e1:	83 c0 04             	add    $0x4,%eax
40c2e4:	89 45 e0             	mov    %eax,-0x20(%ebp)
40c2e7:	8b 45 ac             	mov    -0x54(%ebp),%eax
40c2ea:	89 75 dc             	mov    %esi,-0x24(%ebp)
40c2ed:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c2f0:	8b f0                	mov    %eax,%esi
40c2f2:	8d 7d b0             	lea    -0x50(%ebp),%edi
40c2f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40c2f9:	8b 75 dc             	mov    -0x24(%ebp),%esi
40c2fc:	8b 7d e0             	mov    -0x20(%ebp),%edi
40c2ff:	85 f6                	test   %esi,%esi
40c301:	7e 24                	jle    0x40c327
40c303:	52                   	push   %edx
40c304:	ff 37                	push   (%edi)
40c306:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c309:	50                   	push   %eax
40c30a:	e8 aa 02 00 00       	call   0x40c5b9
40c30f:	83 c4 0c             	add    $0xc,%esp
40c312:	85 c0                	test   %eax,%eax
40c314:	75 22                	jne    0x40c338
40c316:	8b 53 1c             	mov    0x1c(%ebx),%edx
40c319:	4e                   	dec    %esi
40c31a:	83 c7 04             	add    $0x4,%edi
40c31d:	85 f6                	test   %esi,%esi
40c31f:	7f e2                	jg     0x40c303
40c321:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c324:	8b 45 ec             	mov    -0x14(%ebp),%eax
40c327:	41                   	inc    %ecx
40c328:	83 c0 10             	add    $0x10,%eax
40c32b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40c32e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c331:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
40c334:	75 ba                	jne    0x40c2f0
40c336:	eb 2b                	jmp    0x40c363
40c338:	ff 75 1c             	push   0x1c(%ebp)
40c33b:	8d 45 9c             	lea    -0x64(%ebp),%eax
40c33e:	ff 75 e8             	push   -0x18(%ebp)
40c341:	ff 75 24             	push   0x24(%ebp)
40c344:	ff 75 20             	push   0x20(%ebp)
40c347:	50                   	push   %eax
40c348:	ff 37                	push   (%edi)
40c34a:	8d 45 b0             	lea    -0x50(%ebp),%eax
40c34d:	50                   	push   %eax
40c34e:	ff 75 18             	push   0x18(%ebp)
40c351:	ff 75 14             	push   0x14(%ebp)
40c354:	ff 75 fc             	push   -0x4(%ebp)
40c357:	ff 75 0c             	push   0xc(%ebp)
40c35a:	53                   	push   %ebx
40c35b:	e8 ff fc ff ff       	call   0x40c05f
40c360:	83 c4 30             	add    $0x30,%esp
40c363:	8b 55 f4             	mov    -0xc(%ebp),%edx
40c366:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40c369:	42                   	inc    %edx
40c36a:	8b 45 d8             	mov    -0x28(%ebp),%eax
40c36d:	83 c1 14             	add    $0x14,%ecx
40c370:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c373:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40c376:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40c379:	0f 82 28 ff ff ff    	jb     0x40c2a7
40c37f:	8b 7d 18             	mov    0x18(%ebp),%edi
40c382:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40c386:	74 0a                	je     0x40c392
40c388:	6a 01                	push   $0x1
40c38a:	53                   	push   %ebx
40c38b:	e8 30 f8 ff ff       	call   0x40bbc0
40c390:	59                   	pop    %ecx
40c391:	59                   	pop    %ecx
40c392:	8b 07                	mov    (%edi),%eax
40c394:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40c399:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40c39e:	72 68                	jb     0x40c408
40c3a0:	8b 47 20             	mov    0x20(%edi),%eax
40c3a3:	c1 e8 02             	shr    $0x2,%eax
40c3a6:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40c3aa:	75 0c                	jne    0x40c3b8
40c3ac:	a8 01                	test   $0x1,%al
40c3ae:	74 58                	je     0x40c408
40c3b0:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40c3b4:	75 52                	jne    0x40c408
40c3b6:	eb 04                	jmp    0x40c3bc
40c3b8:	a8 01                	test   $0x1,%al
40c3ba:	74 15                	je     0x40c3d1
40c3bc:	e8 d9 f9 ff ff       	call   0x40bd9a
40c3c1:	89 58 10             	mov    %ebx,0x10(%eax)
40c3c4:	e8 d1 f9 ff ff       	call   0x40bd9a
40c3c9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c3cc:	89 48 14             	mov    %ecx,0x14(%eax)
40c3cf:	eb 47                	jmp    0x40c418
40c3d1:	ff 77 1c             	push   0x1c(%edi)
40c3d4:	53                   	push   %ebx
40c3d5:	e8 22 07 00 00       	call   0x40cafc
40c3da:	59                   	pop    %ecx
40c3db:	59                   	pop    %ecx
40c3dc:	84 c0                	test   %al,%al
40c3de:	74 5d                	je     0x40c43d
40c3e0:	eb 26                	jmp    0x40c408
40c3e2:	39 47 0c             	cmp    %eax,0xc(%edi)
40c3e5:	76 21                	jbe    0x40c408
40c3e7:	38 45 1c             	cmp    %al,0x1c(%ebp)
40c3ea:	0f 85 8d 00 00 00    	jne    0x40c47d
40c3f0:	ff 75 24             	push   0x24(%ebp)
40c3f3:	ff 75 20             	push   0x20(%ebp)
40c3f6:	51                   	push   %ecx
40c3f7:	57                   	push   %edi
40c3f8:	ff 75 14             	push   0x14(%ebp)
40c3fb:	52                   	push   %edx
40c3fc:	ff 75 0c             	push   0xc(%ebp)
40c3ff:	53                   	push   %ebx
40c400:	e8 7e 00 00 00       	call   0x40c483
40c405:	83 c4 20             	add    $0x20,%esp
40c408:	e8 8d f9 ff ff       	call   0x40bd9a
40c40d:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40c411:	75 6a                	jne    0x40c47d
40c413:	5f                   	pop    %edi
40c414:	5e                   	pop    %esi
40c415:	5b                   	pop    %ebx
40c416:	c9                   	leave
40c417:	c3                   	ret
40c418:	e8 38 fa 00 00       	call   0x41be55
40c41d:	6a 01                	push   $0x1
40c41f:	53                   	push   %ebx
40c420:	e8 9b f7 ff ff       	call   0x40bbc0
40c425:	59                   	pop    %ecx
40c426:	59                   	pop    %ecx
40c427:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40c42a:	e8 3e 03 00 00       	call   0x40c76d
40c42f:	68 dc aa 43 00       	push   $0x43aadc
40c434:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40c437:	50                   	push   %eax
40c438:	e8 d0 f3 ff ff       	call   0x40b80d
40c43d:	e8 58 f9 ff ff       	call   0x40bd9a
40c442:	89 58 10             	mov    %ebx,0x10(%eax)
40c445:	e8 50 f9 ff ff       	call   0x40bd9a
40c44a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c44d:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40c451:	53                   	push   %ebx
40c452:	89 48 14             	mov    %ecx,0x14(%eax)
40c455:	8b 45 0c             	mov    0xc(%ebp),%eax
40c458:	0f 45 45 24          	cmovne 0x24(%ebp),%eax
40c45c:	50                   	push   %eax
40c45d:	e8 0a e8 ff ff       	call   0x40ac6c
40c462:	57                   	push   %edi
40c463:	ff 75 14             	push   0x14(%ebp)
40c466:	ff 75 0c             	push   0xc(%ebp)
40c469:	e8 8e 05 00 00       	call   0x40c9fc
40c46e:	57                   	push   %edi
40c46f:	e8 45 07 00 00       	call   0x40cbb9
40c474:	83 c4 10             	add    $0x10,%esp
40c477:	50                   	push   %eax
40c478:	e8 f6 04 00 00       	call   0x40c973
40c47d:	e8 0f fa 00 00       	call   0x41be91
40c482:	cc                   	int3
40c483:	55                   	push   %ebp
40c484:	8b ec                	mov    %esp,%ebp
40c486:	83 ec 38             	sub    $0x38,%esp
40c489:	53                   	push   %ebx
40c48a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c48d:	81 3b 03 00 00 80    	cmpl   $0x80000003,(%ebx)
40c493:	0f 84 17 01 00 00    	je     0x40c5b0
40c499:	56                   	push   %esi
40c49a:	57                   	push   %edi
40c49b:	e8 fa f8 ff ff       	call   0x40bd9a
40c4a0:	33 ff                	xor    %edi,%edi
40c4a2:	39 78 08             	cmp    %edi,0x8(%eax)
40c4a5:	74 46                	je     0x40c4ed
40c4a7:	57                   	push   %edi
40c4a8:	ff 15 cc 10 43 00    	call   *0x4310cc
40c4ae:	8b f0                	mov    %eax,%esi
40c4b0:	e8 e5 f8 ff ff       	call   0x40bd9a
40c4b5:	39 70 08             	cmp    %esi,0x8(%eax)
40c4b8:	74 33                	je     0x40c4ed
40c4ba:	81 3b 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%ebx)
40c4c0:	74 2b                	je     0x40c4ed
40c4c2:	81 3b 52 43 43 e0    	cmpl   $0xe0434352,(%ebx)
40c4c8:	74 23                	je     0x40c4ed