403611:	e8 30 02 00 00       	call   0x403846
403616:	80 7e 4c 00          	cmpb   $0x0,0x4c(%esi)
40361a:	74 07                	je     0x403623
40361c:	8b ce                	mov    %esi,%ecx
40361e:	e8 eb 02 00 00       	call   0x40390e
403623:	8b ce                	mov    %esi,%ecx
403625:	5e                   	pop    %esi
403626:	e9 24 f3 ff ff       	jmp    0x40294f
40362b:	55                   	push   %ebp
40362c:	8b ec                	mov    %esp,%ebp
40362e:	56                   	push   %esi
40362f:	8b f1                	mov    %ecx,%esi
403631:	e8 cc ff ff ff       	call   0x403602
403636:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40363a:	74 07                	je     0x403643
40363c:	56                   	push   %esi
40363d:	e8 b6 18 00 00       	call   0x404ef8
403642:	59                   	pop    %ecx
403643:	8b c6                	mov    %esi,%eax
403645:	5e                   	pop    %esi
403646:	5d                   	pop    %ebp
403647:	c2 04 00             	ret    $0x4
40364a:	6a 24                	push   $0x24
40364c:	b8 56 7b 41 00       	mov    $0x417b56,%eax
403651:	e8 d6 27 00 00       	call   0x405e2c
403656:	8b f1                	mov    %ecx,%esi
403658:	33 db                	xor    %ebx,%ebx
40365a:	39 5e 40             	cmp    %ebx,0x40(%esi)
40365d:	0f 84 ec 00 00 00    	je     0x40374f
403663:	38 5e 45             	cmp    %bl,0x45(%esi)
403666:	0f 84 e3 00 00 00    	je     0x40374f
40366c:	8b 06                	mov    (%esi),%eax
40366e:	6a ff                	push   $0xffffffff
403670:	ff 50 0c             	call   *0xc(%eax)
403673:	83 f8 ff             	cmp    $0xffffffff,%eax
403676:	75 07                	jne    0x40367f
403678:	32 c0                	xor    %al,%al
40367a:	e9 d2 00 00 00       	jmp    0x403751
40367f:	53                   	push   %ebx
403680:	6a 08                	push   $0x8
403682:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403685:	c7 45 ec 0f 00 00 00 	movl   $0xf,-0x14(%ebp)
40368c:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40368f:	88 5d d8             	mov    %bl,-0x28(%ebp)
403692:	e8 27 fb ff ff       	call   0x4031be
403697:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40369a:	8b 7d d8             	mov    -0x28(%ebp),%edi
40369d:	8b 45 ec             	mov    -0x14(%ebp),%eax
4036a0:	83 f8 10             	cmp    $0x10,%eax
4036a3:	72 05                	jb     0x4036aa
4036a5:	89 7d d4             	mov    %edi,-0x2c(%ebp)
4036a8:	eb 06                	jmp    0x4036b0
4036aa:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4036ad:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4036b0:	83 f8 10             	cmp    $0x10,%eax
4036b3:	73 03                	jae    0x4036b8
4036b5:	8d 7d d8             	lea    -0x28(%ebp),%edi
4036b8:	8b 4e 40             	mov    0x40(%esi),%ecx
4036bb:	8d 45 d0             	lea    -0x30(%ebp),%eax
4036be:	8b 11                	mov    (%ecx),%edx
4036c0:	50                   	push   %eax
4036c1:	8b 45 e8             	mov    -0x18(%ebp),%eax
4036c4:	03 45 d4             	add    -0x2c(%ebp),%eax
4036c7:	50                   	push   %eax
4036c8:	57                   	push   %edi
4036c9:	8d 46 48             	lea    0x48(%esi),%eax
4036cc:	50                   	push   %eax
4036cd:	ff 52 20             	call   *0x20(%edx)
4036d0:	2b c3                	sub    %ebx,%eax
4036d2:	74 0a                	je     0x4036de
4036d4:	48                   	dec    %eax
4036d5:	74 0a                	je     0x4036e1
4036d7:	48                   	dec    %eax
4036d8:	48                   	dec    %eax
4036d9:	75 68                	jne    0x403743
4036db:	40                   	inc    %eax
4036dc:	eb 63                	jmp    0x403741
4036de:	88 5e 45             	mov    %bl,0x45(%esi)
4036e1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4036e4:	8b 7d d8             	mov    -0x28(%ebp),%edi
4036e7:	8b d7                	mov    %edi,%edx
4036e9:	83 f8 10             	cmp    $0x10,%eax
4036ec:	73 03                	jae    0x4036f1
4036ee:	8d 55 d8             	lea    -0x28(%ebp),%edx
4036f1:	8b 4d d0             	mov    -0x30(%ebp),%ecx
4036f4:	2b ca                	sub    %edx,%ecx
4036f6:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4036f9:	74 24                	je     0x40371f
4036fb:	83 f8 10             	cmp    $0x10,%eax
4036fe:	73 03                	jae    0x403703
403700:	8d 7d d8             	lea    -0x28(%ebp),%edi
403703:	ff 76 50             	push   0x50(%esi)
403706:	51                   	push   %ecx
403707:	6a 01                	push   $0x1
403709:	57                   	push   %edi
40370a:	e8 d5 34 00 00       	call   0x406be4
40370f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
403712:	83 c4 10             	add    $0x10,%esp
403715:	3b c8                	cmp    %eax,%ecx
403717:	75 26                	jne    0x40373f
403719:	8b 45 ec             	mov    -0x14(%ebp),%eax
40371c:	8b 7d d8             	mov    -0x28(%ebp),%edi
40371f:	80 7e 45 00          	cmpb   $0x0,0x45(%esi)
403723:	74 18                	je     0x40373d
403725:	85 c9                	test   %ecx,%ecx
403727:	0f 85 73 ff ff ff    	jne    0x4036a0
40372d:	53                   	push   %ebx
40372e:	6a 08                	push   $0x8
403730:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403733:	e8 75 01 00 00       	call   0x4038ad
403738:	e9 5d ff ff ff       	jmp    0x40369a
40373d:	b3 01                	mov    $0x1,%bl
40373f:	8a c3                	mov    %bl,%al
403741:	8a d8                	mov    %al,%bl
403743:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403746:	e8 51 da ff ff       	call   0x40119c
40374b:	8a c3                	mov    %bl,%al
40374d:	eb 02                	jmp    0x403751
40374f:	b0 01                	mov    $0x1,%al
403751:	e8 94 26 00 00       	call   0x405dea
403756:	c3                   	ret
403757:	6a 38                	push   $0x38
403759:	b8 85 7b 41 00       	mov    $0x417b85,%eax
40375e:	e8 96 26 00 00       	call   0x405df9
403763:	8b 7d 08             	mov    0x8(%ebp),%edi
403766:	33 db                	xor    %ebx,%ebx
403768:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40376b:	85 ff                	test   %edi,%edi
40376d:	74 47                	je     0x4037b6
40376f:	39 1f                	cmp    %ebx,(%edi)
403771:	75 43                	jne    0x4037b6
403773:	6a 08                	push   $0x8
403775:	e8 ce 17 00 00       	call   0x404f48
40377a:	8b f0                	mov    %eax,%esi
40377c:	59                   	pop    %ecx
40377d:	89 75 08             	mov    %esi,0x8(%ebp)
403780:	21 5d fc             	and    %ebx,-0x4(%ebp)
403783:	85 f6                	test   %esi,%esi
403785:	74 1e                	je     0x4037a5
403787:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40378a:	e8 54 ed ff ff       	call   0x4024e3
40378f:	50                   	push   %eax
403790:	8d 4d bc             	lea    -0x44(%ebp),%ecx
403793:	e8 bb eb ff ff       	call   0x402353
403798:	43                   	inc    %ebx
403799:	83 66 04 00          	andl   $0x0,0x4(%esi)
40379d:	c7 06 14 a1 41 00    	movl   $0x41a114,(%esi)
4037a3:	eb 02                	jmp    0x4037a7
4037a5:	33 f6                	xor    %esi,%esi
4037a7:	89 37                	mov    %esi,(%edi)
4037a9:	f6 c3 01             	test   $0x1,%bl
4037ac:	74 08                	je     0x4037b6
4037ae:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4037b1:	e8 27 ec ff ff       	call   0x4023dd
4037b6:	6a 02                	push   $0x2
4037b8:	58                   	pop    %eax
4037b9:	e8 18 26 00 00       	call   0x405dd6
4037be:	c3                   	ret
4037bf:	55                   	push   %ebp
4037c0:	8b ec                	mov    %esp,%ebp
4037c2:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4037c6:	56                   	push   %esi
4037c7:	8b f1                	mov    %ecx,%esi
4037c9:	0f 94 c0             	sete   %al
4037cc:	88 46 4c             	mov    %al,0x4c(%esi)
4037cf:	c6 46 45 00          	movb   $0x0,0x45(%esi)
4037d3:	e8 74 fa ff ff       	call   0x40324c
4037d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4037db:	85 c9                	test   %ecx,%ecx
4037dd:	74 18                	je     0x4037f7
4037df:	8d 41 08             	lea    0x8(%ecx),%eax
4037e2:	89 46 0c             	mov    %eax,0xc(%esi)
4037e5:	89 46 10             	mov    %eax,0x10(%esi)
4037e8:	8d 41 04             	lea    0x4(%ecx),%eax
4037eb:	89 4e 1c             	mov    %ecx,0x1c(%esi)
4037ee:	89 4e 20             	mov    %ecx,0x20(%esi)
4037f1:	89 46 2c             	mov    %eax,0x2c(%esi)
4037f4:	89 46 30             	mov    %eax,0x30(%esi)
4037f7:	89 4e 50             	mov    %ecx,0x50(%esi)
4037fa:	a1 7c 1a 42 00       	mov    0x421a7c,%eax
4037ff:	83 66 40 00          	andl   $0x0,0x40(%esi)
403803:	89 46 48             	mov    %eax,0x48(%esi)
403806:	5e                   	pop    %esi
403807:	5d                   	pop    %ebp
403808:	c2 08 00             	ret    $0x8
40380b:	55                   	push   %ebp
40380c:	8b ec                	mov    %esp,%ebp
40380e:	56                   	push   %esi
40380f:	57                   	push   %edi
403810:	8b 7d 08             	mov    0x8(%ebp),%edi
403813:	8b f1                	mov    %ecx,%esi
403815:	8b 07                	mov    (%edi),%eax
403817:	8b cf                	mov    %edi,%ecx
403819:	ff 50 0c             	call   *0xc(%eax)
40381c:	84 c0                	test   %al,%al
40381e:	74 06                	je     0x403826
403820:	83 66 40 00          	andl   $0x0,0x40(%esi)
403824:	eb 0a                	jmp    0x403830
403826:	8b ce                	mov    %esi,%ecx
403828:	89 7e 40             	mov    %edi,0x40(%esi)
40382b:	e8 1c fa ff ff       	call   0x40324c
403830:	5f                   	pop    %edi
403831:	5e                   	pop    %esi
403832:	5d                   	pop    %ebp
403833:	c2 04 00             	ret    $0x4
403836:	83 79 50 00          	cmpl   $0x0,0x50(%ecx)
40383a:	74 09                	je     0x403845
40383c:	ff 71 50             	push   0x50(%ecx)
40383f:	e8 d7 2a 00 00       	call   0x40631b
403844:	59                   	pop    %ecx
403845:	c3                   	ret
403846:	56                   	push   %esi
403847:	8b 71 0c             	mov    0xc(%ecx),%esi
40384a:	8d 41 44             	lea    0x44(%ecx),%eax
40384d:	39 06                	cmp    %eax,(%esi)
40384f:	75 14                	jne    0x403865
403851:	8b 41 38             	mov    0x38(%ecx),%eax
403854:	8b 51 3c             	mov    0x3c(%ecx),%edx
403857:	89 06                	mov    %eax,(%esi)
403859:	8b 41 1c             	mov    0x1c(%ecx),%eax
40385c:	89 10                	mov    %edx,(%eax)
40385e:	8b 41 2c             	mov    0x2c(%ecx),%eax
403861:	2b d2                	sub    %edx,%edx
403863:	89 10                	mov    %edx,(%eax)
403865:	5e                   	pop    %esi
403866:	c3                   	ret
403867:	56                   	push   %esi
403868:	8b d1                	mov    %ecx,%edx
40386a:	57                   	push   %edi
40386b:	8b 7a 0c             	mov    0xc(%edx),%edi
40386e:	8d 72 44             	lea    0x44(%edx),%esi
403871:	8b 07                	mov    (%edi),%eax
403873:	3b c6                	cmp    %esi,%eax
403875:	74 10                	je     0x403887
403877:	8b 4a 1c             	mov    0x1c(%edx),%ecx
40387a:	89 42 38             	mov    %eax,0x38(%edx)
40387d:	8b 42 2c             	mov    0x2c(%edx),%eax
403880:	8b 00                	mov    (%eax),%eax
403882:	03 01                	add    (%ecx),%eax
403884:	89 42 3c             	mov    %eax,0x3c(%edx)
403887:	89 37                	mov    %esi,(%edi)
403889:	8b 42 1c             	mov    0x1c(%edx),%eax
40388c:	8b ca                	mov    %edx,%ecx
40388e:	89 30                	mov    %esi,(%eax)
403890:	8b 42 2c             	mov    0x2c(%edx),%eax
403893:	2b ce                	sub    %esi,%ecx
403895:	83 c1 45             	add    $0x45,%ecx
403898:	5f                   	pop    %edi
403899:	89 08                	mov    %ecx,(%eax)
40389b:	5e                   	pop    %esi
40389c:	c3                   	ret
40389d:	83 79 50 00          	cmpl   $0x0,0x50(%ecx)
4038a1:	74 09                	je     0x4038ac
4038a3:	ff 71 50             	push   0x50(%ecx)
4038a6:	e8 df 2a 00 00       	call   0x40638a
4038ab:	59                   	pop    %ecx
4038ac:	c3                   	ret
4038ad:	55                   	push   %ebp
4038ae:	8b ec                	mov    %esp,%ebp
4038b0:	56                   	push   %esi
4038b1:	8b f1                	mov    %ecx,%esi
4038b3:	83 c8 ff             	or     $0xffffffff,%eax
4038b6:	8b 4e 10             	mov    0x10(%esi),%ecx
4038b9:	57                   	push   %edi
4038ba:	8b 7d 08             	mov    0x8(%ebp),%edi
4038bd:	2b c1                	sub    %ecx,%eax
4038bf:	3b c7                	cmp    %edi,%eax
4038c1:	76 40                	jbe    0x403903
4038c3:	85 ff                	test   %edi,%edi
4038c5:	74 34                	je     0x4038fb
4038c7:	53                   	push   %ebx
4038c8:	8d 1c 39             	lea    (%ecx,%edi,1),%ebx
4038cb:	6a 00                	push   $0x0
4038cd:	53                   	push   %ebx
4038ce:	8b ce                	mov    %esi,%ecx
4038d0:	e8 39 da ff ff       	call   0x40130e
4038d5:	84 c0                	test   %al,%al
4038d7:	74 21                	je     0x4038fa
4038d9:	ff 75 0c             	push   0xc(%ebp)
4038dc:	8b ce                	mov    %esi,%ecx
4038de:	57                   	push   %edi
4038df:	ff 76 10             	push   0x10(%esi)
4038e2:	e8 25 f9 ff ff       	call   0x40320c
4038e7:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4038eb:	89 5e 10             	mov    %ebx,0x10(%esi)
4038ee:	72 04                	jb     0x4038f4
4038f0:	8b 06                	mov    (%esi),%eax
4038f2:	eb 02                	jmp    0x4038f6
4038f4:	8b c6                	mov    %esi,%eax
4038f6:	c6 04 18 00          	movb   $0x0,(%eax,%ebx,1)
4038fa:	5b                   	pop    %ebx
4038fb:	5f                   	pop    %edi
4038fc:	8b c6                	mov    %esi,%eax
4038fe:	5e                   	pop    %esi
4038ff:	5d                   	pop    %ebp
403900:	c2 08 00             	ret    $0x8
403903:	68 f8 d3 41 00       	push   $0x41d3f8
403908:	e8 4d fb ff ff       	call   0x40345a
40390d:	cc                   	int3
40390e:	53                   	push   %ebx
40390f:	57                   	push   %edi
403910:	8b f9                	mov    %ecx,%edi
403912:	83 7f 50 00          	cmpl   $0x0,0x50(%edi)
403916:	75 04                	jne    0x40391c
403918:	33 db                	xor    %ebx,%ebx
40391a:	eb 23                	jmp    0x40393f
40391c:	56                   	push   %esi
40391d:	e8 28 fd ff ff       	call   0x40364a
403922:	ff 77 50             	push   0x50(%edi)
403925:	0f b6 f0             	movzbl %al,%esi
403928:	f7 de                	neg    %esi
40392a:	1b f6                	sbb    %esi,%esi
40392c:	23 f7                	and    %edi,%esi
40392e:	e8 2a 2b 00 00       	call   0x40645d
403933:	8b d8                	mov    %eax,%ebx
403935:	f7 db                	neg    %ebx
403937:	1b db                	sbb    %ebx,%ebx
403939:	f7 d3                	not    %ebx
40393b:	59                   	pop    %ecx
40393c:	23 de                	and    %esi,%ebx
40393e:	5e                   	pop    %esi
40393f:	8b cf                	mov    %edi,%ecx
403941:	c6 47 4c 00          	movb   $0x0,0x4c(%edi)
403945:	c6 47 45 00          	movb   $0x0,0x45(%edi)
403949:	e8 fe f8 ff ff       	call   0x40324c
40394e:	83 67 50 00          	andl   $0x0,0x50(%edi)
403952:	8b 0d 7c 1a 42 00    	mov    0x421a7c,%ecx
403958:	83 67 40 00          	andl   $0x0,0x40(%edi)
40395c:	89 4f 48             	mov    %ecx,0x48(%edi)
40395f:	5f                   	pop    %edi
403960:	8b c3                	mov    %ebx,%eax
403962:	5b                   	pop    %ebx
403963:	c3                   	ret
403964:	b0 01                	mov    $0x1,%al
403966:	c3                   	ret
403967:	33 c0                	xor    %eax,%eax
403969:	40                   	inc    %eax
40396a:	c3                   	ret
40396b:	55                   	push   %ebp
40396c:	8b ec                	mov    %esp,%ebp
40396e:	8b 45 10             	mov    0x10(%ebp),%eax
403971:	2b 45 0c             	sub    0xc(%ebp),%eax
403974:	8b 4d 14             	mov    0x14(%ebp),%ecx
403977:	3b c8                	cmp    %eax,%ecx
403979:	72 02                	jb     0x40397d
40397b:	8b c8                	mov    %eax,%ecx
40397d:	8b c1                	mov    %ecx,%eax
40397f:	5d                   	pop    %ebp
403980:	c2 10 00             	ret    $0x10
403983:	55                   	push   %ebp