534f50:	e8 fb 52 fe ff       	call   0x51a250
534f55:	6a 01                	push   $0x1
534f57:	57                   	push   %edi
534f58:	6a 45                	push   $0x45
534f5a:	56                   	push   %esi
534f5b:	e8 80 cb 00 00       	call   0x541ae0
534f60:	53                   	push   %ebx
534f61:	6a 3c                	push   $0x3c
534f63:	56                   	push   %esi
534f64:	e8 17 cb 00 00       	call   0x541a80
534f69:	6a 01                	push   $0x1
534f6b:	6a 50                	push   $0x50
534f6d:	56                   	push   %esi
534f6e:	8b f8                	mov    %eax,%edi
534f70:	e8 0b cb 00 00       	call   0x541a80
534f75:	6a ff                	push   $0xffffffff
534f77:	6a 01                	push   $0x1
534f79:	6a 52                	push   $0x52
534f7b:	56                   	push   %esi
534f7c:	e8 5f cb 00 00       	call   0x541ae0
534f81:	83 c4 44             	add    $0x44,%esp
534f84:	57                   	push   %edi
534f85:	6a 01                	push   $0x1
534f87:	6a 30                	push   $0x30
534f89:	56                   	push   %esi
534f8a:	e8 51 cb 00 00       	call   0x541ae0
534f8f:	57                   	push   %edi
534f90:	56                   	push   %esi
534f91:	e8 ca 57 01 00       	call   0x54a760
534f96:	83 c4 18             	add    $0x18,%esp
534f99:	e9 8f 1d 00 00       	jmp    0x536d2d
534f9e:	85 c9                	test   %ecx,%ecx
534fa0:	75 0b                	jne    0x534fad
534fa2:	8b 47 0c             	mov    0xc(%edi),%eax
534fa5:	8b 40 50             	mov    0x50(%eax),%eax
534fa8:	e9 74 1d 00 00       	jmp    0x536d21
534fad:	51                   	push   %ecx
534fae:	e8 5d 45 fe ff       	call   0x519510
534fb3:	8b 4f 0c             	mov    0xc(%edi),%ecx
534fb6:	89 41 50             	mov    %eax,0x50(%ecx)
534fb9:	8b 47 0c             	mov    0xc(%edi),%eax
534fbc:	ff 70 50             	push   0x50(%eax)
534fbf:	ff 77 04             	push   0x4(%edi)
534fc2:	e8 79 8a fe ff       	call   0x51da40
534fc7:	e9 5e 1d 00 00       	jmp    0x536d2a
534fcc:	85 c9                	test   %ecx,%ecx
534fce:	75 26                	jne    0x534ff6
534fd0:	8b 45 d8             	mov    -0x28(%ebp),%eax
534fd3:	8b 40 20             	mov    0x20(%eax),%eax
534fd6:	83 e0 20             	and    $0x20,%eax
534fd9:	0b c1                	or     %ecx,%eax
534fdb:	75 07                	jne    0x534fe4
534fdd:	33 c0                	xor    %eax,%eax
534fdf:	e9 3d 1d 00 00       	jmp    0x536d21
534fe4:	6a 00                	push   $0x0
534fe6:	ff 77 04             	push   0x4(%edi)
534fe9:	e8 62 8c fe ff       	call   0x51dc50
534fee:	83 c4 08             	add    $0x8,%esp
534ff1:	e9 2b 1d 00 00       	jmp    0x536d21
534ff6:	8d 45 d0             	lea    -0x30(%ebp),%eax
534ff9:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
535000:	50                   	push   %eax
535001:	51                   	push   %ecx
535002:	e8 99 7d ff ff       	call   0x52cda0
535007:	8b 75 d0             	mov    -0x30(%ebp),%esi
53500a:	83 c4 08             	add    $0x8,%esp
53500d:	85 c0                	test   %eax,%eax
53500f:	74 0c                	je     0x53501d
535011:	56                   	push   %esi
535012:	ff 77 04             	push   0x4(%edi)
535015:	e8 36 8c fe ff       	call   0x51dc50
53501a:	83 c4 08             	add    $0x8,%esp
53501d:	85 f6                	test   %esi,%esi
53501f:	0f 95 c0             	setne  %al
535022:	0f b6 c0             	movzbl %al,%eax
535025:	50                   	push   %eax
535026:	ff 75 b8             	push   -0x48(%ebp)
535029:	e8 82 7c ff ff       	call   0x52ccb0
53502e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
535031:	83 c4 08             	add    $0x8,%esp
535034:	84 c0                	test   %al,%al
535036:	8b 41 24             	mov    0x24(%ecx),%eax
535039:	89 41 24             	mov    %eax,0x24(%ecx)
53503c:	74 12                	je     0x535050
53503e:	83 49 20 20          	orl    $0x20,0x20(%ecx)
535042:	51                   	push   %ecx
535043:	e8 68 1e fe ff       	call   0x516eb0
535048:	83 c4 04             	add    $0x4,%esp
53504b:	e9 dd 1c 00 00       	jmp    0x536d2d
535050:	83 61 20 df          	andl   $0xffffffdf,0x20(%ecx)
535054:	51                   	push   %ecx
535055:	e8 56 1e fe ff       	call   0x516eb0
53505a:	83 c4 04             	add    $0x4,%esp
53505d:	e9 cb 1c 00 00       	jmp    0x536d2d
535062:	85 c9                	test   %ecx,%ecx
535064:	0f 84 8a 00 00 00    	je     0x5350f4
53506a:	8d 45 e0             	lea    -0x20(%ebp),%eax
53506d:	50                   	push   %eax
53506e:	51                   	push   %ecx
53506f:	e8 ec c6 fe ff       	call   0x521760
535074:	8b 45 e4             	mov    -0x1c(%ebp),%eax
535077:	83 c4 08             	add    $0x8,%esp
53507a:	85 c0                	test   %eax,%eax
53507c:	7f 1c                	jg     0x53509a
53507e:	7c 07                	jl     0x535087
535080:	8b 55 e0             	mov    -0x20(%ebp),%edx
535083:	85 d2                	test   %edx,%edx
535085:	73 16                	jae    0x53509d
535087:	8b 15 b8 18 72 00    	mov    0x7218b8,%edx
53508d:	a1 bc 18 72 00       	mov    0x7218bc,%eax
535092:	89 55 e0             	mov    %edx,-0x20(%ebp)
535095:	89 45 e4             	mov    %eax,-0x1c(%ebp)
535098:	eb 03                	jmp    0x53509d
53509a:	8b 55 e0             	mov    -0x20(%ebp),%edx
53509d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5350a0:	8b 7d d8             	mov    -0x28(%ebp),%edi
5350a3:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
5350a7:	75 06                	jne    0x5350af
5350a9:	89 57 30             	mov    %edx,0x30(%edi)
5350ac:	89 47 34             	mov    %eax,0x34(%edi)
5350af:	8b 7f 14             	mov    0x14(%edi),%edi
5350b2:	83 ef 01             	sub    $0x1,%edi
5350b5:	78 3d                	js     0x5350f4
5350b7:	8b 75 d8             	mov    -0x28(%ebp),%esi
5350ba:	8b df                	mov    %edi,%ebx
5350bc:	c1 e3 04             	shl    $0x4,%ebx
5350bf:	90                   	nop
5350c0:	8b 46 10             	mov    0x10(%esi),%eax
5350c3:	8b 44 03 04          	mov    0x4(%ebx,%eax,1),%eax
5350c7:	85 c0                	test   %eax,%eax
5350c9:	74 1e                	je     0x5350e9
5350cb:	3b 7d c4             	cmp    -0x3c(%ebp),%edi
5350ce:	74 06                	je     0x5350d6
5350d0:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
5350d4:	75 13                	jne    0x5350e9
5350d6:	ff 75 e4             	push   -0x1c(%ebp)
5350d9:	52                   	push   %edx
5350da:	50                   	push   %eax
5350db:	e8 f0 89 fe ff       	call   0x51dad0
5350e0:	8b 55 e0             	mov    -0x20(%ebp),%edx
5350e3:	83 c4 0c             	add    $0xc,%esp
5350e6:	8b 4d c0             	mov    -0x40(%ebp),%ecx
5350e9:	83 eb 10             	sub    $0x10,%ebx
5350ec:	83 ef 01             	sub    $0x1,%edi
5350ef:	79 cf                	jns    0x5350c0
5350f1:	8b 75 a4             	mov    -0x5c(%ebp),%esi
5350f4:	8d 45 e0             	lea    -0x20(%ebp),%eax
5350f7:	c7 45 e0 ff ff ff ff 	movl   $0xffffffff,-0x20(%ebp)
5350fe:	50                   	push   %eax
5350ff:	6a 12                	push   $0x12
535101:	ff 75 ac             	push   -0x54(%ebp)
535104:	c7 45 e4 ff ff ff ff 	movl   $0xffffffff,-0x1c(%ebp)
53510b:	ff 75 d8             	push   -0x28(%ebp)
53510e:	e8 0d 7d fb ff       	call   0x4ece20
535113:	83 c4 10             	add    $0x10,%esp
535116:	85 c0                	test   %eax,%eax
535118:	75 0b                	jne    0x535125
53511a:	ff 75 e4             	push   -0x1c(%ebp)
53511d:	ff 75 e0             	push   -0x20(%ebp)
535120:	e9 ff 1b 00 00       	jmp    0x536d24
535125:	83 f8 0c             	cmp    $0xc,%eax
535128:	0f 84 ff 1b 00 00    	je     0x536d2d
53512e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
535131:	ff 41 24             	incl   0x24(%ecx)
535134:	89 41 0c             	mov    %eax,0xc(%ecx)
535137:	e9 f1 1b 00 00       	jmp    0x536d2d
53513c:	85 c9                	test   %ecx,%ecx
53513e:	75 0c                	jne    0x53514c
535140:	8b 45 d8             	mov    -0x28(%ebp),%eax
535143:	0f b6 40 50          	movzbl 0x50(%eax),%eax
535147:	e9 d5 1b 00 00       	jmp    0x536d21
53514c:	51                   	push   %ecx
53514d:	ff 75 d4             	push   -0x2c(%ebp)
535150:	e8 2b 2d fc ff       	call   0x4f7e80
535155:	83 c4 08             	add    $0x8,%esp
535158:	e9 d0 1b 00 00       	jmp    0x536d2d
53515d:	85 c9                	test   %ecx,%ecx
53515f:	75 14                	jne    0x535175
535161:	ff 35 60 ff 72 00    	push   0x72ff60
535167:	56                   	push   %esi
535168:	e8 33 fb fd ff       	call   0x514ca0
53516d:	83 c4 08             	add    $0x8,%esp
535170:	e9 b8 1b 00 00       	jmp    0x536d2d
535175:	80 39 00             	cmpb   $0x0,(%ecx)
535178:	74 33                	je     0x5351ad
53517a:	8b 45 d8             	mov    -0x28(%ebp),%eax
53517d:	8d 55 e8             	lea    -0x18(%ebp),%edx
535180:	52                   	push   %edx
535181:	6a 01                	push   $0x1
535183:	51                   	push   %ecx
535184:	8b 00                	mov    (%eax),%eax
535186:	50                   	push   %eax
535187:	8b 40 20             	mov    0x20(%eax),%eax
53518a:	ff d0                	call   *%eax
53518c:	83 c4 10             	add    $0x10,%esp
53518f:	85 c0                	test   %eax,%eax
535191:	75 05                	jne    0x535198
535193:	39 45 e8             	cmp    %eax,-0x18(%ebp)
535196:	75 15                	jne    0x5351ad
535198:	68 50 ab 6b 00       	push   $0x6bab50
53519d:	ff 75 d4             	push   -0x2c(%ebp)
5351a0:	e8 bb e0 fe ff       	call   0x523260
5351a5:	83 c4 08             	add    $0x8,%esp
5351a8:	e9 80 1b 00 00       	jmp    0x536d2d
5351ad:	8b 45 d8             	mov    -0x28(%ebp),%eax
5351b0:	80 78 50 01          	cmpb   $0x1,0x50(%eax)
5351b4:	77 0b                	ja     0x5351c1
5351b6:	ff 75 d4             	push   -0x2c(%ebp)
5351b9:	e8 b2 22 fd ff       	call   0x507470
5351be:	83 c4 04             	add    $0x4,%esp
5351c1:	ff 35 60 ff 72 00    	push   0x72ff60
5351c7:	e8 c4 5b fb ff       	call   0x4ead90
5351cc:	8b 45 b8             	mov    -0x48(%ebp),%eax
5351cf:	83 c4 04             	add    $0x4,%esp
5351d2:	80 38 00             	cmpb   $0x0,(%eax)
5351d5:	74 18                	je     0x5351ef
5351d7:	50                   	push   %eax
5351d8:	68 04 d0 6a 00       	push   $0x6ad004
5351dd:	e8 6e 53 fb ff       	call   0x4ea550
5351e2:	83 c4 08             	add    $0x8,%esp
5351e5:	a3 60 ff 72 00       	mov    %eax,0x72ff60
5351ea:	e9 3e 1b 00 00       	jmp    0x536d2d
5351ef:	c7 05 60 ff 72 00 00 	movl   $0x0,0x72ff60
5351f6:	00 00 00
5351f9:	e9 2f 1b 00 00       	jmp    0x536d2d
5351fe:	85 c9                	test   %ecx,%ecx
535200:	75 14                	jne    0x535216
535202:	ff 35 64 ff 72 00    	push   0x72ff64
535208:	56                   	push   %esi
535209:	e8 92 fa fd ff       	call   0x514ca0
53520e:	83 c4 08             	add    $0x8,%esp
535211:	e9 17 1b 00 00       	jmp    0x536d2d
535216:	80 39 00             	cmpb   $0x0,(%ecx)
535219:	74 26                	je     0x535241
53521b:	8b 45 d8             	mov    -0x28(%ebp),%eax
53521e:	8d 55 e8             	lea    -0x18(%ebp),%edx
535221:	52                   	push   %edx
535222:	6a 01                	push   $0x1
535224:	51                   	push   %ecx
535225:	8b 00                	mov    (%eax),%eax
535227:	50                   	push   %eax
535228:	8b 40 20             	mov    0x20(%eax),%eax
53522b:	ff d0                	call   *%eax
53522d:	83 c4 10             	add    $0x10,%esp
535230:	85 c0                	test   %eax,%eax
535232:	0f 85 60 ff ff ff    	jne    0x535198
535238:	39 45 e8             	cmp    %eax,-0x18(%ebp)
53523b:	0f 84 57 ff ff ff    	je     0x535198
535241:	ff 35 64 ff 72 00    	push   0x72ff64
535247:	e8 44 5b fb ff       	call   0x4ead90
53524c:	8b 45 b8             	mov    -0x48(%ebp),%eax
53524f:	83 c4 04             	add    $0x4,%esp
535252:	80 38 00             	cmpb   $0x0,(%eax)
535255:	74 18                	je     0x53526f
535257:	50                   	push   %eax
535258:	68 04 d0 6a 00       	push   $0x6ad004
53525d:	e8 ee 52 fb ff       	call   0x4ea550
535262:	83 c4 08             	add    $0x8,%esp
535265:	a3 64 ff 72 00       	mov    %eax,0x72ff64
53526a:	e9 be 1a 00 00       	jmp    0x536d2d
53526f:	c7 05 64 ff 72 00 00 	movl   $0x0,0x72ff64
535276:	00 00 00
535279:	e9 af 1a 00 00       	jmp    0x536d2d
53527e:	85 c9                	test   %ecx,%ecx
535280:	75 0a                	jne    0x53528c
535282:	0f b6 47 08          	movzbl 0x8(%edi),%eax
535286:	48                   	dec    %eax
535287:	e9 95 1a 00 00       	jmp    0x536d21
53528c:	8b 45 d8             	mov    -0x28(%ebp),%eax
53528f:	80 78 4f 00          	cmpb   $0x0,0x4f(%eax)
535293:	75 15                	jne    0x5352aa
535295:	68 6c ab 6b 00       	push   $0x6bab6c
53529a:	ff 75 d4             	push   -0x2c(%ebp)
53529d:	e8 be df fe ff       	call   0x523260
5352a2:	83 c4 08             	add    $0x8,%esp
5352a5:	e9 83 1a 00 00       	jmp    0x536d2d
5352aa:	83 7d c4 01          	cmpl   $0x1,-0x3c(%ebp)
5352ae:	0f 84 79 1a 00 00    	je     0x536d2d
5352b4:	6a 01                	push   $0x1
5352b6:	6a 00                	push   $0x0
5352b8:	51                   	push   %ecx
5352b9:	e8 e2 10 fd ff       	call   0x5063a0
5352be:	ff 75 d8             	push   -0x28(%ebp)
5352c1:	40                   	inc    %eax
5352c2:	b9 01 00 00 00       	mov    $0x1,%ecx
5352c7:	83 e0 07             	and    $0x7,%eax
5352ca:	88 4f 09             	mov    %cl,0x9(%edi)
5352cd:	0f 44 c1             	cmove  %ecx,%eax
5352d0:	88 47 08             	mov    %al,0x8(%edi)
5352d3:	e8 d8 1b fe ff       	call   0x516eb0
5352d8:	83 c4 10             	add    $0x10,%esp
5352db:	e9 4d 1a 00 00       	jmp    0x536d2d
5352e0:	85 c9                	test   %ecx,%ecx
5352e2:	75 40                	jne    0x535324
5352e4:	53                   	push   %ebx
5352e5:	56                   	push   %esi
5352e6:	e8 25 1e fe ff       	call   0x517110
5352eb:	8b 55 d8             	mov    -0x28(%ebp),%edx
5352ee:	83 c4 08             	add    $0x8,%esp
5352f1:	8b 4b 08             	mov    0x8(%ebx),%ecx
5352f4:	8b 43 0c             	mov    0xc(%ebx),%eax
5352f7:	23 4a 20             	and    0x20(%edx),%ecx
5352fa:	23 42 24             	and    0x24(%edx),%eax
5352fd:	0b c8                	or     %eax,%ecx
5352ff:	74 0e                	je     0x53530f
535301:	33 c0                	xor    %eax,%eax
535303:	b9 01 00 00 00       	mov    $0x1,%ecx
535308:	50                   	push   %eax
535309:	51                   	push   %ecx
53530a:	e9 15 1a 00 00       	jmp    0x536d24
53530f:	0f 57 c0             	xorps  %xmm0,%xmm0
535312:	66 0f 13 45 e0       	movlpd %xmm0,-0x20(%ebp)
535317:	8b 45 e4             	mov    -0x1c(%ebp),%eax
53531a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
53531d:	50                   	push   %eax
53531e:	51                   	push   %ecx
53531f:	e9 00 1a 00 00       	jmp    0x536d24
535324:	8b 43 08             	mov    0x8(%ebx),%eax
535327:	8b 7b 0c             	mov    0xc(%ebx),%edi
53532a:	89 45 d0             	mov    %eax,-0x30(%ebp)
53532d:	8b 45 d8             	mov    -0x28(%ebp),%eax
535330:	8b 5d d0             	mov    -0x30(%ebp),%ebx
535333:	80 78 4f 00          	cmpb   $0x0,0x4f(%eax)
535337:	75 06                	jne    0x53533f
535339:	81 e3 ff bf ff ff    	and    $0xffffbfff,%ebx
53533f:	6a 00                	push   $0x0
535341:	51                   	push   %ecx
535342:	e8 69 79 ff ff       	call   0x52ccb0
535347:	83 c4 08             	add    $0x8,%esp
53534a:	84 c0                	test   %al,%al
53534c:	74 0b                	je     0x535359
53534e:	8b 45 d8             	mov    -0x28(%ebp),%eax
535351:	09 58 20             	or     %ebx,0x20(%eax)
535354:	09 78 24             	or     %edi,0x24(%eax)
535357:	eb 29                	jmp    0x535382
535359:	8b 55 d8             	mov    -0x28(%ebp),%edx
53535c:	8b cb                	mov    %ebx,%ecx
53535e:	8b c7                	mov    %edi,%eax
535360:	f7 d1                	not    %ecx
535362:	f7 d0                	not    %eax
535364:	21 4a 20             	and    %ecx,0x20(%edx)
535367:	21 42 24             	and    %eax,0x24(%edx)
53536a:	81 fb 00 00 08 00    	cmp    $0x80000,%ebx
535370:	75 10                	jne    0x535382
535372:	85 ff                	test   %edi,%edi
535374:	75 0c                	jne    0x535382
535376:	89 ba f0 01 00 00    	mov    %edi,0x1f0(%edx)
53537c:	89 ba f4 01 00 00    	mov    %edi,0x1f4(%edx)
535382:	68 9e 00 00 00       	push   $0x9e
535387:	56                   	push   %esi