46e99b:	89 45 fc             	mov    %eax,-0x4(%ebp)
46e99e:	eb 09                	jmp    0x46e9a9
46e9a0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46e9a3:	83 c1 02             	add    $0x2,%ecx
46e9a6:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46e9a9:	8b 55 fc             	mov    -0x4(%ebp),%edx
46e9ac:	0f b7 02             	movzwl (%edx),%eax
46e9af:	85 c0                	test   %eax,%eax
46e9b1:	74 34                	je     0x46e9e7
46e9b3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46e9b6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
46e9b9:	eb 09                	jmp    0x46e9c4
46e9bb:	8b 55 f8             	mov    -0x8(%ebp),%edx
46e9be:	83 c2 02             	add    $0x2,%edx
46e9c1:	89 55 f8             	mov    %edx,-0x8(%ebp)
46e9c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
46e9c7:	0f b7 08             	movzwl (%eax),%ecx
46e9ca:	85 c9                	test   %ecx,%ecx
46e9cc:	74 17                	je     0x46e9e5
46e9ce:	8b 55 f8             	mov    -0x8(%ebp),%edx
46e9d1:	0f b7 02             	movzwl (%edx),%eax
46e9d4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46e9d7:	0f b7 11             	movzwl (%ecx),%edx
46e9da:	3b c2                	cmp    %edx,%eax
46e9dc:	75 05                	jne    0x46e9e3
46e9de:	8b 45 fc             	mov    -0x4(%ebp),%eax
46e9e1:	eb 06                	jmp    0x46e9e9
46e9e3:	eb d6                	jmp    0x46e9bb
46e9e5:	eb b9                	jmp    0x46e9a0
46e9e7:	33 c0                	xor    %eax,%eax
46e9e9:	8b e5                	mov    %ebp,%esp
46e9eb:	5d                   	pop    %ebp
46e9ec:	c3                   	ret
46e9ed:	cc                   	int3
46e9ee:	cc                   	int3
46e9ef:	cc                   	int3
46e9f0:	cc                   	int3
46e9f1:	cc                   	int3
46e9f2:	cc                   	int3
46e9f3:	cc                   	int3
46e9f4:	cc                   	int3
46e9f5:	cc                   	int3
46e9f6:	cc                   	int3
46e9f7:	cc                   	int3
46e9f8:	cc                   	int3
46e9f9:	cc                   	int3
46e9fa:	cc                   	int3
46e9fb:	cc                   	int3
46e9fc:	cc                   	int3
46e9fd:	cc                   	int3
46e9fe:	cc                   	int3
46e9ff:	cc                   	int3
46ea00:	cc                   	int3
46ea01:	cc                   	int3
46ea02:	cc                   	int3
46ea03:	cc                   	int3
46ea04:	cc                   	int3
46ea05:	cc                   	int3
46ea06:	cc                   	int3
46ea07:	cc                   	int3
46ea08:	cc                   	int3
46ea09:	cc                   	int3
46ea0a:	cc                   	int3
46ea0b:	cc                   	int3
46ea0c:	cc                   	int3
46ea0d:	cc                   	int3
46ea0e:	cc                   	int3
46ea0f:	cc                   	int3
46ea10:	8b ff                	mov    %edi,%edi
46ea12:	55                   	push   %ebp
46ea13:	8b ec                	mov    %esp,%ebp
46ea15:	51                   	push   %ecx
46ea16:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46ea19:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea1c:	8b 4d 08             	mov    0x8(%ebp),%ecx
46ea1f:	89 08                	mov    %ecx,(%eax)
46ea21:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea24:	8b e5                	mov    %ebp,%esp
46ea26:	5d                   	pop    %ebp
46ea27:	c2 04 00             	ret    $0x4
46ea2a:	cc                   	int3
46ea2b:	cc                   	int3
46ea2c:	cc                   	int3
46ea2d:	cc                   	int3
46ea2e:	cc                   	int3
46ea2f:	cc                   	int3
46ea30:	8b ff                	mov    %edi,%edi
46ea32:	55                   	push   %ebp
46ea33:	8b ec                	mov    %esp,%ebp
46ea35:	51                   	push   %ecx
46ea36:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46ea39:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea3c:	8b 4d 08             	mov    0x8(%ebp),%ecx
46ea3f:	89 08                	mov    %ecx,(%eax)
46ea41:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea44:	8b e5                	mov    %ebp,%esp
46ea46:	5d                   	pop    %ebp
46ea47:	c2 04 00             	ret    $0x4
46ea4a:	cc                   	int3
46ea4b:	cc                   	int3
46ea4c:	cc                   	int3
46ea4d:	cc                   	int3
46ea4e:	cc                   	int3
46ea4f:	cc                   	int3
46ea50:	8b ff                	mov    %edi,%edi
46ea52:	55                   	push   %ebp
46ea53:	8b ec                	mov    %esp,%ebp
46ea55:	51                   	push   %ecx
46ea56:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46ea59:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea5c:	8b 08                	mov    (%eax),%ecx
46ea5e:	51                   	push   %ecx
46ea5f:	e8 d0 41 f9 ff       	call   0x402c34
46ea64:	83 c4 04             	add    $0x4,%esp
46ea67:	8b e5                	mov    %ebp,%esp
46ea69:	5d                   	pop    %ebp
46ea6a:	c3                   	ret
46ea6b:	cc                   	int3
46ea6c:	cc                   	int3
46ea6d:	cc                   	int3
46ea6e:	cc                   	int3
46ea6f:	cc                   	int3
46ea70:	cc                   	int3
46ea71:	cc                   	int3
46ea72:	cc                   	int3
46ea73:	cc                   	int3
46ea74:	cc                   	int3
46ea75:	cc                   	int3
46ea76:	cc                   	int3
46ea77:	cc                   	int3
46ea78:	cc                   	int3
46ea79:	cc                   	int3
46ea7a:	cc                   	int3
46ea7b:	cc                   	int3
46ea7c:	cc                   	int3
46ea7d:	cc                   	int3
46ea7e:	cc                   	int3
46ea7f:	cc                   	int3
46ea80:	8b ff                	mov    %edi,%edi
46ea82:	55                   	push   %ebp
46ea83:	8b ec                	mov    %esp,%ebp
46ea85:	51                   	push   %ecx
46ea86:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46ea89:	8b 45 fc             	mov    -0x4(%ebp),%eax
46ea8c:	8b 00                	mov    (%eax),%eax
46ea8e:	8b e5                	mov    %ebp,%esp
46ea90:	5d                   	pop    %ebp
46ea91:	c3                   	ret
46ea92:	cc                   	int3
46ea93:	cc                   	int3
46ea94:	cc                   	int3
46ea95:	cc                   	int3
46ea96:	cc                   	int3
46ea97:	cc                   	int3
46ea98:	cc                   	int3
46ea99:	cc                   	int3
46ea9a:	cc                   	int3
46ea9b:	cc                   	int3
46ea9c:	cc                   	int3
46ea9d:	cc                   	int3
46ea9e:	cc                   	int3
46ea9f:	cc                   	int3
46eaa0:	8b ff                	mov    %edi,%edi
46eaa2:	55                   	push   %ebp
46eaa3:	8b ec                	mov    %esp,%ebp
46eaa5:	83 ec 08             	sub    $0x8,%esp
46eaa8:	8b 45 08             	mov    0x8(%ebp),%eax
46eaab:	83 c0 08             	add    $0x8,%eax
46eaae:	89 45 fc             	mov    %eax,-0x4(%ebp)
46eab1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46eab4:	3b 4d 08             	cmp    0x8(%ebp),%ecx
46eab7:	76 08                	jbe    0x46eac1
46eab9:	8b 55 fc             	mov    -0x4(%ebp),%edx
46eabc:	89 55 f8             	mov    %edx,-0x8(%ebp)
46eabf:	eb 07                	jmp    0x46eac8
46eac1:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
46eac8:	8b 45 f8             	mov    -0x8(%ebp),%eax
46eacb:	8b e5                	mov    %ebp,%esp
46eacd:	5d                   	pop    %ebp
46eace:	c3                   	ret
46eacf:	cc                   	int3
46ead0:	cc                   	int3
46ead1:	cc                   	int3
46ead2:	cc                   	int3
46ead3:	cc                   	int3
46ead4:	cc                   	int3
46ead5:	cc                   	int3
46ead6:	cc                   	int3
46ead7:	cc                   	int3
46ead8:	cc                   	int3
46ead9:	cc                   	int3
46eada:	cc                   	int3
46eadb:	cc                   	int3
46eadc:	cc                   	int3
46eadd:	cc                   	int3
46eade:	cc                   	int3
46eadf:	cc                   	int3
46eae0:	8b ff                	mov    %edi,%edi
46eae2:	55                   	push   %ebp
46eae3:	8b ec                	mov    %esp,%ebp
46eae5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
46eae9:	74 11                	je     0x46eafc
46eaeb:	8b 45 08             	mov    0x8(%ebp),%eax
46eaee:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46eaf1:	89 08                	mov    %ecx,(%eax)
46eaf3:	8b 55 08             	mov    0x8(%ebp),%edx
46eaf6:	83 c2 08             	add    $0x8,%edx
46eaf9:	89 55 08             	mov    %edx,0x8(%ebp)
46eafc:	8b 45 08             	mov    0x8(%ebp),%eax
46eaff:	5d                   	pop    %ebp
46eb00:	c3                   	ret
46eb01:	cc                   	int3
46eb02:	cc                   	int3
46eb03:	cc                   	int3
46eb04:	cc                   	int3
46eb05:	cc                   	int3
46eb06:	cc                   	int3
46eb07:	cc                   	int3
46eb08:	cc                   	int3
46eb09:	cc                   	int3
46eb0a:	cc                   	int3
46eb0b:	cc                   	int3
46eb0c:	cc                   	int3
46eb0d:	cc                   	int3
46eb0e:	cc                   	int3
46eb0f:	cc                   	int3
46eb10:	8b ff                	mov    %edi,%edi
46eb12:	55                   	push   %ebp
46eb13:	8b ec                	mov    %esp,%ebp
46eb15:	83 ec 40             	sub    $0x40,%esp
46eb18:	8b 45 08             	mov    0x8(%ebp),%eax
46eb1b:	50                   	push   %eax
46eb1c:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46eb1f:	e8 02 31 f9 ff       	call   0x401c26
46eb24:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
46eb28:	74 08                	je     0x46eb32
46eb2a:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
46eb2d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46eb30:	eb 10                	jmp    0x46eb42
46eb32:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46eb35:	e8 a8 2e f9 ff       	call   0x4019e2
46eb3a:	8b 10                	mov    (%eax),%edx
46eb3c:	8b 42 08             	mov    0x8(%edx),%eax
46eb3f:	89 45 f4             	mov    %eax,-0xc(%ebp)
46eb42:	8b 4d f4             	mov    -0xc(%ebp),%ecx
46eb45:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46eb48:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
46eb4c:	74 09                	je     0x46eb57
46eb4e:	c7 45 f0 09 00 00 00 	movl   $0x9,-0x10(%ebp)
46eb55:	eb 07                	jmp    0x46eb5e
46eb57:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
46eb5e:	6a 00                	push   $0x0
46eb60:	6a 00                	push   $0x0
46eb62:	8b 55 14             	mov    0x14(%ebp),%edx
46eb65:	52                   	push   %edx
46eb66:	8b 45 10             	mov    0x10(%ebp),%eax
46eb69:	50                   	push   %eax
46eb6a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46eb6d:	51                   	push   %ecx
46eb6e:	8b 55 e8             	mov    -0x18(%ebp),%edx
46eb71:	52                   	push   %edx
46eb72:	ff 15 64 c1 4f 00    	call   *0x4fc164
46eb78:	89 45 f8             	mov    %eax,-0x8(%ebp)
46eb7b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
46eb7f:	75 17                	jne    0x46eb98
46eb81:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
46eb88:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46eb8b:	e8 d5 4b f9 ff       	call   0x403765
46eb90:	8b 45 e0             	mov    -0x20(%ebp),%eax
46eb93:	e9 1e 01 00 00       	jmp    0x46ecb6
46eb98:	8b 45 f8             	mov    -0x8(%ebp),%eax
46eb9b:	d1 e0                	shl    $1,%eax
46eb9d:	50                   	push   %eax
46eb9e:	e8 79 35 f9 ff       	call   0x40211c
46eba3:	83 c4 04             	add    $0x4,%esp
46eba6:	85 c0                	test   %eax,%eax
46eba8:	74 33                	je     0x46ebdd
46ebaa:	68 dd dd 00 00       	push   $0xdddd
46ebaf:	6a 51                	push   $0x51
46ebb1:	68 98 ca 4a 00       	push   $0x4aca98
46ebb6:	6a 02                	push   $0x2
46ebb8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46ebbb:	d1 e1                	shl    $1,%ecx
46ebbd:	51                   	push   %ecx
46ebbe:	e8 59 35 f9 ff       	call   0x40211c
46ebc3:	83 c4 04             	add    $0x4,%esp
46ebc6:	50                   	push   %eax
46ebc7:	e8 d7 49 f9 ff       	call   0x4035a3
46ebcc:	83 c4 10             	add    $0x10,%esp
46ebcf:	50                   	push   %eax
46ebd0:	e8 b6 48 f9 ff       	call   0x40348b
46ebd5:	83 c4 08             	add    $0x8,%esp
46ebd8:	89 45 ec             	mov    %eax,-0x14(%ebp)
46ebdb:	eb 07                	jmp    0x46ebe4
46ebdd:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
46ebe4:	8b 55 ec             	mov    -0x14(%ebp),%edx
46ebe7:	52                   	push   %edx
46ebe8:	8d 4d d0             	lea    -0x30(%ebp),%ecx
46ebeb:	e8 25 2d f9 ff       	call   0x401915
46ebf0:	8b 00                	mov    (%eax),%eax
46ebf2:	50                   	push   %eax
46ebf3:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ebf6:	e8 f8 26 f9 ff       	call   0x4012f3
46ebfb:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ebfe:	e8 26 41 f9 ff       	call   0x402d29
46ec03:	85 c0                	test   %eax,%eax
46ec05:	75 1f                	jne    0x46ec26
46ec07:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
46ec0e:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ec11:	e8 a9 37 f9 ff       	call   0x4023bf
46ec16:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46ec19:	e8 47 4b f9 ff       	call   0x403765
46ec1e:	8b 45 dc             	mov    -0x24(%ebp),%eax
46ec21:	e9 90 00 00 00       	jmp    0x46ecb6
46ec26:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46ec29:	d1 e1                	shl    $1,%ecx
46ec2b:	51                   	push   %ecx
46ec2c:	6a 00                	push   $0x0
46ec2e:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ec31:	e8 f3 40 f9 ff       	call   0x402d29
46ec36:	50                   	push   %eax
46ec37:	e8 08 30 f9 ff       	call   0x401c44
46ec3c:	83 c4 0c             	add    $0xc,%esp
46ec3f:	8b 55 f8             	mov    -0x8(%ebp),%edx
46ec42:	52                   	push   %edx
46ec43:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ec46:	e8 de 40 f9 ff       	call   0x402d29
46ec4b:	50                   	push   %eax
46ec4c:	8b 45 14             	mov    0x14(%ebp),%eax
46ec4f:	50                   	push   %eax
46ec50:	8b 4d 10             	mov    0x10(%ebp),%ecx
46ec53:	51                   	push   %ecx
46ec54:	6a 01                	push   $0x1
46ec56:	8b 55 e8             	mov    -0x18(%ebp),%edx
46ec59:	52                   	push   %edx
46ec5a:	ff 15 64 c1 4f 00    	call   *0x4fc164
46ec60:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46ec63:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
46ec67:	75 1c                	jne    0x46ec85
46ec69:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
46ec70:	8d 4d fc             	lea    -0x4(%ebp),%ecx
46ec73:	e8 47 37 f9 ff       	call   0x4023bf
46ec78:	8d 4d c0             	lea    -0x40(%ebp),%ecx
46ec7b:	e8 e5 4a f9 ff       	call   0x403765
46ec80:	8b 45 d8             	mov    -0x28(%ebp),%eax
46ec83:	eb 31                	jmp    0x46ecb6
46ec85:	8b 45 18             	mov    0x18(%ebp),%eax
46ec88:	50                   	push   %eax
46ec89:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
46ec8c:	51                   	push   %ecx