523c27:	8b 5d 08             	mov    0x8(%ebp),%ebx
523c2a:	56                   	push   %esi
523c2b:	8b 75 10             	mov    0x10(%ebp),%esi
523c2e:	57                   	push   %edi
523c2f:	8b 7b 44             	mov    0x44(%ebx),%edi
523c32:	89 7d 08             	mov    %edi,0x8(%ebp)
523c35:	85 f6                	test   %esi,%esi
523c37:	79 37                	jns    0x523c70
523c39:	85 ff                	test   %edi,%edi
523c3b:	74 33                	je     0x523c70
523c3d:	8d 77 04             	lea    0x4(%edi),%esi
523c40:	8b 3f                	mov    (%edi),%edi
523c42:	85 ff                	test   %edi,%edi
523c44:	7e 24                	jle    0x523c6a
523c46:	f6 46 0c 08          	testb  $0x8,0xc(%esi)
523c4a:	74 16                	je     0x523c62
523c4c:	6a ff                	push   $0xffffffff
523c4e:	50                   	push   %eax
523c4f:	ff 36                	push   (%esi)
523c51:	6a 00                	push   $0x0
523c53:	e8 78 28 00 00       	call   0x5264d0
523c58:	83 c4 10             	add    $0x10,%esp
523c5b:	85 c0                	test   %eax,%eax
523c5d:	74 26                	je     0x523c85
523c5f:	8b 45 0c             	mov    0xc(%ebp),%eax
523c62:	4f                   	dec    %edi
523c63:	83 c6 14             	add    $0x14,%esi
523c66:	85 ff                	test   %edi,%edi
523c68:	7f dc                	jg     0x523c46
523c6a:	8b 7d 08             	mov    0x8(%ebp),%edi
523c6d:	8b 75 10             	mov    0x10(%ebp),%esi
523c70:	85 c0                	test   %eax,%eax
523c72:	74 19                	je     0x523c8d
523c74:	6a 00                	push   $0x0
523c76:	6a 00                	push   $0x0
523c78:	50                   	push   %eax
523c79:	ff 33                	push   (%ebx)
523c7b:	e8 e0 cb fd ff       	call   0x500860
523c80:	83 c4 10             	add    $0x10,%esp
523c83:	eb 0a                	jmp    0x523c8f
523c85:	8b 46 10             	mov    0x10(%esi),%eax
523c88:	5f                   	pop    %edi
523c89:	5e                   	pop    %esi
523c8a:	5b                   	pop    %ebx
523c8b:	5d                   	pop    %ebp
523c8c:	c3                   	ret
523c8d:	33 c0                	xor    %eax,%eax
523c8f:	50                   	push   %eax
523c90:	57                   	push   %edi
523c91:	53                   	push   %ebx
523c92:	e8 e9 38 00 00       	call   0x527580
523c97:	8b c8                	mov    %eax,%ecx
523c99:	83 c4 0c             	add    $0xc,%esp
523c9c:	85 c9                	test   %ecx,%ecx
523c9e:	74 22                	je     0x523cc2
523ca0:	8b 01                	mov    (%ecx),%eax
523ca2:	8d 04 80             	lea    (%eax,%eax,4),%eax
523ca5:	8d 14 81             	lea    (%ecx,%eax,4),%edx
523ca8:	8b c6                	mov    %esi,%eax
523caa:	c1 e8 1c             	shr    $0x1c,%eax
523cad:	33 42 fc             	xor    -0x4(%edx),%eax
523cb0:	83 e0 08             	and    $0x8,%eax
523cb3:	31 42 fc             	xor    %eax,-0x4(%edx)
523cb6:	85 f6                	test   %esi,%esi
523cb8:	79 06                	jns    0x523cc0
523cba:	ff 43 2c             	incl   0x2c(%ebx)
523cbd:	8b 73 2c             	mov    0x2c(%ebx),%esi
523cc0:	89 32                	mov    %esi,(%edx)
523cc2:	5f                   	pop    %edi
523cc3:	8b c6                	mov    %esi,%eax
523cc5:	89 4b 44             	mov    %ecx,0x44(%ebx)
523cc8:	5e                   	pop    %esi
523cc9:	5b                   	pop    %ebx
523cca:	5d                   	pop    %ebp
523ccb:	c3                   	ret
523ccc:	cc                   	int3
523ccd:	cc                   	int3
523cce:	cc                   	int3
523ccf:	cc                   	int3
523cd0:	55                   	push   %ebp
523cd1:	8b ec                	mov    %esp,%ebp
523cd3:	83 ec 3c             	sub    $0x3c,%esp
523cd6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
523cdb:	33 c5                	xor    %ebp,%eax
523cdd:	89 45 fc             	mov    %eax,-0x4(%ebp)
523ce0:	8b 45 08             	mov    0x8(%ebp),%eax
523ce3:	8a 4d 18             	mov    0x18(%ebp),%cl
523ce6:	8b 55 0c             	mov    0xc(%ebp),%edx
523ce9:	53                   	push   %ebx
523cea:	8a d9                	mov    %cl,%bl
523cec:	89 45 c8             	mov    %eax,-0x38(%ebp)
523cef:	80 e3 01             	and    $0x1,%bl
523cf2:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
523cf9:	56                   	push   %esi
523cfa:	57                   	push   %edi
523cfb:	8b 78 08             	mov    0x8(%eax),%edi
523cfe:	8a c1                	mov    %cl,%al
523d00:	88 5d ce             	mov    %bl,-0x32(%ebp)
523d03:	0f 94 c3             	sete   %bl
523d06:	24 fd                	and    $0xfd,%al
523d08:	80 c3 4d             	add    $0x4d,%bl
523d0b:	0f b6 f0             	movzbl %al,%esi
523d0e:	0f b6 c1             	movzbl %cl,%eax
523d11:	8b 4d c8             	mov    -0x38(%ebp),%ecx
523d14:	88 5d df             	mov    %bl,-0x21(%ebp)
523d17:	8b 1a                	mov    (%edx),%ebx
523d19:	89 5d d8             	mov    %ebx,-0x28(%ebp)
523d1c:	80 79 17 00          	cmpb   $0x0,0x17(%ecx)
523d20:	8d 4a 04             	lea    0x4(%edx),%ecx
523d23:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
523d26:	0f 45 f0             	cmovne %eax,%esi
523d29:	89 75 d4             	mov    %esi,-0x2c(%ebp)
523d2c:	85 db                	test   %ebx,%ebx
523d2e:	0f 8e 9a 01 00 00    	jle    0x523ece
523d34:	8b d6                	mov    %esi,%edx
523d36:	8b 75 10             	mov    0x10(%ebp),%esi
523d39:	8a c2                	mov    %dl,%al
523d3b:	24 04                	and    $0x4,%al
523d3d:	88 45 cf             	mov    %al,-0x31(%ebp)
523d40:	33 c0                	xor    %eax,%eax
523d42:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
523d46:	8b 19                	mov    (%ecx),%ebx
523d48:	74 6b                	je     0x523db5
523d4a:	0f b7 49 10          	movzwl 0x10(%ecx),%ecx
523d4e:	85 c9                	test   %ecx,%ecx
523d50:	74 63                	je     0x523db5
523d52:	f6 c2 08             	test   $0x8,%dl
523d55:	74 0e                	je     0x523d65
523d57:	8b 4d d8             	mov    -0x28(%ebp),%ecx
523d5a:	48                   	dec    %eax
523d5b:	4e                   	dec    %esi
523d5c:	49                   	dec    %ecx
523d5d:	89 4d d8             	mov    %ecx,-0x28(%ebp)
523d60:	e9 41 01 00 00       	jmp    0x523ea6
523d65:	8b 55 14             	mov    0x14(%ebp),%edx
523d68:	0f b6 5d df          	movzbl -0x21(%ebp),%ebx
523d6c:	4a                   	dec    %edx
523d6d:	03 d1                	add    %ecx,%edx
523d6f:	8b 4f 6c             	mov    0x6c(%edi),%ecx
523d72:	39 4f 70             	cmp    %ecx,0x70(%edi)
523d75:	7f 13                	jg     0x523d8a
523d77:	6a 00                	push   $0x0
523d79:	56                   	push   %esi
523d7a:	52                   	push   %edx
523d7b:	53                   	push   %ebx
523d7c:	57                   	push   %edi
523d7d:	e8 7e 27 fe ff       	call   0x506500
523d82:	83 c4 14             	add    $0x14,%esp
523d85:	e9 13 01 00 00       	jmp    0x523e9d
523d8a:	8d 41 01             	lea    0x1(%ecx),%eax
523d8d:	89 47 6c             	mov    %eax,0x6c(%edi)
523d90:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
523d93:	8b 47 68             	mov    0x68(%edi),%eax
523d96:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
523d99:	33 db                	xor    %ebx,%ebx
523d9b:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
523da0:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
523da4:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
523da8:	89 5c 88 10          	mov    %ebx,0x10(%eax,%ecx,4)
523dac:	88 5c 88 01          	mov    %bl,0x1(%eax,%ecx,4)
523db0:	e9 e4 00 00 00       	jmp    0x523e99
523db5:	f6 c2 02             	test   $0x2,%dl
523db8:	74 48                	je     0x523e02
523dba:	c7 45 e4 c0 12 50 00 	movl   $0x5012c0,-0x1c(%ebp)
523dc1:	b8 02 00 00 00       	mov    $0x2,%eax
523dc6:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
523dca:	c7 45 e8 f0 c7 53 00 	movl   $0x53c7f0,-0x18(%ebp)
523dd1:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
523dd8:	85 db                	test   %ebx,%ebx
523dda:	74 14                	je     0x523df0
523ddc:	8d 45 e0             	lea    -0x20(%ebp),%eax
523ddf:	53                   	push   %ebx
523de0:	50                   	push   %eax
523de1:	e8 ca c1 03 00       	call   0x55ffb0
523de6:	83 c4 08             	add    $0x8,%esp
523de9:	66 83 7d f4 00       	cmpw   $0x0,-0xc(%ebp)
523dee:	74 12                	je     0x523e02
523df0:	56                   	push   %esi
523df1:	53                   	push   %ebx
523df2:	ff 75 c8             	push   -0x38(%ebp)
523df5:	e8 26 fe ff ff       	call   0x523c20
523dfa:	83 c4 0c             	add    $0xc,%esp
523dfd:	e9 9b 00 00 00       	jmp    0x523e9d
523e02:	56                   	push   %esi
523e03:	53                   	push   %ebx
523e04:	ff 75 c8             	push   -0x38(%ebp)
523e07:	e8 44 14 00 00       	call   0x525250
523e0c:	8b d8                	mov    %eax,%ebx
523e0e:	83 c4 0c             	add    $0xc,%esp
523e11:	3b de                	cmp    %esi,%ebx
523e13:	0f 84 84 00 00 00    	je     0x523e9d
523e19:	80 7d ce 00          	cmpb   $0x0,-0x32(%ebp)
523e1d:	74 38                	je     0x523e57
523e1f:	6a ff                	push   $0xffffffff
523e21:	57                   	push   %edi
523e22:	e8 49 62 02 00       	call   0x54a070
523e27:	8b c8                	mov    %eax,%ecx
523e29:	83 c4 08             	add    $0x8,%esp
523e2c:	80 39 4d             	cmpb   $0x4d,(%ecx)
523e2f:	75 26                	jne    0x523e57
523e31:	8b 41 04             	mov    0x4(%ecx),%eax
523e34:	8b 51 0c             	mov    0xc(%ecx),%edx
523e37:	40                   	inc    %eax
523e38:	03 c2                	add    %edx,%eax
523e3a:	3b c3                	cmp    %ebx,%eax
523e3c:	75 19                	jne    0x523e57
523e3e:	8b 41 08             	mov    0x8(%ecx),%eax
523e41:	40                   	inc    %eax
523e42:	03 c2                	add    %edx,%eax
523e44:	3b c6                	cmp    %esi,%eax
523e46:	75 0f                	jne    0x523e57
523e48:	66 83 79 02 00       	cmpw   $0x0,0x2(%ecx)
523e4d:	75 08                	jne    0x523e57
523e4f:	8d 42 01             	lea    0x1(%edx),%eax
523e52:	89 41 0c             	mov    %eax,0xc(%ecx)
523e55:	eb 46                	jmp    0x523e9d
523e57:	8b 4f 6c             	mov    0x6c(%edi),%ecx
523e5a:	0f b6 55 df          	movzbl -0x21(%ebp),%edx
523e5e:	39 4f 70             	cmp    %ecx,0x70(%edi)
523e61:	7f 10                	jg     0x523e73
523e63:	6a 00                	push   $0x0
523e65:	56                   	push   %esi
523e66:	53                   	push   %ebx
523e67:	52                   	push   %edx
523e68:	57                   	push   %edi
523e69:	e8 92 26 fe ff       	call   0x506500
523e6e:	83 c4 14             	add    $0x14,%esp
523e71:	eb 2a                	jmp    0x523e9d
523e73:	8d 41 01             	lea    0x1(%ecx),%eax
523e76:	89 47 6c             	mov    %eax,0x6c(%edi)
523e79:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
523e7c:	8b 47 68             	mov    0x68(%edi),%eax
523e7f:	88 14 88             	mov    %dl,(%eax,%ecx,4)
523e82:	33 d2                	xor    %edx,%edx
523e84:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
523e89:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
523e8d:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
523e91:	89 54 88 10          	mov    %edx,0x10(%eax,%ecx,4)
523e95:	88 54 88 01          	mov    %dl,0x1(%eax,%ecx,4)
523e99:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
523e9d:	8b 45 d0             	mov    -0x30(%ebp),%eax
523ea0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
523ea3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
523ea6:	83 45 c4 14          	addl   $0x14,-0x3c(%ebp)
523eaa:	40                   	inc    %eax
523eab:	46                   	inc    %esi
523eac:	89 45 d0             	mov    %eax,-0x30(%ebp)
523eaf:	3b c1                	cmp    %ecx,%eax
523eb1:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
523eb4:	0f 8c 88 fe ff ff    	jl     0x523d42
523eba:	8b 45 d8             	mov    -0x28(%ebp),%eax
523ebd:	5f                   	pop    %edi
523ebe:	5e                   	pop    %esi
523ebf:	5b                   	pop    %ebx
523ec0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523ec3:	33 cd                	xor    %ebp,%ecx
523ec5:	e8 10 d6 0b 00       	call   0x5e14da
523eca:	8b e5                	mov    %ebp,%esp
523ecc:	5d                   	pop    %ebp
523ecd:	c3                   	ret
523ece:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523ed1:	8b c3                	mov    %ebx,%eax
523ed3:	5f                   	pop    %edi
523ed4:	5e                   	pop    %esi
523ed5:	33 cd                	xor    %ebp,%ecx
523ed7:	5b                   	pop    %ebx
523ed8:	e8 fd d5 0b 00       	call   0x5e14da
523edd:	8b e5                	mov    %ebp,%esp
523edf:	5d                   	pop    %ebp
523ee0:	c3                   	ret
523ee1:	cc                   	int3
523ee2:	cc                   	int3
523ee3:	cc                   	int3
523ee4:	cc                   	int3
523ee5:	cc                   	int3
523ee6:	cc                   	int3
523ee7:	cc                   	int3
523ee8:	cc                   	int3
523ee9:	cc                   	int3
523eea:	cc                   	int3
523eeb:	cc                   	int3
523eec:	cc                   	int3
523eed:	cc                   	int3
523eee:	cc                   	int3
523eef:	cc                   	int3
523ef0:	55                   	push   %ebp
523ef1:	8b ec                	mov    %esp,%ebp
523ef3:	83 ec 20             	sub    $0x20,%esp
523ef6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
523efb:	33 c5                	xor    %ebp,%eax
523efd:	89 45 fc             	mov    %eax,-0x4(%ebp)
523f00:	56                   	push   %esi
523f01:	8b 75 0c             	mov    0xc(%ebp),%esi
523f04:	57                   	push   %edi
523f05:	8b 7d 08             	mov    0x8(%ebp),%edi
523f08:	80 7f 17 00          	cmpb   $0x0,0x17(%edi)
523f0c:	74 53                	je     0x523f61
523f0e:	c7 45 e4 c0 12 50 00 	movl   $0x5012c0,-0x1c(%ebp)
523f15:	b8 02 00 00 00       	mov    $0x2,%eax
523f1a:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
523f1e:	c7 45 e8 f0 c7 53 00 	movl   $0x53c7f0,-0x18(%ebp)
523f25:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
523f2c:	85 f6                	test   %esi,%esi
523f2e:	74 14                	je     0x523f44
523f30:	8d 45 e0             	lea    -0x20(%ebp),%eax
523f33:	56                   	push   %esi
523f34:	50                   	push   %eax
523f35:	e8 76 c0 03 00       	call   0x55ffb0
523f3a:	83 c4 08             	add    $0x8,%esp
523f3d:	66 83 7d f4 00       	cmpw   $0x0,-0xc(%ebp)
523f42:	74 1d                	je     0x523f61
523f44:	ff 75 10             	push   0x10(%ebp)
523f47:	56                   	push   %esi
523f48:	57                   	push   %edi
523f49:	e8 d2 fc ff ff       	call   0x523c20
523f4e:	83 c4 0c             	add    $0xc,%esp
523f51:	5f                   	pop    %edi
523f52:	5e                   	pop    %esi
523f53:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523f56:	33 cd                	xor    %ebp,%ecx
523f58:	e8 7d d5 0b 00       	call   0x5e14da
523f5d:	8b e5                	mov    %ebp,%esp
523f5f:	5d                   	pop    %ebp
523f60:	c3                   	ret
523f61:	ff 75 10             	push   0x10(%ebp)
523f64:	56                   	push   %esi
523f65:	57                   	push   %edi
523f66:	e8 65 fc ff ff       	call   0x523bd0
523f6b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
523f6e:	83 c4 0c             	add    $0xc,%esp
523f71:	33 cd                	xor    %ebp,%ecx
523f73:	5f                   	pop    %edi
523f74:	5e                   	pop    %esi
523f75:	e8 60 d5 0b 00       	call   0x5e14da
523f7a:	8b e5                	mov    %ebp,%esp
523f7c:	5d                   	pop    %ebp
523f7d:	c3                   	ret
523f7e:	cc                   	int3
523f7f:	cc                   	int3
523f80:	55                   	push   %ebp
523f81:	8b ec                	mov    %esp,%ebp
523f83:	51                   	push   %ecx
523f84:	8b 55 08             	mov    0x8(%ebp),%edx
523f87:	53                   	push   %ebx
523f88:	56                   	push   %esi
523f89:	57                   	push   %edi
523f8a:	8b 42 34             	mov    0x34(%edx),%eax
523f8d:	8b 5a 08             	mov    0x8(%edx),%ebx
523f90:	85 c0                	test   %eax,%eax
523f92:	7e 58                	jle    0x523fec