403490:	8b d6                	mov    %esi,%edx
403492:	8b 0b                	mov    (%ebx),%ecx
403494:	e8 d6 5b 00 00       	call   0x40906f
403499:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40349c:	6a 02                	push   $0x2
40349e:	8b d6                	mov    %esi,%edx
4034a0:	8b 0b                	mov    (%ebx),%ecx
4034a2:	e8 c8 5b 00 00       	call   0x40906f
4034a7:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4034ab:	0f 84 45 01 00 00    	je     0x4035f6
4034b1:	85 c0                	test   %eax,%eax
4034b3:	0f 84 3d 01 00 00    	je     0x4035f6
4034b9:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4034bd:	0f 84 33 01 00 00    	je     0x4035f6
4034c3:	8b c8                	mov    %eax,%ecx
4034c5:	e8 91 a4 00 00       	call   0x40d95b
4034ca:	89 45 e0             	mov    %eax,-0x20(%ebp)
4034cd:	6a 00                	push   $0x0
4034cf:	6a 01                	push   $0x1
4034d1:	b9 cc 00 00 00       	mov    $0xcc,%ecx
4034d6:	e8 76 65 00 00       	call   0x409a51
4034db:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4034de:	8b c8                	mov    %eax,%ecx
4034e0:	e8 b5 6f 00 00       	call   0x40a49a
4034e5:	85 c0                	test   %eax,%eax
4034e7:	75 1c                	jne    0x403505
4034e9:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4034ec:	e8 44 67 00 00       	call   0x409c35
4034f1:	50                   	push   %eax
4034f2:	ff 75 e0             	push   -0x20(%ebp)
4034f5:	68 c4 13 40 00       	push   $0x4013c4
4034fa:	57                   	push   %edi
4034fb:	68 d8 13 40 00       	push   $0x4013d8
403500:	e9 a9 00 00 00       	jmp    0x4035ae
403505:	6a 00                	push   $0x0
403507:	6a 01                	push   $0x1
403509:	b9 cd 00 00 00       	mov    $0xcd,%ecx
40350e:	e8 3e 65 00 00       	call   0x409a51
403513:	8b 55 e4             	mov    -0x1c(%ebp),%edx
403516:	8b c8                	mov    %eax,%ecx
403518:	e8 7d 6f 00 00       	call   0x40a49a
40351d:	85 c0                	test   %eax,%eax
40351f:	75 13                	jne    0x403534
403521:	8b 4d e8             	mov    -0x18(%ebp),%ecx
403524:	e8 0c 67 00 00       	call   0x409c35
403529:	50                   	push   %eax
40352a:	ff 75 e0             	push   -0x20(%ebp)
40352d:	68 f4 13 40 00       	push   $0x4013f4
403532:	eb c6                	jmp    0x4034fa
403534:	6a 00                	push   $0x0
403536:	6a 01                	push   $0x1
403538:	b9 cb 00 00 00       	mov    $0xcb,%ecx
40353d:	e8 0f 65 00 00       	call   0x409a51
403542:	8b 55 e4             	mov    -0x1c(%ebp),%edx
403545:	8b c8                	mov    %eax,%ecx
403547:	e8 4e 6f 00 00       	call   0x40a49a
40354c:	85 c0                	test   %eax,%eax
40354e:	75 28                	jne    0x403578
403550:	6a 2a                	push   $0x2a
403552:	ff 75 e8             	push   -0x18(%ebp)
403555:	ff 15 58 22 41 00    	call   *0x412258
40355b:	59                   	pop    %ecx
40355c:	59                   	pop    %ecx
40355d:	85 c0                	test   %eax,%eax
40355f:	0f 85 88 00 00 00    	jne    0x4035ed
403565:	ff 75 e8             	push   -0x18(%ebp)
403568:	ff 75 e0             	push   -0x20(%ebp)
40356b:	68 08 14 40 00       	push   $0x401408
403570:	57                   	push   %edi
403571:	68 18 14 40 00       	push   $0x401418
403576:	eb 36                	jmp    0x4035ae
403578:	6a 00                	push   $0x0
40357a:	6a 01                	push   $0x1
40357c:	b9 cf 00 00 00       	mov    $0xcf,%ecx
403581:	e8 cb 64 00 00       	call   0x409a51
403586:	8b 55 e4             	mov    -0x1c(%ebp),%edx
403589:	8b c8                	mov    %eax,%ecx
40358b:	e8 0a 6f 00 00       	call   0x40a49a
403590:	85 c0                	test   %eax,%eax
403592:	75 59                	jne    0x4035ed
403594:	8b 4d e8             	mov    -0x18(%ebp),%ecx
403597:	e8 99 66 00 00       	call   0x409c35
40359c:	c1 e0 0a             	shl    $0xa,%eax
40359f:	50                   	push   %eax
4035a0:	ff 75 e0             	push   -0x20(%ebp)
4035a3:	68 38 14 40 00       	push   $0x401438
4035a8:	57                   	push   %edi
4035a9:	68 58 14 40 00       	push   $0x401458
4035ae:	8d 45 ec             	lea    -0x14(%ebp),%eax
4035b1:	50                   	push   %eax
4035b2:	ff 15 04 22 41 00    	call   *0x412204
4035b8:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
4035bf:	83 c4 18             	add    $0x18,%esp
4035c2:	8d 45 ec             	lea    -0x14(%ebp),%eax
4035c5:	50                   	push   %eax
4035c6:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4035c9:	ff 15 fc 21 41 00    	call   *0x4121fc
4035cf:	bf 74 14 40 00       	mov    $0x401474,%edi
4035d4:	89 7d cc             	mov    %edi,-0x34(%ebp)
4035d7:	8b d6                	mov    %esi,%edx
4035d9:	8b 0b                	mov    (%ebx),%ecx
4035db:	e8 88 57 00 00       	call   0x408d68
4035e0:	4e                   	dec    %esi
4035e1:	89 75 d4             	mov    %esi,-0x2c(%ebp)
4035e4:	8b 45 d8             	mov    -0x28(%ebp),%eax
4035e7:	48                   	dec    %eax
4035e8:	89 45 d8             	mov    %eax,-0x28(%ebp)
4035eb:	eb 03                	jmp    0x4035f0
4035ed:	8b 45 d8             	mov    -0x28(%ebp),%eax
4035f0:	46                   	inc    %esi
4035f1:	e9 7b fe ff ff       	jmp    0x403471
4035f6:	68 fd 00 03 80       	push   $0x800300fd
4035fb:	ff 15 74 20 41 00    	call   *0x412074
403601:	e8 ee 61 00 00       	call   0x4097f4
403606:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40360a:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40360d:	ff 15 30 22 41 00    	call   *0x412230
403613:	e9 37 fd ff ff       	jmp    0x40334f
403618:	68 0e 00 07 80       	push   $0x8007000e
40361d:	ff 15 74 20 41 00    	call   *0x412074
403623:	e8 cc 61 00 00       	call   0x4097f4
403628:	83 65 c8 00          	andl   $0x0,-0x38(%ebp)
40362c:	b8 32 36 40 00       	mov    $0x403632,%eax
403631:	c3                   	ret
403632:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403636:	8b 75 c8             	mov    -0x38(%ebp),%esi
403639:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40363d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
403640:	ff 15 30 22 41 00    	call   *0x412230
403646:	8b c6                	mov    %esi,%eax
403648:	e8 ac bc 00 00       	call   0x40f2f9
40364d:	c3                   	ret
40364e:	8b ff                	mov    %edi,%edi
403650:	55                   	push   %ebp
403651:	8b ec                	mov    %esp,%ebp
403653:	81 ec 94 00 00 00    	sub    $0x94,%esp
403659:	a1 44 10 41 00       	mov    0x411044,%eax
40365e:	33 c5                	xor    %ebp,%eax
403660:	89 45 fc             	mov    %eax,-0x4(%ebp)
403663:	8b 45 08             	mov    0x8(%ebp),%eax
403666:	53                   	push   %ebx
403667:	56                   	push   %esi
403668:	57                   	push   %edi
403669:	68 80 00 00 00       	push   $0x80
40366e:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
403674:	8b da                	mov    %edx,%ebx
403676:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40367c:	89 9d 6c ff ff ff    	mov    %ebx,-0x94(%ebp)
403682:	6a 00                	push   $0x0
403684:	50                   	push   %eax
403685:	8b f1                	mov    %ecx,%esi
403687:	e8 38 bd 00 00       	call   0x40f3c4
40368c:	83 c4 0c             	add    $0xc,%esp
40368f:	85 f6                	test   %esi,%esi
403691:	0f 84 46 01 00 00    	je     0x4037dd
403697:	85 db                	test   %ebx,%ebx
403699:	0f 84 3e 01 00 00    	je     0x4037dd
40369f:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
4036a5:	33 db                	xor    %ebx,%ebx
4036a7:	33 ff                	xor    %edi,%edi
4036a9:	21 18                	and    %ebx,(%eax)
4036ab:	8b 95 6c ff ff ff    	mov    -0x94(%ebp),%edx
4036b1:	8b ce                	mov    %esi,%ecx
4036b3:	53                   	push   %ebx
4036b4:	6a 01                	push   $0x1
4036b6:	e8 85 68 00 00       	call   0x409f40
4036bb:	83 f8 ff             	cmp    $0xffffffff,%eax
4036be:	75 09                	jne    0x4036c9
4036c0:	83 a5 74 ff ff ff 00 	andl   $0x0,-0x8c(%ebp)
4036c7:	eb 0d                	jmp    0x4036d6
4036c9:	8d 04 46             	lea    (%esi,%eax,2),%eax
4036cc:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
4036d2:	85 c0                	test   %eax,%eax
4036d4:	75 34                	jne    0x40370a
4036d6:	8b ce                	mov    %esi,%ecx
4036d8:	e8 ae 6d 00 00       	call   0x40a48b
4036dd:	3b d8                	cmp    %eax,%ebx
4036df:	0f 83 0b 01 00 00    	jae    0x4037f0
4036e5:	6a 40                	push   $0x40
4036e7:	8d 14 5e             	lea    (%esi,%ebx,2),%edx
4036ea:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
4036f0:	e8 01 6d 00 00       	call   0x40a3f6
4036f5:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4036fb:	50                   	push   %eax
4036fc:	ff 15 d4 20 41 00    	call   *0x4120d4
403702:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
403708:	eb 5e                	jmp    0x403768
40370a:	68 80 00 00 00       	push   $0x80
40370f:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
403715:	6a 00                	push   $0x0
403717:	50                   	push   %eax
403718:	e8 a7 bc 00 00       	call   0x40f3c4
40371d:	83 c4 0c             	add    $0xc,%esp
403720:	8b ce                	mov    %esi,%ecx
403722:	e8 64 6d 00 00       	call   0x40a48b
403727:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
40372d:	2b c3                	sub    %ebx,%eax
40372f:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
403735:	e8 51 6d 00 00       	call   0x40a48b
40373a:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
403740:	2b c8                	sub    %eax,%ecx
403742:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
403748:	83 f9 40             	cmp    $0x40,%ecx
40374b:	0f 87 8c 00 00 00    	ja     0x4037dd
403751:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
403754:	50                   	push   %eax
403755:	8d 04 5e             	lea    (%esi,%ebx,2),%eax
403758:	50                   	push   %eax
403759:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40375f:	50                   	push   %eax
403760:	e8 59 bc 00 00       	call   0x40f3be
403765:	83 c4 0c             	add    $0xc,%esp
403768:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40376e:	47                   	inc    %edi
40376f:	50                   	push   %eax
403770:	ff 15 d4 20 41 00    	call   *0x4120d4
403776:	85 c0                	test   %eax,%eax
403778:	74 63                	je     0x4037dd
40377a:	6a 00                	push   $0x0
40377c:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
403782:	e8 65 65 00 00       	call   0x409cec
403787:	85 c0                	test   %eax,%eax
403789:	74 52                	je     0x4037dd
40378b:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
403791:	e8 9f 64 00 00       	call   0x409c35
403796:	83 ff 01             	cmp    $0x1,%edi
403799:	76 05                	jbe    0x4037a0
40379b:	83 f8 32             	cmp    $0x32,%eax
40379e:	77 3d                	ja     0x4037dd
4037a0:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
4037a6:	8b 0a                	mov    (%edx),%ecx
4037a8:	03 c8                	add    %eax,%ecx
4037aa:	83 ff 03             	cmp    $0x3,%edi
4037ad:	1b c0                	sbb    %eax,%eax
4037af:	83 e0 3b             	and    $0x3b,%eax
4037b2:	40                   	inc    %eax
4037b3:	0f af c8             	imul   %eax,%ecx
4037b6:	89 0a                	mov    %ecx,(%edx)
4037b8:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
4037be:	e8 c8 6c 00 00       	call   0x40a48b
4037c3:	03 85 78 ff ff ff    	add    -0x88(%ebp),%eax
4037c9:	03 d8                	add    %eax,%ebx
4037cb:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
4037d2:	74 1c                	je     0x4037f0
4037d4:	83 ff 03             	cmp    $0x3,%edi
4037d7:	0f 82 ce fe ff ff    	jb     0x4036ab
4037dd:	33 c0                	xor    %eax,%eax
4037df:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4037e2:	5f                   	pop    %edi
4037e3:	5e                   	pop    %esi
4037e4:	33 cd                	xor    %ebp,%ecx
4037e6:	5b                   	pop    %ebx
4037e7:	e8 e4 b4 00 00       	call   0x40ecd0
4037ec:	c9                   	leave
4037ed:	c2 04 00             	ret    $0x4
4037f0:	83 ff 03             	cmp    $0x3,%edi
4037f3:	75 e8                	jne    0x4037dd
4037f5:	33 c0                	xor    %eax,%eax
4037f7:	40                   	inc    %eax
4037f8:	eb e5                	jmp    0x4037df
4037fa:	cc                   	int3
4037fb:	cc                   	int3
4037fc:	cc                   	int3
4037fd:	cc                   	int3
4037fe:	cc                   	int3
4037ff:	cc                   	int3
403800:	8b ff                	mov    %edi,%edi
403802:	55                   	push   %ebp
403803:	8b ec                	mov    %esp,%ebp
403805:	51                   	push   %ecx
403806:	51                   	push   %ecx
403807:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40380b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40380f:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
403813:	56                   	push   %esi
403814:	75 3f                	jne    0x403855
403816:	8b 75 10             	mov    0x10(%ebp),%esi
403819:	85 f6                	test   %esi,%esi
40381b:	74 1f                	je     0x40383c
40381d:	8b ce                	mov    %esi,%ecx
40381f:	e8 67 6c 00 00       	call   0x40a48b
403824:	83 f8 01             	cmp    $0x1,%eax
403827:	76 13                	jbe    0x40383c
403829:	0f b7 06             	movzwl (%esi),%eax
40382c:	6a 2d                	push   $0x2d
40382e:	59                   	pop    %ecx
40382f:	66 3b c8             	cmp    %ax,%cx
403832:	74 68                	je     0x40389c
403834:	6a 2b                	push   $0x2b
403836:	59                   	pop    %ecx
403837:	66 3b c8             	cmp    %ax,%cx
40383a:	74 60                	je     0x40389c
40383c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
40383f:	ba 58 11 40 00       	mov    $0x401158,%edx
403844:	51                   	push   %ecx
403845:	8b ce                	mov    %esi,%ecx
403847:	e8 02 fe ff ff       	call   0x40364e
40384c:	85 c0                	test   %eax,%eax
40384e:	74 4c                	je     0x40389c
403850:	33 c0                	xor    %eax,%eax
403852:	40                   	inc    %eax
403853:	eb 49                	jmp    0x40389e
403855:	8b 4d 10             	mov    0x10(%ebp),%ecx
403858:	8d 45 f8             	lea    -0x8(%ebp),%eax
40385b:	50                   	push   %eax
40385c:	ba 58 11 40 00       	mov    $0x401158,%edx
403861:	e8 e8 fd ff ff       	call   0x40364e
403866:	8b 4d 18             	mov    0x18(%ebp),%ecx
403869:	6a 08                	push   $0x8
40386b:	5a                   	pop    %edx
40386c:	e8 9e 55 00 00       	call   0x408e0f
403871:	85 c0                	test   %eax,%eax
403873:	74 27                	je     0x40389c
403875:	8b 55 14             	mov    0x14(%ebp),%edx
403878:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40387b:	51                   	push   %ecx
40387c:	8b c8                	mov    %eax,%ecx
40387e:	e8 cb fd ff ff       	call   0x40364e
403883:	8b 45 f8             	mov    -0x8(%ebp),%eax
403886:	39 45 fc             	cmp    %eax,-0x4(%ebp)
403889:	75 05                	jne    0x403890
40388b:	6a 02                	push   $0x2
40388d:	58                   	pop    %eax
40388e:	eb 0e                	jmp    0x40389e
403890:	73 04                	jae    0x403896
403892:	6a 04                	push   $0x4
403894:	eb f7                	jmp    0x40388d
403896:	76 04                	jbe    0x40389c
403898:	6a 08                	push   $0x8
40389a:	eb f1                	jmp    0x40388d
40389c:	33 c0                	xor    %eax,%eax
40389e:	5e                   	pop    %esi
40389f:	c9                   	leave
4038a0:	c2 14 00             	ret    $0x14
4038a3:	cc                   	int3
4038a4:	cc                   	int3
4038a5:	cc                   	int3
4038a6:	cc                   	int3
4038a7:	cc                   	int3
4038a8:	cc                   	int3
4038a9:	cc                   	int3
4038aa:	cc                   	int3
4038ab:	cc                   	int3
4038ac:	cc                   	int3
4038ad:	cc                   	int3
4038ae:	cc                   	int3
4038af:	cc                   	int3
4038b0:	8b ff                	mov    %edi,%edi
4038b2:	55                   	push   %ebp
4038b3:	8b ec                	mov    %esp,%ebp