504e7e:	83 f8 06             	cmp    $0x6,%eax
504e81:	0f 85 de fe ff ff    	jne    0x504d65
504e87:	56                   	push   %esi
504e88:	57                   	push   %edi
504e89:	e8 42 10 00 00       	call   0x505ed0
504e8e:	83 c4 08             	add    $0x8,%esp
504e91:	85 c0                	test   %eax,%eax
504e93:	0f 84 cc fe ff ff    	je     0x504d65
504e99:	6a 03                	push   $0x3
504e9b:	53                   	push   %ebx
504e9c:	ff 77 28             	push   0x28(%edi)
504e9f:	ff 74 24 20          	push   0x20(%esp)
504ea3:	ff 74 24 28          	push   0x28(%esp)
504ea7:	e8 f4 5a fd ff       	call   0x4da9a0
504eac:	83 c4 14             	add    $0x14,%esp
504eaf:	85 c0                	test   %eax,%eax
504eb1:	0f 8e 43 ff ff ff    	jle    0x504dfa
504eb7:	ff 77 20             	push   0x20(%edi)
504eba:	ff 77 28             	push   0x28(%edi)
504ebd:	ff 77 1c             	push   0x1c(%edi)
504ec0:	ff 77 18             	push   0x18(%edi)
504ec3:	ff 74 24 2c          	push   0x2c(%esp)
504ec7:	53                   	push   %ebx
504ec8:	e8 93 b7 02 00       	call   0x530660
504ecd:	83 c4 18             	add    $0x18,%esp
504ed0:	85 c0                	test   %eax,%eax
504ed2:	0f 8e 22 ff ff ff    	jle    0x504dfa
504ed8:	5f                   	pop    %edi
504ed9:	5e                   	pop    %esi
504eda:	b8 01 00 00 00       	mov    $0x1,%eax
504edf:	5b                   	pop    %ebx
504ee0:	c3                   	ret
504ee1:	56                   	push   %esi
504ee2:	57                   	push   %edi
504ee3:	e8 e8 0f 00 00       	call   0x505ed0
504ee8:	83 c4 08             	add    $0x8,%esp
504eeb:	85 c0                	test   %eax,%eax
504eed:	0f 84 72 fe ff ff    	je     0x504d65
504ef3:	ff 77 14             	push   0x14(%edi)
504ef6:	53                   	push   %ebx
504ef7:	ff 77 28             	push   0x28(%edi)
504efa:	ff 74 24 20          	push   0x20(%esp)
504efe:	ff 74 24 28          	push   0x28(%esp)
504f02:	e8 99 5a fd ff       	call   0x4da9a0
504f07:	8b f0                	mov    %eax,%esi
504f09:	83 c4 14             	add    $0x14,%esp
504f0c:	85 f6                	test   %esi,%esi
504f0e:	0f 84 e6 fe ff ff    	je     0x504dfa
504f14:	3b 74 24 20          	cmp    0x20(%esp),%esi
504f18:	0f 85 dc fe ff ff    	jne    0x504dfa
504f1e:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
504f22:	8b 57 28             	mov    0x28(%edi),%edx
504f25:	83 ee 04             	sub    $0x4,%esi
504f28:	72 17                	jb     0x504f41
504f2a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
504f30:	8b 01                	mov    (%ecx),%eax
504f32:	3b 02                	cmp    (%edx),%eax
504f34:	75 10                	jne    0x504f46
504f36:	83 c1 04             	add    $0x4,%ecx
504f39:	83 c2 04             	add    $0x4,%edx
504f3c:	83 ee 04             	sub    $0x4,%esi
504f3f:	73 ef                	jae    0x504f30
504f41:	83 fe fc             	cmp    $0xfffffffc,%esi
504f44:	74 3d                	je     0x504f83
504f46:	8a 01                	mov    (%ecx),%al
504f48:	3a 02                	cmp    (%edx),%al
504f4a:	0f 85 aa fe ff ff    	jne    0x504dfa
504f50:	83 fe fd             	cmp    $0xfffffffd,%esi
504f53:	74 2e                	je     0x504f83
504f55:	8a 41 01             	mov    0x1(%ecx),%al
504f58:	3a 42 01             	cmp    0x1(%edx),%al
504f5b:	0f 85 99 fe ff ff    	jne    0x504dfa
504f61:	83 fe fe             	cmp    $0xfffffffe,%esi
504f64:	74 1d                	je     0x504f83
504f66:	8a 41 02             	mov    0x2(%ecx),%al
504f69:	3a 42 02             	cmp    0x2(%edx),%al
504f6c:	0f 85 88 fe ff ff    	jne    0x504dfa
504f72:	83 fe ff             	cmp    $0xffffffff,%esi
504f75:	74 0c                	je     0x504f83
504f77:	8a 41 03             	mov    0x3(%ecx),%al
504f7a:	3a 42 03             	cmp    0x3(%edx),%al
504f7d:	0f 85 77 fe ff ff    	jne    0x504dfa
504f83:	5f                   	pop    %edi
504f84:	5e                   	pop    %esi
504f85:	b8 01 00 00 00       	mov    $0x1,%eax
504f8a:	5b                   	pop    %ebx
504f8b:	c3                   	ret
504f8c:	cc                   	int3
504f8d:	cc                   	int3
504f8e:	cc                   	int3
504f8f:	cc                   	int3
504f90:	53                   	push   %ebx
504f91:	56                   	push   %esi
504f92:	57                   	push   %edi
504f93:	8b 7c 24 10          	mov    0x10(%esp),%edi
504f97:	8b 77 14             	mov    0x14(%edi),%esi
504f9a:	8b 4f 08             	mov    0x8(%edi),%ecx
504f9d:	8b 46 14             	mov    0x14(%esi),%eax
504fa0:	83 f8 04             	cmp    $0x4,%eax
504fa3:	75 53                	jne    0x504ff8
504fa5:	ff 71 18             	push   0x18(%ecx)
504fa8:	e8 23 5c fd ff       	call   0x4dabd0
504fad:	57                   	push   %edi
504fae:	56                   	push   %esi
504faf:	8b d8                	mov    %eax,%ebx
504fb1:	e8 1a 0f 00 00       	call   0x505ed0
504fb6:	83 c4 0c             	add    $0xc,%esp
504fb9:	85 c0                	test   %eax,%eax
504fbb:	74 34                	je     0x504ff1
504fbd:	ff 76 1c             	push   0x1c(%esi)
504fc0:	ff 76 18             	push   0x18(%esi)
504fc3:	ff 76 30             	push   0x30(%esi)
504fc6:	ff 76 2c             	push   0x2c(%esi)
504fc9:	ff 74 24 30          	push   0x30(%esp)
504fcd:	ff 74 24 30          	push   0x30(%esp)
504fd1:	53                   	push   %ebx
504fd2:	ff 76 28             	push   0x28(%esi)
504fd5:	e8 36 ac ff ff       	call   0x4ffc10
504fda:	83 c4 20             	add    $0x20,%esp
504fdd:	85 c0                	test   %eax,%eax
504fdf:	74 10                	je     0x504ff1
504fe1:	8b 47 08             	mov    0x8(%edi),%eax
504fe4:	8b 56 28             	mov    0x28(%esi),%edx
504fe7:	8b 48 18             	mov    0x18(%eax),%ecx
504fea:	b8 03 00 00 00       	mov    $0x3,%eax
504fef:	eb 12                	jmp    0x505003
504ff1:	5f                   	pop    %edi
504ff2:	5e                   	pop    %esi
504ff3:	83 c8 ff             	or     $0xffffffff,%eax
504ff6:	5b                   	pop    %ebx
504ff7:	c3                   	ret
504ff8:	8b 5c 24 20          	mov    0x20(%esp),%ebx
504ffc:	8b 54 24 1c          	mov    0x1c(%esp),%edx
505000:	8b 49 18             	mov    0x18(%ecx),%ecx
505003:	50                   	push   %eax
505004:	51                   	push   %ecx
505005:	ff 74 24 1c          	push   0x1c(%esp)
505009:	52                   	push   %edx
50500a:	53                   	push   %ebx
50500b:	e8 a0 59 fd ff       	call   0x4da9b0
505010:	8b c8                	mov    %eax,%ecx
505012:	83 c4 14             	add    $0x14,%esp
505015:	85 c9                	test   %ecx,%ecx
505017:	79 04                	jns    0x50501d
505019:	5f                   	pop    %edi
50501a:	5e                   	pop    %esi
50501b:	5b                   	pop    %ebx
50501c:	c3                   	ret
50501d:	8b 44 24 18          	mov    0x18(%esp),%eax
505021:	5f                   	pop    %edi
505022:	5e                   	pop    %esi
505023:	5b                   	pop    %ebx
505024:	89 08                	mov    %ecx,(%eax)
505026:	b8 01 00 00 00       	mov    $0x1,%eax
50502b:	c3                   	ret
50502c:	cc                   	int3
50502d:	cc                   	int3
50502e:	cc                   	int3
50502f:	cc                   	int3
505030:	b8 04 00 00 00       	mov    $0x4,%eax
505035:	e8 76 c7 0c 00       	call   0x5d17b0
50503a:	56                   	push   %esi
50503b:	57                   	push   %edi
50503c:	8b 7c 24 10          	mov    0x10(%esp),%edi
505040:	8b 77 14             	mov    0x14(%edi),%esi
505043:	8b 46 14             	mov    0x14(%esi),%eax
505046:	83 f8 04             	cmp    $0x4,%eax
505049:	75 54                	jne    0x50509f
50504b:	57                   	push   %edi
50504c:	56                   	push   %esi
50504d:	e8 7e 0e 00 00       	call   0x505ed0
505052:	83 c4 08             	add    $0x8,%esp
505055:	85 c0                	test   %eax,%eax
505057:	75 07                	jne    0x505060
505059:	5f                   	pop    %edi
50505a:	83 c8 ff             	or     $0xffffffff,%eax
50505d:	5e                   	pop    %esi
50505e:	59                   	pop    %ecx
50505f:	c3                   	ret
505060:	8b 47 08             	mov    0x8(%edi),%eax
505063:	6a 03                	push   $0x3
505065:	ff 70 18             	push   0x18(%eax)
505068:	ff 76 28             	push   0x28(%esi)
50506b:	ff 74 24 28          	push   0x28(%esp)
50506f:	ff 74 24 30          	push   0x30(%esp)
505073:	e8 08 59 fd ff       	call   0x4da980
505078:	83 c4 14             	add    $0x14,%esp
50507b:	85 c0                	test   %eax,%eax
50507d:	7e 7d                	jle    0x5050fc
50507f:	ff 76 1c             	push   0x1c(%esi)
505082:	ff 76 18             	push   0x18(%esi)
505085:	ff 76 30             	push   0x30(%esi)
505088:	ff 76 2c             	push   0x2c(%esi)
50508b:	50                   	push   %eax
50508c:	50                   	push   %eax
50508d:	ff 76 28             	push   0x28(%esi)
505090:	50                   	push   %eax
505091:	ff 74 24 34          	push   0x34(%esp)
505095:	e8 66 af ff ff       	call   0x500000
50509a:	83 c4 24             	add    $0x24,%esp
50509d:	eb 1b                	jmp    0x5050ba
50509f:	50                   	push   %eax
5050a0:	8b 47 08             	mov    0x8(%edi),%eax
5050a3:	ff 70 18             	push   0x18(%eax)
5050a6:	ff 74 24 1c          	push   0x1c(%esp)
5050aa:	ff 74 24 28          	push   0x28(%esp)
5050ae:	ff 74 24 30          	push   0x30(%esp)
5050b2:	e8 c9 58 fd ff       	call   0x4da980
5050b7:	83 c4 14             	add    $0x14,%esp
5050ba:	8b 4c 24 18          	mov    0x18(%esp),%ecx
5050be:	8b f8                	mov    %eax,%edi
5050c0:	8b f7                	mov    %edi,%esi
5050c2:	c1 ee 1f             	shr    $0x1f,%esi
5050c5:	f7 de                	neg    %esi
5050c7:	89 74 24 10          	mov    %esi,0x10(%esp)
5050cb:	8b c6                	mov    %esi,%eax
5050cd:	f7 d0                	not    %eax
5050cf:	89 44 24 08          	mov    %eax,0x8(%esp)
5050d3:	8b 54 24 10          	mov    0x10(%esp),%edx
5050d7:	8b 44 24 08          	mov    0x8(%esp),%eax
5050db:	23 11                	and    (%ecx),%edx
5050dd:	23 c7                	and    %edi,%eax
5050df:	0b c2                	or     %edx,%eax
5050e1:	89 01                	mov    %eax,(%ecx)
5050e3:	89 74 24 10          	mov    %esi,0x10(%esp)
5050e7:	f7 d6                	not    %esi
5050e9:	89 74 24 08          	mov    %esi,0x8(%esp)
5050ed:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5050f1:	8b 44 24 08          	mov    0x8(%esp),%eax
5050f5:	23 cf                	and    %edi,%ecx
5050f7:	83 e0 01             	and    $0x1,%eax
5050fa:	0b c1                	or     %ecx,%eax
5050fc:	5f                   	pop    %edi
5050fd:	5e                   	pop    %esi
5050fe:	59                   	pop    %ecx
5050ff:	c3                   	ret
505100:	8b 44 24 08          	mov    0x8(%esp),%eax
505104:	53                   	push   %ebx
505105:	8b 5c 24 08          	mov    0x8(%esp),%ebx
505109:	56                   	push   %esi
50510a:	57                   	push   %edi
50510b:	8b 73 14             	mov    0x14(%ebx),%esi
50510e:	3d 01 10 00 00       	cmp    $0x1001,%eax
505113:	0f 8f 1c 01 00 00    	jg     0x505235
505119:	0f 84 a5 00 00 00    	je     0x5051c4
50511f:	48                   	dec    %eax
505120:	83 f8 0c             	cmp    $0xc,%eax
505123:	0f 87 a3 02 00 00    	ja     0x5053cc
505129:	0f b6 80 fc 54 50 00 	movzbl 0x5054fc(%eax),%eax
505130:	ff 24 85 e4 54 50 00 	jmp    *0x5054e4(,%eax,4)
505137:	ff 76 14             	push   0x14(%esi)
50513a:	8b 7c 24 20          	mov    0x20(%esp),%edi
50513e:	57                   	push   %edi
50513f:	e8 3c 0c 00 00       	call   0x505d80
505144:	83 c4 08             	add    $0x8,%esp
505147:	85 c0                	test   %eax,%eax
505149:	0f 84 bc 01 00 00    	je     0x50530b
50514f:	83 7e 24 ff          	cmpl   $0xffffffff,0x24(%esi)
505153:	74 2f                	je     0x505184
505155:	ff 76 18             	push   0x18(%esi)
505158:	e8 63 af fe ff       	call   0x4f00c0
50515d:	57                   	push   %edi
50515e:	8b f0                	mov    %eax,%esi
505160:	e8 5b af fe ff       	call   0x4f00c0
505165:	83 c4 08             	add    $0x8,%esp
505168:	3b f0                	cmp    %eax,%esi
50516a:	0f 84 03 03 00 00    	je     0x505473
505170:	68 fa 01 00 00       	push   $0x1fa
505175:	68 6c a8 62 00       	push   $0x62a86c
50517a:	68 91 00 00 00       	push   $0x91
50517f:	e9 78 01 00 00       	jmp    0x5052fc
505184:	89 7e 18             	mov    %edi,0x18(%esi)
505187:	b8 01 00 00 00       	mov    $0x1,%eax
50518c:	5f                   	pop    %edi
50518d:	5e                   	pop    %esi
50518e:	5b                   	pop    %ebx
50518f:	c3                   	ret
505190:	8b 44 24 1c          	mov    0x1c(%esp),%eax
505194:	8b 4e 18             	mov    0x18(%esi),%ecx
505197:	5f                   	pop    %edi
505198:	5e                   	pop    %esi
505199:	89 08                	mov    %ecx,(%eax)
50519b:	b8 01 00 00 00       	mov    $0x1,%eax
5051a0:	5b                   	pop    %ebx
5051a1:	c3                   	ret
5051a2:	8b 03                	mov    (%ebx),%eax
5051a4:	81 38 90 03 00 00    	cmpl   $0x390,(%eax)
5051aa:	0f 85 c3 02 00 00    	jne    0x505473
5051b0:	68 44 02 00 00       	push   $0x244
5051b5:	68 6c a8 62 00       	push   $0x62a86c
5051ba:	68 94 00 00 00       	push   $0x94
5051bf:	e9 f9 01 00 00       	jmp    0x5053bd
5051c4:	8b 7c 24 18          	mov    0x18(%esp),%edi
5051c8:	8d 47 ff             	lea    -0x1(%edi),%eax
5051cb:	83 f8 05             	cmp    $0x5,%eax
5051ce:	77 51                	ja     0x505221
5051d0:	57                   	push   %edi
5051d1:	ff 76 18             	push   0x18(%esi)
5051d4:	e8 a7 0b 00 00       	call   0x505d80
5051d9:	83 c4 08             	add    $0x8,%esp
5051dc:	85 c0                	test   %eax,%eax
5051de:	0f 84 27 01 00 00    	je     0x50530b
5051e4:	83 ff 06             	cmp    $0x6,%edi
5051e7:	75 06                	jne    0x5051ef
5051e9:	f6 43 10 18          	testb  $0x18,0x10(%ebx)
5051ed:	eb 16                	jmp    0x505205
5051ef:	8b 03                	mov    (%ebx),%eax
5051f1:	81 38 90 03 00 00    	cmpl   $0x390,(%eax)
5051f7:	74 28                	je     0x505221
5051f9:	83 ff 04             	cmp    $0x4,%edi
5051fc:	75 17                	jne    0x505215
5051fe:	f7 43 10 00 03 00 00 	testl  $0x300,0x10(%ebx)
505205:	74 1a                	je     0x505221
505207:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
50520b:	75 08                	jne    0x505215
50520d:	e8 fe 12 01 00       	call   0x516510
505212:	89 46 18             	mov    %eax,0x18(%esi)
505215:	89 7e 14             	mov    %edi,0x14(%esi)
505218:	b8 01 00 00 00       	mov    $0x1,%eax
50521d:	5f                   	pop    %edi
50521e:	5e                   	pop    %esi
50521f:	5b                   	pop    %ebx
505220:	c3                   	ret
505221:	68 ac 01 00 00       	push   $0x1ac
505226:	68 6c a8 62 00       	push   $0x62a86c
50522b:	68 90 00 00 00       	push   $0x90
505230:	e9 88 01 00 00       	jmp    0x5053bd
505235:	8d 88 fe ef ff ff    	lea    -0x1002(%eax),%ecx
50523b:	83 f9 0b             	cmp    $0xb,%ecx
50523e:	0f 87 88 01 00 00    	ja     0x5053cc
505244:	ff 24 8d 0c 55 50 00 	jmp    *0x50550c(,%ecx,4)
50524b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50524f:	8b 4e 14             	mov    0x14(%esi),%ecx
505252:	5f                   	pop    %edi
505253:	5e                   	pop    %esi
505254:	89 08                	mov    %ecx,(%eax)
505256:	b8 01 00 00 00       	mov    $0x1,%eax
50525b:	5b                   	pop    %ebx
50525c:	c3                   	ret
50525d:	83 7e 14 06          	cmpl   $0x6,0x14(%esi)
505261:	74 14                	je     0x505277
505263:	68 b6 01 00 00       	push   $0x1b6
505268:	68 6c a8 62 00       	push   $0x62a86c
50526d:	68 92 00 00 00       	push   $0x92
505272:	e9 46 01 00 00       	jmp    0x5053bd
505277:	3d 07 10 00 00       	cmp    $0x1007,%eax
50527c:	75 12                	jne    0x505290
50527e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
505282:	8b 4e 20             	mov    0x20(%esi),%ecx
505285:	5f                   	pop    %edi