474095:	e8 3a f4 ff ff       	call   0x4734d4
47409a:	84 c0                	test   %al,%al
47409c:	75 15                	jne    0x4740b3
47409e:	8b 45 fc             	mov    -0x4(%ebp),%eax
4740a1:	8b 40 1c             	mov    0x1c(%eax),%eax
4740a4:	f6 40 3f 04          	testb  $0x4,0x3f(%eax)
4740a8:	75 09                	jne    0x4740b3
4740aa:	8b 47 34             	mov    0x34(%edi),%eax
4740ad:	40                   	inc    %eax
4740ae:	01 45 cc             	add    %eax,-0x34(%ebp)
4740b1:	eb 07                	jmp    0x4740ba
4740b3:	8b 47 30             	mov    0x30(%edi),%eax
4740b6:	40                   	inc    %eax
4740b7:	01 45 d0             	add    %eax,-0x30(%ebp)
4740ba:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4740bd:	50                   	push   %eax
4740be:	8a 45 08             	mov    0x8(%ebp),%al
4740c1:	50                   	push   %eax
4740c2:	83 ce 25             	or     $0x25,%esi
4740c5:	56                   	push   %esi
4740c6:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4740c9:	8b 55 f8             	mov    -0x8(%ebp),%edx
4740cc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4740cf:	8b 30                	mov    (%eax),%esi
4740d1:	ff 56 08             	call   *0x8(%esi)
4740d4:	eb 45                	jmp    0x47411b
4740d6:	8b 45 dc             	mov    -0x24(%ebp),%eax
4740d9:	40                   	inc    %eax
4740da:	83 c0 02             	add    $0x2,%eax
4740dd:	01 45 cc             	add    %eax,-0x34(%ebp)
4740e0:	8b 55 d8             	mov    -0x28(%ebp),%edx
4740e3:	2b 55 d0             	sub    -0x30(%ebp),%edx
4740e6:	8b 8d 14 ff ff ff    	mov    -0xec(%ebp),%ecx
4740ec:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
4740f2:	03 c8                	add    %eax,%ecx
4740f4:	2b d1                	sub    %ecx,%edx
4740f6:	83 fa 04             	cmp    $0x4,%edx
4740f9:	75 03                	jne    0x4740fe
4740fb:	ff 4d d8             	decl   -0x28(%ebp)
4740fe:	01 45 d0             	add    %eax,-0x30(%ebp)
474101:	8b 45 e4             	mov    -0x1c(%ebp),%eax
474104:	50                   	push   %eax
474105:	8a 45 08             	mov    0x8(%ebp),%al
474108:	50                   	push   %eax
474109:	83 ce 24             	or     $0x24,%esi
47410c:	56                   	push   %esi
47410d:	8d 4d cc             	lea    -0x34(%ebp),%ecx
474110:	8b 55 f8             	mov    -0x8(%ebp),%edx
474113:	8b 45 fc             	mov    -0x4(%ebp),%eax
474116:	8b 30                	mov    (%eax),%esi
474118:	ff 56 08             	call   *0x8(%esi)
47411b:	84 db                	test   %bl,%bl
47411d:	0f 85 10 01 00 00    	jne    0x474233
474123:	8d 55 e4             	lea    -0x1c(%ebp),%edx
474126:	8b 45 fc             	mov    -0x4(%ebp),%eax
474129:	8b 40 1c             	mov    0x1c(%eax),%eax
47412c:	e8 bb e7 ff ff       	call   0x4728ec
474131:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
474135:	74 6a                	je     0x4741a1
474137:	57                   	push   %edi
474138:	8d 75 bc             	lea    -0x44(%ebp),%esi
47413b:	8d 7d cc             	lea    -0x34(%ebp),%edi
47413e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47413f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
474140:	a5                   	movsl  %ds:(%esi),%es:(%edi)
474141:	a5                   	movsl  %ds:(%esi),%es:(%edi)
474142:	5f                   	pop    %edi
474143:	8b 45 f8             	mov    -0x8(%ebp),%eax
474146:	e8 75 4b fb ff       	call   0x428cc0
47414b:	b1 01                	mov    $0x1,%cl
47414d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
474150:	e8 37 7c ff ff       	call   0x46bd8c
474155:	8b 55 d8             	mov    -0x28(%ebp),%edx
474158:	2b 55 d0             	sub    -0x30(%ebp),%edx
47415b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47415e:	2b ca                	sub    %edx,%ecx
474160:	2b c8                	sub    %eax,%ecx
474162:	89 4d cc             	mov    %ecx,-0x34(%ebp)
474165:	8b 55 d8             	mov    -0x28(%ebp),%edx
474168:	2b 55 d0             	sub    -0x30(%ebp),%edx
47416b:	8b 8d 14 ff ff ff    	mov    -0xec(%ebp),%ecx
474171:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
474177:	03 c8                	add    %eax,%ecx
474179:	2b d1                	sub    %ecx,%edx
47417b:	83 fa 04             	cmp    $0x4,%edx
47417e:	75 03                	jne    0x474183
474180:	ff 4d d8             	decl   -0x28(%ebp)
474183:	01 45 d0             	add    %eax,-0x30(%ebp)
474186:	8b 45 e4             	mov    -0x1c(%ebp),%eax
474189:	50                   	push   %eax
47418a:	8a 45 08             	mov    0x8(%ebp),%al
47418d:	50                   	push   %eax
47418e:	68 24 08 00 00       	push   $0x824
474193:	8d 4d cc             	lea    -0x34(%ebp),%ecx
474196:	8b 55 f8             	mov    -0x8(%ebp),%edx
474199:	8b 45 fc             	mov    -0x4(%ebp),%eax
47419c:	8b 30                	mov    (%eax),%esi
47419e:	ff 56 08             	call   *0x8(%esi)
4741a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4741a4:	8b 40 1c             	mov    0x1c(%eax),%eax
4741a7:	f6 40 64 01          	testb  $0x1,0x64(%eax)
4741ab:	0f 84 82 00 00 00    	je     0x474233
4741b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4741b4:	8b 40 1c             	mov    0x1c(%eax),%eax
4741b7:	f6 40 64 20          	testb  $0x20,0x64(%eax)
4741bb:	74 6f                	je     0x47422c
4741bd:	57                   	push   %edi
4741be:	8d 75 bc             	lea    -0x44(%ebp),%esi
4741c1:	8d 7d cc             	lea    -0x34(%ebp),%edi
4741c4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4741c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4741c6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4741c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4741c8:	5f                   	pop    %edi
4741c9:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4741cc:	2b 45 f4             	sub    -0xc(%ebp),%eax
4741cf:	89 45 cc             	mov    %eax,-0x34(%ebp)
4741d2:	8a 45 10             	mov    0x10(%ebp),%al
4741d5:	22 45 eb             	and    -0x15(%ebp),%al
4741d8:	74 1b                	je     0x4741f5
4741da:	68 0f 08 00 00       	push   $0x80f
4741df:	6a 02                	push   $0x2
4741e1:	8d 45 cc             	lea    -0x34(%ebp),%eax
4741e4:	50                   	push   %eax
4741e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4741e8:	e8 d3 4a fb ff       	call   0x428cc0
4741ed:	50                   	push   %eax
4741ee:	e8 15 37 f9 ff       	call   0x407908
4741f3:	eb 37                	jmp    0x47422c
4741f5:	ff 4d cc             	decl   -0x34(%ebp)
4741f8:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4741fc:	75 18                	jne    0x474216
4741fe:	6a 01                	push   $0x1
474200:	6a 06                	push   $0x6
474202:	8d 45 cc             	lea    -0x34(%ebp),%eax
474205:	50                   	push   %eax
474206:	8b 45 f8             	mov    -0x8(%ebp),%eax
474209:	e8 b2 4a fb ff       	call   0x428cc0
47420e:	50                   	push   %eax
47420f:	e8 f4 36 f9 ff       	call   0x407908
474214:	eb 16                	jmp    0x47422c
474216:	6a 01                	push   $0x1
474218:	6a 02                	push   $0x2
47421a:	8d 45 cc             	lea    -0x34(%ebp),%eax
47421d:	50                   	push   %eax
47421e:	8b 45 f8             	mov    -0x8(%ebp),%eax
474221:	e8 9a 4a fb ff       	call   0x428cc0
474226:	50                   	push   %eax
474227:	e8 dc 36 f9 ff       	call   0x407908
47422c:	55                   	push   %ebp
47422d:	e8 42 f7 ff ff       	call   0x473974
474232:	59                   	pop    %ecx
474233:	80 7d e9 00          	cmpb   $0x0,-0x17(%ebp)
474237:	75 18                	jne    0x474251
474239:	84 db                	test   %bl,%bl
47423b:	0f 85 55 02 00 00    	jne    0x474496
474241:	8b 45 fc             	mov    -0x4(%ebp),%eax
474244:	8b 40 1c             	mov    0x1c(%eax),%eax
474247:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
47424b:	0f 84 45 02 00 00    	je     0x474496
474251:	57                   	push   %edi
474252:	8d 75 bc             	lea    -0x44(%ebp),%esi
474255:	8d 7d cc             	lea    -0x34(%ebp),%edi
474258:	a5                   	movsl  %ds:(%esi),%es:(%edi)
474259:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47425a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47425b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
47425c:	5f                   	pop    %edi
47425d:	84 db                	test   %bl,%bl
47425f:	74 3a                	je     0x47429b
474261:	8b 45 fc             	mov    -0x4(%ebp),%eax
474264:	e8 6b f2 ff ff       	call   0x4734d4
474269:	84 c0                	test   %al,%al
47426b:	75 1d                	jne    0x47428a
47426d:	8b 45 fc             	mov    -0x4(%ebp),%eax
474270:	8b 40 1c             	mov    0x1c(%eax),%eax
474273:	f6 40 3f 04          	testb  $0x4,0x3f(%eax)
474277:	75 11                	jne    0x47428a
474279:	8b 45 cc             	mov    -0x34(%ebp),%eax
47427c:	03 47 34             	add    0x34(%edi),%eax
47427f:	83 c0 02             	add    $0x2,%eax
474282:	89 45 d4             	mov    %eax,-0x2c(%ebp)
474285:	e9 c6 00 00 00       	jmp    0x474350
47428a:	8b 45 d0             	mov    -0x30(%ebp),%eax
47428d:	03 47 30             	add    0x30(%edi),%eax
474290:	83 c0 02             	add    $0x2,%eax
474293:	89 45 d8             	mov    %eax,-0x28(%ebp)
474296:	e9 b5 00 00 00       	jmp    0x474350
47429b:	8b 45 cc             	mov    -0x34(%ebp),%eax
47429e:	03 45 dc             	add    -0x24(%ebp),%eax
4742a1:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4742a4:	8a 45 10             	mov    0x10(%ebp),%al
4742a7:	22 45 eb             	and    -0x15(%ebp),%al
4742aa:	75 0c                	jne    0x4742b8
4742ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
4742af:	8b 40 1c             	mov    0x1c(%eax),%eax
4742b2:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
4742b6:	74 29                	je     0x4742e1
4742b8:	68 0f 08 00 00       	push   $0x80f
4742bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4742c0:	8b 40 1c             	mov    0x1c(%eax),%eax
4742c3:	0f b6 40 3c          	movzbl 0x3c(%eax),%eax
4742c7:	8b 04 85 04 af 68 00 	mov    0x68af04(,%eax,4),%eax
4742ce:	50                   	push   %eax
4742cf:	8d 45 cc             	lea    -0x34(%ebp),%eax
4742d2:	50                   	push   %eax
4742d3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4742d6:	e8 e5 49 fb ff       	call   0x428cc0
4742db:	50                   	push   %eax
4742dc:	e8 27 36 f9 ff       	call   0x407908
4742e1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4742e4:	8b 40 1c             	mov    0x1c(%eax),%eax
4742e7:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
4742eb:	74 4a                	je     0x474337
4742ed:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
4742f1:	75 44                	jne    0x474337
4742f3:	6a ff                	push   $0xffffffff
4742f5:	6a ff                	push   $0xffffffff
4742f7:	8d 45 cc             	lea    -0x34(%ebp),%eax
4742fa:	50                   	push   %eax
4742fb:	e8 88 38 f9 ff       	call   0x407b88
474300:	e8 03 f9 ff ff       	call   0x473c08
474305:	8b d0                	mov    %eax,%edx
474307:	8b 45 f8             	mov    -0x8(%ebp),%eax
47430a:	8b 40 14             	mov    0x14(%eax),%eax
47430d:	e8 46 3f fb ff       	call   0x428258
474312:	8d 55 cc             	lea    -0x34(%ebp),%edx
474315:	8b 45 f8             	mov    -0x8(%ebp),%eax
474318:	e8 df 43 fb ff       	call   0x4286fc
47431d:	8b 45 f8             	mov    -0x8(%ebp),%eax
474320:	8b 40 14             	mov    0x14(%eax),%eax
474323:	b2 01                	mov    $0x1,%dl
474325:	e8 76 40 fb ff       	call   0x4283a0
47432a:	6a 01                	push   $0x1
47432c:	6a 01                	push   $0x1
47432e:	8d 45 cc             	lea    -0x34(%ebp),%eax
474331:	50                   	push   %eax
474332:	e8 51 38 f9 ff       	call   0x407b88
474337:	8b 45 fc             	mov    -0x4(%ebp),%eax
47433a:	8b 40 1c             	mov    0x1c(%eax),%eax
47433d:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
474341:	74 0d                	je     0x474350
474343:	6a 01                	push   $0x1
474345:	6a 01                	push   $0x1
474347:	8d 45 cc             	lea    -0x34(%ebp),%eax
47434a:	50                   	push   %eax
47434b:	e8 28 39 f9 ff       	call   0x407c78
474350:	80 7d e9 00          	cmpb   $0x0,-0x17(%ebp)
474354:	0f 84 8a 00 00 00    	je     0x4743e4
47435a:	8b 75 d4             	mov    -0x2c(%ebp),%esi
47435d:	8b 45 cc             	mov    -0x34(%ebp),%eax
474360:	2b f0                	sub    %eax,%esi
474362:	2b 77 34             	sub    0x34(%edi),%esi
474365:	d1 fe                	sar    $1,%esi
474367:	79 03                	jns    0x47436c
474369:	83 d6 00             	adc    $0x0,%esi
47436c:	03 f0                	add    %eax,%esi
47436e:	8b 55 d8             	mov    -0x28(%ebp),%edx
474371:	8b 45 d0             	mov    -0x30(%ebp),%eax
474374:	2b d0                	sub    %eax,%edx
474376:	2b 57 30             	sub    0x30(%edi),%edx
474379:	d1 fa                	sar    $1,%edx
47437b:	79 03                	jns    0x474380
47437d:	83 d2 00             	adc    $0x0,%edx
474380:	03 d0                	add    %eax,%edx
474382:	89 55 e0             	mov    %edx,-0x20(%ebp)
474385:	8b c7                	mov    %edi,%eax
474387:	8b 15 28 07 47 00    	mov    0x470728,%edx
47438d:	e8 72 f8 f8 ff       	call   0x403c04
474392:	84 c0                	test   %al,%al
474394:	74 2b                	je     0x4743c1
474396:	8b 55 e0             	mov    -0x20(%ebp),%edx
474399:	52                   	push   %edx
47439a:	8b 45 fc             	mov    -0x4(%ebp),%eax
47439d:	8b 40 1c             	mov    0x1c(%eax),%eax
4743a0:	8b 50 50             	mov    0x50(%eax),%edx
4743a3:	52                   	push   %edx
4743a4:	8a 55 eb             	mov    -0x15(%ebp),%dl
4743a7:	52                   	push   %edx
4743a8:	8a 55 10             	mov    0x10(%ebp),%dl
4743ab:	52                   	push   %edx
4743ac:	8a 40 3c             	mov    0x3c(%eax),%al
4743af:	50                   	push   %eax
4743b0:	8b ce                	mov    %esi,%ecx
4743b2:	8b 55 f8             	mov    -0x8(%ebp),%edx
4743b5:	8b c7                	mov    %edi,%eax
4743b7:	8b 18                	mov    (%eax),%ebx
4743b9:	ff 53 3c             	call   *0x3c(%ebx)
4743bc:	e9 d5 00 00 00       	jmp    0x474496
4743c1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4743c4:	50                   	push   %eax
4743c5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4743c8:	8b 40 1c             	mov    0x1c(%eax),%eax
4743cb:	8b 40 50             	mov    0x50(%eax),%eax
4743ce:	50                   	push   %eax
4743cf:	8a 45 eb             	mov    -0x15(%ebp),%al
4743d2:	50                   	push   %eax
4743d3:	8b ce                	mov    %esi,%ecx
4743d5:	8b 55 f8             	mov    -0x8(%ebp),%edx
4743d8:	8b c7                	mov    %edi,%eax
4743da:	e8 15 21 fe ff       	call   0x4564f4
4743df:	e9 b2 00 00 00       	jmp    0x474496
4743e4:	84 db                	test   %bl,%bl
4743e6:	0f 85 aa 00 00 00    	jne    0x474496
4743ec:	8b 45 fc             	mov    -0x4(%ebp),%eax
4743ef:	8b 40 1c             	mov    0x1c(%eax),%eax
4743f2:	80 78 3c 00          	cmpb   $0x0,0x3c(%eax)
4743f6:	0f 84 9a 00 00 00    	je     0x474496
4743fc:	8b 75 cc             	mov    -0x34(%ebp),%esi
4743ff:	03 75 d4             	add    -0x2c(%ebp),%esi
474402:	d1 fe                	sar    $1,%esi
474404:	79 03                	jns    0x474409
474406:	83 d6 00             	adc    $0x0,%esi
474409:	83 ee 02             	sub    $0x2,%esi
47440c:	8b 45 d0             	mov    -0x30(%ebp),%eax
47440f:	03 45 d8             	add    -0x28(%ebp),%eax
474412:	d1 f8                	sar    $1,%eax
474414:	79 03                	jns    0x474419
474416:	83 d0 00             	adc    $0x0,%eax
474419:	40                   	inc    %eax
47441a:	89 45 e0             	mov    %eax,-0x20(%ebp)
47441d:	8d 95 4c ff ff ff    	lea    -0xb4(%ebp),%edx
474423:	b8 0c af 68 00       	mov    $0x68af0c,%eax
474428:	b9 60 00 00 00       	mov    $0x60,%ecx
47442d:	e8 ee e5 f8 ff       	call   0x402a20
474432:	ba 0c 00 00 00       	mov    $0xc,%edx
474437:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
47443d:	01 30                	add    %esi,(%eax)
47443f:	8b 4d e0             	mov    -0x20(%ebp),%ecx
474442:	01 48 04             	add    %ecx,0x4(%eax)
474445:	83 c0 08             	add    $0x8,%eax
474448:	4a                   	dec    %edx
474449:	75 f2                	jne    0x47443d
47444b:	8b 45 f8             	mov    -0x8(%ebp),%eax
47444e:	8b 40 10             	mov    0x10(%eax),%eax
474451:	ba 12 00 00 80       	mov    $0x80000012,%edx
474456:	e8 29 3b fb ff       	call   0x427f84
47445b:	6a 07                	push   $0x7
47445d:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
474463:	50                   	push   %eax
474464:	8b 45 f8             	mov    -0x8(%ebp),%eax
474467:	e8 54 48 fb ff       	call   0x428cc0
47446c:	50                   	push   %eax
47446d:	e8 4e 32 f9 ff       	call   0x4076c0
474472:	8b 45 f8             	mov    -0x8(%ebp),%eax
474475:	8b 40 10             	mov    0x10(%eax),%eax
474478:	ba 14 00 00 80       	mov    $0x80000014,%edx
47447d:	e8 02 3b fb ff       	call   0x427f84
474482:	6a 05                	push   $0x5
474484:	8d 45 84             	lea    -0x7c(%ebp),%eax