46b900:	55                   	push   %ebp
46b901:	8b ec                	mov    %esp,%ebp
46b903:	83 c4 f4             	add    $0xfffffff4,%esp
46b906:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46b909:	89 55 f8             	mov    %edx,-0x8(%ebp)
46b90c:	89 45 fc             	mov    %eax,-0x4(%ebp)
46b90f:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b912:	8b 40 08             	mov    0x8(%eax),%eax
46b915:	83 f8 01             	cmp    $0x1,%eax
46b918:	7e 0c                	jle    0x46b926
46b91a:	55                   	push   %ebp
46b91b:	8b d0                	mov    %eax,%edx
46b91d:	4a                   	dec    %edx
46b91e:	33 c0                	xor    %eax,%eax
46b920:	e8 23 ff ff ff       	call   0x46b848
46b925:	59                   	pop    %ecx
46b926:	8b e5                	mov    %ebp,%esp
46b928:	5d                   	pop    %ebp
46b929:	c3                   	ret
46b92a:	8b c0                	mov    %eax,%eax
46b92c:	55                   	push   %ebp
46b92d:	8b ec                	mov    %esp,%ebp
46b92f:	83 c4 ec             	add    $0xffffffec,%esp
46b932:	53                   	push   %ebx
46b933:	56                   	push   %esi
46b934:	57                   	push   %edi
46b935:	8b 75 08             	mov    0x8(%ebp),%esi
46b938:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
46b93f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
46b942:	6a f8                	push   $0xfffffff8
46b944:	56                   	push   %esi
46b945:	e8 fe c1 f9 ff       	call   0x407b48
46b94a:	3b 43 04             	cmp    0x4(%ebx),%eax
46b94d:	0f 85 8e 00 00 00    	jne    0x46b9e1
46b953:	6a f0                	push   $0xfffffff0
46b955:	56                   	push   %esi
46b956:	e8 ed c1 f9 ff       	call   0x407b48
46b95b:	a9 00 00 00 10       	test   $0x10000000,%eax
46b960:	74 7f                	je     0x46b9e1
46b962:	8d 45 ec             	lea    -0x14(%ebp),%eax
46b965:	50                   	push   %eax
46b966:	56                   	push   %esi
46b967:	e8 ec c1 f9 ff       	call   0x407b58
46b96c:	6a 02                	push   $0x2
46b96e:	8d 45 ec             	lea    -0x14(%ebp),%eax
46b971:	50                   	push   %eax
46b972:	8b 43 04             	mov    0x4(%ebx),%eax
46b975:	50                   	push   %eax
46b976:	6a 00                	push   $0x0
46b978:	e8 d3 c2 f9 ff       	call   0x407c50
46b97d:	8b 43 08             	mov    0x8(%ebx),%eax
46b980:	50                   	push   %eax
46b981:	e8 6a bd f9 ff       	call   0x4076f0
46b986:	8b f8                	mov    %eax,%edi
46b988:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46b98b:	8b 55 ec             	mov    -0x14(%ebp),%edx
46b98e:	8b 43 08             	mov    0x8(%ebx),%eax
46b991:	e8 4a b7 fd ff       	call   0x4470e0
46b996:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b999:	f7 d8                	neg    %eax
46b99b:	50                   	push   %eax
46b99c:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b99f:	f7 d8                	neg    %eax
46b9a1:	50                   	push   %eax
46b9a2:	8d 45 ec             	lea    -0x14(%ebp),%eax
46b9a5:	50                   	push   %eax
46b9a6:	e8 cd c2 f9 ff       	call   0x407c78
46b9ab:	8b 45 f8             	mov    -0x8(%ebp),%eax
46b9ae:	50                   	push   %eax
46b9af:	8b 45 f4             	mov    -0xc(%ebp),%eax
46b9b2:	50                   	push   %eax
46b9b3:	8b 45 f0             	mov    -0x10(%ebp),%eax
46b9b6:	50                   	push   %eax
46b9b7:	8b 45 ec             	mov    -0x14(%ebp),%eax
46b9ba:	50                   	push   %eax
46b9bb:	8b 43 08             	mov    0x8(%ebx),%eax
46b9be:	50                   	push   %eax
46b9bf:	e8 94 bc f9 ff       	call   0x407658
46b9c4:	8b 43 0c             	mov    0xc(%ebx),%eax
46b9c7:	50                   	push   %eax
46b9c8:	8b 43 08             	mov    0x8(%ebx),%eax
46b9cb:	50                   	push   %eax
46b9cc:	68 17 03 00 00       	push   $0x317
46b9d1:	56                   	push   %esi
46b9d2:	e8 39 c3 f9 ff       	call   0x407d10
46b9d7:	57                   	push   %edi
46b9d8:	8b 43 08             	mov    0x8(%ebx),%eax
46b9db:	50                   	push   %eax
46b9dc:	e8 ff bc f9 ff       	call   0x4076e0
46b9e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
46b9e4:	5f                   	pop    %edi
46b9e5:	5e                   	pop    %esi
46b9e6:	5b                   	pop    %ebx
46b9e7:	8b e5                	mov    %ebp,%esp
46b9e9:	5d                   	pop    %ebp
46b9ea:	c2 08 00             	ret    $0x8
46b9ed:	8d 40 00             	lea    0x0(%eax),%eax
46b9f0:	55                   	push   %ebp
46b9f1:	8b ec                	mov    %esp,%ebp
46b9f3:	83 c4 cc             	add    $0xffffffcc,%esp
46b9f6:	53                   	push   %ebx
46b9f7:	56                   	push   %esi
46b9f8:	57                   	push   %edi
46b9f9:	8b f9                	mov    %ecx,%edi
46b9fb:	89 55 fc             	mov    %edx,-0x4(%ebp)
46b9fe:	8b d8                	mov    %eax,%ebx
46ba00:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ba03:	f6 40 08 01          	testb  $0x1,0x8(%eax)
46ba07:	74 0e                	je     0x46ba17
46ba09:	53                   	push   %ebx
46ba0a:	e8 e9 c1 f9 ff       	call   0x407bf8
46ba0f:	85 c0                	test   %eax,%eax
46ba11:	0f 84 89 01 00 00    	je     0x46bba0
46ba17:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ba1a:	8b 40 04             	mov    0x4(%eax),%eax
46ba1d:	89 45 f8             	mov    %eax,-0x8(%ebp)
46ba20:	8b 45 f8             	mov    -0x8(%ebp),%eax
46ba23:	50                   	push   %eax
46ba24:	e8 c7 bc f9 ff       	call   0x4076f0
46ba29:	89 45 f4             	mov    %eax,-0xc(%ebp)
46ba2c:	33 d2                	xor    %edx,%edx
46ba2e:	55                   	push   %ebp
46ba2f:	68 99 bb 46 00       	push   $0x46bb99
46ba34:	64 ff 32             	push   %fs:(%edx)
46ba37:	64 89 22             	mov    %esp,%fs:(%edx)
46ba3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ba3d:	f6 40 08 02          	testb  $0x2,0x8(%eax)
46ba41:	74 23                	je     0x46ba66
46ba43:	8b 45 f8             	mov    -0x8(%ebp),%eax
46ba46:	50                   	push   %eax
46ba47:	e8 a4 bc f9 ff       	call   0x4076f0
46ba4c:	8b f0                	mov    %eax,%esi
46ba4e:	85 ff                	test   %edi,%edi
46ba50:	74 0a                	je     0x46ba5c
46ba52:	8b 4d 08             	mov    0x8(%ebp),%ecx
46ba55:	8b 55 f8             	mov    -0x8(%ebp),%edx
46ba58:	8b c3                	mov    %ebx,%eax
46ba5a:	ff d7                	call   *%edi
46ba5c:	56                   	push   %esi
46ba5d:	8b 45 f8             	mov    -0x8(%ebp),%eax
46ba60:	50                   	push   %eax
46ba61:	e8 7a bc f9 ff       	call   0x4076e0
46ba66:	8d 45 dc             	lea    -0x24(%ebp),%eax
46ba69:	50                   	push   %eax
46ba6a:	53                   	push   %ebx
46ba6b:	e8 e8 c0 f9 ff       	call   0x407b58
46ba70:	33 c0                	xor    %eax,%eax
46ba72:	89 45 ec             	mov    %eax,-0x14(%ebp)
46ba75:	33 c0                	xor    %eax,%eax
46ba77:	89 45 f0             	mov    %eax,-0x10(%ebp)
46ba7a:	8d 45 ec             	lea    -0x14(%ebp),%eax
46ba7d:	50                   	push   %eax
46ba7e:	53                   	push   %ebx
46ba7f:	e8 dc bd f9 ff       	call   0x407860
46ba84:	8b 45 dc             	mov    -0x24(%ebp),%eax
46ba87:	29 45 ec             	sub    %eax,-0x14(%ebp)
46ba8a:	8b 45 e0             	mov    -0x20(%ebp),%eax
46ba8d:	29 45 f0             	sub    %eax,-0x10(%ebp)
46ba90:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ba93:	8b 40 08             	mov    0x8(%eax),%eax
46ba96:	a8 04                	test   $0x4,%al
46ba98:	0f 84 e0 00 00 00    	je     0x46bb7e
46ba9e:	8b 55 fc             	mov    -0x4(%ebp),%edx
46baa1:	a8 08                	test   $0x8,%al
46baa3:	74 3d                	je     0x46bae2
46baa5:	8b 45 f8             	mov    -0x8(%ebp),%eax
46baa8:	50                   	push   %eax
46baa9:	e8 42 bc f9 ff       	call   0x4076f0
46baae:	8b f0                	mov    %eax,%esi
46bab0:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bab3:	f6 40 08 02          	testb  $0x2,0x8(%eax)
46bab7:	74 0e                	je     0x46bac7
46bab9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46babc:	8b 55 ec             	mov    -0x14(%ebp),%edx
46babf:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bac2:	e8 19 b6 fd ff       	call   0x4470e0
46bac7:	6a 00                	push   $0x0
46bac9:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bacc:	8b 40 04             	mov    0x4(%eax),%eax
46bacf:	50                   	push   %eax
46bad0:	6a 14                	push   $0x14
46bad2:	53                   	push   %ebx
46bad3:	e8 38 c2 f9 ff       	call   0x407d10
46bad8:	56                   	push   %esi
46bad9:	8b 45 f8             	mov    -0x8(%ebp),%eax
46badc:	50                   	push   %eax
46badd:	e8 fe bb f9 ff       	call   0x4076e0
46bae2:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bae5:	50                   	push   %eax
46bae6:	e8 05 bc f9 ff       	call   0x4076f0
46baeb:	8b f0                	mov    %eax,%esi
46baed:	8b 45 fc             	mov    -0x4(%ebp),%eax
46baf0:	f6 40 08 02          	testb  $0x2,0x8(%eax)
46baf4:	74 0e                	je     0x46bb04
46baf6:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46baf9:	8b 55 ec             	mov    -0x14(%ebp),%edx
46bafc:	8b 45 f8             	mov    -0x8(%ebp),%eax
46baff:	e8 dc b5 fd ff       	call   0x4470e0
46bb04:	6a 00                	push   $0x0
46bb06:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bb09:	8b 40 04             	mov    0x4(%eax),%eax
46bb0c:	50                   	push   %eax
46bb0d:	68 18 03 00 00       	push   $0x318
46bb12:	53                   	push   %ebx
46bb13:	e8 f8 c1 f9 ff       	call   0x407d10
46bb18:	56                   	push   %esi
46bb19:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bb1c:	50                   	push   %eax
46bb1d:	e8 be bb f9 ff       	call   0x4076e0
46bb22:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46bb25:	8b 55 ec             	mov    -0x14(%ebp),%edx
46bb28:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bb2b:	e8 b0 b5 fd ff       	call   0x4470e0
46bb30:	89 5d d0             	mov    %ebx,-0x30(%ebp)
46bb33:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bb36:	89 45 d4             	mov    %eax,-0x2c(%ebp)
46bb39:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bb3c:	f6 40 08 10          	testb  $0x10,0x8(%eax)
46bb40:	74 1a                	je     0x46bb5c
46bb42:	c6 45 cc 01          	movb   $0x1,-0x34(%ebp)
46bb46:	c7 45 d8 1e 00 00 00 	movl   $0x1e,-0x28(%ebp)
46bb4d:	8d 45 cc             	lea    -0x34(%ebp),%eax
46bb50:	50                   	push   %eax
46bb51:	68 2c b9 46 00       	push   $0x46b92c
46bb56:	53                   	push   %ebx
46bb57:	e8 14 be f9 ff       	call   0x407970
46bb5c:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bb5f:	8b 40 08             	mov    0x8(%eax),%eax
46bb62:	a8 20                	test   $0x20,%al
46bb64:	74 18                	je     0x46bb7e
46bb66:	c6 45 cc 00          	movb   $0x0,-0x34(%ebp)
46bb6a:	8b 55 fc             	mov    -0x4(%ebp),%edx
46bb6d:	89 45 d8             	mov    %eax,-0x28(%ebp)
46bb70:	8d 45 cc             	lea    -0x34(%ebp),%eax
46bb73:	50                   	push   %eax
46bb74:	68 2c b9 46 00       	push   $0x46b92c
46bb79:	e8 0a be f9 ff       	call   0x407988
46bb7e:	33 c0                	xor    %eax,%eax
46bb80:	5a                   	pop    %edx
46bb81:	59                   	pop    %ecx
46bb82:	59                   	pop    %ecx
46bb83:	64 89 10             	mov    %edx,%fs:(%eax)
46bb86:	68 a0 bb 46 00       	push   $0x46bba0
46bb8b:	8b 45 f4             	mov    -0xc(%ebp),%eax
46bb8e:	50                   	push   %eax
46bb8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bb92:	50                   	push   %eax
46bb93:	e8 48 bb f9 ff       	call   0x4076e0
46bb98:	c3                   	ret
46bb99:	e9 6e 86 f9 ff       	jmp    0x40420c
46bb9e:	eb eb                	jmp    0x46bb8b
46bba0:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bba3:	c7 40 0c 01 00 00 00 	movl   $0x1,0xc(%eax)
46bbaa:	5f                   	pop    %edi
46bbab:	5e                   	pop    %esi
46bbac:	5b                   	pop    %ebx
46bbad:	8b e5                	mov    %ebp,%esp
46bbaf:	5d                   	pop    %ebp
46bbb0:	c2 04 00             	ret    $0x4
46bbb3:	90                   	nop
46bbb4:	55                   	push   %ebp
46bbb5:	8b ec                	mov    %esp,%ebp
46bbb7:	83 c4 e8             	add    $0xffffffe8,%esp
46bbba:	53                   	push   %ebx
46bbbb:	89 55 fc             	mov    %edx,-0x4(%ebp)
46bbbe:	8b d8                	mov    %eax,%ebx
46bbc0:	c7 45 e8 0f 00 00 00 	movl   $0xf,-0x18(%ebp)
46bbc7:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bbca:	8b 40 04             	mov    0x4(%eax),%eax
46bbcd:	89 45 ec             	mov    %eax,-0x14(%ebp)
46bbd0:	33 d2                	xor    %edx,%edx
46bbd2:	89 55 f0             	mov    %edx,-0x10(%ebp)
46bbd5:	33 d2                	xor    %edx,%edx
46bbd7:	89 55 f4             	mov    %edx,-0xc(%ebp)
46bbda:	8b 55 fc             	mov    -0x4(%ebp),%edx
46bbdd:	50                   	push   %eax
46bbde:	e8 0d bb f9 ff       	call   0x4076f0
46bbe3:	89 45 f8             	mov    %eax,-0x8(%ebp)
46bbe6:	33 c0                	xor    %eax,%eax
46bbe8:	55                   	push   %ebp
46bbe9:	68 1c bc 46 00       	push   $0x46bc1c
46bbee:	64 ff 30             	push   %fs:(%eax)
46bbf1:	64 89 20             	mov    %esp,%fs:(%eax)
46bbf4:	8d 55 e8             	lea    -0x18(%ebp),%edx
46bbf7:	8b c3                	mov    %ebx,%eax
46bbf9:	e8 6e 10 fe ff       	call   0x44cc6c
46bbfe:	33 c0                	xor    %eax,%eax
46bc00:	5a                   	pop    %edx
46bc01:	59                   	pop    %ecx
46bc02:	59                   	pop    %ecx
46bc03:	64 89 10             	mov    %edx,%fs:(%eax)
46bc06:	68 23 bc 46 00       	push   $0x46bc23
46bc0b:	8b 45 f8             	mov    -0x8(%ebp),%eax
46bc0e:	50                   	push   %eax
46bc0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bc12:	8b 40 04             	mov    0x4(%eax),%eax
46bc15:	50                   	push   %eax
46bc16:	e8 c5 ba f9 ff       	call   0x4076e0
46bc1b:	c3                   	ret
46bc1c:	e9 eb 85 f9 ff       	jmp    0x40420c
46bc21:	eb e8                	jmp    0x46bc0b
46bc23:	5b                   	pop    %ebx
46bc24:	8b e5                	mov    %ebp,%esp
46bc26:	5d                   	pop    %ebp
46bc27:	c3                   	ret
46bc28:	89 d1                	mov    %edx,%ecx
46bc2a:	99                   	cltd
46bc2b:	f7 f9                	idiv   %ecx
46bc2d:	85 d2                	test   %edx,%edx
46bc2f:	74 07                	je     0x46bc38
46bc31:	85 c0                	test   %eax,%eax
46bc33:	79 02                	jns    0x46bc37
46bc35:	48                   	dec    %eax
46bc36:	c3                   	ret
46bc37:	40                   	inc    %eax
46bc38:	c3                   	ret
46bc39:	8d 40 00             	lea    0x0(%eax),%eax
46bc3c:	83 c4 c8             	add    $0xffffffc8,%esp
46bc3f:	54                   	push   %esp
46bc40:	50                   	push   %eax
46bc41:	e8 fa b9 f9 ff       	call   0x407640
46bc46:	8b 04 24             	mov    (%esp),%eax
46bc49:	83 c4 38             	add    $0x38,%esp
46bc4c:	c3                   	ret
46bc4d:	8d 40 00             	lea    0x0(%eax),%eax
46bc50:	53                   	push   %ebx
46bc51:	56                   	push   %esi
46bc52:	8b f2                	mov    %edx,%esi
46bc54:	8b d8                	mov    %eax,%ebx
46bc56:	8b c6                	mov    %esi,%eax
46bc58:	8b d3                	mov    %ebx,%edx
46bc5a:	e8 5d 8c f9 ff       	call   0x4048bc
46bc5f:	bb 01 00 00 00       	mov    $0x1,%ebx
46bc64:	eb 33                	jmp    0x46bc99
46bc66:	8b 06                	mov    (%esi),%eax
46bc68:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
46bc6c:	8b 15 80 72 6a 00    	mov    0x6a7280,%edx
46bc72:	8b c8                	mov    %eax,%ecx
46bc74:	81 e1 ff 00 00 00    	and    $0xff,%ecx
46bc7a:	0f a3 0a             	bt     %ecx,(%edx)
46bc7d:	72 17                	jb     0x46bc96
46bc7f:	8b 16                	mov    (%esi),%edx
46bc81:	3c 26                	cmp    $0x26,%al
46bc83:	75 0e                	jne    0x46bc93
46bc85:	8b c6                	mov    %esi,%eax
46bc87:	b9 01 00 00 00       	mov    $0x1,%ecx
46bc8c:	8b d3                	mov    %ebx,%edx
46bc8e:	e8 25 91 f9 ff       	call   0x404db8
46bc93:	43                   	inc    %ebx
46bc94:	eb 03                	jmp    0x46bc99