408845:	b8 04 ae 48 00       	mov    $0x48ae04,%eax
40884a:	e8 2f 72 03 00       	call   0x43fa7e
40884f:	8b f1                	mov    %ecx,%esi
408851:	89 75 c4             	mov    %esi,-0x3c(%ebp)
408854:	33 c9                	xor    %ecx,%ecx
408856:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408859:	8b 5d 08             	mov    0x8(%ebp),%ebx
40885c:	8b 45 0c             	mov    0xc(%ebp),%eax
40885f:	8b 55 10             	mov    0x10(%ebp),%edx
408862:	89 5d c0             	mov    %ebx,-0x40(%ebp)
408865:	89 4d c8             	mov    %ecx,-0x38(%ebp)
408868:	89 4b 10             	mov    %ecx,0x10(%ebx)
40886b:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
408872:	66 89 0b             	mov    %cx,(%ebx)
408875:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408878:	33 ff                	xor    %edi,%edi
40887a:	47                   	inc    %edi
40887b:	89 7d c8             	mov    %edi,-0x38(%ebp)
40887e:	3b c2                	cmp    %edx,%eax
408880:	74 64                	je     0x4088e6
408882:	ff 75 c0             	push   -0x40(%ebp)
408885:	89 4d cc             	mov    %ecx,-0x34(%ebp)
408888:	52                   	push   %edx
408889:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40888c:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40888f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408892:	50                   	push   %eax
408893:	e8 fc c2 ff ff       	call   0x404b94
408898:	89 7d fc             	mov    %edi,-0x4(%ebp)
40889b:	8b 7d cc             	mov    -0x34(%ebp),%edi
40889e:	8b 45 d0             	mov    -0x30(%ebp),%eax
4088a1:	8b 4e 04             	mov    0x4(%esi),%ecx
4088a4:	2b c7                	sub    %edi,%eax
4088a6:	d1 f8                	sar    $1,%eax
4088a8:	8d 34 47             	lea    (%edi,%eax,2),%esi
4088ab:	8b 01                	mov    (%ecx),%eax
4088ad:	56                   	push   %esi
4088ae:	57                   	push   %edi
4088af:	ff 50 1c             	call   *0x1c(%eax)
4088b2:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
4088b5:	8d 45 d8             	lea    -0x28(%ebp),%eax
4088b8:	56                   	push   %esi
4088b9:	57                   	push   %edi
4088ba:	50                   	push   %eax
4088bb:	8b 09                	mov    (%ecx),%ecx
4088bd:	e8 fe a9 01 00       	call   0x4232c0
4088c2:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4088c6:	8b cb                	mov    %ebx,%ecx
4088c8:	50                   	push   %eax
4088c9:	e8 7a 6e 00 00       	call   0x40f748
4088ce:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4088d2:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4088d5:	e8 20 4a 01 00       	call   0x41d2fa
4088da:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4088de:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4088e1:	e8 c8 49 01 00       	call   0x41d2ae
4088e6:	8b c3                	mov    %ebx,%eax
4088e8:	e8 3b 71 03 00       	call   0x43fa28
4088ed:	c2 0c 00             	ret    $0xc
4088f0:	6a 30                	push   $0x30
4088f2:	b8 52 ae 48 00       	mov    $0x48ae52,%eax
4088f7:	e8 82 71 03 00       	call   0x43fa7e
4088fc:	8b f9                	mov    %ecx,%edi
4088fe:	33 db                	xor    %ebx,%ebx
408900:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408903:	8b 75 08             	mov    0x8(%ebp),%esi
408906:	8b 45 0c             	mov    0xc(%ebp),%eax
408909:	8b 55 10             	mov    0x10(%ebp),%edx
40890c:	89 75 c4             	mov    %esi,-0x3c(%ebp)
40890f:	89 5d c8             	mov    %ebx,-0x38(%ebp)
408912:	89 5e 10             	mov    %ebx,0x10(%esi)
408915:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
40891c:	88 1e                	mov    %bl,(%esi)
40891e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408921:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
408928:	3b c2                	cmp    %edx,%eax
40892a:	74 5f                	je     0x40898b
40892c:	ff 75 c4             	push   -0x3c(%ebp)
40892f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408932:	89 5d cc             	mov    %ebx,-0x34(%ebp)
408935:	52                   	push   %edx
408936:	50                   	push   %eax
408937:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40893a:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40893d:	e8 ab c2 ff ff       	call   0x404bed
408942:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408949:	8b 4f 04             	mov    0x4(%edi),%ecx
40894c:	ff 75 d0             	push   -0x30(%ebp)
40894f:	ff 75 cc             	push   -0x34(%ebp)
408952:	8b 01                	mov    (%ecx),%eax
408954:	ff 50 0c             	call   *0xc(%eax)
408957:	ff 75 d0             	push   -0x30(%ebp)
40895a:	8b 0f                	mov    (%edi),%ecx
40895c:	8d 45 d8             	lea    -0x28(%ebp),%eax
40895f:	ff 75 cc             	push   -0x34(%ebp)
408962:	50                   	push   %eax
408963:	e8 24 a9 01 00       	call   0x42328c
408968:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40896c:	8b ce                	mov    %esi,%ecx
40896e:	50                   	push   %eax
40896f:	e8 59 6d 00 00       	call   0x40f6cd
408974:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
408978:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40897b:	e8 54 49 01 00       	call   0x41d2d4
408980:	88 5d fc             	mov    %bl,-0x4(%ebp)
408983:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408986:	e8 c4 46 01 00       	call   0x41d04f
40898b:	8b c6                	mov    %esi,%eax
40898d:	e8 96 70 03 00       	call   0x43fa28
408992:	c2 0c 00             	ret    $0xc
408995:	6a 34                	push   $0x34
408997:	b8 a0 ae 48 00       	mov    $0x48aea0,%eax
40899c:	e8 dd 70 03 00       	call   0x43fa7e
4089a1:	8b f1                	mov    %ecx,%esi
4089a3:	89 75 c4             	mov    %esi,-0x3c(%ebp)
4089a6:	33 c9                	xor    %ecx,%ecx
4089a8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4089ab:	8b 5d 08             	mov    0x8(%ebp),%ebx
4089ae:	8b 45 0c             	mov    0xc(%ebp),%eax
4089b1:	8b 55 10             	mov    0x10(%ebp),%edx
4089b4:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4089b7:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4089ba:	89 4b 10             	mov    %ecx,0x10(%ebx)
4089bd:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
4089c4:	66 89 0b             	mov    %cx,(%ebx)
4089c7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4089ca:	33 ff                	xor    %edi,%edi
4089cc:	47                   	inc    %edi
4089cd:	89 7d c8             	mov    %edi,-0x38(%ebp)
4089d0:	3b c2                	cmp    %edx,%eax
4089d2:	74 64                	je     0x408a38
4089d4:	ff 75 c0             	push   -0x40(%ebp)
4089d7:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4089da:	52                   	push   %edx
4089db:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4089de:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4089e1:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4089e4:	50                   	push   %eax
4089e5:	e8 5a c2 ff ff       	call   0x404c44
4089ea:	89 7d fc             	mov    %edi,-0x4(%ebp)
4089ed:	8b 7d cc             	mov    -0x34(%ebp),%edi
4089f0:	8b 45 d0             	mov    -0x30(%ebp),%eax
4089f3:	8b 4e 04             	mov    0x4(%esi),%ecx
4089f6:	2b c7                	sub    %edi,%eax
4089f8:	d1 f8                	sar    $1,%eax
4089fa:	8d 34 47             	lea    (%edi,%eax,2),%esi
4089fd:	8b 01                	mov    (%ecx),%eax
4089ff:	56                   	push   %esi
408a00:	57                   	push   %edi
408a01:	ff 50 1c             	call   *0x1c(%eax)
408a04:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408a07:	8d 45 d8             	lea    -0x28(%ebp),%eax
408a0a:	56                   	push   %esi
408a0b:	57                   	push   %edi
408a0c:	50                   	push   %eax
408a0d:	8b 09                	mov    (%ecx),%ecx
408a0f:	e8 ac a8 01 00       	call   0x4232c0
408a14:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
408a18:	8b cb                	mov    %ebx,%ecx
408a1a:	50                   	push   %eax
408a1b:	e8 28 6d 00 00       	call   0x40f748
408a20:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
408a24:	8d 4d d8             	lea    -0x28(%ebp),%ecx
408a27:	e8 ce 48 01 00       	call   0x41d2fa
408a2c:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
408a30:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408a33:	e8 76 48 01 00       	call   0x41d2ae
408a38:	8b c3                	mov    %ebx,%eax
408a3a:	e8 e9 6f 03 00       	call   0x43fa28
408a3f:	c2 0c 00             	ret    $0xc
408a42:	6a 34                	push   $0x34
408a44:	b8 ee ae 48 00       	mov    $0x48aeee,%eax
408a49:	e8 30 70 03 00       	call   0x43fa7e
408a4e:	8b f1                	mov    %ecx,%esi
408a50:	89 75 c4             	mov    %esi,-0x3c(%ebp)
408a53:	33 c9                	xor    %ecx,%ecx
408a55:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408a58:	33 c0                	xor    %eax,%eax
408a5a:	8b 5d 08             	mov    0x8(%ebp),%ebx
408a5d:	89 5d c0             	mov    %ebx,-0x40(%ebp)
408a60:	89 4d c8             	mov    %ecx,-0x38(%ebp)
408a63:	89 4b 10             	mov    %ecx,0x10(%ebx)
408a66:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
408a6d:	66 89 03             	mov    %ax,(%ebx)
408a70:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408a73:	8b 45 10             	mov    0x10(%ebp),%eax
408a76:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
408a7d:	39 45 0c             	cmp    %eax,0xc(%ebp)
408a80:	74 6a                	je     0x408aec
408a82:	ff 75 c0             	push   -0x40(%ebp)
408a85:	89 4d cc             	mov    %ecx,-0x34(%ebp)
408a88:	50                   	push   %eax
408a89:	ff 75 0c             	push   0xc(%ebp)
408a8c:	89 4d d0             	mov    %ecx,-0x30(%ebp)
408a8f:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
408a92:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408a95:	e8 fa c0 ff ff       	call   0x404b94
408a9a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408aa1:	8b 7d cc             	mov    -0x34(%ebp),%edi
408aa4:	8b 45 d0             	mov    -0x30(%ebp),%eax
408aa7:	8b 4e 04             	mov    0x4(%esi),%ecx
408aaa:	2b c7                	sub    %edi,%eax
408aac:	d1 f8                	sar    $1,%eax
408aae:	8d 34 47             	lea    (%edi,%eax,2),%esi
408ab1:	8b 01                	mov    (%ecx),%eax
408ab3:	56                   	push   %esi
408ab4:	57                   	push   %edi
408ab5:	ff 50 1c             	call   *0x1c(%eax)
408ab8:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408abb:	8d 45 d8             	lea    -0x28(%ebp),%eax
408abe:	56                   	push   %esi
408abf:	57                   	push   %edi
408ac0:	50                   	push   %eax
408ac1:	8b 09                	mov    (%ecx),%ecx
408ac3:	e8 f8 a7 01 00       	call   0x4232c0
408ac8:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
408acc:	8b cb                	mov    %ebx,%ecx
408ace:	50                   	push   %eax
408acf:	e8 74 6c 00 00       	call   0x40f748
408ad4:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
408ad8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
408adb:	e8 1a 48 01 00       	call   0x41d2fa
408ae0:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
408ae4:	8d 4d cc             	lea    -0x34(%ebp),%ecx
408ae7:	e8 c2 47 01 00       	call   0x41d2ae
408aec:	8b c3                	mov    %ebx,%eax
408aee:	e8 35 6f 03 00       	call   0x43fa28
408af3:	c2 0c 00             	ret    $0xc
408af6:	55                   	push   %ebp
408af7:	8b ec                	mov    %esp,%ebp
408af9:	51                   	push   %ecx
408afa:	51                   	push   %ecx
408afb:	8d 45 f8             	lea    -0x8(%ebp),%eax
408afe:	50                   	push   %eax
408aff:	8d 45 f8             	lea    -0x8(%ebp),%eax
408b02:	50                   	push   %eax
408b03:	8d 45 ff             	lea    -0x1(%ebp),%eax
408b06:	50                   	push   %eax
408b07:	e8 69 bf ff ff       	call   0x404a75
408b0c:	ff 75 10             	push   0x10(%ebp)
408b0f:	ff 75 0c             	push   0xc(%ebp)
408b12:	ff 75 08             	push   0x8(%ebp)
408b15:	e8 64 a7 ff ff       	call   0x40327e
408b1a:	83 c4 18             	add    $0x18,%esp
408b1d:	c9                   	leave
408b1e:	c3                   	ret
408b1f:	55                   	push   %ebp
408b20:	8b ec                	mov    %esp,%ebp
408b22:	51                   	push   %ecx
408b23:	51                   	push   %ecx
408b24:	8d 45 f8             	lea    -0x8(%ebp),%eax
408b27:	50                   	push   %eax
408b28:	8d 45 f8             	lea    -0x8(%ebp),%eax
408b2b:	50                   	push   %eax
408b2c:	8d 45 ff             	lea    -0x1(%ebp),%eax
408b2f:	50                   	push   %eax
408b30:	e8 2a bf ff ff       	call   0x404a5f
408b35:	ff 75 10             	push   0x10(%ebp)
408b38:	ff 75 0c             	push   0xc(%ebp)
408b3b:	ff 75 08             	push   0x8(%ebp)
408b3e:	e8 4b a8 ff ff       	call   0x40338e
408b43:	83 c4 18             	add    $0x18,%esp
408b46:	c9                   	leave
408b47:	c3                   	ret
408b48:	55                   	push   %ebp
408b49:	8b ec                	mov    %esp,%ebp
408b4b:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
408b4f:	56                   	push   %esi
408b50:	8b 75 08             	mov    0x8(%ebp),%esi
408b53:	76 16                	jbe    0x408b6b
408b55:	8b 45 10             	mov    0x10(%ebp),%eax
408b58:	ff 75 0c             	push   0xc(%ebp)
408b5b:	0f b6 00             	movzbl (%eax),%eax
408b5e:	50                   	push   %eax
408b5f:	56                   	push   %esi
408b60:	e8 fb b2 03 00       	call   0x443e60
408b65:	83 c4 0c             	add    $0xc,%esp
408b68:	03 75 0c             	add    0xc(%ebp),%esi
408b6b:	8b c6                	mov    %esi,%eax
408b6d:	5e                   	pop    %esi
408b6e:	5d                   	pop    %ebp
408b6f:	c3                   	ret
408b70:	6a 14                	push   $0x14
408b72:	b8 23 af 48 00       	mov    $0x48af23,%eax
408b77:	e8 ce 6e 03 00       	call   0x43fa4a
408b7c:	33 db                	xor    %ebx,%ebx
408b7e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408b81:	53                   	push   %ebx
408b82:	e8 c9 ca 01 00       	call   0x425650
408b87:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408b8a:	b9 58 ab 4b 00       	mov    $0x4bab58,%ecx
408b8f:	8b 3d 74 ab 4b 00    	mov    0x4bab74,%edi
408b95:	89 7d f0             	mov    %edi,-0x10(%ebp)
408b98:	e8 01 73 00 00       	call   0x40fe9e
408b9d:	8b 4d 08             	mov    0x8(%ebp),%ecx
408ba0:	50                   	push   %eax
408ba1:	e8 25 0f 01 00       	call   0x419acb
408ba6:	8b f0                	mov    %eax,%esi
408ba8:	85 f6                	test   %esi,%esi
408baa:	75 3f                	jne    0x408beb
408bac:	85 ff                	test   %edi,%edi
408bae:	74 04                	je     0x408bb4
408bb0:	8b f7                	mov    %edi,%esi
408bb2:	eb 37                	jmp    0x408beb
408bb4:	ff 75 08             	push   0x8(%ebp)
408bb7:	8d 45 f0             	lea    -0x10(%ebp),%eax
408bba:	50                   	push   %eax
408bbb:	e8 6e 0b 01 00       	call   0x41972e
408bc0:	59                   	pop    %ecx
408bc1:	59                   	pop    %ecx
408bc2:	83 f8 ff             	cmp    $0xffffffff,%eax
408bc5:	74 38                	je     0x408bff
408bc7:	8b 75 f0             	mov    -0x10(%ebp),%esi
408bca:	89 75 f0             	mov    %esi,-0x10(%ebp)
408bcd:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
408bd1:	56                   	push   %esi
408bd2:	e8 2f dd 01 00       	call   0x426906
408bd7:	8b 06                	mov    (%esi),%eax
408bd9:	59                   	pop    %ecx
408bda:	8b ce                	mov    %esi,%ecx
408bdc:	ff 50 04             	call   *0x4(%eax)
408bdf:	89 35 74 ab 4b 00    	mov    %esi,0x4bab74
408be5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408be8:	88 5d fc             	mov    %bl,-0x4(%ebp)
408beb:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408bef:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408bf2:	e8 c0 ca 01 00       	call   0x4256b7
408bf7:	8b c6                	mov    %esi,%eax
408bf9:	e8 15 6e 03 00       	call   0x43fa13
408bfe:	c3                   	ret
408bff:	8d 4d e0             	lea    -0x20(%ebp),%ecx
408c02:	e8 d1 40 00 00       	call   0x40ccd8
408c07:	68 60 16 4b 00       	push   $0x4b1660
408c0c:	8d 45 e0             	lea    -0x20(%ebp),%eax
408c0f:	50                   	push   %eax
408c10:	e8 ad b5 03 00       	call   0x4441c2
408c15:	cc                   	int3
408c16:	6a 14                	push   $0x14
408c18:	b8 4e af 48 00       	mov    $0x48af4e,%eax
408c1d:	e8 28 6e 03 00       	call   0x43fa4a
408c22:	33 db                	xor    %ebx,%ebx
408c24:	8d 4d ec             	lea    -0x14(%ebp),%ecx
408c27:	53                   	push   %ebx
408c28:	e8 23 ca 01 00       	call   0x425650
408c2d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408c30:	b9 54 ab 4b 00       	mov    $0x4bab54,%ecx
408c35:	8b 3d 6c ab 4b 00    	mov    0x4bab6c,%edi
408c3b:	89 7d f0             	mov    %edi,-0x10(%ebp)
408c3e:	e8 5b 72 00 00       	call   0x40fe9e
408c43:	8b 4d 08             	mov    0x8(%ebp),%ecx