473cc0:	8b 45 fc             	mov    -0x4(%ebp),%eax
473cc3:	e8 94 f7 ff ff       	call   0x47345c
473cc8:	84 c0                	test   %al,%al
473cca:	74 04                	je     0x473cd0
473ccc:	85 ff                	test   %edi,%edi
473cce:	75 04                	jne    0x473cd4
473cd0:	33 c0                	xor    %eax,%eax
473cd2:	eb 02                	jmp    0x473cd6
473cd4:	b0 01                	mov    $0x1,%al
473cd6:	88 45 e9             	mov    %al,-0x17(%ebp)
473cd9:	33 c0                	xor    %eax,%eax
473cdb:	89 45 dc             	mov    %eax,-0x24(%ebp)
473cde:	84 db                	test   %bl,%bl
473ce0:	75 2c                	jne    0x473d0e
473ce2:	85 ff                	test   %edi,%edi
473ce4:	74 1f                	je     0x473d05
473ce6:	8b 47 30             	mov    0x30(%edi),%eax
473ce9:	83 c0 03             	add    $0x3,%eax
473cec:	50                   	push   %eax
473ced:	8b 45 ec             	mov    -0x14(%ebp),%eax
473cf0:	8b 40 0c             	mov    0xc(%eax),%eax
473cf3:	50                   	push   %eax
473cf4:	8b 47 34             	mov    0x34(%edi),%eax
473cf7:	83 c0 03             	add    $0x3,%eax
473cfa:	50                   	push   %eax
473cfb:	e8 38 36 f9 ff       	call   0x407338
473d00:	89 45 dc             	mov    %eax,-0x24(%ebp)
473d03:	eb 09                	jmp    0x473d0e
473d05:	8b 45 ec             	mov    -0x14(%ebp),%eax
473d08:	8b 40 0c             	mov    0xc(%eax),%eax
473d0b:	89 45 dc             	mov    %eax,-0x24(%ebp)
473d0e:	8b 45 ec             	mov    -0x14(%ebp),%eax
473d11:	57                   	push   %edi
473d12:	8b f0                	mov    %eax,%esi
473d14:	8d 7d bc             	lea    -0x44(%ebp),%edi
473d17:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d18:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d19:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d1a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d1b:	5f                   	pop    %edi
473d1c:	84 db                	test   %bl,%bl
473d1e:	0f 84 92 02 00 00    	je     0x473fb6
473d24:	80 7d ea 00          	cmpb   $0x0,-0x16(%ebp)
473d28:	74 79                	je     0x473da3
473d2a:	8b 45 fc             	mov    -0x4(%ebp),%eax
473d2d:	8b 40 1c             	mov    0x1c(%eax),%eax
473d30:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473d34:	74 1c                	je     0x473d52
473d36:	83 6d c4 02          	subl   $0x2,-0x3c(%ebp)
473d3a:	57                   	push   %edi
473d3b:	8d 75 bc             	lea    -0x44(%ebp),%esi
473d3e:	8d 7d ac             	lea    -0x54(%ebp),%edi
473d41:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d42:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d43:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d44:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473d45:	5f                   	pop    %edi
473d46:	83 6d c4 09          	subl   $0x9,-0x3c(%ebp)
473d4a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
473d4d:	89 45 ac             	mov    %eax,-0x54(%ebp)
473d50:	eb 5a                	jmp    0x473dac
473d52:	8b 45 fc             	mov    -0x4(%ebp),%eax
473d55:	8b 40 24             	mov    0x24(%eax),%eax
473d58:	80 b8 a4 00 00 00 01 	cmpb   $0x1,0xa4(%eax)
473d5f:	74 21                	je     0x473d82
473d61:	8b 45 c8             	mov    -0x38(%ebp),%eax
473d64:	50                   	push   %eax
473d65:	8d 45 ac             	lea    -0x54(%ebp),%eax
473d68:	50                   	push   %eax
473d69:	8b 75 c4             	mov    -0x3c(%ebp),%esi
473d6c:	8b ce                	mov    %esi,%ecx
473d6e:	83 e9 03             	sub    $0x3,%ecx
473d71:	8b c6                	mov    %esi,%eax
473d73:	83 e8 08             	sub    $0x8,%eax
473d76:	83 e8 03             	sub    $0x3,%eax
473d79:	33 d2                	xor    %edx,%edx
473d7b:	e8 f4 68 fa ff       	call   0x41a674
473d80:	eb 2a                	jmp    0x473dac
473d82:	8b 75 c8             	mov    -0x38(%ebp),%esi
473d85:	8b c6                	mov    %esi,%eax
473d87:	83 e8 03             	sub    $0x3,%eax
473d8a:	50                   	push   %eax
473d8b:	8d 45 ac             	lea    -0x54(%ebp),%eax
473d8e:	50                   	push   %eax
473d8f:	8b d6                	mov    %esi,%edx
473d91:	83 ea 08             	sub    $0x8,%edx
473d94:	83 ea 03             	sub    $0x3,%edx
473d97:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
473d9a:	33 c0                	xor    %eax,%eax
473d9c:	e8 d3 68 fa ff       	call   0x41a674
473da1:	eb 09                	jmp    0x473dac
473da3:	8d 45 ac             	lea    -0x54(%ebp),%eax
473da6:	50                   	push   %eax
473da7:	e8 f4 3f f9 ff       	call   0x407da0
473dac:	8a 45 10             	mov    0x10(%ebp),%al
473daf:	22 45 eb             	and    -0x15(%ebp),%al
473db2:	75 1c                	jne    0x473dd0
473db4:	8b 45 fc             	mov    -0x4(%ebp),%eax
473db7:	8b 40 1c             	mov    0x1c(%eax),%eax
473dba:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473dbe:	75 10                	jne    0x473dd0
473dc0:	8b 45 fc             	mov    -0x4(%ebp),%eax
473dc3:	8b 40 1c             	mov    0x1c(%eax),%eax
473dc6:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
473dca:	0f 84 d6 00 00 00    	je     0x473ea6
473dd0:	8b 45 fc             	mov    -0x4(%ebp),%eax
473dd3:	8b 40 1c             	mov    0x1c(%eax),%eax
473dd6:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473dda:	75 3c                	jne    0x473e18
473ddc:	6a 0f                	push   $0xf
473dde:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
473de2:	75 10                	jne    0x473df4
473de4:	8b 45 fc             	mov    -0x4(%ebp),%eax
473de7:	8b 40 1c             	mov    0x1c(%eax),%eax
473dea:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473dee:	75 04                	jne    0x473df4
473df0:	33 c0                	xor    %eax,%eax
473df2:	eb 02                	jmp    0x473df6
473df4:	b0 01                	mov    $0x1,%al
473df6:	83 e0 7f             	and    $0x7f,%eax
473df9:	8b 04 85 04 af 68 00 	mov    0x68af04(,%eax,4),%eax
473e00:	50                   	push   %eax
473e01:	8d 45 bc             	lea    -0x44(%ebp),%eax
473e04:	50                   	push   %eax
473e05:	8b 45 f8             	mov    -0x8(%ebp),%eax
473e08:	e8 b3 4e fb ff       	call   0x428cc0
473e0d:	50                   	push   %eax
473e0e:	e8 f5 3a f9 ff       	call   0x407908
473e13:	e9 8e 00 00 00       	jmp    0x473ea6
473e18:	6a 0f                	push   $0xf
473e1a:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
473e1e:	74 0c                	je     0x473e2c
473e20:	8b 45 fc             	mov    -0x4(%ebp),%eax
473e23:	8b 40 24             	mov    0x24(%eax),%eax
473e26:	80 78 40 00          	cmpb   $0x0,0x40(%eax)
473e2a:	75 10                	jne    0x473e3c
473e2c:	8b 45 fc             	mov    -0x4(%ebp),%eax
473e2f:	8b 40 1c             	mov    0x1c(%eax),%eax
473e32:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473e36:	75 04                	jne    0x473e3c
473e38:	33 c0                	xor    %eax,%eax
473e3a:	eb 02                	jmp    0x473e3e
473e3c:	b0 01                	mov    $0x1,%al
473e3e:	83 e0 7f             	and    $0x7f,%eax
473e41:	8b 04 85 04 af 68 00 	mov    0x68af04(,%eax,4),%eax
473e48:	50                   	push   %eax
473e49:	8d 45 bc             	lea    -0x44(%ebp),%eax
473e4c:	50                   	push   %eax
473e4d:	8b 45 f8             	mov    -0x8(%ebp),%eax
473e50:	e8 6b 4e fb ff       	call   0x428cc0
473e55:	50                   	push   %eax
473e56:	e8 ad 3a f9 ff       	call   0x407908
473e5b:	8a 45 10             	mov    0x10(%ebp),%al
473e5e:	22 45 eb             	and    -0x15(%ebp),%al
473e61:	75 0c                	jne    0x473e6f
473e63:	8b 45 fc             	mov    -0x4(%ebp),%eax
473e66:	8b 40 1c             	mov    0x1c(%eax),%eax
473e69:	f6 40 1c 10          	testb  $0x10,0x1c(%eax)
473e6d:	74 37                	je     0x473ea6
473e6f:	6a 0f                	push   $0xf
473e71:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
473e75:	74 0c                	je     0x473e83
473e77:	8b 45 fc             	mov    -0x4(%ebp),%eax
473e7a:	8b 40 24             	mov    0x24(%eax),%eax
473e7d:	80 78 40 00          	cmpb   $0x0,0x40(%eax)
473e81:	74 04                	je     0x473e87
473e83:	33 c0                	xor    %eax,%eax
473e85:	eb 02                	jmp    0x473e89
473e87:	b0 01                	mov    $0x1,%al
473e89:	83 e0 7f             	and    $0x7f,%eax
473e8c:	8b 04 85 04 af 68 00 	mov    0x68af04(,%eax,4),%eax
473e93:	50                   	push   %eax
473e94:	8d 45 ac             	lea    -0x54(%ebp),%eax
473e97:	50                   	push   %eax
473e98:	8b 45 f8             	mov    -0x8(%ebp),%eax
473e9b:	e8 20 4e fb ff       	call   0x428cc0
473ea0:	50                   	push   %eax
473ea1:	e8 62 3a f9 ff       	call   0x407908
473ea6:	80 7d ea 00          	cmpb   $0x0,-0x16(%ebp)
473eaa:	74 4c                	je     0x473ef8
473eac:	8b 45 fc             	mov    -0x4(%ebp),%eax
473eaf:	8b 40 1c             	mov    0x1c(%eax),%eax
473eb2:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473eb6:	0f 95 c0             	setne  %al
473eb9:	34 01                	xor    $0x1,%al
473ebb:	22 45 0c             	and    0xc(%ebp),%al
473ebe:	74 0d                	je     0x473ecd
473ec0:	6a 01                	push   $0x1
473ec2:	6a 01                	push   $0x1
473ec4:	8d 45 ac             	lea    -0x54(%ebp),%eax
473ec7:	50                   	push   %eax
473ec8:	e8 ab 3d f9 ff       	call   0x407c78
473ecd:	55                   	push   %ebp
473ece:	8b 45 fc             	mov    -0x4(%ebp),%eax
473ed1:	8b 40 1c             	mov    0x1c(%eax),%eax
473ed4:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473ed8:	75 0f                	jne    0x473ee9
473eda:	8b 45 fc             	mov    -0x4(%ebp),%eax
473edd:	8b 40 24             	mov    0x24(%eax),%eax
473ee0:	80 b8 a4 00 00 00 01 	cmpb   $0x1,0xa4(%eax)
473ee7:	74 04                	je     0x473eed
473ee9:	33 d2                	xor    %edx,%edx
473eeb:	eb 02                	jmp    0x473eef
473eed:	b2 01                	mov    $0x1,%dl
473eef:	8d 45 ac             	lea    -0x54(%ebp),%eax
473ef2:	e8 a5 fc ff ff       	call   0x473b9c
473ef7:	59                   	pop    %ecx
473ef8:	6a ff                	push   $0xffffffff
473efa:	6a ff                	push   $0xffffffff
473efc:	8d 45 bc             	lea    -0x44(%ebp),%eax
473eff:	50                   	push   %eax
473f00:	e8 83 3c f9 ff       	call   0x407b88
473f05:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f08:	8b 40 1c             	mov    0x1c(%eax),%eax
473f0b:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473f0f:	74 32                	je     0x473f43
473f11:	8a 45 10             	mov    0x10(%ebp),%al
473f14:	22 45 eb             	and    -0x15(%ebp),%al
473f17:	75 2a                	jne    0x473f43
473f19:	e8 ea fc ff ff       	call   0x473c08
473f1e:	8b d0                	mov    %eax,%edx
473f20:	8b 45 f8             	mov    -0x8(%ebp),%eax
473f23:	8b 40 14             	mov    0x14(%eax),%eax
473f26:	e8 2d 43 fb ff       	call   0x428258
473f2b:	8d 55 bc             	lea    -0x44(%ebp),%edx
473f2e:	8b 45 f8             	mov    -0x8(%ebp),%eax
473f31:	e8 c6 47 fb ff       	call   0x4286fc
473f36:	8b 45 f8             	mov    -0x8(%ebp),%eax
473f39:	8b 40 14             	mov    0x14(%eax),%eax
473f3c:	b2 01                	mov    $0x1,%dl
473f3e:	e8 5d 44 fb ff       	call   0x4283a0
473f43:	6a ff                	push   $0xffffffff
473f45:	6a ff                	push   $0xffffffff
473f47:	8d 45 bc             	lea    -0x44(%ebp),%eax
473f4a:	50                   	push   %eax
473f4b:	e8 38 3c f9 ff       	call   0x407b88
473f50:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f53:	8b 40 1c             	mov    0x1c(%eax),%eax
473f56:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473f5a:	75 20                	jne    0x473f7c
473f5c:	8a 45 10             	mov    0x10(%ebp),%al
473f5f:	22 45 0c             	and    0xc(%ebp),%al
473f62:	74 25                	je     0x473f89
473f64:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f67:	8b 40 1c             	mov    0x1c(%eax),%eax
473f6a:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473f6e:	74 0c                	je     0x473f7c
473f70:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f73:	8b 40 24             	mov    0x24(%eax),%eax
473f76:	80 78 40 00          	cmpb   $0x0,0x40(%eax)
473f7a:	74 0d                	je     0x473f89
473f7c:	6a 01                	push   $0x1
473f7e:	6a 01                	push   $0x1
473f80:	8d 45 bc             	lea    -0x44(%ebp),%eax
473f83:	50                   	push   %eax
473f84:	e8 ef 3c f9 ff       	call   0x407c78
473f89:	80 7d ea 00          	cmpb   $0x0,-0x16(%ebp)
473f8d:	74 7b                	je     0x47400a
473f8f:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f92:	8b 40 1c             	mov    0x1c(%eax),%eax
473f95:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473f99:	75 6f                	jne    0x47400a
473f9b:	8b 45 fc             	mov    -0x4(%ebp),%eax
473f9e:	8b 40 24             	mov    0x24(%eax),%eax
473fa1:	80 b8 a4 00 00 00 01 	cmpb   $0x1,0xa4(%eax)
473fa8:	74 06                	je     0x473fb0
473faa:	83 6d c4 08          	subl   $0x8,-0x3c(%ebp)
473fae:	eb 5a                	jmp    0x47400a
473fb0:	83 6d c8 08          	subl   $0x8,-0x38(%ebp)
473fb4:	eb 54                	jmp    0x47400a
473fb6:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
473fba:	74 4e                	je     0x47400a
473fbc:	57                   	push   %edi
473fbd:	8d 75 bc             	lea    -0x44(%ebp),%esi
473fc0:	8d 7d cc             	lea    -0x34(%ebp),%edi
473fc3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473fc4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473fc5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473fc6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
473fc7:	5f                   	pop    %edi
473fc8:	80 7d e9 00          	cmpb   $0x0,-0x17(%ebp)
473fcc:	75 0c                	jne    0x473fda
473fce:	8b 45 fc             	mov    -0x4(%ebp),%eax
473fd1:	8b 40 1c             	mov    0x1c(%eax),%eax
473fd4:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
473fd8:	74 07                	je     0x473fe1
473fda:	8b 45 dc             	mov    -0x24(%ebp),%eax
473fdd:	40                   	inc    %eax
473fde:	01 45 cc             	add    %eax,-0x34(%ebp)
473fe1:	8b 45 fc             	mov    -0x4(%ebp),%eax
473fe4:	8b 40 1c             	mov    0x1c(%eax),%eax
473fe7:	f6 40 64 20          	testb  $0x20,0x64(%eax)
473feb:	0f 95 c0             	setne  %al
473fee:	22 45 10             	and    0x10(%ebp),%al
473ff1:	74 0c                	je     0x473fff
473ff3:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)
473ff7:	74 06                	je     0x473fff
473ff9:	8b 45 f4             	mov    -0xc(%ebp),%eax
473ffc:	29 45 d4             	sub    %eax,-0x2c(%ebp)
473fff:	8d 55 cc             	lea    -0x34(%ebp),%edx
474002:	8b 45 f8             	mov    -0x8(%ebp),%eax
474005:	e8 f2 46 fb ff       	call   0x4286fc
47400a:	8b 45 f8             	mov    -0x8(%ebp),%eax
47400d:	8b 40 14             	mov    0x14(%eax),%eax
474010:	b2 01                	mov    $0x1,%dl
474012:	e8 89 43 fb ff       	call   0x4283a0
474017:	8b 45 fc             	mov    -0x4(%ebp),%eax
47401a:	8b 40 1c             	mov    0x1c(%eax),%eax
47401d:	f6 40 3f 01          	testb  $0x1,0x3f(%eax)
474021:	74 1c                	je     0x47403f
474023:	8b 45 f8             	mov    -0x8(%ebp),%eax
474026:	8b 70 0c             	mov    0xc(%eax),%esi
474029:	8b c6                	mov    %esi,%eax
47402b:	e8 28 3d fb ff       	call   0x427d58
474030:	8b d0                	mov    %eax,%edx
474032:	0a 15 bc 44 47 00    	or     0x4744bc,%dl
474038:	8b c6                	mov    %esi,%eax
47403a:	e8 25 3d fb ff       	call   0x427d64
47403f:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
474045:	50                   	push   %eax
474046:	8b 45 f8             	mov    -0x8(%ebp),%eax
474049:	e8 72 4c fb ff       	call   0x428cc0
47404e:	50                   	push   %eax
47404f:	e8 ec 35 f9 ff       	call   0x407640
474054:	8b 45 fc             	mov    -0x4(%ebp),%eax
474057:	66 be ff ff          	mov    $0xffff,%si
47405b:	e8 14 fc f8 ff       	call   0x403c74
474060:	84 c0                	test   %al,%al
474062:	0f 84 b3 00 00 00    	je     0x47411b
474068:	8d 55 e4             	lea    -0x1c(%ebp),%edx
47406b:	8b 45 fc             	mov    -0x4(%ebp),%eax
47406e:	8b 08                	mov    (%eax),%ecx
474070:	ff 51 18             	call   *0x18(%ecx)
474073:	57                   	push   %edi
474074:	8d 75 bc             	lea    -0x44(%ebp),%esi
474077:	8d 7d cc             	lea    -0x34(%ebp),%edi
47407a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47407b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47407c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47407d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47407e:	5f                   	pop    %edi
47407f:	55                   	push   %ebp
474080:	e8 07 f8 ff ff       	call   0x47388c
474085:	59                   	pop    %ecx
474086:	8b f0                	mov    %eax,%esi
474088:	84 db                	test   %bl,%bl
47408a:	74 4a                	je     0x4740d6
47408c:	80 7d e9 00          	cmpb   $0x0,-0x17(%ebp)
474090:	74 28                	je     0x4740ba
474092:	8b 45 fc             	mov    -0x4(%ebp),%eax