4014d0:	6a ff                	push   $0xffffffff
4014d2:	68 18 98 41 00       	push   $0x419818
4014d7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4014dd:	50                   	push   %eax
4014de:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4014e5:	83 ec 18             	sub    $0x18,%esp
4014e8:	56                   	push   %esi
4014e9:	8b 74 24 2c          	mov    0x2c(%esp),%esi
4014ed:	33 c0                	xor    %eax,%eax
4014ef:	89 46 04             	mov    %eax,0x4(%esi)
4014f2:	89 44 24 24          	mov    %eax,0x24(%esp)
4014f6:	8d 44 24 04          	lea    0x4(%esp),%eax
4014fa:	50                   	push   %eax
4014fb:	c7 06 04 8b 42 00    	movl   $0x428b04,(%esi)
401501:	e8 d2 36 00 00       	call   0x404bd8
401506:	8b 08                	mov    (%eax),%ecx
401508:	89 4e 08             	mov    %ecx,0x8(%esi)
40150b:	8b 50 04             	mov    0x4(%eax),%edx
40150e:	89 56 0c             	mov    %edx,0xc(%esi)
401511:	8b 48 08             	mov    0x8(%eax),%ecx
401514:	89 4e 10             	mov    %ecx,0x10(%esi)
401517:	8b 50 0c             	mov    0xc(%eax),%edx
40151a:	83 c4 04             	add    $0x4,%esp
40151d:	89 56 14             	mov    %edx,0x14(%esi)
401520:	e8 66 2d 00 00       	call   0x40428b
401525:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
401529:	89 46 18             	mov    %eax,0x18(%esi)
40152c:	89 56 1c             	mov    %edx,0x1c(%esi)
40152f:	8b c6                	mov    %esi,%eax
401531:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401538:	5e                   	pop    %esi
401539:	83 c4 24             	add    $0x24,%esp
40153c:	c2 04 00             	ret    $0x4
40153f:	cc                   	int3
401540:	6a ff                	push   $0xffffffff
401542:	68 00 99 41 00       	push   $0x419900
401547:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40154d:	50                   	push   %eax
40154e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
401555:	81 ec 98 00 00 00    	sub    $0x98,%esp
40155b:	53                   	push   %ebx
40155c:	55                   	push   %ebp
40155d:	8b ac 24 b0 00 00 00 	mov    0xb0(%esp),%ebp
401564:	33 db                	xor    %ebx,%ebx
401566:	56                   	push   %esi
401567:	57                   	push   %edi
401568:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40156c:	3b eb                	cmp    %ebx,%ebp
40156e:	0f 84 aa 00 00 00    	je     0x40161e
401574:	39 5d 00             	cmp    %ebx,0x0(%ebp)
401577:	0f 85 a1 00 00 00    	jne    0x40161e
40157d:	6a 20                	push   $0x20
40157f:	e8 f9 42 00 00       	call   0x40587d
401584:	8b f8                	mov    %eax,%edi
401586:	83 c4 04             	add    $0x4,%esp
401589:	89 7c 24 14          	mov    %edi,0x14(%esp)
40158d:	89 9c 24 b0 00 00 00 	mov    %ebx,0xb0(%esp)
401594:	3b fb                	cmp    %ebx,%edi
401596:	74 47                	je     0x4015df
401598:	8b 84 24 bc 00 00 00 	mov    0xbc(%esp),%eax
40159f:	8d 74 24 18          	lea    0x18(%esp),%esi
4015a3:	e8 58 fe ff ff       	call   0x401400
4015a8:	50                   	push   %eax
4015a9:	8d 44 24 38          	lea    0x38(%esp),%eax
4015ad:	c6 84 24 b4 00 00 00 	movb   $0x1,0xb4(%esp)
4015b4:	01
4015b5:	50                   	push   %eax
4015b6:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
4015bd:	00
4015be:	e8 ad fb ff ff       	call   0x401170
4015c3:	c7 84 24 b0 00 00 00 	movl   $0x2,0xb0(%esp)
4015ca:	02 00 00 00
4015ce:	bb 03 00 00 00       	mov    $0x3,%ebx
4015d3:	57                   	push   %edi
4015d4:	89 5c 24 14          	mov    %ebx,0x14(%esp)
4015d8:	e8 f3 fe ff ff       	call   0x4014d0
4015dd:	eb 02                	jmp    0x4015e1
4015df:	33 c0                	xor    %eax,%eax
4015e1:	89 45 00             	mov    %eax,0x0(%ebp)
4015e4:	c7 84 24 b0 00 00 00 	movl   $0x3,0xb0(%esp)
4015eb:	03 00 00 00
4015ef:	f6 c3 02             	test   $0x2,%bl
4015f2:	74 11                	je     0x401605
4015f4:	8d 4c 24 34          	lea    0x34(%esp),%ecx
4015f8:	83 e3 fd             	and    $0xfffffffd,%ebx
4015fb:	51                   	push   %ecx
4015fc:	89 5c 24 14          	mov    %ebx,0x14(%esp)
401600:	e8 eb fb ff ff       	call   0x4011f0
401605:	f6 c3 01             	test   $0x1,%bl
401608:	74 14                	je     0x40161e
40160a:	83 7c 24 30 10       	cmpl   $0x10,0x30(%esp)
40160f:	72 0d                	jb     0x40161e
401611:	8b 54 24 1c          	mov    0x1c(%esp),%edx
401615:	52                   	push   %edx
401616:	e8 1b 3d 00 00       	call   0x405336
40161b:	83 c4 04             	add    $0x4,%esp
40161e:	8b 8c 24 a8 00 00 00 	mov    0xa8(%esp),%ecx
401625:	5f                   	pop    %edi
401626:	5e                   	pop    %esi
401627:	5d                   	pop    %ebp
401628:	b8 02 00 00 00       	mov    $0x2,%eax
40162d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
401634:	5b                   	pop    %ebx
401635:	81 c4 a4 00 00 00    	add    $0xa4,%esp
40163b:	c3                   	ret
40163c:	cc                   	int3
40163d:	cc                   	int3
40163e:	cc                   	int3
40163f:	cc                   	int3
401640:	8b 44 24 08          	mov    0x8(%esp),%eax
401644:	83 c1 08             	add    $0x8,%ecx
401647:	51                   	push   %ecx
401648:	50                   	push   %eax
401649:	e8 ea 35 00 00       	call   0x404c38
40164e:	83 c4 08             	add    $0x8,%esp
401651:	66 85 44 24 04       	test   %ax,0x4(%esp)
401656:	b8 00 00 00 00       	mov    $0x0,%eax
40165b:	0f 95 c0             	setne  %al
40165e:	c2 08 00             	ret    $0x8
401661:	cc                   	int3
401662:	cc                   	int3
401663:	cc                   	int3
401664:	cc                   	int3
401665:	cc                   	int3
401666:	cc                   	int3
401667:	cc                   	int3
401668:	cc                   	int3
401669:	cc                   	int3
40166a:	cc                   	int3
40166b:	cc                   	int3
40166c:	cc                   	int3
40166d:	cc                   	int3
40166e:	cc                   	int3
40166f:	cc                   	int3
401670:	8b 44 24 0c          	mov    0xc(%esp),%eax
401674:	8b 54 24 04          	mov    0x4(%esp),%edx
401678:	83 c1 08             	add    $0x8,%ecx
40167b:	51                   	push   %ecx
40167c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
401680:	50                   	push   %eax
401681:	51                   	push   %ecx
401682:	52                   	push   %edx
401683:	e8 df 35 00 00       	call   0x404c67
401688:	83 c4 10             	add    $0x10,%esp
40168b:	c2 0c 00             	ret    $0xc
40168e:	cc                   	int3
40168f:	cc                   	int3
401690:	55                   	push   %ebp
401691:	8b 6c 24 10          	mov    0x10(%esp),%ebp
401695:	56                   	push   %esi
401696:	8b 74 24 10          	mov    0x10(%esp),%esi
40169a:	57                   	push   %edi
40169b:	8b f9                	mov    %ecx,%edi
40169d:	3b f5                	cmp    %ebp,%esi
40169f:	74 1f                	je     0x4016c0
4016a1:	53                   	push   %ebx
4016a2:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4016a6:	0f b7 06             	movzwl (%esi),%eax
4016a9:	8b 17                	mov    (%edi),%edx
4016ab:	50                   	push   %eax
4016ac:	8b 42 08             	mov    0x8(%edx),%eax
4016af:	53                   	push   %ebx
4016b0:	8b cf                	mov    %edi,%ecx
4016b2:	ff d0                	call   *%eax
4016b4:	84 c0                	test   %al,%al
4016b6:	75 07                	jne    0x4016bf
4016b8:	83 c6 02             	add    $0x2,%esi
4016bb:	3b f5                	cmp    %ebp,%esi
4016bd:	75 e7                	jne    0x4016a6
4016bf:	5b                   	pop    %ebx
4016c0:	5f                   	pop    %edi
4016c1:	8b c6                	mov    %esi,%eax
4016c3:	5e                   	pop    %esi
4016c4:	5d                   	pop    %ebp
4016c5:	c2 0c 00             	ret    $0xc
4016c8:	cc                   	int3
4016c9:	cc                   	int3
4016ca:	cc                   	int3
4016cb:	cc                   	int3
4016cc:	cc                   	int3
4016cd:	cc                   	int3
4016ce:	cc                   	int3
4016cf:	cc                   	int3
4016d0:	55                   	push   %ebp
4016d1:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4016d5:	56                   	push   %esi
4016d6:	8b 74 24 10          	mov    0x10(%esp),%esi
4016da:	57                   	push   %edi
4016db:	8b f9                	mov    %ecx,%edi
4016dd:	3b f5                	cmp    %ebp,%esi
4016df:	74 1f                	je     0x401700
4016e1:	53                   	push   %ebx
4016e2:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4016e6:	0f b7 06             	movzwl (%esi),%eax
4016e9:	8b 17                	mov    (%edi),%edx
4016eb:	50                   	push   %eax
4016ec:	8b 42 08             	mov    0x8(%edx),%eax
4016ef:	53                   	push   %ebx
4016f0:	8b cf                	mov    %edi,%ecx
4016f2:	ff d0                	call   *%eax
4016f4:	84 c0                	test   %al,%al
4016f6:	74 07                	je     0x4016ff
4016f8:	83 c6 02             	add    $0x2,%esi
4016fb:	3b f5                	cmp    %ebp,%esi
4016fd:	75 e7                	jne    0x4016e6
4016ff:	5b                   	pop    %ebx
401700:	5f                   	pop    %edi
401701:	8b c6                	mov    %esi,%eax
401703:	5e                   	pop    %esi
401704:	5d                   	pop    %ebp
401705:	c2 0c 00             	ret    $0xc
401708:	cc                   	int3
401709:	cc                   	int3
40170a:	cc                   	int3
40170b:	cc                   	int3
40170c:	cc                   	int3
40170d:	cc                   	int3
40170e:	cc                   	int3
40170f:	cc                   	int3
401710:	8b 44 24 04          	mov    0x4(%esp),%eax
401714:	83 c1 08             	add    $0x8,%ecx
401717:	51                   	push   %ecx
401718:	50                   	push   %eax
401719:	e8 3c 31 00 00       	call   0x40485a
40171e:	83 c4 08             	add    $0x8,%esp
401721:	c2 04 00             	ret    $0x4
401724:	cc                   	int3
401725:	cc                   	int3
401726:	cc                   	int3
401727:	cc                   	int3
401728:	cc                   	int3
401729:	cc                   	int3
40172a:	cc                   	int3
40172b:	cc                   	int3
40172c:	cc                   	int3
40172d:	cc                   	int3
40172e:	cc                   	int3
40172f:	cc                   	int3
401730:	53                   	push   %ebx
401731:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
401735:	56                   	push   %esi
401736:	8b 74 24 0c          	mov    0xc(%esp),%esi
40173a:	3b f3                	cmp    %ebx,%esi
40173c:	74 1c                	je     0x40175a
40173e:	57                   	push   %edi
40173f:	8d 79 08             	lea    0x8(%ecx),%edi
401742:	0f b7 06             	movzwl (%esi),%eax
401745:	57                   	push   %edi
401746:	50                   	push   %eax
401747:	e8 0e 31 00 00       	call   0x40485a
40174c:	66 89 06             	mov    %ax,(%esi)
40174f:	83 c6 02             	add    $0x2,%esi
401752:	83 c4 08             	add    $0x8,%esp
401755:	3b f3                	cmp    %ebx,%esi
401757:	75 e9                	jne    0x401742
401759:	5f                   	pop    %edi
40175a:	8b c6                	mov    %esi,%eax
40175c:	5e                   	pop    %esi
40175d:	5b                   	pop    %ebx
40175e:	c2 08 00             	ret    $0x8
401761:	cc                   	int3
401762:	cc                   	int3
401763:	cc                   	int3
401764:	cc                   	int3
401765:	cc                   	int3
401766:	cc                   	int3
401767:	cc                   	int3
401768:	cc                   	int3
401769:	cc                   	int3
40176a:	cc                   	int3
40176b:	cc                   	int3
40176c:	cc                   	int3
40176d:	cc                   	int3
40176e:	cc                   	int3
40176f:	cc                   	int3
401770:	8b 44 24 04          	mov    0x4(%esp),%eax
401774:	83 c1 08             	add    $0x8,%ecx
401777:	51                   	push   %ecx
401778:	50                   	push   %eax
401779:	e8 49 31 00 00       	call   0x4048c7
40177e:	83 c4 08             	add    $0x8,%esp
401781:	c2 04 00             	ret    $0x4
401784:	cc                   	int3
401785:	cc                   	int3
401786:	cc                   	int3
401787:	cc                   	int3
401788:	cc                   	int3
401789:	cc                   	int3
40178a:	cc                   	int3
40178b:	cc                   	int3
40178c:	cc                   	int3
40178d:	cc                   	int3
40178e:	cc                   	int3
40178f:	cc                   	int3
401790:	53                   	push   %ebx
401791:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
401795:	56                   	push   %esi
401796:	8b 74 24 0c          	mov    0xc(%esp),%esi
40179a:	3b f3                	cmp    %ebx,%esi
40179c:	74 1c                	je     0x4017ba
40179e:	57                   	push   %edi
40179f:	8d 79 08             	lea    0x8(%ecx),%edi
4017a2:	0f b7 06             	movzwl (%esi),%eax
4017a5:	57                   	push   %edi
4017a6:	50                   	push   %eax
4017a7:	e8 1b 31 00 00       	call   0x4048c7
4017ac:	66 89 06             	mov    %ax,(%esi)
4017af:	83 c6 02             	add    $0x2,%esi
4017b2:	83 c4 08             	add    $0x8,%esp
4017b5:	3b f3                	cmp    %ebx,%esi
4017b7:	75 e9                	jne    0x4017a2
4017b9:	5f                   	pop    %edi
4017ba:	8b c6                	mov    %esi,%eax
4017bc:	5e                   	pop    %esi
4017bd:	5b                   	pop    %ebx
4017be:	c2 08 00             	ret    $0x8
4017c1:	cc                   	int3
4017c2:	cc                   	int3
4017c3:	cc                   	int3
4017c4:	cc                   	int3
4017c5:	cc                   	int3
4017c6:	cc                   	int3
4017c7:	cc                   	int3
4017c8:	cc                   	int3
4017c9:	cc                   	int3
4017ca:	cc                   	int3
4017cb:	cc                   	int3
4017cc:	cc                   	int3
4017cd:	cc                   	int3
4017ce:	cc                   	int3
4017cf:	cc                   	int3
4017d0:	83 ec 08             	sub    $0x8,%esp
4017d3:	8a 44 24 0c          	mov    0xc(%esp),%al
4017d7:	83 c1 18             	add    $0x18,%ecx
4017da:	51                   	push   %ecx
4017db:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4017df:	51                   	push   %ecx
4017e0:	6a 01                	push   $0x1
4017e2:	8d 54 24 18          	lea    0x18(%esp),%edx
4017e6:	88 44 24 18          	mov    %al,0x18(%esp)
4017ea:	52                   	push   %edx
4017eb:	8d 44 24 10          	lea    0x10(%esp),%eax
4017ef:	50                   	push   %eax
4017f0:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
4017f7:	00
4017f8:	e8 67 32 00 00       	call   0x404a64
4017fd:	83 c4 14             	add    $0x14,%esp
401800:	85 c0                	test   %eax,%eax
401802:	b8 ff ff 00 00       	mov    $0xffff,%eax
401807:	7c 04                	jl     0x40180d