4037b8:	cc                   	int3
4037b9:	cc                   	int3
4037ba:	cc                   	int3
4037bb:	cc                   	int3
4037bc:	cc                   	int3
4037bd:	cc                   	int3
4037be:	cc                   	int3
4037bf:	cc                   	int3
4037c0:	55                   	push   %ebp
4037c1:	8b ec                	mov    %esp,%ebp
4037c3:	51                   	push   %ecx
4037c4:	53                   	push   %ebx
4037c5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4037c8:	56                   	push   %esi
4037c9:	8b f1                	mov    %ecx,%esi
4037cb:	57                   	push   %edi
4037cc:	8b 4e 14             	mov    0x14(%esi),%ecx
4037cf:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4037d2:	3b d9                	cmp    %ecx,%ebx
4037d4:	77 28                	ja     0x4037fe
4037d6:	8b fe                	mov    %esi,%edi
4037d8:	83 f9 10             	cmp    $0x10,%ecx
4037db:	72 02                	jb     0x4037df
4037dd:	8b 3e                	mov    (%esi),%edi
4037df:	53                   	push   %ebx
4037e0:	ff 75 08             	push   0x8(%ebp)
4037e3:	89 5e 10             	mov    %ebx,0x10(%esi)
4037e6:	57                   	push   %edi
4037e7:	e8 84 51 00 00       	call   0x408970
4037ec:	83 c4 0c             	add    $0xc,%esp
4037ef:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
4037f3:	8b c6                	mov    %esi,%eax
4037f5:	5f                   	pop    %edi
4037f6:	5e                   	pop    %esi
4037f7:	5b                   	pop    %ebx
4037f8:	8b e5                	mov    %ebp,%esp
4037fa:	5d                   	pop    %ebp
4037fb:	c2 08 00             	ret    $0x8
4037fe:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
403804:	0f 87 d1 00 00 00    	ja     0x4038db
40380a:	8b fb                	mov    %ebx,%edi
40380c:	83 cf 0f             	or     $0xf,%edi
40380f:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
403815:	77 2f                	ja     0x403846
403817:	8b d1                	mov    %ecx,%edx
403819:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40381e:	d1 ea                	shr    $1,%edx
403820:	2b c2                	sub    %edx,%eax
403822:	3b c8                	cmp    %eax,%ecx
403824:	77 20                	ja     0x403846
403826:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
403829:	3b f8                	cmp    %eax,%edi
40382b:	0f 42 f8             	cmovb  %eax,%edi
40382e:	8d 4f 01             	lea    0x1(%edi),%ecx
403831:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
403837:	72 31                	jb     0x40386a
403839:	8d 41 23             	lea    0x23(%ecx),%eax
40383c:	3b c1                	cmp    %ecx,%eax
40383e:	0f 86 9c 00 00 00    	jbe    0x4038e0
403844:	eb 0a                	jmp    0x403850
403846:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40384b:	b8 23 00 00 80       	mov    $0x80000023,%eax
403850:	50                   	push   %eax
403851:	e8 c6 3d 00 00       	call   0x40761c
403856:	8b c8                	mov    %eax,%ecx
403858:	83 c4 04             	add    $0x4,%esp
40385b:	85 c9                	test   %ecx,%ecx
40385d:	74 77                	je     0x4038d6
40385f:	8d 41 23             	lea    0x23(%ecx),%eax
403862:	83 e0 e0             	and    $0xffffffe0,%eax
403865:	89 48 fc             	mov    %ecx,-0x4(%eax)
403868:	eb 11                	jmp    0x40387b
40386a:	85 c9                	test   %ecx,%ecx
40386c:	74 0b                	je     0x403879
40386e:	51                   	push   %ecx
40386f:	e8 a8 3d 00 00       	call   0x40761c
403874:	83 c4 04             	add    $0x4,%esp
403877:	eb 02                	jmp    0x40387b
403879:	33 c0                	xor    %eax,%eax
40387b:	53                   	push   %ebx
40387c:	ff 75 08             	push   0x8(%ebp)
40387f:	89 45 0c             	mov    %eax,0xc(%ebp)
403882:	50                   	push   %eax
403883:	89 5e 10             	mov    %ebx,0x10(%esi)
403886:	89 7e 14             	mov    %edi,0x14(%esi)
403889:	e8 e2 50 00 00       	call   0x408970
40388e:	8b 7d 0c             	mov    0xc(%ebp),%edi
403891:	83 c4 0c             	add    $0xc,%esp
403894:	8b 45 fc             	mov    -0x4(%ebp),%eax
403897:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
40389b:	83 f8 10             	cmp    $0x10,%eax
40389e:	72 29                	jb     0x4038c9
4038a0:	8d 48 01             	lea    0x1(%eax),%ecx
4038a3:	8b 06                	mov    (%esi),%eax
4038a5:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4038ab:	72 12                	jb     0x4038bf
4038ad:	8b 50 fc             	mov    -0x4(%eax),%edx
4038b0:	83 c1 23             	add    $0x23,%ecx
4038b3:	2b c2                	sub    %edx,%eax
4038b5:	83 c0 fc             	add    $0xfffffffc,%eax
4038b8:	83 f8 1f             	cmp    $0x1f,%eax
4038bb:	77 19                	ja     0x4038d6
4038bd:	8b c2                	mov    %edx,%eax
4038bf:	51                   	push   %ecx
4038c0:	50                   	push   %eax
4038c1:	e8 86 3d 00 00       	call   0x40764c
4038c6:	83 c4 08             	add    $0x8,%esp
4038c9:	89 3e                	mov    %edi,(%esi)
4038cb:	8b c6                	mov    %esi,%eax
4038cd:	5f                   	pop    %edi
4038ce:	5e                   	pop    %esi
4038cf:	5b                   	pop    %ebx
4038d0:	8b e5                	mov    %ebp,%esp
4038d2:	5d                   	pop    %ebp
4038d3:	c2 08 00             	ret    $0x8
4038d6:	e8 b6 97 00 00       	call   0x40d091
4038db:	e8 d0 da ff ff       	call   0x4013b0
4038e0:	e8 fb d9 ff ff       	call   0x4012e0
4038e5:	cc                   	int3
4038e6:	cc                   	int3
4038e7:	cc                   	int3
4038e8:	cc                   	int3
4038e9:	cc                   	int3
4038ea:	cc                   	int3
4038eb:	cc                   	int3
4038ec:	cc                   	int3
4038ed:	cc                   	int3
4038ee:	cc                   	int3
4038ef:	cc                   	int3
4038f0:	55                   	push   %ebp
4038f1:	8b ec                	mov    %esp,%ebp
4038f3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
4038f7:	56                   	push   %esi
4038f8:	8b f1                	mov    %ecx,%esi
4038fa:	c7 06 78 43 42 00    	movl   $0x424378,(%esi)
403900:	74 0b                	je     0x40390d
403902:	6a 08                	push   $0x8
403904:	56                   	push   %esi
403905:	e8 42 3d 00 00       	call   0x40764c
40390a:	83 c4 08             	add    $0x8,%esp
40390d:	8b c6                	mov    %esi,%eax
40390f:	5e                   	pop    %esi
403910:	5d                   	pop    %ebp
403911:	c2 04 00             	ret    $0x4
403914:	cc                   	int3
403915:	cc                   	int3
403916:	cc                   	int3
403917:	cc                   	int3
403918:	cc                   	int3
403919:	cc                   	int3
40391a:	cc                   	int3
40391b:	cc                   	int3
40391c:	cc                   	int3
40391d:	cc                   	int3
40391e:	cc                   	int3
40391f:	cc                   	int3
403920:	55                   	push   %ebp
403921:	8b ec                	mov    %esp,%ebp
403923:	8b 51 14             	mov    0x14(%ecx),%edx
403926:	8b ca                	mov    %edx,%ecx
403928:	56                   	push   %esi
403929:	8b 75 08             	mov    0x8(%ebp),%esi
40392c:	57                   	push   %edi
40392d:	8d 79 01             	lea    0x1(%ecx),%edi
403930:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403936:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40393d:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403944:	c6 06 00             	movb   $0x0,(%esi)
403947:	8a 01                	mov    (%ecx),%al
403949:	41                   	inc    %ecx
40394a:	84 c0                	test   %al,%al
40394c:	75 f9                	jne    0x403947
40394e:	2b cf                	sub    %edi,%ecx
403950:	51                   	push   %ecx
403951:	52                   	push   %edx
403952:	8b ce                	mov    %esi,%ecx
403954:	e8 67 fe ff ff       	call   0x4037c0
403959:	5f                   	pop    %edi
40395a:	8b c6                	mov    %esi,%eax
40395c:	5e                   	pop    %esi
40395d:	5d                   	pop    %ebp
40395e:	c2 04 00             	ret    $0x4
403961:	cc                   	int3
403962:	cc                   	int3
403963:	cc                   	int3
403964:	cc                   	int3
403965:	cc                   	int3
403966:	cc                   	int3
403967:	cc                   	int3
403968:	cc                   	int3
403969:	cc                   	int3
40396a:	cc                   	int3
40396b:	cc                   	int3
40396c:	cc                   	int3
40396d:	cc                   	int3
40396e:	cc                   	int3
40396f:	cc                   	int3
403970:	55                   	push   %ebp
403971:	8b ec                	mov    %esp,%ebp
403973:	8b 51 10             	mov    0x10(%ecx),%edx
403976:	8b ca                	mov    %edx,%ecx
403978:	56                   	push   %esi
403979:	8b 75 08             	mov    0x8(%ebp),%esi
40397c:	57                   	push   %edi
40397d:	8d 79 01             	lea    0x1(%ecx),%edi
403980:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
403986:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40398d:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403994:	c6 06 00             	movb   $0x0,(%esi)
403997:	8a 01                	mov    (%ecx),%al
403999:	41                   	inc    %ecx
40399a:	84 c0                	test   %al,%al
40399c:	75 f9                	jne    0x403997
40399e:	2b cf                	sub    %edi,%ecx
4039a0:	51                   	push   %ecx
4039a1:	52                   	push   %edx
4039a2:	8b ce                	mov    %esi,%ecx
4039a4:	e8 17 fe ff ff       	call   0x4037c0
4039a9:	5f                   	pop    %edi
4039aa:	8b c6                	mov    %esi,%eax
4039ac:	5e                   	pop    %esi
4039ad:	5d                   	pop    %ebp
4039ae:	c2 04 00             	ret    $0x4
4039b1:	cc                   	int3
4039b2:	cc                   	int3
4039b3:	cc                   	int3
4039b4:	cc                   	int3
4039b5:	cc                   	int3
4039b6:	cc                   	int3
4039b7:	cc                   	int3
4039b8:	cc                   	int3
4039b9:	cc                   	int3
4039ba:	cc                   	int3
4039bb:	cc                   	int3
4039bc:	cc                   	int3
4039bd:	cc                   	int3
4039be:	cc                   	int3
4039bf:	cc                   	int3
4039c0:	55                   	push   %ebp
4039c1:	8b ec                	mov    %esp,%ebp
4039c3:	8b 51 08             	mov    0x8(%ecx),%edx
4039c6:	8b ca                	mov    %edx,%ecx
4039c8:	56                   	push   %esi
4039c9:	8b 75 08             	mov    0x8(%ebp),%esi
4039cc:	57                   	push   %edi
4039cd:	8d 79 01             	lea    0x1(%ecx),%edi
4039d0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
4039d6:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
4039dd:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4039e4:	c6 06 00             	movb   $0x0,(%esi)
4039e7:	8a 01                	mov    (%ecx),%al
4039e9:	41                   	inc    %ecx
4039ea:	84 c0                	test   %al,%al
4039ec:	75 f9                	jne    0x4039e7
4039ee:	2b cf                	sub    %edi,%ecx
4039f0:	51                   	push   %ecx
4039f1:	52                   	push   %edx
4039f2:	8b ce                	mov    %esi,%ecx
4039f4:	e8 c7 fd ff ff       	call   0x4037c0
4039f9:	5f                   	pop    %edi
4039fa:	8b c6                	mov    %esi,%eax
4039fc:	5e                   	pop    %esi
4039fd:	5d                   	pop    %ebp
4039fe:	c2 04 00             	ret    $0x4
403a01:	cc                   	int3
403a02:	cc                   	int3
403a03:	cc                   	int3
403a04:	cc                   	int3
403a05:	cc                   	int3
403a06:	cc                   	int3
403a07:	cc                   	int3
403a08:	cc                   	int3
403a09:	cc                   	int3
403a0a:	cc                   	int3
403a0b:	cc                   	int3
403a0c:	cc                   	int3
403a0d:	cc                   	int3
403a0e:	cc                   	int3
403a0f:	cc                   	int3
403a10:	8a 41 0d             	mov    0xd(%ecx),%al
403a13:	c3                   	ret
403a14:	cc                   	int3
403a15:	cc                   	int3
403a16:	cc                   	int3
403a17:	cc                   	int3
403a18:	cc                   	int3
403a19:	cc                   	int3
403a1a:	cc                   	int3
403a1b:	cc                   	int3
403a1c:	cc                   	int3
403a1d:	cc                   	int3
403a1e:	cc                   	int3
403a1f:	cc                   	int3
403a20:	8a 41 0c             	mov    0xc(%ecx),%al
403a23:	c3                   	ret
403a24:	cc                   	int3
403a25:	cc                   	int3
403a26:	cc                   	int3
403a27:	cc                   	int3
403a28:	cc                   	int3
403a29:	cc                   	int3
403a2a:	cc                   	int3
403a2b:	cc                   	int3
403a2c:	cc                   	int3
403a2d:	cc                   	int3
403a2e:	cc                   	int3
403a2f:	cc                   	int3
403a30:	55                   	push   %ebp
403a31:	8b ec                	mov    %esp,%ebp
403a33:	56                   	push   %esi
403a34:	8b 75 14             	mov    0x14(%ebp),%esi
403a37:	57                   	push   %edi
403a38:	8b 7d 1c             	mov    0x1c(%ebp),%edi
403a3b:	85 ff                	test   %edi,%edi
403a3d:	74 4a                	je     0x403a89
403a3f:	53                   	push   %ebx
403a40:	8a 5d 18             	mov    0x18(%ebp),%bl
403a43:	85 f6                	test   %esi,%esi
403a45:	74 38                	je     0x403a7f
403a47:	8b 46 20             	mov    0x20(%esi),%eax
403a4a:	83 38 00             	cmpl   $0x0,(%eax)
403a4d:	74 1d                	je     0x403a6c
403a4f:	8b 4e 30             	mov    0x30(%esi),%ecx
403a52:	8b 01                	mov    (%ecx),%eax
403a54:	85 c0                	test   %eax,%eax
403a56:	7e 14                	jle    0x403a6c
403a58:	48                   	dec    %eax
403a59:	89 01                	mov    %eax,(%ecx)
403a5b:	8b 4e 20             	mov    0x20(%esi),%ecx
403a5e:	8b 11                	mov    (%ecx),%edx
403a60:	8d 42 01             	lea    0x1(%edx),%eax
403a63:	89 01                	mov    %eax,(%ecx)
403a65:	88 1a                	mov    %bl,(%edx)
403a67:	0f b6 c3             	movzbl %bl,%eax
403a6a:	eb 0b                	jmp    0x403a77
403a6c:	8b 16                	mov    (%esi),%edx
403a6e:	8b ce                	mov    %esi,%ecx
403a70:	0f b6 c3             	movzbl %bl,%eax
403a73:	50                   	push   %eax
403a74:	ff 52 0c             	call   *0xc(%edx)
403a77:	8b 75 14             	mov    0x14(%ebp),%esi
403a7a:	83 f8 ff             	cmp    $0xffffffff,%eax
403a7d:	75 04                	jne    0x403a83
403a7f:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
403a83:	83 ef 01             	sub    $0x1,%edi
403a86:	75 bb                	jne    0x403a43
403a88:	5b                   	pop    %ebx
403a89:	8b 45 0c             	mov    0xc(%ebp),%eax
403a8c:	8b 4d 10             	mov    0x10(%ebp),%ecx
403a8f:	5f                   	pop    %edi