40c304:	8b 03                	mov    (%ebx),%eax
40c306:	8b 78 1c             	mov    0x1c(%eax),%edi
40c309:	81 ff 90 3c 41 00    	cmp    $0x413c90,%edi
40c30f:	0f 85 5e 89 01 00    	jne    0x424c73
40c315:	83 c3 08             	add    $0x8,%ebx
40c318:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c31c:	74 07                	je     0x40c325
40c31e:	53                   	push   %ebx
40c31f:	ff 15 40 11 45 00    	call   *0x451140
40c325:	5f                   	pop    %edi
40c326:	8b c6                	mov    %esi,%eax
40c328:	5e                   	pop    %esi
40c329:	5b                   	pop    %ebx
40c32a:	8b e5                	mov    %ebp,%esp
40c32c:	5d                   	pop    %ebp
40c32d:	c2 04 00             	ret    $0x4
40c330:	73 6f                	jae    0x40c3a1
40c332:	8b 76 04             	mov    0x4(%esi),%esi
40c335:	85 f6                	test   %esi,%esi
40c337:	75 ab                	jne    0x40c2e4
40c339:	e9 2b 89 01 00       	jmp    0x424c69
40c33e:	8b 47 04             	mov    0x4(%edi),%eax
40c341:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c344:	8d 45 ff             	lea    -0x1(%ebp),%eax
40c347:	50                   	push   %eax
40c348:	56                   	push   %esi
40c349:	e8 72 00 00 00       	call   0x40c3c0
40c34e:	ff 4b 28             	decl   0x28(%ebx)
40c351:	8d 43 24             	lea    0x24(%ebx),%eax
40c354:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40c358:	74 40                	je     0x40c39a
40c35a:	39 75 f4             	cmp    %esi,-0xc(%ebp)
40c35d:	8b cf                	mov    %edi,%ecx
40c35f:	0f 94 c2             	sete   %dl
40c362:	88 55 fe             	mov    %dl,-0x2(%ebp)
40c365:	85 c9                	test   %ecx,%ecx
40c367:	74 31                	je     0x40c39a
40c369:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c36c:	51                   	push   %ecx
40c36d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40c370:	84 d2                	test   %dl,%dl
40c372:	74 32                	je     0x40c3a6
40c374:	ff 77 08             	push   0x8(%edi)
40c377:	51                   	push   %ecx
40c378:	8b c8                	mov    %eax,%ecx
40c37a:	e8 c1 9e 00 00       	call   0x416240
40c37f:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c382:	8b 78 0c             	mov    0xc(%eax),%edi
40c385:	8b cf                	mov    %edi,%ecx
40c387:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c38a:	85 c9                	test   %ecx,%ecx
40c38c:	75 25                	jne    0x40c3b3
40c38e:	8a 55 fe             	mov    -0x2(%ebp),%dl
40c391:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40c395:	8d 43 24             	lea    0x24(%ebx),%eax
40c398:	75 cb                	jne    0x40c365
40c39a:	33 f6                	xor    %esi,%esi
40c39c:	e9 63 ff ff ff       	jmp    0x40c304
40c3a1:	8b 76 08             	mov    0x8(%esi),%esi
40c3a4:	eb 8f                	jmp    0x40c335
40c3a6:	ff 77 04             	push   0x4(%edi)
40c3a9:	51                   	push   %ecx
40c3aa:	8b c8                	mov    %eax,%ecx
40c3ac:	e8 3f 12 01 00       	call   0x41d5f0
40c3b1:	eb cc                	jmp    0x40c37f
40c3b3:	39 47 04             	cmp    %eax,0x4(%edi)
40c3b6:	0f 94 c2             	sete   %dl
40c3b9:	88 55 fe             	mov    %dl,-0x2(%ebp)
40c3bc:	eb d3                	jmp    0x40c391
40c3be:	cc                   	int3
40c3bf:	cc                   	int3
40c3c0:	8b ff                	mov    %edi,%edi
40c3c2:	55                   	push   %ebp
40c3c3:	8b ec                	mov    %esp,%ebp
40c3c5:	83 ec 08             	sub    $0x8,%esp
40c3c8:	8b 45 0c             	mov    0xc(%ebp),%eax
40c3cb:	53                   	push   %ebx
40c3cc:	56                   	push   %esi
40c3cd:	8b 75 08             	mov    0x8(%ebp),%esi
40c3d0:	8b d9                	mov    %ecx,%ebx
40c3d2:	57                   	push   %edi
40c3d3:	c6 00 01             	movb   $0x1,(%eax)
40c3d6:	8b 56 04             	mov    0x4(%esi),%edx
40c3d9:	8b 7e 08             	mov    0x8(%esi),%edi
40c3dc:	8b 4e 0c             	mov    0xc(%esi),%ecx
40c3df:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c3e2:	89 7d f8             	mov    %edi,-0x8(%ebp)
40c3e5:	85 d2                	test   %edx,%edx
40c3e7:	75 5f                	jne    0x40c448
40c3e9:	85 c9                	test   %ecx,%ecx
40c3eb:	75 47                	jne    0x40c434
40c3ed:	85 d2                	test   %edx,%edx
40c3ef:	0f 85 8f 01 00 00    	jne    0x40c584
40c3f5:	8b c7                	mov    %edi,%eax
40c3f7:	89 03                	mov    %eax,(%ebx)
40c3f9:	85 d2                	test   %edx,%edx
40c3fb:	0f 85 c4 00 00 00    	jne    0x40c4c5
40c401:	85 ff                	test   %edi,%edi
40c403:	0f 85 96 01 00 00    	jne    0x40c59f
40c409:	8b 43 08             	mov    0x8(%ebx),%eax
40c40c:	8b 40 04             	mov    0x4(%eax),%eax
40c40f:	85 c0                	test   %eax,%eax
40c411:	0f 84 5f 81 01 00    	je     0x424576
40c417:	56                   	push   %esi
40c418:	6a 00                	push   $0x0
40c41a:	50                   	push   %eax
40c41b:	ff 15 70 10 45 00    	call   *0x451070
40c421:	85 c0                	test   %eax,%eax
40c423:	0f 84 31 81 01 00    	je     0x42455a
40c429:	33 c0                	xor    %eax,%eax
40c42b:	5f                   	pop    %edi
40c42c:	5e                   	pop    %esi
40c42d:	5b                   	pop    %ebx
40c42e:	8b e5                	mov    %ebp,%esp
40c430:	5d                   	pop    %ebp
40c431:	c2 08 00             	ret    $0x8
40c434:	39 71 04             	cmp    %esi,0x4(%ecx)
40c437:	75 6c                	jne    0x40c4a5
40c439:	85 d2                	test   %edx,%edx
40c43b:	0f 85 4a 01 00 00    	jne    0x40c58b
40c441:	8b c7                	mov    %edi,%eax
40c443:	89 41 04             	mov    %eax,0x4(%ecx)
40c446:	eb b1                	jmp    0x40c3f9
40c448:	85 ff                	test   %edi,%edi
40c44a:	74 9d                	je     0x40c3e9
40c44c:	8b 47 04             	mov    0x4(%edi),%eax
40c44f:	85 c0                	test   %eax,%eax
40c451:	0f 85 90 00 00 00    	jne    0x40c4e7
40c457:	8b 46 10             	mov    0x10(%esi),%eax
40c45a:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c45d:	89 47 10             	mov    %eax,0x10(%edi)
40c460:	85 c9                	test   %ecx,%ecx
40c462:	75 53                	jne    0x40c4b7
40c464:	89 3b                	mov    %edi,(%ebx)
40c466:	8b 46 04             	mov    0x4(%esi),%eax
40c469:	39 77 0c             	cmp    %esi,0xc(%edi)
40c46c:	0f 85 84 00 00 00    	jne    0x40c4f6
40c472:	85 c0                	test   %eax,%eax
40c474:	74 03                	je     0x40c479
40c476:	89 78 0c             	mov    %edi,0xc(%eax)
40c479:	8b 46 08             	mov    0x8(%esi),%eax
40c47c:	85 c0                	test   %eax,%eax
40c47e:	74 03                	je     0x40c483
40c480:	89 78 0c             	mov    %edi,0xc(%eax)
40c483:	8b 46 04             	mov    0x4(%esi),%eax
40c486:	89 47 04             	mov    %eax,0x4(%edi)
40c489:	8b 46 0c             	mov    0xc(%esi),%eax
40c48c:	89 47 0c             	mov    %eax,0xc(%edi)
40c48f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c492:	ff 75 0c             	push   0xc(%ebp)
40c495:	8b cb                	mov    %ebx,%ecx
40c497:	ff 77 04             	push   0x4(%edi)
40c49a:	50                   	push   %eax
40c49b:	e8 50 11 01 00       	call   0x41d5f0
40c4a0:	e9 64 ff ff ff       	jmp    0x40c409
40c4a5:	85 d2                	test   %edx,%edx
40c4a7:	0f 85 e8 00 00 00    	jne    0x40c595
40c4ad:	8b c7                	mov    %edi,%eax
40c4af:	89 41 08             	mov    %eax,0x8(%ecx)
40c4b2:	e9 42 ff ff ff       	jmp    0x40c3f9
40c4b7:	39 71 04             	cmp    %esi,0x4(%ecx)
40c4ba:	0f 84 bc 00 00 00    	je     0x40c57c
40c4c0:	89 79 08             	mov    %edi,0x8(%ecx)
40c4c3:	eb a1                	jmp    0x40c466
40c4c5:	8b 46 0c             	mov    0xc(%esi),%eax
40c4c8:	8b cb                	mov    %ebx,%ecx
40c4ca:	ff 75 0c             	push   0xc(%ebp)
40c4cd:	89 42 0c             	mov    %eax,0xc(%edx)
40c4d0:	8b 46 10             	mov    0x10(%esi),%eax
40c4d3:	89 42 10             	mov    %eax,0x10(%edx)
40c4d6:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c4d9:	ff 72 08             	push   0x8(%edx)
40c4dc:	50                   	push   %eax
40c4dd:	e8 5e 9d 00 00       	call   0x416240
40c4e2:	e9 22 ff ff ff       	jmp    0x40c409
40c4e7:	8b f8                	mov    %eax,%edi
40c4e9:	8b 47 04             	mov    0x4(%edi),%eax
40c4ec:	85 c0                	test   %eax,%eax
40c4ee:	0f 84 63 ff ff ff    	je     0x40c457
40c4f4:	eb f1                	jmp    0x40c4e7
40c4f6:	85 c0                	test   %eax,%eax
40c4f8:	74 03                	je     0x40c4fd
40c4fa:	89 78 0c             	mov    %edi,0xc(%eax)
40c4fd:	8b 46 08             	mov    0x8(%esi),%eax
40c500:	85 c0                	test   %eax,%eax
40c502:	74 03                	je     0x40c507
40c504:	89 78 0c             	mov    %edi,0xc(%eax)
40c507:	8b 4f 0c             	mov    0xc(%edi),%ecx
40c50a:	8b 47 08             	mov    0x8(%edi),%eax
40c50d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c510:	89 41 04             	mov    %eax,0x4(%ecx)
40c513:	8b 57 04             	mov    0x4(%edi),%edx
40c516:	85 d2                	test   %edx,%edx
40c518:	0f 85 26 80 01 00    	jne    0x424544
40c51e:	8b 57 08             	mov    0x8(%edi),%edx
40c521:	85 d2                	test   %edx,%edx
40c523:	0f 85 26 80 01 00    	jne    0x42454f
40c529:	8b 46 04             	mov    0x4(%esi),%eax
40c52c:	89 47 04             	mov    %eax,0x4(%edi)
40c52f:	8b 46 08             	mov    0x8(%esi),%eax
40c532:	89 47 08             	mov    %eax,0x8(%edi)
40c535:	8b 46 0c             	mov    0xc(%esi),%eax
40c538:	89 47 0c             	mov    %eax,0xc(%edi)
40c53b:	eb 03                	jmp    0x40c540
40c53d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c540:	ff 75 0c             	push   0xc(%ebp)
40c543:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c546:	ff 71 08             	push   0x8(%ecx)
40c549:	8b cb                	mov    %ebx,%ecx
40c54b:	50                   	push   %eax
40c54c:	e8 ef 9c 00 00       	call   0x416240
40c551:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c554:	8b 49 0c             	mov    0xc(%ecx),%ecx
40c557:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c55a:	85 c0                	test   %eax,%eax
40c55c:	0f 85 a7 fe ff ff    	jne    0x40c409
40c562:	3b cf                	cmp    %edi,%ecx
40c564:	75 da                	jne    0x40c540
40c566:	ff 75 0c             	push   0xc(%ebp)
40c569:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c56c:	ff 71 04             	push   0x4(%ecx)
40c56f:	8b cb                	mov    %ebx,%ecx
40c571:	50                   	push   %eax
40c572:	e8 79 10 01 00       	call   0x41d5f0
40c577:	e9 8d fe ff ff       	jmp    0x40c409
40c57c:	89 79 04             	mov    %edi,0x4(%ecx)
40c57f:	e9 e2 fe ff ff       	jmp    0x40c466
40c584:	8b c2                	mov    %edx,%eax
40c586:	e9 6c fe ff ff       	jmp    0x40c3f7
40c58b:	8b c2                	mov    %edx,%eax
40c58d:	89 41 04             	mov    %eax,0x4(%ecx)
40c590:	e9 64 fe ff ff       	jmp    0x40c3f9
40c595:	8b c2                	mov    %edx,%eax
40c597:	89 41 08             	mov    %eax,0x8(%ecx)
40c59a:	e9 5a fe ff ff       	jmp    0x40c3f9
40c59f:	8b 46 0c             	mov    0xc(%esi),%eax
40c5a2:	89 47 0c             	mov    %eax,0xc(%edi)
40c5a5:	8b 46 10             	mov    0x10(%esi),%eax
40c5a8:	89 47 10             	mov    %eax,0x10(%edi)
40c5ab:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c5ae:	e9 df fe ff ff       	jmp    0x40c492
40c5b3:	cc                   	int3
40c5b4:	cc                   	int3
40c5b5:	cc                   	int3
40c5b6:	cc                   	int3
40c5b7:	cc                   	int3
40c5b8:	cc                   	int3
40c5b9:	cc                   	int3
40c5ba:	cc                   	int3
40c5bb:	cc                   	int3
40c5bc:	cc                   	int3
40c5bd:	cc                   	int3
40c5be:	cc                   	int3
40c5bf:	cc                   	int3
40c5c0:	8b ff                	mov    %edi,%edi
40c5c2:	55                   	push   %ebp
40c5c3:	8b ec                	mov    %esp,%ebp
40c5c5:	83 e4 f8             	and    $0xfffffff8,%esp
40c5c8:	81 ec 34 01 00 00    	sub    $0x134,%esp
40c5ce:	a1 54 02 45 00       	mov    0x450254,%eax
40c5d3:	33 c4                	xor    %esp,%eax
40c5d5:	89 84 24 30 01 00 00 	mov    %eax,0x130(%esp)
40c5dc:	53                   	push   %ebx
40c5dd:	8b d9                	mov    %ecx,%ebx
40c5df:	c7 44 24 0c 00 00 00 	movl   $0x0,0xc(%esp)
40c5e6:	00
40c5e7:	89 5c 24 08          	mov    %ebx,0x8(%esp)
40c5eb:	56                   	push   %esi
40c5ec:	57                   	push   %edi
40c5ed:	8b 43 40             	mov    0x40(%ebx),%eax
40c5f0:	33 ff                	xor    %edi,%edi
40c5f2:	89 44 24 38          	mov    %eax,0x38(%esp)
40c5f6:	33 f6                	xor    %esi,%esi
40c5f8:	8b 43 3c             	mov    0x3c(%ebx),%eax
40c5fb:	83 c3 18             	add    $0x18,%ebx
40c5fe:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
40c605:	00
40c606:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40c60a:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c60e:	74 0f                	je     0x40c61f
40c610:	8b cb                	mov    %ebx,%ecx
40c612:	e8 89 f5 ff ff       	call   0x40bba0
40c617:	84 c0                	test   %al,%al
40c619:	0f 84 65 86 01 00    	je     0x424c84
40c61f:	8b 44 24 10          	mov    0x10(%esp),%eax
40c623:	8b 40 7c             	mov    0x7c(%eax),%eax
40c626:	85 c0                	test   %eax,%eax
40c628:	74 0b                	je     0x40c635
40c62a:	8b 48 1c             	mov    0x1c(%eax),%ecx
40c62d:	85 c9                	test   %ecx,%ecx
40c62f:	0f 85 02 01 00 00    	jne    0x40c737
40c635:	8b d0                	mov    %eax,%edx
40c637:	83 ff 3d             	cmp    $0x3d,%edi
40c63a:	73 3f                	jae    0x40c67b
40c63c:	85 d2                	test   %edx,%edx
40c63e:	74 3b                	je     0x40c67b
40c640:	8b 08                	mov    (%eax),%ecx
40c642:	8b 49 14             	mov    0x14(%ecx),%ecx
40c645:	85 c9                	test   %ecx,%ecx
40c647:	0f 84 61 86 01 00    	je     0x424cae
40c64d:	89 4c bc 40          	mov    %ecx,0x40(%esp,%edi,4)
40c651:	8b 48 18             	mov    0x18(%eax),%ecx
40c654:	85 c9                	test   %ecx,%ecx
40c656:	0f 85 8a 00 00 00    	jne    0x40c6e6
40c65c:	8b 40 20             	mov    0x20(%eax),%eax
40c65f:	85 c0                	test   %eax,%eax
40c661:	74 11                	je     0x40c674
40c663:	8b 4a 20             	mov    0x20(%edx),%ecx
40c666:	39 51 18             	cmp    %edx,0x18(%ecx)
40c669:	75 09                	jne    0x40c674
40c66b:	8b d0                	mov    %eax,%edx
40c66d:	8b 40 20             	mov    0x20(%eax),%eax
40c670:	85 c0                	test   %eax,%eax
40c672:	75 ef                	jne    0x40c663
40c674:	47                   	inc    %edi
40c675:	8b d0                	mov    %eax,%edx
40c677:	85 f6                	test   %esi,%esi
40c679:	74 bc                	je     0x40c637
40c67b:	81 fe 02 00 00 80    	cmp    $0x80000002,%esi
40c681:	0f 84 3f 86 01 00    	je     0x424cc6
40c687:	80 7b 18 00          	cmpb   $0x0,0x18(%ebx)
40c68b:	74 07                	je     0x40c694
40c68d:	53                   	push   %ebx
40c68e:	ff 15 40 11 45 00    	call   *0x451140
40c694:	83 ff 3d             	cmp    $0x3d,%edi
40c697:	0f 83 30 86 01 00    	jae    0x424ccd
40c69d:	8d 49 00             	lea    0x0(%ecx),%ecx
40c6a0:	85 f6                	test   %esi,%esi
40c6a2:	75 2b                	jne    0x40c6cf
40c6a4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40c6a8:	8d 47 02             	lea    0x2(%edi),%eax
40c6ab:	6a 02                	push   $0x2
40c6ad:	68 ff 1c 00 00       	push   $0x1cff
40c6b2:	ff 71 54             	push   0x54(%ecx)
40c6b5:	8d 4c 24 44          	lea    0x44(%esp),%ecx
40c6b9:	51                   	push   %ecx
40c6ba:	50                   	push   %eax
40c6bb:	ff 15 b4 30 45 00    	call   *0x4530b4
40c6c1:	8b d8                	mov    %eax,%ebx
40c6c3:	83 fb 01             	cmp    $0x1,%ebx
40c6c6:	75 2c                	jne    0x40c6f4
40c6c8:	be 0d 00 00 80       	mov    $0x8000000d,%esi
40c6cd:	eb d1                	jmp    0x40c6a0
40c6cf:	8b c6                	mov    %esi,%eax
40c6d1:	8b 8c 24 3c 01 00 00 	mov    0x13c(%esp),%ecx
40c6d8:	5f                   	pop    %edi
40c6d9:	5e                   	pop    %esi
40c6da:	5b                   	pop    %ebx
40c6db:	33 cc                	xor    %esp,%ecx
40c6dd:	e8 2e 2c 01 00       	call   0x41f310