506e29:	53                   	push   %ebx
506e2a:	e8 e1 9a 00 00       	call   0x510910
506e2f:	83 c4 10             	add    $0x10,%esp
506e32:	85 c0                	test   %eax,%eax
506e34:	0f 85 64 01 00 00    	jne    0x506f9e
506e3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
506e3d:	3c 01                	cmp    $0x1,%al
506e3f:	75 14                	jne    0x506e55
506e41:	68 11 09 01 00       	push   $0x10911
506e46:	e8 65 8f 01 00       	call   0x51fdb0
506e4b:	83 c4 04             	add    $0x4,%esp
506e4e:	5f                   	pop    %edi
506e4f:	5e                   	pop    %esi
506e50:	5b                   	pop    %ebx
506e51:	8b e5                	mov    %ebp,%esp
506e53:	5d                   	pop    %ebp
506e54:	c3                   	ret
506e55:	3c 02                	cmp    $0x2,%al
506e57:	75 3d                	jne    0x506e96
506e59:	85 f6                	test   %esi,%esi
506e5b:	0f 85 3b 01 00 00    	jne    0x506f9c
506e61:	6a 01                	push   $0x1
506e63:	57                   	push   %edi
506e64:	8d 45 e8             	lea    -0x18(%ebp),%eax
506e67:	50                   	push   %eax
506e68:	8d 45 10             	lea    0x10(%ebp),%eax
506e6b:	50                   	push   %eax
506e6c:	53                   	push   %ebx
506e6d:	e8 ae b4 fe ff       	call   0x4f2320
506e72:	83 c4 14             	add    $0x14,%esp
506e75:	85 c0                	test   %eax,%eax
506e77:	0f 85 21 01 00 00    	jne    0x506f9e
506e7d:	8b 45 10             	mov    0x10(%ebp),%eax
506e80:	85 c0                	test   %eax,%eax
506e82:	0f 84 ac 00 00 00    	je     0x506f34
506e88:	50                   	push   %eax
506e89:	e8 32 b2 00 00       	call   0x5120c0
506e8e:	83 c4 04             	add    $0x4,%esp
506e91:	e9 9e 00 00 00       	jmp    0x506f34
506e96:	6a 00                	push   $0x0
506e98:	8d 45 10             	lea    0x10(%ebp),%eax
506e9b:	50                   	push   %eax
506e9c:	57                   	push   %edi
506e9d:	53                   	push   %ebx
506e9e:	e8 5d fd fe ff       	call   0x4f6c00
506ea3:	83 c4 10             	add    $0x10,%esp
506ea6:	85 c0                	test   %eax,%eax
506ea8:	0f 85 f0 00 00 00    	jne    0x506f9e
506eae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506eb1:	85 f6                	test   %esi,%esi
506eb3:	0f 95 c2             	setne  %dl
506eb6:	0f 45 c8             	cmovne %eax,%ecx
506eb9:	fe ca                	dec    %dl
506ebb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
506ebe:	80 e2 02             	and    $0x2,%dl
506ec1:	89 55 ec             	mov    %edx,-0x14(%ebp)
506ec4:	52                   	push   %edx
506ec5:	51                   	push   %ecx
506ec6:	8d 45 f4             	lea    -0xc(%ebp),%eax
506ec9:	50                   	push   %eax
506eca:	8d 45 f8             	lea    -0x8(%ebp),%eax
506ecd:	50                   	push   %eax
506ece:	53                   	push   %ebx
506ecf:	e8 4c b4 fe ff       	call   0x4f2320
506ed4:	8b f0                	mov    %eax,%esi
506ed6:	83 c4 14             	add    $0x14,%esp
506ed9:	85 f6                	test   %esi,%esi
506edb:	75 73                	jne    0x506f50
506edd:	8b 45 f8             	mov    -0x8(%ebp),%eax
506ee0:	85 c0                	test   %eax,%eax
506ee2:	74 09                	je     0x506eed
506ee4:	50                   	push   %eax
506ee5:	e8 d6 b1 00 00       	call   0x5120c0
506eea:	83 c4 04             	add    $0x4,%esp
506eed:	8b 75 14             	mov    0x14(%ebp),%esi
506ef0:	8b 45 f4             	mov    -0xc(%ebp),%eax
506ef3:	85 f6                	test   %esi,%esi
506ef5:	74 0b                	je     0x506f02
506ef7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
506efa:	8b 55 ec             	mov    -0x14(%ebp),%edx
506efd:	3b 45 0c             	cmp    0xc(%ebp),%eax
506f00:	77 c2                	ja     0x506ec4
506f02:	56                   	push   %esi
506f03:	50                   	push   %eax
506f04:	ff 75 e8             	push   -0x18(%ebp)
506f07:	ff 75 fc             	push   -0x4(%ebp)
506f0a:	ff 75 10             	push   0x10(%ebp)
506f0d:	53                   	push   %ebx
506f0e:	e8 3d b2 00 00       	call   0x512150
506f13:	8b 4d 10             	mov    0x10(%ebp),%ecx
506f16:	83 c4 18             	add    $0x18,%esp
506f19:	89 45 e8             	mov    %eax,-0x18(%ebp)
506f1c:	85 c9                	test   %ecx,%ecx
506f1e:	74 0c                	je     0x506f2c
506f20:	51                   	push   %ecx
506f21:	e8 9a b1 00 00       	call   0x5120c0
506f26:	8b 45 e8             	mov    -0x18(%ebp),%eax
506f29:	83 c4 04             	add    $0x4,%esp
506f2c:	85 c0                	test   %eax,%eax
506f2e:	75 6e                	jne    0x506f9e
506f30:	85 f6                	test   %esi,%esi
506f32:	75 68                	jne    0x506f9c
506f34:	a1 18 19 72 00       	mov    0x721918,%eax
506f39:	33 d2                	xor    %edx,%edx
506f3b:	f7 73 20             	divl   0x20(%ebx)
506f3e:	40                   	inc    %eax
506f3f:	89 45 10             	mov    %eax,0x10(%ebp)
506f42:	4f                   	dec    %edi
506f43:	3b f8                	cmp    %eax,%edi
506f45:	74 fb                	je     0x506f42
506f47:	83 ff 02             	cmp    $0x2,%edi
506f4a:	73 1d                	jae    0x506f69
506f4c:	33 c0                	xor    %eax,%eax
506f4e:	eb 3e                	jmp    0x506f8e
506f50:	8b 45 10             	mov    0x10(%ebp),%eax
506f53:	85 c0                	test   %eax,%eax
506f55:	74 09                	je     0x506f60
506f57:	50                   	push   %eax
506f58:	e8 63 b1 00 00       	call   0x5120c0
506f5d:	83 c4 04             	add    $0x4,%esp
506f60:	5f                   	pop    %edi
506f61:	8b c6                	mov    %esi,%eax
506f63:	5e                   	pop    %esi
506f64:	5b                   	pop    %ebx
506f65:	8b e5                	mov    %ebp,%esp
506f67:	5d                   	pop    %ebp
506f68:	c3                   	ret
506f69:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
506f6e:	8d 77 fe             	lea    -0x2(%edi),%esi
506f71:	f7 63 24             	mull   0x24(%ebx)
506f74:	8b c6                	mov    %esi,%eax
506f76:	8b ca                	mov    %edx,%ecx
506f78:	33 d2                	xor    %edx,%edx
506f7a:	c1 e9 02             	shr    $0x2,%ecx
506f7d:	41                   	inc    %ecx
506f7e:	f7 f1                	div    %ecx
506f80:	2b f2                	sub    %edx,%esi
506f82:	83 c6 02             	add    $0x2,%esi
506f85:	3b 75 10             	cmp    0x10(%ebp),%esi
506f88:	8d 46 01             	lea    0x1(%esi),%eax
506f8b:	0f 45 c6             	cmovne %esi,%eax
506f8e:	3b c7                	cmp    %edi,%eax
506f90:	8b 45 10             	mov    0x10(%ebp),%eax
506f93:	74 ad                	je     0x506f42
506f95:	c6 43 13 01          	movb   $0x1,0x13(%ebx)
506f99:	89 7b 2c             	mov    %edi,0x2c(%ebx)
506f9c:	33 c0                	xor    %eax,%eax
506f9e:	5f                   	pop    %edi
506f9f:	5e                   	pop    %esi
506fa0:	5b                   	pop    %ebx
506fa1:	8b e5                	mov    %ebp,%esp
506fa3:	5d                   	pop    %ebp
506fa4:	c3                   	ret
506fa5:	cc                   	int3
506fa6:	cc                   	int3
506fa7:	cc                   	int3
506fa8:	cc                   	int3
506fa9:	cc                   	int3
506faa:	cc                   	int3
506fab:	cc                   	int3
506fac:	cc                   	int3
506fad:	cc                   	int3
506fae:	cc                   	int3
506faf:	cc                   	int3
506fb0:	55                   	push   %ebp
506fb1:	8b ec                	mov    %esp,%ebp
506fb3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506fb6:	83 ec 0c             	sub    $0xc,%esp
506fb9:	f6 41 38 04          	testb  $0x4,0x38(%ecx)
506fbd:	74 06                	je     0x506fc5
506fbf:	33 c0                	xor    %eax,%eax
506fc1:	8b e5                	mov    %ebp,%esp
506fc3:	5d                   	pop    %ebp
506fc4:	c3                   	ret
506fc5:	8b 45 08             	mov    0x8(%ebp),%eax
506fc8:	8b 00                	mov    (%eax),%eax
506fca:	8b 40 08             	mov    0x8(%eax),%eax
506fcd:	89 45 fc             	mov    %eax,-0x4(%ebp)
506fd0:	85 c0                	test   %eax,%eax
506fd2:	74 eb                	je     0x506fbf
506fd4:	83 38 00             	cmpl   $0x0,(%eax)
506fd7:	53                   	push   %ebx
506fd8:	56                   	push   %esi
506fd9:	57                   	push   %edi
506fda:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
506fe1:	0f 8e 2a 01 00 00    	jle    0x507111
506fe7:	8d 58 04             	lea    0x4(%eax),%ebx
506fea:	8b d0                	mov    %eax,%edx
506fec:	89 5d f8             	mov    %ebx,-0x8(%ebp)
506fef:	90                   	nop
506ff0:	8b 33                	mov    (%ebx),%esi
506ff2:	85 f6                	test   %esi,%esi
506ff4:	74 20                	je     0x507016
506ff6:	8b 46 04             	mov    0x4(%esi),%eax
506ff9:	a9 00 10 04 00       	test   $0x41000,%eax
506ffe:	74 16                	je     0x507016
507000:	a9 00 00 04 00       	test   $0x40000,%eax
507005:	74 08                	je     0x50700f
507007:	8b 46 14             	mov    0x14(%esi),%eax
50700a:	8b 70 04             	mov    0x4(%eax),%esi
50700d:	eb 03                	jmp    0x507012
50700f:	8b 76 0c             	mov    0xc(%esi),%esi
507012:	85 f6                	test   %esi,%esi
507014:	75 e0                	jne    0x506ff6
507016:	80 3e a4             	cmpb   $0xa4,(%esi)
507019:	75 42                	jne    0x50705d
50701b:	8b 45 10             	mov    0x10(%ebp),%eax
50701e:	39 46 1c             	cmp    %eax,0x1c(%esi)
507021:	75 3a                	jne    0x50705d
507023:	0f b7 56 20          	movzwl 0x20(%esi),%edx
507027:	66 85 d2             	test   %dx,%dx
50702a:	0f 88 ee 00 00 00    	js     0x50711e
507030:	8b 45 0c             	mov    0xc(%ebp),%eax
507033:	33 c9                	xor    %ecx,%ecx
507035:	0f b7 70 32          	movzwl 0x32(%eax),%esi
507039:	85 f6                	test   %esi,%esi
50703b:	0f 84 d9 00 00 00    	je     0x50711a
507041:	8b 40 04             	mov    0x4(%eax),%eax
507044:	66 3b 10             	cmp    (%eax),%dx
507047:	0f 84 d1 00 00 00    	je     0x50711e
50704d:	41                   	inc    %ecx
50704e:	83 c0 02             	add    $0x2,%eax
507051:	3b ce                	cmp    %esi,%ecx
507053:	7c ef                	jl     0x507044
507055:	8b 4d 0c             	mov    0xc(%ebp),%ecx
507058:	e9 9c 00 00 00       	jmp    0x5070f9
50705d:	8b 41 28             	mov    0x28(%ecx),%eax
507060:	85 c0                	test   %eax,%eax
507062:	0f 84 94 00 00 00    	je     0x5070fc
507068:	33 db                	xor    %ebx,%ebx
50706a:	33 ff                	xor    %edi,%edi
50706c:	66 3b 59 32          	cmp    0x32(%ecx),%bx
507070:	8b 5d f8             	mov    -0x8(%ebp),%ebx
507073:	0f 83 83 00 00 00    	jae    0x5070fc
507079:	8d 58 04             	lea    0x4(%eax),%ebx
50707c:	0f 1f 40 00          	nopl   0x0(%eax)
507080:	8b 41 04             	mov    0x4(%ecx),%eax
507083:	66 83 3c 78 fe       	cmpw   $0xfffe,(%eax,%edi,2)
507088:	75 60                	jne    0x5070ea
50708a:	8b 0b                	mov    (%ebx),%ecx
50708c:	85 c9                	test   %ecx,%ecx
50708e:	74 20                	je     0x5070b0
507090:	8b 41 04             	mov    0x4(%ecx),%eax
507093:	a9 00 10 04 00       	test   $0x41000,%eax
507098:	74 16                	je     0x5070b0
50709a:	a9 00 00 04 00       	test   $0x40000,%eax
50709f:	74 08                	je     0x5070a9
5070a1:	8b 41 14             	mov    0x14(%ecx),%eax
5070a4:	8b 48 04             	mov    0x4(%eax),%ecx
5070a7:	eb 03                	jmp    0x5070ac
5070a9:	8b 49 0c             	mov    0xc(%ecx),%ecx
5070ac:	85 c9                	test   %ecx,%ecx
5070ae:	75 e0                	jne    0x507090
5070b0:	8b c6                	mov    %esi,%eax
5070b2:	8b 50 04             	mov    0x4(%eax),%edx
5070b5:	f7 c2 00 10 04 00    	test   $0x41000,%edx
5070bb:	74 17                	je     0x5070d4
5070bd:	f7 c2 00 00 04 00    	test   $0x40000,%edx
5070c3:	74 08                	je     0x5070cd
5070c5:	8b 40 14             	mov    0x14(%eax),%eax
5070c8:	8b 40 04             	mov    0x4(%eax),%eax
5070cb:	eb 03                	jmp    0x5070d0
5070cd:	8b 40 0c             	mov    0xc(%eax),%eax
5070d0:	85 c0                	test   %eax,%eax
5070d2:	75 de                	jne    0x5070b2
5070d4:	ff 75 10             	push   0x10(%ebp)
5070d7:	51                   	push   %ecx
5070d8:	50                   	push   %eax
5070d9:	6a 00                	push   $0x0
5070db:	e8 f0 f3 01 00       	call   0x5264d0
5070e0:	83 c4 10             	add    $0x10,%esp
5070e3:	85 c0                	test   %eax,%eax
5070e5:	74 37                	je     0x50711e
5070e7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5070ea:	0f b7 41 32          	movzwl 0x32(%ecx),%eax
5070ee:	47                   	inc    %edi
5070ef:	83 c3 14             	add    $0x14,%ebx
5070f2:	3b f8                	cmp    %eax,%edi
5070f4:	7c 8a                	jl     0x507080
5070f6:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5070f9:	8b 55 fc             	mov    -0x4(%ebp),%edx
5070fc:	8b 45 f4             	mov    -0xc(%ebp),%eax
5070ff:	83 c3 14             	add    $0x14,%ebx
507102:	40                   	inc    %eax
507103:	89 5d f8             	mov    %ebx,-0x8(%ebp)
507106:	89 45 f4             	mov    %eax,-0xc(%ebp)
507109:	3b 02                	cmp    (%edx),%eax
50710b:	0f 8c df fe ff ff    	jl     0x506ff0
507111:	5f                   	pop    %edi
507112:	5e                   	pop    %esi
507113:	33 c0                	xor    %eax,%eax
507115:	5b                   	pop    %ebx
507116:	8b e5                	mov    %ebp,%esp
507118:	5d                   	pop    %ebp
507119:	c3                   	ret
50711a:	8b c8                	mov    %eax,%ecx
50711c:	eb db                	jmp    0x5070f9
50711e:	5f                   	pop    %edi
50711f:	5e                   	pop    %esi
507120:	b8 01 00 00 00       	mov    $0x1,%eax
507125:	5b                   	pop    %ebx
507126:	8b e5                	mov    %ebp,%esp
507128:	5d                   	pop    %ebp
507129:	c3                   	ret
50712a:	cc                   	int3
50712b:	cc                   	int3
50712c:	cc                   	int3
50712d:	cc                   	int3
50712e:	cc                   	int3
50712f:	cc                   	int3
507130:	55                   	push   %ebp
507131:	8b ec                	mov    %esp,%ebp
507133:	51                   	push   %ecx
507134:	53                   	push   %ebx
507135:	56                   	push   %esi
507136:	8b 75 14             	mov    0x14(%ebp),%esi
507139:	57                   	push   %edi
50713a:	8b 7d 08             	mov    0x8(%ebp),%edi
50713d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
507144:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
507148:	0f 85 ec 00 00 00    	jne    0x50723a
50714e:	8d 46 02             	lea    0x2(%esi),%eax
507151:	3b 47 14             	cmp    0x14(%edi),%eax
507154:	0f 8f e0 00 00 00    	jg     0x50723a
50715a:	ff 77 48             	push   0x48(%edi)
50715d:	e8 de c7 02 00       	call   0x533940
507162:	83 c4 04             	add    $0x4,%esp
507165:	85 c0                	test   %eax,%eax
507167:	74 0c                	je     0x507175
507169:	8b 4d 20             	mov    0x20(%ebp),%ecx
50716c:	5f                   	pop    %edi
50716d:	5e                   	pop    %esi
50716e:	5b                   	pop    %ebx
50716f:	89 01                	mov    %eax,(%ecx)
507171:	8b e5                	mov    %ebp,%esp
507173:	5d                   	pop    %ebp
507174:	c3                   	ret
507175:	8b 47 38             	mov    0x38(%edi),%eax
507178:	89 45 08             	mov    %eax,0x8(%ebp)
50717b:	8d 45 fc             	lea    -0x4(%ebp),%eax
50717e:	50                   	push   %eax
50717f:	56                   	push   %esi
507180:	57                   	push   %edi
507181:	e8 aa bb fe ff       	call   0x4f2d30
507186:	83 c4 0c             	add    $0xc,%esp
507189:	85 c0                	test   %eax,%eax
50718b:	75 dc                	jne    0x507169
50718d:	8b 5d 10             	mov    0x10(%ebp),%ebx
507190:	8d 46 02             	lea    0x2(%esi),%eax
507193:	0f b7 c0             	movzwl %ax,%eax