504e45:	33 c0                	xor    %eax,%eax
504e47:	eb 6b                	jmp    0x504eb4
504e49:	8b 5e 6c             	mov    0x6c(%esi),%ebx
504e4c:	39 5e 70             	cmp    %ebx,0x70(%esi)
504e4f:	7f 15                	jg     0x504e66
504e51:	6a 00                	push   $0x0
504e53:	ff 75 e8             	push   -0x18(%ebp)
504e56:	52                   	push   %edx
504e57:	6a 24                	push   $0x24
504e59:	56                   	push   %esi
504e5a:	e8 a1 16 00 00       	call   0x506500
504e5f:	83 c4 14             	add    $0x14,%esp
504e62:	8b d8                	mov    %eax,%ebx
504e64:	eb 31                	jmp    0x504e97
504e66:	8b 7d 08             	mov    0x8(%ebp),%edi
504e69:	8d 43 01             	lea    0x1(%ebx),%eax
504e6c:	89 46 6c             	mov    %eax,0x6c(%esi)
504e6f:	8d 0c 9b             	lea    (%ebx,%ebx,4),%ecx
504e72:	8b 46 68             	mov    0x68(%esi),%eax
504e75:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
504e79:	8b 55 e8             	mov    -0x18(%ebp),%edx
504e7c:	c7 04 88 24 00 00 00 	movl   $0x24,(%eax,%ecx,4)
504e83:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504e87:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
504e8e:	00
504e8f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504e96:	00
504e97:	8b 45 0c             	mov    0xc(%ebp),%eax
504e9a:	ff 75 dc             	push   -0x24(%ebp)
504e9d:	ff 70 0c             	push   0xc(%eax)
504ea0:	56                   	push   %esi
504ea1:	e8 2a 53 ff ff       	call   0x4fa1d0
504ea6:	8b 45 f0             	mov    -0x10(%ebp),%eax
504ea9:	83 c4 0c             	add    $0xc,%esp
504eac:	89 45 ec             	mov    %eax,-0x14(%ebp)
504eaf:	b8 01 00 00 00       	mov    $0x1,%eax
504eb4:	03 45 d4             	add    -0x2c(%ebp),%eax
504eb7:	8d 4b 01             	lea    0x1(%ebx),%ecx
504eba:	8b 55 14             	mov    0x14(%ebp),%edx
504ebd:	89 4d e0             	mov    %ecx,-0x20(%ebp)
504ec0:	89 45 d8             	mov    %eax,-0x28(%ebp)
504ec3:	8d 58 ff             	lea    -0x1(%eax),%ebx
504ec6:	85 d2                	test   %edx,%edx
504ec8:	7e 22                	jle    0x504eec
504eca:	8b 7d d0             	mov    -0x30(%ebp),%edi
504ecd:	83 c7 10             	add    $0x10,%edi
504ed0:	0f b7 07             	movzwl (%edi),%eax
504ed3:	8d 4b 01             	lea    0x1(%ebx),%ecx
504ed6:	66 85 c0             	test   %ax,%ax
504ed9:	8d 7f 14             	lea    0x14(%edi),%edi
504edc:	0f 45 cb             	cmovne %ebx,%ecx
504edf:	8b d9                	mov    %ecx,%ebx
504ee1:	83 ea 01             	sub    $0x1,%edx
504ee4:	75 ea                	jne    0x504ed0
504ee6:	8b 7d 08             	mov    0x8(%ebp),%edi
504ee9:	8b 55 14             	mov    0x14(%ebp),%edx
504eec:	8d 4a ff             	lea    -0x1(%edx),%ecx
504eef:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
504ef2:	85 c9                	test   %ecx,%ecx
504ef4:	0f 88 8a 00 00 00    	js     0x504f84
504efa:	8b 45 f8             	mov    -0x8(%ebp),%eax
504efd:	8d 3c 89             	lea    (%ecx,%ecx,4),%edi
504f00:	03 c1                	add    %ecx,%eax
504f02:	8d 7f 04             	lea    0x4(%edi),%edi
504f05:	8b 4d d0             	mov    -0x30(%ebp),%ecx
504f08:	89 45 0c             	mov    %eax,0xc(%ebp)
504f0b:	8d 3c b9             	lea    (%ecx,%edi,4),%edi
504f0e:	66 90                	xchg   %ax,%ax
504f10:	0f b7 07             	movzwl (%edi),%eax
504f13:	66 85 c0             	test   %ax,%ax
504f16:	74 05                	je     0x504f1d
504f18:	8d 50 ff             	lea    -0x1(%eax),%edx
504f1b:	eb 03                	jmp    0x504f20
504f1d:	8b d3                	mov    %ebx,%edx
504f1f:	4b                   	dec    %ebx
504f20:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504f23:	39 4e 70             	cmp    %ecx,0x70(%esi)
504f26:	7f 17                	jg     0x504f3f
504f28:	ff 75 0c             	push   0xc(%ebp)
504f2b:	52                   	push   %edx
504f2c:	ff 75 ec             	push   -0x14(%ebp)
504f2f:	6a 59                	push   $0x59
504f31:	56                   	push   %esi
504f32:	e8 c9 15 00 00       	call   0x506500
504f37:	8b 55 0c             	mov    0xc(%ebp),%edx
504f3a:	83 c4 14             	add    $0x14,%esp
504f3d:	eb 30                	jmp    0x504f6f
504f3f:	8d 41 01             	lea    0x1(%ecx),%eax
504f42:	89 46 6c             	mov    %eax,0x6c(%esi)
504f45:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504f48:	8b 46 68             	mov    0x68(%esi),%eax
504f4b:	8b 75 ec             	mov    -0x14(%ebp),%esi
504f4e:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504f52:	8b 55 0c             	mov    0xc(%ebp),%edx
504f55:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
504f59:	8b 75 cc             	mov    -0x34(%ebp),%esi
504f5c:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
504f63:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
504f67:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504f6e:	00
504f6f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
504f72:	4a                   	dec    %edx
504f73:	49                   	dec    %ecx
504f74:	89 55 0c             	mov    %edx,0xc(%ebp)
504f77:	83 ef 14             	sub    $0x14,%edi
504f7a:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
504f7d:	85 c9                	test   %ecx,%ecx
504f7f:	79 8f                	jns    0x504f10
504f81:	8b 7d 08             	mov    0x8(%ebp),%edi
504f84:	8b 55 f4             	mov    -0xc(%ebp),%edx
504f87:	8d 42 f6             	lea    -0xa(%edx),%eax
504f8a:	83 f8 04             	cmp    $0x4,%eax
504f8d:	0f 87 f1 01 00 00    	ja     0x505184
504f93:	ff 24 85 b4 53 50 00 	jmp    *0x5053b4(,%eax,4)
504f9a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504f9d:	8b 5d f8             	mov    -0x8(%ebp),%ebx
504fa0:	39 4e 70             	cmp    %ecx,0x70(%esi)
504fa3:	7f 15                	jg     0x504fba
504fa5:	8b 55 d8             	mov    -0x28(%ebp),%edx
504fa8:	53                   	push   %ebx
504fa9:	52                   	push   %edx
504faa:	ff 75 ec             	push   -0x14(%ebp)
504fad:	6a 59                	push   $0x59
504faf:	56                   	push   %esi
504fb0:	e8 4b 15 00 00       	call   0x506500
504fb5:	83 c4 14             	add    $0x14,%esp
504fb8:	eb 2d                	jmp    0x504fe7
504fba:	8b 55 ec             	mov    -0x14(%ebp),%edx
504fbd:	8d 41 01             	lea    0x1(%ecx),%eax
504fc0:	89 46 6c             	mov    %eax,0x6c(%esi)
504fc3:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
504fc6:	8b 46 68             	mov    0x68(%esi),%eax
504fc9:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
504fcd:	8b 55 d8             	mov    -0x28(%ebp),%edx
504fd0:	c7 04 88 59 00 00 00 	movl   $0x59,(%eax,%ecx,4)
504fd7:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
504fdb:	89 5c 88 0c          	mov    %ebx,0xc(%eax,%ecx,4)
504fdf:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
504fe6:	00
504fe7:	8b 4e 6c             	mov    0x6c(%esi),%ecx
504fea:	39 4e 70             	cmp    %ecx,0x70(%esi)
504fed:	7f 18                	jg     0x505007
504fef:	6a 00                	push   $0x0
504ff1:	ff 75 fc             	push   -0x4(%ebp)
504ff4:	ff 75 e4             	push   -0x1c(%ebp)
504ff7:	6a 78                	push   $0x78
504ff9:	56                   	push   %esi
504ffa:	e8 01 15 00 00       	call   0x506500
504fff:	8b 55 fc             	mov    -0x4(%ebp),%edx
505002:	83 c4 14             	add    $0x14,%esp
505005:	eb 31                	jmp    0x505038
505007:	8b 55 e4             	mov    -0x1c(%ebp),%edx
50500a:	8d 41 01             	lea    0x1(%ecx),%eax
50500d:	89 46 6c             	mov    %eax,0x6c(%esi)
505010:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
505013:	8b 46 68             	mov    0x68(%esi),%eax
505016:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
50501a:	8b 55 fc             	mov    -0x4(%ebp),%edx
50501d:	c7 04 88 78 00 00 00 	movl   $0x78,(%eax,%ecx,4)
505024:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
505028:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
50502f:	00
505030:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
505037:	00
505038:	8b 4e 6c             	mov    0x6c(%esi),%ecx
50503b:	39 4e 70             	cmp    %ecx,0x70(%esi)
50503e:	7f 12                	jg     0x505052
505040:	52                   	push   %edx
505041:	53                   	push   %ebx
505042:	ff 75 e4             	push   -0x1c(%ebp)
505045:	6a 79                	push   $0x79
505047:	56                   	push   %esi
505048:	e8 b3 14 00 00       	call   0x506500
50504d:	83 c4 14             	add    $0x14,%esp
505050:	eb 2d                	jmp    0x50507f
505052:	8b 7d e4             	mov    -0x1c(%ebp),%edi
505055:	8d 41 01             	lea    0x1(%ecx),%eax
505058:	89 46 6c             	mov    %eax,0x6c(%esi)
50505b:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50505e:	8b 46 68             	mov    0x68(%esi),%eax
505061:	89 7c 88 04          	mov    %edi,0x4(%eax,%ecx,4)
505065:	8b 7d 08             	mov    0x8(%ebp),%edi
505068:	c7 04 88 79 00 00 00 	movl   $0x79,(%eax,%ecx,4)
50506f:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
505073:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
505077:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
50507e:	00
50507f:	8b 46 6c             	mov    0x6c(%esi),%eax
505082:	8b 5d 14             	mov    0x14(%ebp),%ebx
505085:	85 c0                	test   %eax,%eax
505087:	0f 8e 66 01 00 00    	jle    0x5051f3
50508d:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
505090:	ba 08 00 00 00       	mov    $0x8,%edx
505095:	8b 46 68             	mov    0x68(%esi),%eax
505098:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
50509d:	e9 51 01 00 00       	jmp    0x5051f3
5050a2:	8b 55 18             	mov    0x18(%ebp),%edx
5050a5:	8b 42 10             	mov    0x10(%edx),%eax
5050a8:	8b 56 6c             	mov    0x6c(%esi),%edx
5050ab:	89 45 18             	mov    %eax,0x18(%ebp)
5050ae:	39 56 70             	cmp    %edx,0x70(%esi)
5050b1:	7f 19                	jg     0x5050cc
5050b3:	ff 75 fc             	push   -0x4(%ebp)
5050b6:	8b 5d 14             	mov    0x14(%ebp),%ebx
5050b9:	53                   	push   %ebx
5050ba:	ff 75 f8             	push   -0x8(%ebp)
5050bd:	6a 5b                	push   $0x5b
5050bf:	56                   	push   %esi
5050c0:	e8 3b 14 00 00       	call   0x506500
5050c5:	83 c4 14             	add    $0x14,%esp
5050c8:	8b d0                	mov    %eax,%edx
5050ca:	eb 33                	jmp    0x5050ff
5050cc:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5050cf:	8d 42 01             	lea    0x1(%edx),%eax
5050d2:	8b 7d fc             	mov    -0x4(%ebp),%edi
5050d5:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5050d8:	89 46 6c             	mov    %eax,0x6c(%esi)
5050db:	8b 46 68             	mov    0x68(%esi),%eax
5050de:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
5050e2:	8b 5d 14             	mov    0x14(%ebp),%ebx
5050e5:	89 7c 88 0c          	mov    %edi,0xc(%eax,%ecx,4)
5050e9:	8b 7d 08             	mov    0x8(%ebp),%edi
5050ec:	c7 04 88 5b 00 00 00 	movl   $0x5b,(%eax,%ecx,4)
5050f3:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5050f7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5050fe:	00
5050ff:	8b 0e                	mov    (%esi),%ecx
505101:	80 79 51 00          	cmpb   $0x0,0x51(%ecx)
505105:	74 15                	je     0x50511c
505107:	83 fb f4             	cmp    $0xfffffff4,%ebx
50510a:	74 5e                	je     0x50516a
50510c:	8b 45 18             	mov    0x18(%ebp),%eax
50510f:	50                   	push   %eax
505110:	53                   	push   %ebx
505111:	51                   	push   %ecx
505112:	e8 99 eb ff ff       	call   0x503cb0
505117:	83 c4 0c             	add    $0xc,%esp
50511a:	eb 4e                	jmp    0x50516a
50511c:	85 d2                	test   %edx,%edx
50511e:	79 04                	jns    0x505124
505120:	8b 56 6c             	mov    0x6c(%esi),%edx
505123:	4a                   	dec    %edx
505124:	8b 46 68             	mov    0x68(%esi),%eax
505127:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50512a:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
50512d:	85 db                	test   %ebx,%ebx
50512f:	79 2a                	jns    0x50515b
505131:	80 79 01 00          	cmpb   $0x0,0x1(%ecx)
505135:	75 24                	jne    0x50515b
505137:	8b 45 18             	mov    0x18(%ebp),%eax
50513a:	83 fb fd             	cmp    $0xfffffffd,%ebx
50513d:	75 08                	jne    0x505147
50513f:	89 41 10             	mov    %eax,0x10(%ecx)
505142:	88 59 01             	mov    %bl,0x1(%ecx)
505145:	eb 23                	jmp    0x50516a
505147:	85 c0                	test   %eax,%eax
505149:	74 1f                	je     0x50516a
50514b:	89 41 10             	mov    %eax,0x10(%ecx)
50514e:	88 59 01             	mov    %bl,0x1(%ecx)
505151:	83 fb f4             	cmp    $0xfffffff4,%ebx
505154:	75 14                	jne    0x50516a
505156:	ff 40 0c             	incl   0xc(%eax)
505159:	eb 0f                	jmp    0x50516a
50515b:	8b 45 18             	mov    0x18(%ebp),%eax
50515e:	53                   	push   %ebx
50515f:	50                   	push   %eax
505160:	51                   	push   %ecx
505161:	56                   	push   %esi
505162:	e8 d9 4a 05 00       	call   0x559c40
505167:	83 c4 10             	add    $0x10,%esp
50516a:	53                   	push   %ebx
50516b:	ff 75 f8             	push   -0x8(%ebp)
50516e:	ff 75 fc             	push   -0x4(%ebp)
505171:	ff 75 e4             	push   -0x1c(%ebp)
505174:	68 83 00 00 00       	push   $0x83
505179:	56                   	push   %esi
50517a:	e8 91 ca 03 00       	call   0x541c10
50517f:	83 c4 18             	add    $0x18,%esp
505182:	eb 6f                	jmp    0x5051f3
505184:	8b 4e 6c             	mov    0x6c(%esi),%ecx
505187:	83 fa 09             	cmp    $0x9,%edx
50518a:	8b 55 18             	mov    0x18(%ebp),%edx
50518d:	75 49                	jne    0x5051d8
50518f:	8b 52 08             	mov    0x8(%edx),%edx
505192:	8b 5d 14             	mov    0x14(%ebp),%ebx
505195:	39 4e 70             	cmp    %ecx,0x70(%esi)
505198:	7f 11                	jg     0x5051ab
50519a:	6a 00                	push   $0x0
50519c:	53                   	push   %ebx
50519d:	52                   	push   %edx
50519e:	6a 50                	push   $0x50
5051a0:	56                   	push   %esi
5051a1:	e8 5a 13 00 00       	call   0x506500
5051a6:	83 c4 14             	add    $0x14,%esp
5051a9:	eb 48                	jmp    0x5051f3
5051ab:	8d 41 01             	lea    0x1(%ecx),%eax
5051ae:	89 46 6c             	mov    %eax,0x6c(%esi)
5051b1:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5051b4:	8b 46 68             	mov    0x68(%esi),%eax
5051b7:	c7 04 88 50 00 00 00 	movl   $0x50,(%eax,%ecx,4)
5051be:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5051c2:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
5051c6:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5051cd:	00
5051ce:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5051d5:	00
5051d6:	eb 1b                	jmp    0x5051f3
5051d8:	8b 52 04             	mov    0x4(%edx),%edx
5051db:	39 4e 70             	cmp    %ecx,0x70(%esi)
5051de:	7f 3b                	jg     0x50521b
5051e0:	6a 00                	push   $0x0
5051e2:	6a 00                	push   $0x0
5051e4:	52                   	push   %edx
5051e5:	6a 0e                	push   $0xe
5051e7:	56                   	push   %esi
5051e8:	e8 13 13 00 00       	call   0x506500
5051ed:	83 c4 14             	add    $0x14,%esp
5051f0:	8b 5d 14             	mov    0x14(%ebp),%ebx
5051f3:	8b 55 f4             	mov    -0xc(%ebp),%edx
5051f6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5051f9:	85 c9                	test   %ecx,%ecx
5051fb:	0f 84 82 00 00 00    	je     0x505283
505201:	83 fa 0b             	cmp    $0xb,%edx
505204:	75 4b                	jne    0x505251
505206:	83 fb 01             	cmp    $0x1,%ebx
505209:	74 46                	je     0x505251
50520b:	3b 5f 1c             	cmp    0x1c(%edi),%ebx
50520e:	7e 5f                	jle    0x50526f
505210:	8b 45 f8             	mov    -0x8(%ebp),%eax
505213:	89 5f 1c             	mov    %ebx,0x1c(%edi)
505216:	89 47 20             	mov    %eax,0x20(%edi)
505219:	eb 54                	jmp    0x50526f
50521b:	8d 41 01             	lea    0x1(%ecx),%eax
50521e:	89 46 6c             	mov    %eax,0x6c(%esi)
505221:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
505224:	8b 46 68             	mov    0x68(%esi),%eax
505227:	c7 04 88 0e 00 00 00 	movl   $0xe,(%eax,%ecx,4)
50522e:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
505232:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
505239:	00
50523a:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
505241:	00
505242:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
505249:	00
50524a:	eb a4                	jmp    0x5051f0
50524c:	8b 5d 14             	mov    0x14(%ebp),%ebx
50524f:	eb a5                	jmp    0x5051f6
505251:	8b 4d f8             	mov    -0x8(%ebp),%ecx
505254:	85 c9                	test   %ecx,%ecx
505256:	74 14                	je     0x50526c