473f9f:	57                   	push   %edi
473fa0:	8b 41 4c             	mov    0x4c(%ecx),%eax
473fa3:	89 45 d0             	mov    %eax,-0x30(%ebp)
473fa6:	8b 41 50             	mov    0x50(%ecx),%eax
473fa9:	8b 4d 80             	mov    -0x80(%ebp),%ecx
473fac:	89 45 d4             	mov    %eax,-0x2c(%ebp)
473faf:	8b 01                	mov    (%ecx),%eax
473fb1:	8b 40 28             	mov    0x28(%eax),%eax
473fb4:	ff d0                	call   *%eax
473fb6:	85 c0                	test   %eax,%eax
473fb8:	0f 84 90 fe ff ff    	je     0x473e4e
473fbe:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
473fc2:	0f 85 86 fe ff ff    	jne    0x473e4e
473fc8:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
473fce:	33 c9                	xor    %ecx,%ecx
473fd0:	e9 56 fd ff ff       	jmp    0x473d2b
473fd5:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
473fdb:	f6 00 01             	testb  $0x1,(%eax)
473fde:	74 0a                	je     0x473fea
473fe0:	8b 00                	mov    (%eax),%eax
473fe2:	83 e0 fc             	and    $0xfffffffc,%eax
473fe5:	83 c0 04             	add    $0x4,%eax
473fe8:	eb 07                	jmp    0x473ff1
473fea:	8b c8                	mov    %eax,%ecx
473fec:	e8 3f cc fd ff       	call   0x450c30
473ff1:	83 7d ec 10          	cmpl   $0x10,-0x14(%ebp)
473ff5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
473ff8:	ff 75 e8             	push   -0x18(%ebp)
473ffb:	0f 43 4d d8          	cmovae -0x28(%ebp),%ecx
473fff:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
474005:	51                   	push   %ecx
474006:	57                   	push   %edi
474007:	8b c8                	mov    %eax,%ecx
474009:	e8 92 c6 fe ff       	call   0x4606a0
47400e:	8b c8                	mov    %eax,%ecx
474010:	e8 0b 36 fd ff       	call   0x447620
474015:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
47401b:	33 c9                	xor    %ecx,%ecx
47401d:	e9 09 fd ff ff       	jmp    0x473d2b
474022:	3c 1a                	cmp    $0x1a,%al
474024:	0f 85 fb 00 00 00    	jne    0x474125
47402a:	85 c9                	test   %ecx,%ecx
47402c:	75 7d                	jne    0x4740ab
47402e:	0f b6 0e             	movzbl (%esi),%ecx
474031:	89 4d 80             	mov    %ecx,-0x80(%ebp)
474034:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
47403a:	73 03                	jae    0x47403f
47403c:	46                   	inc    %esi
47403d:	eb 20                	jmp    0x47405f
47403f:	51                   	push   %ecx
474040:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
474046:	56                   	push   %esi
474047:	50                   	push   %eax
474048:	e8 23 b8 fe ff       	call   0x45f870
47404d:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
474053:	83 c4 0c             	add    $0xc,%esp
474056:	8b b5 4c ff ff ff    	mov    -0xb4(%ebp),%esi
47405c:	89 4d 80             	mov    %ecx,-0x80(%ebp)
47405f:	85 f6                	test   %esi,%esi
474061:	0f 84 e7 fd ff ff    	je     0x473e4e
474067:	8b 47 04             	mov    0x4(%edi),%eax
47406a:	2b c6                	sub    %esi,%eax
47406c:	83 c0 10             	add    $0x10,%eax
47406f:	3b c8                	cmp    %eax,%ecx
474071:	7f 0f                	jg     0x474082
474073:	51                   	push   %ecx
474074:	56                   	push   %esi
474075:	8d 4d d8             	lea    -0x28(%ebp),%ecx
474078:	e8 a3 35 fd ff       	call   0x447620
47407d:	03 75 80             	add    -0x80(%ebp),%esi
474080:	eb 0f                	jmp    0x474091
474082:	8d 45 d8             	lea    -0x28(%ebp),%eax
474085:	50                   	push   %eax
474086:	51                   	push   %ecx
474087:	56                   	push   %esi
474088:	8b cf                	mov    %edi,%ecx
47408a:	e8 61 b8 fe ff       	call   0x45f8f0
47408f:	8b f0                	mov    %eax,%esi
474091:	85 f6                	test   %esi,%esi
474093:	0f 84 b5 fd ff ff    	je     0x473e4e
474099:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
47409f:	c6 85 7b ff ff ff 01 	movb   $0x1,-0x85(%ebp)
4740a6:	e9 86 fc ff ff       	jmp    0x473d31
4740ab:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
4740b1:	51                   	push   %ecx
4740b2:	8b 48 04             	mov    0x4(%eax),%ecx
4740b5:	e8 46 c9 01 00       	call   0x490a00
4740ba:	85 c0                	test   %eax,%eax
4740bc:	74 28                	je     0x4740e6
4740be:	8b 4f 4c             	mov    0x4c(%edi),%ecx
4740c1:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
4740c7:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
4740cd:	57                   	push   %edi
4740ce:	85 c9                	test   %ecx,%ecx
4740d0:	75 0a                	jne    0x4740dc
4740d2:	8b 48 08             	mov    0x8(%eax),%ecx
4740d5:	e8 16 02 ff ff       	call   0x4642f0
4740da:	eb 12                	jmp    0x4740ee
4740dc:	ff 70 04             	push   0x4(%eax)
4740df:	e8 8c c6 01 00       	call   0x490770
4740e4:	eb 08                	jmp    0x4740ee
4740e6:	8b bd 7c ff ff ff    	mov    -0x84(%ebp),%edi
4740ec:	33 c0                	xor    %eax,%eax
4740ee:	8b 8d 74 ff ff ff    	mov    -0x8c(%ebp),%ecx
4740f4:	ba 08 00 00 00       	mov    $0x8,%edx
4740f9:	50                   	push   %eax
4740fa:	8b c7                	mov    %edi,%eax
4740fc:	8b bd 70 ff ff ff    	mov    -0x90(%ebp),%edi
474102:	f7 e2                	mul    %edx
474104:	ff 71 08             	push   0x8(%ecx)
474107:	83 c0 02             	add    $0x2,%eax
47410a:	83 d2 00             	adc    $0x0,%edx
47410d:	52                   	push   %edx
47410e:	50                   	push   %eax
47410f:	57                   	push   %edi
474110:	56                   	push   %esi
474111:	ff 31                	push   (%ecx)
474113:	e8 78 02 00 00       	call   0x474390
474118:	83 c4 1c             	add    $0x1c,%esp
47411b:	33 c9                	xor    %ecx,%ecx
47411d:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
474123:	eb 67                	jmp    0x47418c
474125:	0f b6 d0             	movzbl %al,%edx
474128:	81 fa 80 00 00 00    	cmp    $0x80,%edx
47412e:	72 3d                	jb     0x47416d
474130:	0f b6 0e             	movzbl (%esi),%ecx
474133:	83 c2 80             	add    $0xffffff80,%edx
474136:	8b c1                	mov    %ecx,%eax
474138:	c1 e0 07             	shl    $0x7,%eax
47413b:	03 d0                	add    %eax,%edx
47413d:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
474143:	73 08                	jae    0x47414d
474145:	8b 75 80             	mov    -0x80(%ebp),%esi
474148:	83 c6 02             	add    $0x2,%esi
47414b:	eb 20                	jmp    0x47416d
47414d:	8b 45 80             	mov    -0x80(%ebp),%eax
474150:	52                   	push   %edx
474151:	50                   	push   %eax
474152:	8d 85 44 ff ff ff    	lea    -0xbc(%ebp),%eax
474158:	50                   	push   %eax
474159:	e8 82 b8 fe ff       	call   0x45f9e0
47415e:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
474164:	83 c4 0c             	add    $0xc,%esp
474167:	8b b5 44 ff ff ff    	mov    -0xbc(%ebp),%esi
47416d:	85 d2                	test   %edx,%edx
47416f:	74 35                	je     0x4741a6
474171:	8b c2                	mov    %edx,%eax
474173:	24 07                	and    $0x7,%al
474175:	3c 04                	cmp    $0x4,%al
474177:	74 2d                	je     0x4741a6
474179:	57                   	push   %edi
47417a:	56                   	push   %esi
47417b:	6a 00                	push   $0x0
47417d:	52                   	push   %edx
47417e:	e8 ad b8 fe ff       	call   0x45fa30
474183:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
474189:	83 c4 10             	add    $0x10,%esp
47418c:	8b f0                	mov    %eax,%esi
47418e:	85 f6                	test   %esi,%esi
474190:	0f 85 9b fb ff ff    	jne    0x473d31
474196:	eb 14                	jmp    0x4741ac
474198:	85 c0                	test   %eax,%eax
47419a:	7e 10                	jle    0x4741ac
47419c:	33 c0                	xor    %eax,%eax
47419e:	39 47 08             	cmp    %eax,0x8(%edi)
4741a1:	0f 44 f0             	cmove  %eax,%esi
4741a4:	eb 06                	jmp    0x4741ac
4741a6:	8d 42 ff             	lea    -0x1(%edx),%eax
4741a9:	89 47 3c             	mov    %eax,0x3c(%edi)
4741ac:	8b 55 ec             	mov    -0x14(%ebp),%edx
4741af:	83 fa 10             	cmp    $0x10,%edx
4741b2:	72 28                	jb     0x4741dc
4741b4:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4741b7:	42                   	inc    %edx
4741b8:	8b c1                	mov    %ecx,%eax
4741ba:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
4741c0:	72 10                	jb     0x4741d2
4741c2:	8b 49 fc             	mov    -0x4(%ecx),%ecx
4741c5:	83 c2 23             	add    $0x23,%edx
4741c8:	2b c1                	sub    %ecx,%eax
4741ca:	83 c0 fc             	add    $0xfffffffc,%eax
4741cd:	83 f8 1f             	cmp    $0x1f,%eax
4741d0:	77 29                	ja     0x4741fb
4741d2:	52                   	push   %edx
4741d3:	51                   	push   %ecx
4741d4:	e8 7c d0 15 00       	call   0x5d1255
4741d9:	83 c4 08             	add    $0x8,%esp
4741dc:	8b c6                	mov    %esi,%eax
4741de:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4741e1:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4741e8:	59                   	pop    %ecx
4741e9:	5f                   	pop    %edi
4741ea:	5e                   	pop    %esi
4741eb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4741ee:	33 cd                	xor    %ebp,%ecx
4741f0:	e8 31 d8 15 00       	call   0x5d1a26
4741f5:	8b e5                	mov    %ebp,%esp
4741f7:	5d                   	pop    %ebp
4741f8:	c2 08 00             	ret    $0x8
4741fb:	e8 f0 1f 16 00       	call   0x5d61f0
474200:	cc                   	int3
474201:	cc                   	int3
474202:	cc                   	int3
474203:	cc                   	int3
474204:	cc                   	int3
474205:	cc                   	int3
474206:	cc                   	int3
474207:	cc                   	int3
474208:	cc                   	int3
474209:	cc                   	int3
47420a:	cc                   	int3
47420b:	cc                   	int3
47420c:	cc                   	int3
47420d:	cc                   	int3
47420e:	cc                   	int3
47420f:	cc                   	int3
474210:	55                   	push   %ebp
474211:	8b ec                	mov    %esp,%ebp
474213:	83 ec 38             	sub    $0x38,%esp
474216:	8b 4d 08             	mov    0x8(%ebp),%ecx
474219:	8d 55 c8             	lea    -0x38(%ebp),%edx
47421c:	53                   	push   %ebx
47421d:	8b 5d 10             	mov    0x10(%ebp),%ebx
474220:	56                   	push   %esi
474221:	8b 01                	mov    (%ecx),%eax
474223:	8b 75 0c             	mov    0xc(%ebp),%esi
474226:	57                   	push   %edi
474227:	52                   	push   %edx
474228:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47422b:	ff 50 48             	call   *0x48(%eax)
47422e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
474231:	8d 55 e4             	lea    -0x1c(%ebp),%edx
474234:	52                   	push   %edx
474235:	8b 38                	mov    (%eax),%edi
474237:	8b 01                	mov    (%ecx),%eax
474239:	89 7d f8             	mov    %edi,-0x8(%ebp)
47423c:	ff 50 48             	call   *0x48(%eax)
47423f:	8b 48 04             	mov    0x4(%eax),%ecx
474242:	8b 47 10             	mov    0x10(%edi),%eax
474245:	89 4d f0             	mov    %ecx,-0x10(%ebp)
474248:	80 78 2c 00          	cmpb   $0x0,0x2c(%eax)
47424c:	74 22                	je     0x474270
47424e:	8b 45 f4             	mov    -0xc(%ebp),%eax
474251:	53                   	push   %ebx
474252:	89 4d e8             	mov    %ecx,-0x18(%ebp)
474255:	8d 4d e0             	lea    -0x20(%ebp),%ecx
474258:	56                   	push   %esi
474259:	89 45 e0             	mov    %eax,-0x20(%ebp)
47425c:	89 7d e4             	mov    %edi,-0x1c(%ebp)
47425f:	e8 1c e8 ff ff       	call   0x472a80
474264:	5f                   	pop    %edi
474265:	5e                   	pop    %esi
474266:	5b                   	pop    %ebx
474267:	8b e5                	mov    %ebp,%esp
474269:	5d                   	pop    %ebp
47426a:	c3                   	ret
47426b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
474270:	3b 33                	cmp    (%ebx),%esi
474272:	72 2a                	jb     0x47429e
474274:	8b c6                	mov    %esi,%eax
474276:	2b 43 04             	sub    0x4(%ebx),%eax
474279:	3b 43 10             	cmp    0x10(%ebx),%eax
47427c:	0f 84 e0 00 00 00    	je     0x474362
474282:	ff 73 48             	push   0x48(%ebx)
474285:	8b cb                	mov    %ebx,%ecx
474287:	50                   	push   %eax
474288:	8d 45 d8             	lea    -0x28(%ebp),%eax
47428b:	50                   	push   %eax
47428c:	e8 9f ac fe ff       	call   0x45ef30
474291:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
474295:	8b 75 d8             	mov    -0x28(%ebp),%esi
474298:	0f 85 df 00 00 00    	jne    0x47437d
47429e:	0f b6 3e             	movzbl (%esi),%edi
4742a1:	81 ff 80 00 00 00    	cmp    $0x80,%edi
4742a7:	73 03                	jae    0x4742ac
4742a9:	46                   	inc    %esi
4742aa:	eb 2f                	jmp    0x4742db
4742ac:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
4742b0:	83 c7 80             	add    $0xffffff80,%edi
4742b3:	8b c1                	mov    %ecx,%eax
4742b5:	c1 e0 07             	shl    $0x7,%eax
4742b8:	03 f8                	add    %eax,%edi
4742ba:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
4742c0:	73 05                	jae    0x4742c7
4742c2:	83 c6 02             	add    $0x2,%esi
4742c5:	eb 14                	jmp    0x4742db
4742c7:	57                   	push   %edi
4742c8:	8d 45 d0             	lea    -0x30(%ebp),%eax
4742cb:	56                   	push   %esi
4742cc:	50                   	push   %eax
4742cd:	e8 0e b7 fe ff       	call   0x45f9e0
4742d2:	8b 7d d4             	mov    -0x2c(%ebp),%edi
4742d5:	83 c4 0c             	add    $0xc,%esp
4742d8:	8b 75 d0             	mov    -0x30(%ebp),%esi
4742db:	85 f6                	test   %esi,%esi
4742dd:	74 7a                	je     0x474359
4742df:	85 ff                	test   %edi,%edi
4742e1:	0f 84 90 00 00 00    	je     0x474377
4742e7:	8b c7                	mov    %edi,%eax
4742e9:	24 07                	and    $0x7,%al
4742eb:	3c 04                	cmp    $0x4,%al
4742ed:	0f 84 84 00 00 00    	je     0x474377
4742f3:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4742f6:	8b c7                	mov    %edi,%eax
4742f8:	c1 e8 03             	shr    $0x3,%eax
4742fb:	50                   	push   %eax
4742fc:	89 45 fc             	mov    %eax,-0x4(%ebp)
4742ff:	e8 fc c8 01 00       	call   0x490c00
474304:	89 45 ec             	mov    %eax,-0x14(%ebp)
474307:	85 c0                	test   %eax,%eax
474309:	75 30                	jne    0x47433b
47430b:	ff 75 fc             	push   -0x4(%ebp)
47430e:	8b 4d f8             	mov    -0x8(%ebp),%ecx
474311:	e8 ea c6 01 00       	call   0x490a00
474316:	85 c0                	test   %eax,%eax
474318:	74 1e                	je     0x474338
47431a:	8b 4b 4c             	mov    0x4c(%ebx),%ecx
47431d:	ff 75 fc             	push   -0x4(%ebp)
474320:	85 c9                	test   %ecx,%ecx
474322:	75 0a                	jne    0x47432e
474324:	8b 4d f0             	mov    -0x10(%ebp),%ecx
474327:	e8 c4 ff fe ff       	call   0x4642f0
47432c:	eb 0d                	jmp    0x47433b
47432e:	ff 75 f8             	push   -0x8(%ebp)
474331:	e8 3a c4 01 00       	call   0x490770
474336:	eb 03                	jmp    0x47433b
474338:	8b 45 ec             	mov    -0x14(%ebp),%eax
47433b:	50                   	push   %eax
47433c:	ff 75 f0             	push   -0x10(%ebp)
47433f:	6a 00                	push   $0x0
474341:	57                   	push   %edi
474342:	53                   	push   %ebx
474343:	56                   	push   %esi
474344:	ff 75 f4             	push   -0xc(%ebp)
474347:	e8 44 00 00 00       	call   0x474390
47434c:	8b f0                	mov    %eax,%esi
47434e:	83 c4 1c             	add    $0x1c,%esp
474351:	85 f6                	test   %esi,%esi
474353:	0f 85 17 ff ff ff    	jne    0x474270
474359:	5f                   	pop    %edi
47435a:	5e                   	pop    %esi
47435b:	33 c0                	xor    %eax,%eax
47435d:	5b                   	pop    %ebx
47435e:	8b e5                	mov    %ebp,%esp
474360:	5d                   	pop    %ebp
474361:	c3                   	ret
474362:	85 c0                	test   %eax,%eax
474364:	7e 17                	jle    0x47437d
474366:	33 c0                	xor    %eax,%eax
474368:	39 43 08             	cmp    %eax,0x8(%ebx)