510d21:	8b 74 24 08          	mov    0x8(%esp),%esi
510d25:	57                   	push   %edi
510d26:	8b 46 0c             	mov    0xc(%esi),%eax
510d29:	2d 88 03 00 00       	sub    $0x388,%eax
510d2e:	74 34                	je     0x510d64
510d30:	83 e8 01             	sub    $0x1,%eax
510d33:	74 1b                	je     0x510d50
510d35:	83 e8 01             	sub    $0x1,%eax
510d38:	0f 85 3e 01 00 00    	jne    0x510e7c
510d3e:	8d 78 20             	lea    0x20(%eax),%edi
510d41:	e8 4a ed fc ff       	call   0x4dfa90
510d46:	89 46 78             	mov    %eax,0x78(%esi)
510d49:	e8 22 ed fc ff       	call   0x4dfa70
510d4e:	eb 26                	jmp    0x510d76
510d50:	bf 18 00 00 00       	mov    $0x18,%edi
510d55:	e8 d6 eb fc ff       	call   0x4df930
510d5a:	89 46 78             	mov    %eax,0x78(%esi)
510d5d:	e8 ae eb fc ff       	call   0x4df910
510d62:	eb 12                	jmp    0x510d76
510d64:	bf 10 00 00 00       	mov    $0x10,%edi
510d69:	e8 42 ea fc ff       	call   0x4df7b0
510d6e:	89 46 78             	mov    %eax,0x78(%esi)
510d71:	e8 1a ea fc ff       	call   0x4df790
510d76:	89 46 7c             	mov    %eax,0x7c(%esi)
510d79:	c7 86 f8 00 00 00 8c 	movl   $0x68e18c,0xf8(%esi)
510d80:	e1 68 00
510d83:	83 7e 6c 00          	cmpl   $0x0,0x6c(%esi)
510d87:	89 be 80 00 00 00    	mov    %edi,0x80(%esi)
510d8d:	75 08                	jne    0x510d97
510d8f:	e8 dc b6 fc ff       	call   0x4dc470
510d94:	89 46 6c             	mov    %eax,0x6c(%esi)
510d97:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
510d9b:	75 08                	jne    0x510da5
510d9d:	e8 ce b6 fc ff       	call   0x4dc470
510da2:	89 46 70             	mov    %eax,0x70(%esi)
510da5:	8b 46 6c             	mov    0x6c(%esi),%eax
510da8:	85 c0                	test   %eax,%eax
510daa:	0f 84 cc 00 00 00    	je     0x510e7c
510db0:	83 7e 70 00          	cmpl   $0x0,0x70(%esi)
510db4:	0f 84 c2 00 00 00    	je     0x510e7c
510dba:	6a 01                	push   $0x1
510dbc:	6a 00                	push   $0x0
510dbe:	6a 00                	push   $0x0
510dc0:	6a 00                	push   $0x0
510dc2:	ff 76 78             	push   0x78(%esi)
510dc5:	50                   	push   %eax
510dc6:	e8 25 b8 fc ff       	call   0x4dc5f0
510dcb:	83 c4 18             	add    $0x18,%esp
510dce:	85 c0                	test   %eax,%eax
510dd0:	0f 84 a6 00 00 00    	je     0x510e7c
510dd6:	6a 01                	push   $0x1
510dd8:	6a 00                	push   $0x0
510dda:	6a 00                	push   $0x0
510ddc:	6a 00                	push   $0x0
510dde:	ff 76 7c             	push   0x7c(%esi)
510de1:	ff 76 70             	push   0x70(%esi)
510de4:	e8 07 b8 fc ff       	call   0x4dc5f0
510de9:	83 c4 18             	add    $0x18,%esp
510dec:	85 c0                	test   %eax,%eax
510dee:	0f 84 88 00 00 00    	je     0x510e7c
510df4:	f6 46 14 01          	testb  $0x1,0x14(%esi)
510df8:	8d 04 fd 00 00 00 00 	lea    0x0(,%edi,8),%eax
510dff:	89 46 20             	mov    %eax,0x20(%esi)
510e02:	8d 47 10             	lea    0x10(%edi),%eax
510e05:	c7 86 f8 00 00 00 8c 	movl   $0x68e18c,0xf8(%esi)
510e0c:	e1 68 00
510e0f:	89 46 60             	mov    %eax,0x60(%esi)
510e12:	75 41                	jne    0x510e55
510e14:	8b 46 74             	mov    0x74(%esi),%eax
510e17:	85 c0                	test   %eax,%eax
510e19:	75 0c                	jne    0x510e27
510e1b:	e8 50 b6 fc ff       	call   0x4dc470
510e20:	89 46 74             	mov    %eax,0x74(%esi)
510e23:	85 c0                	test   %eax,%eax
510e25:	74 55                	je     0x510e7c
510e27:	6a 01                	push   $0x1
510e29:	6a 00                	push   $0x0
510e2b:	68 f0 02 63 00       	push   $0x6302f0
510e30:	6a 00                	push   $0x0
510e32:	ff 76 78             	push   0x78(%esi)
510e35:	50                   	push   %eax
510e36:	e8 b5 b7 fc ff       	call   0x4dc5f0
510e3b:	83 c4 18             	add    $0x18,%esp
510e3e:	85 c0                	test   %eax,%eax
510e40:	74 3a                	je     0x510e7c
510e42:	8b 96 80 00 00 00    	mov    0x80(%esi),%edx
510e48:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
510e4d:	8b ca                	mov    %edx,%ecx
510e4f:	8b f8                	mov    %eax,%edi
510e51:	d1 e9                	shr    $1,%ecx
510e53:	eb 06                	jmp    0x510e5b
510e55:	33 ff                	xor    %edi,%edi
510e57:	8b d0                	mov    %eax,%edx
510e59:	33 c9                	xor    %ecx,%ecx
510e5b:	89 56 28             	mov    %edx,0x28(%esi)
510e5e:	89 46 2c             	mov    %eax,0x2c(%esi)
510e61:	89 4e 30             	mov    %ecx,0x30(%esi)
510e64:	89 7e 34             	mov    %edi,0x34(%esi)
510e67:	89 46 38             	mov    %eax,0x38(%esi)
510e6a:	89 46 3c             	mov    %eax,0x3c(%esi)
510e6d:	b8 01 00 00 00       	mov    $0x1,%eax
510e72:	5f                   	pop    %edi
510e73:	c7 46 24 00 00 01 00 	movl   $0x10000,0x24(%esi)
510e7a:	5e                   	pop    %esi
510e7b:	c3                   	ret
510e7c:	5f                   	pop    %edi
510e7d:	33 c0                	xor    %eax,%eax
510e7f:	5e                   	pop    %esi
510e80:	c3                   	ret
510e81:	cc                   	int3
510e82:	cc                   	int3
510e83:	cc                   	int3
510e84:	cc                   	int3
510e85:	cc                   	int3
510e86:	cc                   	int3
510e87:	cc                   	int3
510e88:	cc                   	int3
510e89:	cc                   	int3
510e8a:	cc                   	int3
510e8b:	cc                   	int3
510e8c:	cc                   	int3
510e8d:	cc                   	int3
510e8e:	cc                   	int3
510e8f:	cc                   	int3
510e90:	56                   	push   %esi
510e91:	8b 74 24 08          	mov    0x8(%esp),%esi
510e95:	ba 10 00 00 00       	mov    $0x10,%edx
510e9a:	b8 01 00 00 00       	mov    $0x1,%eax
510e9f:	90                   	nop
510ea0:	0f b6 4c 32 37       	movzbl 0x37(%edx,%esi,1),%ecx
510ea5:	4a                   	dec    %edx
510ea6:	03 c1                	add    %ecx,%eax
510ea8:	88 44 32 38          	mov    %al,0x38(%edx,%esi,1)
510eac:	c1 e8 08             	shr    $0x8,%eax
510eaf:	85 d2                	test   %edx,%edx
510eb1:	75 ed                	jne    0x510ea0
510eb3:	5e                   	pop    %esi
510eb4:	c3                   	ret
510eb5:	cc                   	int3
510eb6:	cc                   	int3
510eb7:	cc                   	int3
510eb8:	cc                   	int3
510eb9:	cc                   	int3
510eba:	cc                   	int3
510ebb:	cc                   	int3
510ebc:	cc                   	int3
510ebd:	cc                   	int3
510ebe:	cc                   	int3
510ebf:	cc                   	int3
510ec0:	83 3d 88 68 69 00 00 	cmpl   $0x0,0x696888
510ec7:	74 10                	je     0x510ed9
510ec9:	c7 05 88 68 69 00 00 	movl   $0x0,0x696888
510ed0:	00 00 00
510ed3:	ff 25 54 23 60 00    	jmp    *0x602354
510ed9:	c3                   	ret
510eda:	cc                   	int3
510edb:	cc                   	int3
510edc:	cc                   	int3
510edd:	cc                   	int3
510ede:	cc                   	int3
510edf:	cc                   	int3
510ee0:	8b 54 24 04          	mov    0x4(%esp),%edx
510ee4:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
510ee9:	39 4c 24 0c          	cmp    %ecx,0xc(%esp)
510eed:	56                   	push   %esi
510eee:	0f 46 4c 24 10       	cmovbe 0x10(%esp),%ecx
510ef3:	8b 32                	mov    (%edx),%esi
510ef5:	51                   	push   %ecx
510ef6:	ff 74 24 10          	push   0x10(%esp)
510efa:	8b 46 14             	mov    0x14(%esi),%eax
510efd:	52                   	push   %edx
510efe:	ff d0                	call   *%eax
510f00:	83 c4 0c             	add    $0xc,%esp
510f03:	8b d0                	mov    %eax,%edx
510f05:	5e                   	pop    %esi
510f06:	85 d2                	test   %edx,%edx
510f08:	7f 0b                	jg     0x510f15
510f0a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
510f0e:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
510f14:	c3                   	ret
510f15:	8b 44 24 10          	mov    0x10(%esp),%eax
510f19:	89 10                	mov    %edx,(%eax)
510f1b:	b8 01 00 00 00       	mov    $0x1,%eax
510f20:	c3                   	ret
510f21:	cc                   	int3
510f22:	cc                   	int3
510f23:	cc                   	int3
510f24:	cc                   	int3
510f25:	cc                   	int3
510f26:	cc                   	int3
510f27:	cc                   	int3
510f28:	cc                   	int3
510f29:	cc                   	int3
510f2a:	cc                   	int3
510f2b:	cc                   	int3
510f2c:	cc                   	int3
510f2d:	cc                   	int3
510f2e:	cc                   	int3
510f2f:	cc                   	int3
510f30:	8b 54 24 04          	mov    0x4(%esp),%edx
510f34:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
510f39:	39 4c 24 0c          	cmp    %ecx,0xc(%esp)
510f3d:	56                   	push   %esi
510f3e:	0f 46 4c 24 10       	cmovbe 0x10(%esp),%ecx
510f43:	8b 32                	mov    (%edx),%esi
510f45:	51                   	push   %ecx
510f46:	ff 74 24 10          	push   0x10(%esp)
510f4a:	8b 46 0c             	mov    0xc(%esi),%eax
510f4d:	52                   	push   %edx
510f4e:	ff d0                	call   *%eax
510f50:	83 c4 0c             	add    $0xc,%esp
510f53:	8b d0                	mov    %eax,%edx
510f55:	5e                   	pop    %esi
510f56:	85 d2                	test   %edx,%edx
510f58:	7f 0b                	jg     0x510f65
510f5a:	8b 4c 24 10          	mov    0x10(%esp),%ecx
510f5e:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
510f64:	c3                   	ret
510f65:	8b 44 24 10          	mov    0x10(%esp),%eax
510f69:	89 10                	mov    %edx,(%eax)
510f6b:	b8 01 00 00 00       	mov    $0x1,%eax
510f70:	c3                   	ret
510f71:	cc                   	int3
510f72:	cc                   	int3
510f73:	cc                   	int3
510f74:	cc                   	int3
510f75:	cc                   	int3
510f76:	cc                   	int3
510f77:	cc                   	int3
510f78:	cc                   	int3
510f79:	cc                   	int3
510f7a:	cc                   	int3
510f7b:	cc                   	int3
510f7c:	cc                   	int3
510f7d:	cc                   	int3
510f7e:	cc                   	int3
510f7f:	cc                   	int3
510f80:	ff 74 24 04          	push   0x4(%esp)
510f84:	e8 47 f1 fd ff       	call   0x4f00d0
510f89:	ff 74 24 08          	push   0x8(%esp)
510f8d:	c7 80 80 00 00 00 00 	movl   $0x0,0x80(%eax)
510f94:	00 00 00
510f97:	e8 34 f1 fd ff       	call   0x4f00d0
510f9c:	50                   	push   %eax
510f9d:	ff 74 24 14          	push   0x14(%esp)
510fa1:	e8 4a dd 02 00       	call   0x53ecf0
510fa6:	83 c4 10             	add    $0x10,%esp
510fa9:	b8 01 00 00 00       	mov    $0x1,%eax
510fae:	c3                   	ret
510faf:	cc                   	int3
510fb0:	83 7c 24 08 06       	cmpl   $0x6,0x8(%esp)
510fb5:	74 04                	je     0x510fbb
510fb7:	83 c8 ff             	or     $0xffffffff,%eax
510fba:	c3                   	ret
510fbb:	6a 08                	push   $0x8
510fbd:	ff 74 24 14          	push   0x14(%esp)
510fc1:	e8 4a 03 fd ff       	call   0x4e1310
510fc6:	83 c4 08             	add    $0x8,%esp
510fc9:	85 c0                	test   %eax,%eax
510fcb:	7f 03                	jg     0x510fd0
510fcd:	33 c0                	xor    %eax,%eax
510fcf:	c3                   	ret
510fd0:	ff 74 24 10          	push   0x10(%esp)
510fd4:	e8 57 df 02 00       	call   0x53ef30
510fd9:	83 c4 04             	add    $0x4,%esp
510fdc:	b8 01 00 00 00       	mov    $0x1,%eax
510fe1:	c3                   	ret
510fe2:	cc                   	int3
510fe3:	cc                   	int3
510fe4:	cc                   	int3
510fe5:	cc                   	int3
510fe6:	cc                   	int3
510fe7:	cc                   	int3
510fe8:	cc                   	int3
510fe9:	cc                   	int3
510fea:	cc                   	int3
510feb:	cc                   	int3
510fec:	cc                   	int3
510fed:	cc                   	int3
510fee:	cc                   	int3
510fef:	cc                   	int3
510ff0:	55                   	push   %ebp
510ff1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
510ff5:	57                   	push   %edi
510ff6:	55                   	push   %ebp
510ff7:	e8 c4 f0 fd ff       	call   0x4f00c0
510ffc:	83 c4 04             	add    $0x4,%esp
510fff:	8b 78 04             	mov    0x4(%eax),%edi
511002:	8b 44 24 18          	mov    0x18(%esp),%eax
511006:	3b c7                	cmp    %edi,%eax
511008:	72 46                	jb     0x511050
51100a:	53                   	push   %ebx
51100b:	2b c7                	sub    %edi,%eax
51100d:	33 db                	xor    %ebx,%ebx
51100f:	56                   	push   %esi
511010:	8b 74 24 1c          	mov    0x1c(%esp),%esi
511014:	29 74 24 18          	sub    %esi,0x18(%esp)
511018:	89 44 24 20          	mov    %eax,0x20(%esp)
51101c:	0f 1f 40 00          	nopl   0x0(%eax)
511020:	55                   	push   %ebp
511021:	e8 2a 62 fd ff       	call   0x4e7250
511026:	83 c4 04             	add    $0x4,%esp
511029:	50                   	push   %eax
51102a:	55                   	push   %ebp
51102b:	e8 a0 f0 fd ff       	call   0x4f00d0
511030:	83 c4 04             	add    $0x4,%esp
511033:	50                   	push   %eax
511034:	8b 44 24 20          	mov    0x20(%esp),%eax
511038:	03 c6                	add    %esi,%eax
51103a:	50                   	push   %eax
51103b:	56                   	push   %esi
51103c:	e8 ff db 02 00       	call   0x53ec40
511041:	03 df                	add    %edi,%ebx
511043:	83 c4 10             	add    $0x10,%esp
511046:	03 f7                	add    %edi,%esi
511048:	3b 5c 24 20          	cmp    0x20(%esp),%ebx
51104c:	76 d2                	jbe    0x511020
51104e:	5e                   	pop    %esi
51104f:	5b                   	pop    %ebx
511050:	5f                   	pop    %edi
511051:	b8 01 00 00 00       	mov    $0x1,%eax
511056:	5d                   	pop    %ebp
511057:	c3                   	ret
511058:	cc                   	int3
511059:	cc                   	int3
51105a:	cc                   	int3
51105b:	cc                   	int3
51105c:	cc                   	int3
51105d:	cc                   	int3
51105e:	cc                   	int3
51105f:	cc                   	int3
511060:	b8 04 00 00 00       	mov    $0x4,%eax
511065:	e8 46 07 0c 00       	call   0x5d17b0
51106a:	53                   	push   %ebx
51106b:	8b 5c 24 14          	mov    0x14(%esp),%ebx
51106f:	55                   	push   %ebp
511070:	8b 6c 24 14          	mov    0x14(%esp),%ebp
511074:	56                   	push   %esi
511075:	8b 74 24 14          	mov    0x14(%esp),%esi
511079:	57                   	push   %edi
51107a:	8b 7c 24 24          	mov    0x24(%esp),%edi
51107e:	81 ff 00 00 00 40    	cmp    $0x40000000,%edi
511084:	72 62                	jb     0x5110e8
511086:	8b c7                	mov    %edi,%eax
511088:	c1 e8 1e             	shr    $0x1e,%eax
51108b:	89 44 24 10          	mov    %eax,0x10(%esp)
51108f:	90                   	nop
511090:	56                   	push   %esi
511091:	e8 aa f0 fd ff       	call   0x4f0140
511096:	83 c4 04             	add    $0x4,%esp