40341a:	51                   	push   %ecx
40341b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40341e:	53                   	push   %ebx
40341f:	56                   	push   %esi
403420:	57                   	push   %edi
403421:	85 c9                	test   %ecx,%ecx
403423:	0f 84 cc 00 00 00    	je     0x4034f5
403429:	85 d2                	test   %edx,%edx
40342b:	0f 84 c4 00 00 00    	je     0x4034f5
403431:	8b 45 0c             	mov    0xc(%ebp),%eax
403434:	85 c0                	test   %eax,%eax
403436:	75 0a                	jne    0x403442
403438:	b8 03 40 00 80       	mov    $0x80004003,%eax
40343d:	e9 b8 00 00 00       	jmp    0x4034fa
403442:	8b 75 08             	mov    0x8(%ebp),%esi
403445:	33 db                	xor    %ebx,%ebx
403447:	89 18                	mov    %ebx,(%eax)
403449:	39 1e                	cmp    %ebx,(%esi)
40344b:	75 35                	jne    0x403482
40344d:	39 5e 04             	cmp    %ebx,0x4(%esi)
403450:	75 30                	jne    0x403482
403452:	81 7e 08 c0 00 00 00 	cmpl   $0xc0,0x8(%esi)
403459:	75 27                	jne    0x403482
40345b:	81 7e 0c 00 00 00 46 	cmpl   $0x46000000,0xc(%esi)
403462:	75 1e                	jne    0x403482
403464:	8b 7a 04             	mov    0x4(%edx),%edi
403467:	03 f9                	add    %ecx,%edi
403469:	57                   	push   %edi
40346a:	8b 07                	mov    (%edi),%eax
40346c:	8b 70 04             	mov    0x4(%eax),%esi
40346f:	8b ce                	mov    %esi,%ecx
403471:	ff 15 d0 71 40 00    	call   *0x4071d0
403477:	ff d6                	call   *%esi
403479:	8b 45 0c             	mov    0xc(%ebp),%eax
40347c:	89 38                	mov    %edi,(%eax)
40347e:	33 c0                	xor    %eax,%eax
403480:	eb 78                	jmp    0x4034fa
403482:	8d 7a 08             	lea    0x8(%edx),%edi
403485:	39 1f                	cmp    %ebx,(%edi)
403487:	74 5d                	je     0x4034e6
403489:	8b 5f f8             	mov    -0x8(%edi),%ebx
40348c:	85 db                	test   %ebx,%ebx
40348e:	74 21                	je     0x4034b1
403490:	8b 03                	mov    (%ebx),%eax
403492:	3b 06                	cmp    (%esi),%eax
403494:	75 45                	jne    0x4034db
403496:	8b 43 04             	mov    0x4(%ebx),%eax
403499:	3b 46 04             	cmp    0x4(%esi),%eax
40349c:	75 3d                	jne    0x4034db
40349e:	8b 43 08             	mov    0x8(%ebx),%eax
4034a1:	3b 46 08             	cmp    0x8(%esi),%eax
4034a4:	75 35                	jne    0x4034db
4034a6:	8b 43 0c             	mov    0xc(%ebx),%eax
4034a9:	3b 46 0c             	cmp    0xc(%esi),%eax
4034ac:	75 2d                	jne    0x4034db
4034ae:	8b 45 0c             	mov    0xc(%ebp),%eax
4034b1:	8b 17                	mov    (%edi),%edx
4034b3:	89 55 f8             	mov    %edx,-0x8(%ebp)
4034b6:	83 fa 01             	cmp    $0x1,%edx
4034b9:	74 32                	je     0x4034ed
4034bb:	ff 77 fc             	push   -0x4(%edi)
4034be:	50                   	push   %eax
4034bf:	56                   	push   %esi
4034c0:	51                   	push   %ecx
4034c1:	8b ca                	mov    %edx,%ecx
4034c3:	ff 15 d0 71 40 00    	call   *0x4071d0
4034c9:	ff 55 f8             	call   *-0x8(%ebp)
4034cc:	85 c0                	test   %eax,%eax
4034ce:	74 2a                	je     0x4034fa
4034d0:	85 db                	test   %ebx,%ebx
4034d2:	74 04                	je     0x4034d8
4034d4:	85 c0                	test   %eax,%eax
4034d6:	78 22                	js     0x4034fa
4034d8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4034db:	8b 45 0c             	mov    0xc(%ebp),%eax
4034de:	83 c7 0c             	add    $0xc,%edi
4034e1:	83 3f 00             	cmpl   $0x0,(%edi)
4034e4:	75 a3                	jne    0x403489
4034e6:	b8 02 40 00 80       	mov    $0x80004002,%eax
4034eb:	eb 0d                	jmp    0x4034fa
4034ed:	8b 7f fc             	mov    -0x4(%edi),%edi
4034f0:	e9 72 ff ff ff       	jmp    0x403467
4034f5:	b8 57 00 07 80       	mov    $0x80070057,%eax
4034fa:	5f                   	pop    %edi
4034fb:	5e                   	pop    %esi
4034fc:	5b                   	pop    %ebx
4034fd:	c9                   	leave
4034fe:	c2 08 00             	ret    $0x8
403501:	6a 08                	push   $0x8
403503:	68 d8 56 40 00       	push   $0x4056d8
403508:	e8 cb 1f 00 00       	call   0x4054d8
40350d:	c7 05 e0 63 40 00 00 	movl   $0x406000,0x4063e0
403514:	60 40 00
403517:	8b 45 08             	mov    0x8(%ebp),%eax
40351a:	a3 d8 63 40 00       	mov    %eax,0x4063d8
40351f:	a3 dc 63 40 00       	mov    %eax,0x4063dc
403524:	a3 d4 63 40 00       	mov    %eax,0x4063d4
403529:	33 db                	xor    %ebx,%ebx
40352b:	89 1d e4 63 40 00    	mov    %ebx,0x4063e4
403531:	89 1d e8 63 40 00    	mov    %ebx,0x4063e8
403537:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40353a:	68 ec 63 40 00       	push   $0x4063ec
40353f:	ff 15 30 71 40 00    	call   *0x407130
403545:	6a fe                	push   $0xfffffffe
403547:	5e                   	pop    %esi
403548:	89 75 fc             	mov    %esi,-0x4(%ebp)
40354b:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403552:	68 04 64 40 00       	push   $0x406404
403557:	ff 15 30 71 40 00    	call   *0x407130
40355d:	89 75 fc             	mov    %esi,-0x4(%ebp)
403560:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
403567:	68 1c 64 40 00       	push   $0x40641c
40356c:	ff 15 30 71 40 00    	call   *0x407130
403572:	89 75 fc             	mov    %esi,-0x4(%ebp)
403575:	89 1d 38 64 40 00    	mov    %ebx,0x406438
40357b:	c6 05 3c 64 40 00 01 	movb   $0x1,0x40643c
403582:	89 1d 44 64 40 00    	mov    %ebx,0x406444
403588:	89 1d 4c 64 40 00    	mov    %ebx,0x40644c
40358e:	89 1d 48 64 40 00    	mov    %ebx,0x406448
403594:	89 1d 50 64 40 00    	mov    %ebx,0x406450
40359a:	8b 3d e0 63 40 00    	mov    0x4063e0,%edi
4035a0:	85 ff                	test   %edi,%edi
4035a2:	74 2a                	je     0x4035ce
4035a4:	eb 24                	jmp    0x4035ca
4035a6:	6a 01                	push   $0x1
4035a8:	8b 77 20             	mov    0x20(%edi),%esi
4035ab:	8b ce                	mov    %esi,%ecx
4035ad:	ff 15 d0 71 40 00    	call   *0x4071d0
4035b3:	ff d6                	call   *%esi
4035b5:	33 c0                	xor    %eax,%eax
4035b7:	83 3d d0 63 40 00 64 	cmpl   $0x64,0x4063d0
4035be:	0f 95 c0             	setne  %al
4035c1:	8d 04 c5 1c 00 00 00 	lea    0x1c(,%eax,8),%eax
4035c8:	03 f8                	add    %eax,%edi
4035ca:	39 1f                	cmp    %ebx,(%edi)
4035cc:	75 d8                	jne    0x4035a6
4035ce:	33 c0                	xor    %eax,%eax
4035d0:	e9 90 00 00 00       	jmp    0x403665
4035d5:	8b 45 ec             	mov    -0x14(%ebp),%eax
4035d8:	8b 00                	mov    (%eax),%eax
4035da:	33 c9                	xor    %ecx,%ecx
4035dc:	81 38 17 00 00 c0    	cmpl   $0xc0000017,(%eax)
4035e2:	0f 94 c1             	sete   %cl
4035e5:	8b c1                	mov    %ecx,%eax
4035e7:	c3                   	ret
4035e8:	8b 65 e8             	mov    -0x18(%ebp),%esp
4035eb:	68 04 64 40 00       	push   $0x406404
4035f0:	ff 15 28 71 40 00    	call   *0x407128
4035f6:	be ec 63 40 00       	mov    $0x4063ec,%esi
4035fb:	56                   	push   %esi
4035fc:	ff 15 28 71 40 00    	call   *0x407128
403602:	6a 48                	push   $0x48
403604:	6a 00                	push   $0x0
403606:	56                   	push   %esi
403607:	e8 86 20 00 00       	call   0x405692
40360c:	83 c4 0c             	add    $0xc,%esp
40360f:	eb 48                	jmp    0x403659
403611:	8b 45 ec             	mov    -0x14(%ebp),%eax
403614:	8b 00                	mov    (%eax),%eax
403616:	33 c9                	xor    %ecx,%ecx
403618:	81 38 17 00 00 c0    	cmpl   $0xc0000017,(%eax)
40361e:	0f 94 c1             	sete   %cl
403621:	8b c1                	mov    %ecx,%eax
403623:	c3                   	ret
403624:	8b 65 e8             	mov    -0x18(%ebp),%esp
403627:	be ec 63 40 00       	mov    $0x4063ec,%esi
40362c:	56                   	push   %esi
40362d:	ff 15 28 71 40 00    	call   *0x407128
403633:	6a 30                	push   $0x30
403635:	eb cd                	jmp    0x403604
403637:	8b 45 ec             	mov    -0x14(%ebp),%eax
40363a:	8b 00                	mov    (%eax),%eax
40363c:	33 c9                	xor    %ecx,%ecx
40363e:	81 38 17 00 00 c0    	cmpl   $0xc0000017,(%eax)
403644:	0f 94 c1             	sete   %cl
403647:	8b c1                	mov    %ecx,%eax
403649:	c3                   	ret
40364a:	8b 65 e8             	mov    -0x18(%ebp),%esp
40364d:	6a 06                	push   $0x6
40364f:	59                   	pop    %ecx
403650:	33 c0                	xor    %eax,%eax
403652:	bf ec 63 40 00       	mov    $0x4063ec,%edi
403657:	f3 ab                	rep stos %eax,%es:(%edi)
403659:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403660:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
403665:	8b 4d f0             	mov    -0x10(%ebp),%ecx
403668:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40366f:	59                   	pop    %ecx
403670:	5f                   	pop    %edi
403671:	5e                   	pop    %esi
403672:	5b                   	pop    %ebx
403673:	c9                   	leave
403674:	c2 04 00             	ret    $0x4
403677:	8b ff                	mov    %edi,%edi
403679:	55                   	push   %ebp
40367a:	8b ec                	mov    %esp,%ebp
40367c:	51                   	push   %ecx
40367d:	57                   	push   %edi
40367e:	8b 3d e0 63 40 00    	mov    0x4063e0,%edi
403684:	85 ff                	test   %edi,%edi
403686:	75 04                	jne    0x40368c
403688:	33 c0                	xor    %eax,%eax
40368a:	eb 7c                	jmp    0x403708
40368c:	53                   	push   %ebx
40368d:	33 db                	xor    %ebx,%ebx
40368f:	39 1f                	cmp    %ebx,(%edi)
403691:	74 72                	je     0x403705
403693:	56                   	push   %esi
403694:	85 db                	test   %ebx,%ebx
403696:	75 6c                	jne    0x403704
403698:	21 5d fc             	and    %ebx,-0x4(%ebp)
40369b:	8b 77 08             	mov    0x8(%edi),%esi
40369e:	85 f6                	test   %esi,%esi
4036a0:	74 48                	je     0x4036ea
4036a2:	8d 45 fc             	lea    -0x4(%ebp),%eax
4036a5:	8b ce                	mov    %esi,%ecx
4036a7:	50                   	push   %eax
4036a8:	68 60 12 40 00       	push   $0x401260
4036ad:	ff 77 0c             	push   0xc(%edi)
4036b0:	ff 15 d0 71 40 00    	call   *0x4071d0
4036b6:	ff d6                	call   *%esi
4036b8:	8b d8                	mov    %eax,%ebx
4036ba:	85 db                	test   %ebx,%ebx
4036bc:	78 15                	js     0x4036d3
4036be:	8d 47 14             	lea    0x14(%edi),%eax
4036c1:	50                   	push   %eax
4036c2:	6a 04                	push   $0x4
4036c4:	6a 04                	push   $0x4
4036c6:	ff 75 fc             	push   -0x4(%ebp)
4036c9:	ff 37                	push   (%edi)
4036cb:	ff 15 10 70 40 00    	call   *0x407010
4036d1:	8b d8                	mov    %eax,%ebx
4036d3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4036d6:	85 c9                	test   %ecx,%ecx
4036d8:	74 10                	je     0x4036ea
4036da:	8b 01                	mov    (%ecx),%eax
4036dc:	51                   	push   %ecx
4036dd:	8b 70 08             	mov    0x8(%eax),%esi
4036e0:	8b ce                	mov    %esi,%ecx
4036e2:	ff 15 d0 71 40 00    	call   *0x4071d0
4036e8:	ff d6                	call   *%esi
4036ea:	33 c9                	xor    %ecx,%ecx
4036ec:	83 3d d0 63 40 00 64 	cmpl   $0x64,0x4063d0
4036f3:	0f 95 c1             	setne  %cl
4036f6:	8d 0c cd 1c 00 00 00 	lea    0x1c(,%ecx,8),%ecx
4036fd:	03 f9                	add    %ecx,%edi
4036ff:	83 3f 00             	cmpl   $0x0,(%edi)
403702:	75 90                	jne    0x403694
403704:	5e                   	pop    %esi
403705:	8b c3                	mov    %ebx,%eax
403707:	5b                   	pop    %ebx
403708:	5f                   	pop    %edi
403709:	c9                   	leave
40370a:	c2 04 00             	ret    $0x4
40370d:	8b ff                	mov    %edi,%edi
40370f:	53                   	push   %ebx
403710:	8b dc                	mov    %esp,%ebx
403712:	51                   	push   %ecx
403713:	51                   	push   %ecx
403714:	83 e4 f8             	and    $0xfffffff8,%esp
403717:	83 c4 04             	add    $0x4,%esp
40371a:	55                   	push   %ebp
40371b:	8b 6b 04             	mov    0x4(%ebx),%ebp
40371e:	89 6c 24 04          	mov    %ebp,0x4(%esp)
403722:	8b ec                	mov    %esp,%ebp
403724:	83 ec 18             	sub    $0x18,%esp
403727:	56                   	push   %esi
403728:	57                   	push   %edi
403729:	8b 3d e0 63 40 00    	mov    0x4063e0,%edi
40372f:	33 f6                	xor    %esi,%esi
403731:	85 ff                	test   %edi,%edi
403733:	74 47                	je     0x40377c
403735:	eb 41                	jmp    0x403778
403737:	8b 4f 10             	mov    0x10(%edi),%ecx
40373a:	85 c9                	test   %ecx,%ecx
40373c:	74 12                	je     0x403750
40373e:	8b 01                	mov    (%ecx),%eax
403740:	51                   	push   %ecx
403741:	8b 70 08             	mov    0x8(%eax),%esi
403744:	8b ce                	mov    %esi,%ecx
403746:	ff 15 d0 71 40 00    	call   *0x4071d0
40374c:	ff d6                	call   *%esi
40374e:	33 f6                	xor    %esi,%esi
403750:	89 77 10             	mov    %esi,0x10(%edi)
403753:	56                   	push   %esi
403754:	8b 77 20             	mov    0x20(%edi),%esi
403757:	8b ce                	mov    %esi,%ecx
403759:	ff 15 d0 71 40 00    	call   *0x4071d0
40375f:	ff d6                	call   *%esi
403761:	33 c0                	xor    %eax,%eax
403763:	83 3d d0 63 40 00 64 	cmpl   $0x64,0x4063d0
40376a:	0f 95 c0             	setne  %al
40376d:	8d 04 c5 1c 00 00 00 	lea    0x1c(,%eax,8),%eax
403774:	03 f8                	add    %eax,%edi
403776:	33 f6                	xor    %esi,%esi
403778:	39 37                	cmp    %esi,(%edi)
40377a:	75 bb                	jne    0x403737
40377c:	6a 06                	push   $0x6
40377e:	59                   	pop    %ecx
40377f:	33 c0                	xor    %eax,%eax
403781:	8d 7d e8             	lea    -0x18(%ebp),%edi
403784:	f3 ab                	rep stos %eax,%es:(%edi)
403786:	ba ec 63 40 00       	mov    $0x4063ec,%edx
40378b:	8d 7d e8             	lea    -0x18(%ebp),%edi
40378e:	8b ce                	mov    %esi,%ecx
403790:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
403793:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
403796:	75 08                	jne    0x4037a0
403798:	41                   	inc    %ecx
403799:	83 f9 06             	cmp    $0x6,%ecx
40379c:	75 f2                	jne    0x403790
40379e:	eb 07                	jmp    0x4037a7
4037a0:	52                   	push   %edx
4037a1:	ff 15 28 71 40 00    	call   *0x407128
4037a7:	ba 04 64 40 00       	mov    $0x406404,%edx
4037ac:	8d 7d e8             	lea    -0x18(%ebp),%edi
4037af:	8b ce                	mov    %esi,%ecx
4037b1:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
4037b4:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
4037b7:	75 08                	jne    0x4037c1
4037b9:	41                   	inc    %ecx
4037ba:	83 f9 06             	cmp    $0x6,%ecx
4037bd:	75 f2                	jne    0x4037b1
4037bf:	eb 07                	jmp    0x4037c8
4037c1:	52                   	push   %edx
4037c2:	ff 15 28 71 40 00    	call   *0x407128
4037c8:	ba 1c 64 40 00       	mov    $0x40641c,%edx
4037cd:	8d 7d e8             	lea    -0x18(%ebp),%edi
4037d0:	8b ce                	mov    %esi,%ecx
4037d2:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
4037d5:	3b 04 8f             	cmp    (%edi,%ecx,4),%eax
4037d8:	75 08                	jne    0x4037e2
4037da:	41                   	inc    %ecx
4037db:	83 f9 06             	cmp    $0x6,%ecx
4037de:	75 f2                	jne    0x4037d2
4037e0:	eb 07                	jmp    0x4037e9
4037e2:	52                   	push   %edx
4037e3:	ff 15 28 71 40 00    	call   *0x407128
4037e9:	8b 3d 50 64 40 00    	mov    0x406450,%edi
4037ef:	85 ff                	test   %edi,%edi
4037f1:	74 1f                	je     0x403812
4037f3:	8b 37                	mov    (%edi),%esi
4037f5:	8b ce                	mov    %esi,%ecx
4037f7:	ff 77 04             	push   0x4(%edi)
4037fa:	ff 15 d0 71 40 00    	call   *0x4071d0
403800:	ff d6                	call   *%esi
403802:	8b 77 08             	mov    0x8(%edi),%esi
403805:	57                   	push   %edi
403806:	e8 2e 14 00 00       	call   0x404c39
40380b:	8b fe                	mov    %esi,%edi