501c7f:	3b f8                	cmp    %eax,%edi
501c81:	0f 45 d7             	cmovne %edi,%edx
501c84:	3b d1                	cmp    %ecx,%edx
501c86:	74 0b                	je     0x501c93
501c88:	33 d2                	xor    %edx,%edx
501c8a:	8b c3                	mov    %ebx,%eax
501c8c:	f7 f6                	div    %esi
501c8e:	40                   	inc    %eax
501c8f:	3b c8                	cmp    %eax,%ecx
501c91:	75 03                	jne    0x501c96
501c93:	49                   	dec    %ecx
501c94:	eb ba                	jmp    0x501c50
501c96:	5f                   	pop    %edi
501c97:	5e                   	pop    %esi
501c98:	8b c1                	mov    %ecx,%eax
501c9a:	5b                   	pop    %ebx
501c9b:	8b e5                	mov    %ebp,%esp
501c9d:	5d                   	pop    %ebp
501c9e:	c3                   	ret
501c9f:	cc                   	int3
501ca0:	55                   	push   %ebp
501ca1:	8b ec                	mov    %esp,%ebp
501ca3:	51                   	push   %ecx
501ca4:	8b 45 0c             	mov    0xc(%ebp),%eax
501ca7:	53                   	push   %ebx
501ca8:	56                   	push   %esi
501ca9:	8b 75 08             	mov    0x8(%ebp),%esi
501cac:	33 db                	xor    %ebx,%ebx
501cae:	57                   	push   %edi
501caf:	8b 78 28             	mov    0x28(%eax),%edi
501cb2:	8b 76 08             	mov    0x8(%esi),%esi
501cb5:	89 75 fc             	mov    %esi,-0x4(%ebp)
501cb8:	39 58 2c             	cmp    %ebx,0x2c(%eax)
501cbb:	0f 8e 9d 00 00 00    	jle    0x501d5e
501cc1:	8b 07                	mov    (%edi),%eax
501cc3:	8b 50 14             	mov    0x14(%eax),%edx
501cc6:	85 d2                	test   %edx,%edx
501cc8:	74 04                	je     0x501cce
501cca:	8b 12                	mov    (%edx),%edx
501ccc:	eb 02                	jmp    0x501cd0
501cce:	33 d2                	xor    %edx,%edx
501cd0:	8b 4e 6c             	mov    0x6c(%esi),%ecx
501cd3:	8b 47 08             	mov    0x8(%edi),%eax
501cd6:	89 45 08             	mov    %eax,0x8(%ebp)
501cd9:	39 4e 70             	cmp    %ecx,0x70(%esi)
501cdc:	7f 14                	jg     0x501cf2
501cde:	6a 00                	push   $0x0
501ce0:	52                   	push   %edx
501ce1:	50                   	push   %eax
501ce2:	68 9d 00 00 00       	push   $0x9d
501ce7:	56                   	push   %esi
501ce8:	e8 13 48 00 00       	call   0x506500
501ced:	83 c4 14             	add    $0x14,%esp
501cf0:	eb 31                	jmp    0x501d23
501cf2:	8d 41 01             	lea    0x1(%ecx),%eax
501cf5:	89 46 6c             	mov    %eax,0x6c(%esi)
501cf8:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
501cfb:	8b 46 68             	mov    0x68(%esi),%eax
501cfe:	8b 75 08             	mov    0x8(%ebp),%esi
501d01:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
501d05:	8b 75 fc             	mov    -0x4(%ebp),%esi
501d08:	c7 04 88 9d 00 00 00 	movl   $0x9d,(%eax,%ecx,4)
501d0f:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
501d13:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
501d1a:	00
501d1b:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
501d22:	00
501d23:	8b 06                	mov    (%esi),%eax
501d25:	8b 57 04             	mov    0x4(%edi),%edx
501d28:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
501d2c:	74 0e                	je     0x501d3c
501d2e:	52                   	push   %edx
501d2f:	6a f8                	push   $0xfffffff8
501d31:	50                   	push   %eax
501d32:	e8 79 1f 00 00       	call   0x503cb0
501d37:	83 c4 0c             	add    $0xc,%esp
501d3a:	eb 12                	jmp    0x501d4e
501d3c:	8b 46 6c             	mov    0x6c(%esi),%eax
501d3f:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
501d42:	8b 46 68             	mov    0x68(%esi),%eax
501d45:	c6 44 88 ed f8       	movb   $0xf8,-0x13(%eax,%ecx,4)
501d4a:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
501d4e:	8b 45 0c             	mov    0xc(%ebp),%eax
501d51:	43                   	inc    %ebx
501d52:	83 c7 10             	add    $0x10,%edi
501d55:	3b 58 2c             	cmp    0x2c(%eax),%ebx
501d58:	0f 8c 63 ff ff ff    	jl     0x501cc1
501d5e:	5f                   	pop    %edi
501d5f:	5e                   	pop    %esi
501d60:	5b                   	pop    %ebx
501d61:	8b e5                	mov    %ebp,%esp
501d63:	5d                   	pop    %ebp
501d64:	c3                   	ret
501d65:	cc                   	int3
501d66:	cc                   	int3
501d67:	cc                   	int3
501d68:	cc                   	int3
501d69:	cc                   	int3
501d6a:	cc                   	int3
501d6b:	cc                   	int3
501d6c:	cc                   	int3
501d6d:	cc                   	int3
501d6e:	cc                   	int3
501d6f:	cc                   	int3
501d70:	55                   	push   %ebp
501d71:	8b ec                	mov    %esp,%ebp
501d73:	81 ec 18 01 00 00    	sub    $0x118,%esp
501d79:	53                   	push   %ebx
501d7a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
501d7d:	56                   	push   %esi
501d7e:	57                   	push   %edi
501d7f:	8b 7d 10             	mov    0x10(%ebp),%edi
501d82:	57                   	push   %edi
501d83:	53                   	push   %ebx
501d84:	e8 37 61 02 00       	call   0x527ec0
501d89:	8b f0                	mov    %eax,%esi
501d8b:	83 c4 08             	add    $0x8,%esp
501d8e:	83 fe 01             	cmp    $0x1,%esi
501d91:	0f 85 83 00 00 00    	jne    0x501e1a
501d97:	68 14 01 00 00       	push   $0x114
501d9c:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
501da2:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
501da9:	6a 00                	push   $0x0
501dab:	50                   	push   %eax
501dac:	e8 4f 1c 0e 00       	call   0x5e3a00
501db1:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
501db7:	89 9d e8 fe ff ff    	mov    %ebx,-0x118(%ebp)
501dbd:	50                   	push   %eax
501dbe:	e8 cd fe 02 00       	call   0x531c90
501dc3:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
501dc9:	83 c4 10             	add    $0x10,%esp
501dcc:	85 c0                	test   %eax,%eax
501dce:	8b 45 08             	mov    0x8(%ebp),%eax
501dd1:	74 1b                	je     0x501dee
501dd3:	57                   	push   %edi
501dd4:	68 04 d0 6a 00       	push   $0x6ad004
501dd9:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
501ddf:	50                   	push   %eax
501de0:	e8 eb 14 02 00       	call   0x5232d0
501de5:	8b 45 08             	mov    0x8(%ebp),%eax
501de8:	83 c4 10             	add    $0x10,%esp
501deb:	89 75 fc             	mov    %esi,-0x4(%ebp)
501dee:	85 ff                	test   %edi,%edi
501df0:	74 0a                	je     0x501dfc
501df2:	57                   	push   %edi
501df3:	50                   	push   %eax
501df4:	e8 77 f5 01 00       	call   0x521370
501df9:	83 c4 08             	add    $0x8,%esp
501dfc:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
501e02:	50                   	push   %eax
501e03:	e8 78 22 03 00       	call   0x534080
501e08:	83 c4 04             	add    $0x4,%esp
501e0b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
501e0f:	74 29                	je     0x501e3a
501e11:	5f                   	pop    %edi
501e12:	5e                   	pop    %esi
501e13:	33 c0                	xor    %eax,%eax
501e15:	5b                   	pop    %ebx
501e16:	8b e5                	mov    %ebp,%esp
501e18:	5d                   	pop    %ebp
501e19:	c3                   	ret
501e1a:	85 f6                	test   %esi,%esi
501e1c:	79 1c                	jns    0x501e3a
501e1e:	57                   	push   %edi
501e1f:	68 ec 85 6b 00       	push   $0x6b85ec
501e24:	6a 01                	push   $0x1
501e26:	ff 75 08             	push   0x8(%ebp)
501e29:	e8 a2 14 02 00       	call   0x5232d0
501e2e:	83 c4 10             	add    $0x10,%esp
501e31:	33 c0                	xor    %eax,%eax
501e33:	5f                   	pop    %edi
501e34:	5e                   	pop    %esi
501e35:	5b                   	pop    %ebx
501e36:	8b e5                	mov    %ebp,%esp
501e38:	5d                   	pop    %ebp
501e39:	c3                   	ret
501e3a:	8b 43 10             	mov    0x10(%ebx),%eax
501e3d:	03 f6                	add    %esi,%esi
501e3f:	5f                   	pop    %edi
501e40:	8b 44 f0 04          	mov    0x4(%eax,%esi,8),%eax
501e44:	5e                   	pop    %esi
501e45:	5b                   	pop    %ebx
501e46:	8b e5                	mov    %ebp,%esp
501e48:	5d                   	pop    %ebp
501e49:	c3                   	ret
501e4a:	cc                   	int3
501e4b:	cc                   	int3
501e4c:	cc                   	int3
501e4d:	cc                   	int3
501e4e:	cc                   	int3
501e4f:	cc                   	int3
501e50:	55                   	push   %ebp
501e51:	8b ec                	mov    %esp,%ebp
501e53:	53                   	push   %ebx
501e54:	8b 5d 0c             	mov    0xc(%ebp),%ebx
501e57:	57                   	push   %edi
501e58:	8b 7d 08             	mov    0x8(%ebp),%edi
501e5b:	6a 00                	push   $0x0
501e5d:	53                   	push   %ebx
501e5e:	8d 87 94 01 00 00    	lea    0x194(%edi),%eax
501e64:	50                   	push   %eax
501e65:	e8 66 01 00 00       	call   0x501fd0
501e6a:	83 c4 0c             	add    $0xc,%esp
501e6d:	8b 40 08             	mov    0x8(%eax),%eax
501e70:	85 c0                	test   %eax,%eax
501e72:	0f 85 ba 00 00 00    	jne    0x501f32
501e78:	39 45 10             	cmp    %eax,0x10(%ebp)
501e7b:	0f 84 b1 00 00 00    	je     0x501f32
501e81:	85 db                	test   %ebx,%ebx
501e83:	75 04                	jne    0x501e89
501e85:	33 c9                	xor    %ecx,%ecx
501e87:	eb 16                	jmp    0x501e9f
501e89:	8b cb                	mov    %ebx,%ecx
501e8b:	8d 51 01             	lea    0x1(%ecx),%edx
501e8e:	66 90                	xchg   %ax,%ax
501e90:	8a 01                	mov    (%ecx),%al
501e92:	41                   	inc    %ecx
501e93:	84 c0                	test   %al,%al
501e95:	75 f9                	jne    0x501e90
501e97:	2b ca                	sub    %edx,%ecx
501e99:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
501e9f:	8d 41 01             	lea    0x1(%ecx),%eax
501ea2:	56                   	push   %esi
501ea3:	89 45 08             	mov    %eax,0x8(%ebp)
501ea6:	83 c0 3c             	add    $0x3c,%eax
501ea9:	6a 00                	push   $0x0
501eab:	50                   	push   %eax
501eac:	85 ff                	test   %edi,%edi
501eae:	74 0b                	je     0x501ebb
501eb0:	57                   	push   %edi
501eb1:	e8 2a f5 01 00       	call   0x5213e0
501eb6:	83 c4 0c             	add    $0xc,%esp
501eb9:	eb 08                	jmp    0x501ec3
501ebb:	e8 a0 f0 02 00       	call   0x530f60
501ec0:	83 c4 08             	add    $0x8,%esp
501ec3:	8b f0                	mov    %eax,%esi
501ec5:	85 f6                	test   %esi,%esi
501ec7:	74 66                	je     0x501f2f
501ec9:	8b 45 08             	mov    0x8(%ebp),%eax
501ecc:	83 c0 3c             	add    $0x3c,%eax
501ecf:	50                   	push   %eax
501ed0:	6a 00                	push   $0x0
501ed2:	56                   	push   %esi
501ed3:	e8 28 1b 0e 00       	call   0x5e3a00
501ed8:	83 c4 0c             	add    $0xc,%esp
501edb:	85 f6                	test   %esi,%esi
501edd:	74 50                	je     0x501f2f
501edf:	ff 75 08             	push   0x8(%ebp)
501ee2:	8d 46 3c             	lea    0x3c(%esi),%eax
501ee5:	c6 46 04 01          	movb   $0x1,0x4(%esi)
501ee9:	53                   	push   %ebx
501eea:	50                   	push   %eax
501eeb:	89 06                	mov    %eax,(%esi)
501eed:	89 46 14             	mov    %eax,0x14(%esi)
501ef0:	c6 46 18 02          	movb   $0x2,0x18(%esi)
501ef4:	89 46 28             	mov    %eax,0x28(%esi)
501ef7:	c6 46 2c 03          	movb   $0x3,0x2c(%esi)
501efb:	e8 00 10 0e 00       	call   0x5e2f00
501f00:	56                   	push   %esi
501f01:	ff 36                	push   (%esi)
501f03:	8d 87 94 01 00 00    	lea    0x194(%edi),%eax
501f09:	50                   	push   %eax
501f0a:	e8 91 bb 02 00       	call   0x52daa0
501f0f:	8b d0                	mov    %eax,%edx
501f11:	83 c4 18             	add    $0x18,%esp
501f14:	85 d2                	test   %edx,%edx
501f16:	74 17                	je     0x501f2f
501f18:	57                   	push   %edi
501f19:	e8 72 f9 02 00       	call   0x531890
501f1e:	52                   	push   %edx
501f1f:	57                   	push   %edi
501f20:	e8 4b f4 01 00       	call   0x521370
501f25:	83 c4 0c             	add    $0xc,%esp
501f28:	33 c0                	xor    %eax,%eax
501f2a:	5e                   	pop    %esi
501f2b:	5f                   	pop    %edi
501f2c:	5b                   	pop    %ebx
501f2d:	5d                   	pop    %ebp
501f2e:	c3                   	ret
501f2f:	8b c6                	mov    %esi,%eax
501f31:	5e                   	pop    %esi
501f32:	5f                   	pop    %edi
501f33:	5b                   	pop    %ebx
501f34:	5d                   	pop    %ebp
501f35:	c3                   	ret
501f36:	cc                   	int3
501f37:	cc                   	int3
501f38:	cc                   	int3
501f39:	cc                   	int3
501f3a:	cc                   	int3
501f3b:	cc                   	int3
501f3c:	cc                   	int3
501f3d:	cc                   	int3
501f3e:	cc                   	int3
501f3f:	cc                   	int3
501f40:	55                   	push   %ebp
501f41:	8b ec                	mov    %esp,%ebp
501f43:	56                   	push   %esi
501f44:	8b 75 0c             	mov    0xc(%ebp),%esi
501f47:	85 f6                	test   %esi,%esi
501f49:	74 7b                	je     0x501fc6
501f4b:	57                   	push   %edi
501f4c:	8b 7d 08             	mov    0x8(%ebp),%edi
501f4f:	90                   	nop
501f50:	f6 46 04 01          	testb  $0x1,0x4(%esi)
501f54:	75 6f                	jne    0x501fc5
501f56:	80 3e 2c             	cmpb   $0x2c,(%esi)
501f59:	75 17                	jne    0x501f72
501f5b:	ff 76 10             	push   0x10(%esi)
501f5e:	57                   	push   %edi
501f5f:	e8 dc ff ff ff       	call   0x501f40
501f64:	8b 76 0c             	mov    0xc(%esi),%esi
501f67:	83 c4 08             	add    $0x8,%esp
501f6a:	85 f6                	test   %esi,%esi
501f6c:	75 e2                	jne    0x501f50
501f6e:	5f                   	pop    %edi
501f6f:	5e                   	pop    %esi
501f70:	5d                   	pop    %ebp
501f71:	c3                   	ret
501f72:	80 3e 35             	cmpb   $0x35,(%esi)
501f75:	75 4e                	jne    0x501fc5
501f77:	8b 46 10             	mov    0x10(%esi),%eax
501f7a:	53                   	push   %ebx
501f7b:	8b 5e 0c             	mov    0xc(%esi),%ebx
501f7e:	89 45 0c             	mov    %eax,0xc(%ebp)
501f81:	80 38 a4             	cmpb   $0xa4,(%eax)
501f84:	75 1e                	jne    0x501fa4
501f86:	53                   	push   %ebx
501f87:	e8 d4 53 02 00       	call   0x527360
501f8c:	83 c4 04             	add    $0x4,%esp
501f8f:	85 c0                	test   %eax,%eax
501f91:	74 0e                	je     0x501fa1
501f93:	56                   	push   %esi
501f94:	53                   	push   %ebx
501f95:	ff 75 0c             	push   0xc(%ebp)
501f98:	57                   	push   %edi
501f99:	e8 c2 96 ff ff       	call   0x4fb660
501f9e:	83 c4 10             	add    $0x10,%esp
501fa1:	8b 45 0c             	mov    0xc(%ebp),%eax
501fa4:	80 3b a4             	cmpb   $0xa4,(%ebx)
501fa7:	75 1b                	jne    0x501fc4
501fa9:	50                   	push   %eax
501faa:	e8 b1 53 02 00       	call   0x527360
501faf:	83 c4 04             	add    $0x4,%esp
501fb2:	85 c0                	test   %eax,%eax
501fb4:	74 0e                	je     0x501fc4
501fb6:	56                   	push   %esi
501fb7:	ff 75 0c             	push   0xc(%ebp)
501fba:	53                   	push   %ebx
501fbb:	57                   	push   %edi