4034ef:	cc                   	int3
4034f0:	53                   	push   %ebx
4034f1:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4034f5:	56                   	push   %esi
4034f6:	8b f1                	mov    %ecx,%esi
4034f8:	57                   	push   %edi
4034f9:	39 5e 14             	cmp    %ebx,0x14(%esi)
4034fc:	73 05                	jae    0x403503
4034fe:	e8 d1 12 00 00       	call   0x4047d4
403503:	8b 46 14             	mov    0x14(%esi),%eax
403506:	8b 7c 24 14          	mov    0x14(%esp),%edi
40350a:	2b c3                	sub    %ebx,%eax
40350c:	3b c7                	cmp    %edi,%eax
40350e:	73 02                	jae    0x403512
403510:	8b f8                	mov    %eax,%edi
403512:	85 ff                	test   %edi,%edi
403514:	76 55                	jbe    0x40356b
403516:	8b 4e 18             	mov    0x18(%esi),%ecx
403519:	55                   	push   %ebp
40351a:	8d 6e 04             	lea    0x4(%esi),%ebp
40351d:	83 f9 10             	cmp    $0x10,%ecx
403520:	72 09                	jb     0x40352b
403522:	8b 55 00             	mov    0x0(%ebp),%edx
403525:	89 54 24 14          	mov    %edx,0x14(%esp)
403529:	eb 04                	jmp    0x40352f
40352b:	89 6c 24 14          	mov    %ebp,0x14(%esp)
40352f:	83 f9 10             	cmp    $0x10,%ecx
403532:	72 05                	jb     0x403539
403534:	8b 55 00             	mov    0x0(%ebp),%edx
403537:	eb 02                	jmp    0x40353b
403539:	8b d5                	mov    %ebp,%edx
40353b:	2b c7                	sub    %edi,%eax
40353d:	50                   	push   %eax
40353e:	8b 44 24 18          	mov    0x18(%esp),%eax
403542:	03 c3                	add    %ebx,%eax
403544:	03 c7                	add    %edi,%eax
403546:	50                   	push   %eax
403547:	2b cb                	sub    %ebx,%ecx
403549:	51                   	push   %ecx
40354a:	03 d3                	add    %ebx,%edx
40354c:	52                   	push   %edx
40354d:	e8 cd 17 00 00       	call   0x404d1f
403552:	8b 46 14             	mov    0x14(%esi),%eax
403555:	2b c7                	sub    %edi,%eax
403557:	83 c4 10             	add    $0x10,%esp
40355a:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
40355e:	89 46 14             	mov    %eax,0x14(%esi)
403561:	72 03                	jb     0x403566
403563:	8b 6d 00             	mov    0x0(%ebp),%ebp
403566:	c6 04 28 00          	movb   $0x0,(%eax,%ebp,1)
40356a:	5d                   	pop    %ebp
40356b:	5f                   	pop    %edi
40356c:	8b c6                	mov    %esi,%eax
40356e:	5e                   	pop    %esi
40356f:	5b                   	pop    %ebx
403570:	c2 08 00             	ret    $0x8
403573:	cc                   	int3
403574:	cc                   	int3
403575:	cc                   	int3
403576:	cc                   	int3
403577:	cc                   	int3
403578:	cc                   	int3
403579:	cc                   	int3
40357a:	cc                   	int3
40357b:	cc                   	int3
40357c:	cc                   	int3
40357d:	cc                   	int3
40357e:	cc                   	int3
40357f:	cc                   	int3
403580:	6a ff                	push   $0xffffffff
403582:	68 00 9a 41 00       	push   $0x419a00
403587:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40358d:	50                   	push   %eax
40358e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
403595:	51                   	push   %ecx
403596:	53                   	push   %ebx
403597:	56                   	push   %esi
403598:	57                   	push   %edi
403599:	8b 7c 24 20          	mov    0x20(%esp),%edi
40359d:	33 db                	xor    %ebx,%ebx
40359f:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
4035a3:	8b 07                	mov    (%edi),%eax
4035a5:	8b 48 04             	mov    0x4(%eax),%ecx
4035a8:	c7 04 0f 88 8a 42 00 	movl   $0x428a88,(%edi,%ecx,1)
4035af:	8b 17                	mov    (%edi),%edx
4035b1:	89 5f 04             	mov    %ebx,0x4(%edi)
4035b4:	8b 72 04             	mov    0x4(%edx),%esi
4035b7:	03 f7                	add    %edi,%esi
4035b9:	e8 82 e6 ff ff       	call   0x401c40
4035be:	8b 44 24 24          	mov    0x24(%esp),%eax
4035c2:	56                   	push   %esi
4035c3:	89 46 28             	mov    %eax,0x28(%esi)
4035c6:	89 5e 2c             	mov    %ebx,0x2c(%esi)
4035c9:	e8 12 07 00 00       	call   0x403ce0
4035ce:	66 89 46 30          	mov    %ax,0x30(%esi)
4035d2:	39 5e 28             	cmp    %ebx,0x28(%esi)
4035d5:	75 18                	jne    0x4035ef
4035d7:	8b 46 08             	mov    0x8(%esi),%eax
4035da:	83 c8 04             	or     $0x4,%eax
4035dd:	83 e0 17             	and    $0x17,%eax
4035e0:	89 46 08             	mov    %eax,0x8(%esi)
4035e3:	85 46 0c             	test   %eax,0xc(%esi)
4035e6:	74 07                	je     0x4035ef
4035e8:	8b ce                	mov    %esi,%ecx
4035ea:	e8 81 e4 ff ff       	call   0x401a70
4035ef:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4035f3:	89 5e 04             	mov    %ebx,0x4(%esi)
4035f6:	8b c7                	mov    %edi,%eax
4035f8:	5f                   	pop    %edi
4035f9:	5e                   	pop    %esi
4035fa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403601:	5b                   	pop    %ebx
403602:	83 c4 10             	add    $0x10,%esp
403605:	c2 08 00             	ret    $0x8
403608:	cc                   	int3
403609:	cc                   	int3
40360a:	cc                   	int3
40360b:	cc                   	int3
40360c:	cc                   	int3
40360d:	cc                   	int3
40360e:	cc                   	int3
40360f:	cc                   	int3
403610:	6a ff                	push   $0xffffffff
403612:	68 db 97 41 00       	push   $0x4197db
403617:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40361d:	50                   	push   %eax
40361e:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
403625:	51                   	push   %ecx
403626:	56                   	push   %esi
403627:	8b 74 24 18          	mov    0x18(%esp),%esi
40362b:	57                   	push   %edi
40362c:	8d 4e 04             	lea    0x4(%esi),%ecx
40362f:	c7 06 4c 8a 42 00    	movl   $0x428a4c,(%esi)
403635:	e8 ef 11 00 00       	call   0x404829
40363a:	6a 04                	push   $0x4
40363c:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
403643:	00
403644:	e8 34 22 00 00       	call   0x40587d
403649:	8b f8                	mov    %eax,%edi
40364b:	83 c4 04             	add    $0x4,%esp
40364e:	85 ff                	test   %edi,%edi
403650:	74 32                	je     0x403684
403652:	53                   	push   %ebx
403653:	e8 66 0f 00 00       	call   0x4045be
403658:	89 07                	mov    %eax,(%edi)
40365a:	e8 8d 0d 00 00       	call   0x4043ec
40365f:	6a 00                	push   $0x0
403661:	8d 4c 24 10          	lea    0x10(%esp),%ecx
403665:	8b d8                	mov    %eax,%ebx
403667:	e8 a2 10 00 00       	call   0x40470e
40366c:	8b 43 04             	mov    0x4(%ebx),%eax
40366f:	83 f8 ff             	cmp    $0xffffffff,%eax
403672:	73 04                	jae    0x403678
403674:	40                   	inc    %eax
403675:	89 43 04             	mov    %eax,0x4(%ebx)
403678:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40367c:	e8 b5 10 00 00       	call   0x404736
403681:	5b                   	pop    %ebx
403682:	eb 02                	jmp    0x403686
403684:	33 ff                	xor    %edi,%edi
403686:	89 7e 38             	mov    %edi,0x38(%esi)
403689:	8d 46 08             	lea    0x8(%esi),%eax
40368c:	89 46 10             	mov    %eax,0x10(%esi)
40368f:	8d 4e 18             	lea    0x18(%esi),%ecx
403692:	89 4e 20             	mov    %ecx,0x20(%esi)
403695:	8d 56 1c             	lea    0x1c(%esi),%edx
403698:	89 56 24             	mov    %edx,0x24(%esi)
40369b:	8d 46 0c             	lea    0xc(%esi),%eax
40369e:	89 46 14             	mov    %eax,0x14(%esi)
4036a1:	8d 4e 28             	lea    0x28(%esi),%ecx
4036a4:	89 4e 30             	mov    %ecx,0x30(%esi)
4036a7:	8d 56 2c             	lea    0x2c(%esi),%edx
4036aa:	89 56 34             	mov    %edx,0x34(%esi)
4036ad:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4036b3:	8b 46 24             	mov    0x24(%esi),%eax
4036b6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4036bc:	8b 4e 34             	mov    0x34(%esi),%ecx
4036bf:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4036c5:	8b 56 10             	mov    0x10(%esi),%edx
4036c8:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
4036ce:	8b 46 20             	mov    0x20(%esi),%eax
4036d1:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4036d7:	8b 4e 30             	mov    0x30(%esi),%ecx
4036da:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
4036e0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4036e4:	5f                   	pop    %edi
4036e5:	8b c6                	mov    %esi,%eax
4036e7:	5e                   	pop    %esi
4036e8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4036ef:	83 c4 10             	add    $0x10,%esp
4036f2:	c2 04 00             	ret    $0x4
4036f5:	cc                   	int3
4036f6:	cc                   	int3
4036f7:	cc                   	int3
4036f8:	cc                   	int3
4036f9:	cc                   	int3
4036fa:	cc                   	int3
4036fb:	cc                   	int3
4036fc:	cc                   	int3
4036fd:	cc                   	int3
4036fe:	cc                   	int3
4036ff:	cc                   	int3
403700:	55                   	push   %ebp
403701:	8b ec                	mov    %esp,%ebp
403703:	6a ff                	push   $0xffffffff
403705:	68 b0 99 41 00       	push   $0x4199b0
40370a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403710:	50                   	push   %eax
403711:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
403718:	83 ec 48             	sub    $0x48,%esp
40371b:	53                   	push   %ebx
40371c:	56                   	push   %esi
40371d:	8b 75 08             	mov    0x8(%ebp),%esi
403720:	8b 46 0c             	mov    0xc(%esi),%eax
403723:	57                   	push   %edi
403724:	89 65 f0             	mov    %esp,-0x10(%ebp)
403727:	85 c0                	test   %eax,%eax
403729:	75 04                	jne    0x40372f
40372b:	33 db                	xor    %ebx,%ebx
40372d:	eb 18                	jmp    0x403747
40372f:	8b 4e 14             	mov    0x14(%esi),%ecx
403732:	2b c8                	sub    %eax,%ecx
403734:	b8 93 24 49 92       	mov    $0x92492493,%eax
403739:	f7 e9                	imul   %ecx
40373b:	03 d1                	add    %ecx,%edx
40373d:	c1 fa 04             	sar    $0x4,%edx
403740:	8b da                	mov    %edx,%ebx
403742:	c1 eb 1f             	shr    $0x1f,%ebx
403745:	03 da                	add    %edx,%ebx
403747:	8b 7e 10             	mov    0x10(%esi),%edi
40374a:	8b cf                	mov    %edi,%ecx
40374c:	2b 4e 0c             	sub    0xc(%esi),%ecx
40374f:	b8 93 24 49 92       	mov    $0x92492493,%eax
403754:	f7 e9                	imul   %ecx
403756:	03 d1                	add    %ecx,%edx
403758:	c1 fa 04             	sar    $0x4,%edx
40375b:	8b c2                	mov    %edx,%eax
40375d:	c1 e8 1f             	shr    $0x1f,%eax
403760:	03 c2                	add    %edx,%eax
403762:	b9 49 92 24 09       	mov    $0x9249249,%ecx
403767:	2b c8                	sub    %eax,%ecx
403769:	83 f9 01             	cmp    $0x1,%ecx
40376c:	73 05                	jae    0x403773
40376e:	e8 6d 02 00 00       	call   0x4039e0
403773:	40                   	inc    %eax
403774:	3b d8                	cmp    %eax,%ebx
403776:	0f 83 2a 01 00 00    	jae    0x4038a6
40377c:	8b cb                	mov    %ebx,%ecx
40377e:	d1 e9                	shr    $1,%ecx
403780:	ba 49 92 24 09       	mov    $0x9249249,%edx
403785:	2b d1                	sub    %ecx,%edx
403787:	3b d3                	cmp    %ebx,%edx
403789:	73 04                	jae    0x40378f
40378b:	33 db                	xor    %ebx,%ebx
40378d:	eb 02                	jmp    0x403791
40378f:	03 d9                	add    %ecx,%ebx
403791:	3b d8                	cmp    %eax,%ebx
403793:	73 02                	jae    0x403797
403795:	8b d8                	mov    %eax,%ebx
403797:	8b cb                	mov    %ebx,%ecx
403799:	e8 e2 02 00 00       	call   0x403a80
40379e:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4037a5:	8b 4e 0c             	mov    0xc(%esi),%ecx
4037a8:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
4037ac:	8b 55 e8             	mov    -0x18(%ebp),%edx
4037af:	52                   	push   %edx
4037b0:	8b 55 0c             	mov    0xc(%ebp),%edx
4037b3:	52                   	push   %edx
4037b4:	50                   	push   %eax
4037b5:	89 45 ec             	mov    %eax,-0x14(%ebp)
4037b8:	89 45 08             	mov    %eax,0x8(%ebp)
4037bb:	8b 45 14             	mov    0x14(%ebp),%eax
4037be:	50                   	push   %eax
4037bf:	e8 ac 08 00 00       	call   0x404070
4037c4:	8b 55 0c             	mov    0xc(%ebp),%edx
4037c7:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
4037cb:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4037ce:	51                   	push   %ecx
4037cf:	8b f8                	mov    %eax,%edi
4037d1:	8b 45 0c             	mov    0xc(%ebp),%eax
4037d4:	52                   	push   %edx
4037d5:	50                   	push   %eax
4037d6:	57                   	push   %edi
4037d7:	b9 01 00 00 00       	mov    $0x1,%ecx
4037dc:	89 7d 08             	mov    %edi,0x8(%ebp)
4037df:	e8 7c 07 00 00       	call   0x403f60
4037e4:	8b 46 10             	mov    0x10(%esi),%eax
4037e7:	c6 45 0c 00          	movb   $0x0,0xc(%ebp)
4037eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4037ee:	8b 55 0c             	mov    0xc(%ebp),%edx
4037f1:	51                   	push   %ecx
4037f2:	8b 4d 14             	mov    0x14(%ebp),%ecx
4037f5:	52                   	push   %edx
4037f6:	83 c7 1c             	add    $0x1c,%edi
4037f9:	57                   	push   %edi
4037fa:	50                   	push   %eax
4037fb:	89 7d 08             	mov    %edi,0x8(%ebp)
4037fe:	e8 6d 08 00 00       	call   0x404070
403803:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40380a:	8b 7e 0c             	mov    0xc(%esi),%edi
40380d:	8b 4e 10             	mov    0x10(%esi),%ecx
403810:	2b cf                	sub    %edi,%ecx
403812:	b8 93 24 49 92       	mov    $0x92492493,%eax
403817:	f7 e9                	imul   %ecx
403819:	03 d1                	add    %ecx,%edx
40381b:	c1 fa 04             	sar    $0x4,%edx
40381e:	8b c2                	mov    %edx,%eax
403820:	c1 e8 1f             	shr    $0x1f,%eax
403823:	8d 54 02 01          	lea    0x1(%edx,%eax,1),%edx
403827:	89 55 0c             	mov    %edx,0xc(%ebp)
40382a:	85 ff                	test   %edi,%edi
40382c:	74 1e                	je     0x40384c
40382e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403831:	8b 7e 10             	mov    0x10(%esi),%edi
403834:	8b 46 0c             	mov    0xc(%esi),%eax
403837:	51                   	push   %ecx
403838:	e8 c3 07 00 00       	call   0x404000
40383d:	8b 56 0c             	mov    0xc(%esi),%edx
403840:	52                   	push   %edx
403841:	e8 f0 1a 00 00       	call   0x405336
403846:	8b 55 0c             	mov    0xc(%ebp),%edx
403849:	83 c4 04             	add    $0x4,%esp
40384c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40384f:	8d 0c dd 00 00 00 00 	lea    0x0(,%ebx,8),%ecx
403856:	2b cb                	sub    %ebx,%ecx
403858:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
40385b:	89 4e 14             	mov    %ecx,0x14(%esi)
40385e:	8d 0c d5 00 00 00 00 	lea    0x0(,%edx,8),%ecx
403865:	2b ca                	sub    %edx,%ecx
403867:	8d 14 88             	lea    (%eax,%ecx,4),%edx
40386a:	89 56 10             	mov    %edx,0x10(%esi)
40386d:	89 46 0c             	mov    %eax,0xc(%esi)
403870:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403873:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40387a:	5f                   	pop    %edi
40387b:	5e                   	pop    %esi
40387c:	5b                   	pop    %ebx
40387d:	8b e5                	mov    %ebp,%esp
40387f:	5d                   	pop    %ebp
403880:	c2 10 00             	ret    $0x10
403883:	8b 45 0c             	mov    0xc(%ebp),%eax
403886:	8b 75 ec             	mov    -0x14(%ebp),%esi
403889:	8b 7d 08             	mov    0x8(%ebp),%edi
40388c:	50                   	push   %eax
40388d:	8b c6                	mov    %esi,%eax
40388f:	e8 6c 07 00 00       	call   0x404000
403894:	56                   	push   %esi
403895:	e8 9c 1a 00 00       	call   0x405336
40389a:	83 c4 04             	add    $0x4,%esp
40389d:	6a 00                	push   $0x0