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
474487:	50                   	push   %eax
474488:	8b 45 f8             	mov    -0x8(%ebp),%eax
47448b:	e8 30 48 fb ff       	call   0x428cc0
474490:	50                   	push   %eax
474491:	e8 2a 32 f9 ff       	call   0x4076c0
474496:	33 c0                	xor    %eax,%eax
474498:	5a                   	pop    %edx
474499:	59                   	pop    %ecx
47449a:	59                   	pop    %ecx
47449b:	64 89 10             	mov    %edx,%fs:(%eax)
47449e:	68 b3 44 47 00       	push   $0x4744b3
4744a3:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4744a6:	e8 bd 03 f9 ff       	call   0x404868
4744ab:	c3                   	ret
4744ac:	e9 5b fd f8 ff       	jmp    0x40420c
4744b1:	eb f0                	jmp    0x4744a3
4744b3:	5f                   	pop    %edi
4744b4:	5e                   	pop    %esi
4744b5:	5b                   	pop    %ebx
4744b6:	8b e5                	mov    %ebp,%esp
4744b8:	5d                   	pop    %ebp
4744b9:	c2 0c 00             	ret    $0xc
4744bc:	01 00                	add    %eax,(%eax)
4744be:	00 00                	add    %al,(%eax)
4744c0:	c3                   	ret
4744c1:	8d 40 00             	lea    0x0(%eax),%eax
4744c4:	8b d0                	mov    %eax,%edx
4744c6:	8b 40 24             	mov    0x24(%eax),%eax
4744c9:	e8 8a 08 00 00       	call   0x474d58
4744ce:	c3                   	ret
4744cf:	90                   	nop
4744d0:	8b 50 24             	mov    0x24(%eax),%edx
4744d3:	80 7a 71 00          	cmpb   $0x0,0x71(%edx)
4744d7:	75 0c                	jne    0x4744e5
4744d9:	8b 40 1c             	mov    0x1c(%eax),%eax
4744dc:	f6 40 40 02          	testb  $0x2,0x40(%eax)
4744e0:	75 03                	jne    0x4744e5
4744e2:	33 c0                	xor    %eax,%eax
4744e4:	c3                   	ret
4744e5:	b0 01                	mov    $0x1,%al
4744e7:	c3                   	ret
4744e8:	8b 50 24             	mov    0x24(%eax),%edx
4744eb:	80 7a 71 00          	cmpb   $0x0,0x71(%edx)
4744ef:	75 0c                	jne    0x4744fd
4744f1:	8b 40 1c             	mov    0x1c(%eax),%eax
4744f4:	f6 40 40 01          	testb  $0x1,0x40(%eax)
4744f8:	75 03                	jne    0x4744fd
4744fa:	33 c0                	xor    %eax,%eax
4744fc:	c3                   	ret
4744fd:	b0 01                	mov    $0x1,%al
4744ff:	c3                   	ret
474500:	53                   	push   %ebx
474501:	56                   	push   %esi
474502:	8b f2                	mov    %edx,%esi
474504:	8b d8                	mov    %eax,%ebx
474506:	8b 43 1c             	mov    0x1c(%ebx),%eax
474509:	f6 40 64 01          	testb  $0x1,0x64(%eax)
47450d:	0f 95 c0             	setne  %al
474510:	34 01                	xor    $0x1,%al
474512:	8b 53 1c             	mov    0x1c(%ebx),%edx
474515:	f6 42 64 20          	testb  $0x20,0x64(%edx)
474519:	74 26                	je     0x474541
47451b:	8b c3                	mov    %ebx,%eax
47451d:	8b 10                	mov    (%eax),%edx
47451f:	ff 52 50             	call   *0x50(%edx)
474522:	84 c0                	test   %al,%al
474524:	74 07                	je     0x47452d
474526:	b8 0b 00 00 00       	mov    $0xb,%eax
47452b:	eb 07                	jmp    0x474534
47452d:	6a 47                	push   $0x47
47452f:	e8 ec 35 f9 ff       	call   0x407b20
474534:	8b 53 0c             	mov    0xc(%ebx),%edx
474537:	2b 53 04             	sub    0x4(%ebx),%edx
47453a:	2b d0                	sub    %eax,%edx
47453c:	3b f2                	cmp    %edx,%esi
47453e:	0f 9c c0             	setl   %al
474541:	5e                   	pop    %esi
474542:	5b                   	pop    %ebx
474543:	c3                   	ret
474544:	55                   	push   %ebp
474545:	8b ec                	mov    %esp,%ebp
474547:	51                   	push   %ecx
474548:	53                   	push   %ebx
474549:	56                   	push   %esi
47454a:	57                   	push   %edi
47454b:	89 45 fc             	mov    %eax,-0x4(%ebp)
47454e:	8b 45 fc             	mov    -0x4(%ebp),%eax
474551:	8b b8 c0 00 00 00    	mov    0xc0(%eax),%edi
474557:	4f                   	dec    %edi
474558:	85 ff                	test   %edi,%edi
47455a:	7c 48                	jl     0x4745a4
47455c:	47                   	inc    %edi
47455d:	33 db                	xor    %ebx,%ebx
47455f:	8b 45 fc             	mov    -0x4(%ebp),%eax
474562:	8b 80 c4 00 00 00    	mov    0xc4(%eax),%eax
474568:	8b 34 98             	mov    (%eax,%ebx,4),%esi
47456b:	8b 56 1c             	mov    0x1c(%esi),%edx
47456e:	80 7e 21 00          	cmpb   $0x0,0x21(%esi)
474572:	75 06                	jne    0x47457a
474574:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
474578:	74 26                	je     0x4745a0
47457a:	f6 42 3f 01          	testb  $0x1,0x3f(%edx)
47457e:	74 20                	je     0x4745a0
474580:	f6 42 64 02          	testb  $0x2,0x64(%edx)
474584:	74 1a                	je     0x4745a0
474586:	80 7a 3e 00          	cmpb   $0x0,0x3e(%edx)
47458a:	74 14                	je     0x4745a0
47458c:	80 ba a8 00 00 00 00 	cmpb   $0x0,0xa8(%edx)
474593:	74 0b                	je     0x4745a0
474595:	b2 01                	mov    $0x1,%dl
474597:	8b c6                	mov    %esi,%eax
474599:	e8 52 02 00 00       	call   0x4747f0
47459e:	eb 04                	jmp    0x4745a4
4745a0:	43                   	inc    %ebx
4745a1:	4f                   	dec    %edi
4745a2:	75 bb                	jne    0x47455f
4745a4:	5f                   	pop    %edi
4745a5:	5e                   	pop    %esi
4745a6:	5b                   	pop    %ebx
4745a7:	59                   	pop    %ecx
4745a8:	5d                   	pop    %ebp
4745a9:	c3                   	ret
4745aa:	8b c0                	mov    %eax,%eax
4745ac:	55                   	push   %ebp
4745ad:	8b ec                	mov    %esp,%ebp
4745af:	51                   	push   %ecx
4745b0:	53                   	push   %ebx
4745b1:	56                   	push   %esi
4745b2:	8b f1                	mov    %ecx,%esi
4745b4:	88 55 ff             	mov    %dl,-0x1(%ebp)
4745b7:	8b d8                	mov    %eax,%ebx
4745b9:	8b 43 1c             	mov    0x1c(%ebx),%eax
4745bc:	80 78 3e 00          	cmpb   $0x0,0x3e(%eax)
4745c0:	75 24                	jne    0x4745e6
4745c2:	8b 43 24             	mov    0x24(%ebx),%eax
4745c5:	83 b8 98 00 00 00 00 	cmpl   $0x0,0x98(%eax)
4745cc:	0f 85 a0 00 00 00    	jne    0x474672
4745d2:	80 78 70 00          	cmpb   $0x0,0x70(%eax)
4745d6:	0f 85 96 00 00 00    	jne    0x474672
4745dc:	e8 57 3a 00 00       	call   0x478038
4745e1:	e9 8c 00 00 00       	jmp    0x474672
4745e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4745e9:	8b d6                	mov    %esi,%edx
4745eb:	8b c3                	mov    %ebx,%eax
4745ed:	8b 30                	mov    (%eax),%esi
4745ef:	ff 56 24             	call   *0x24(%esi)
4745f2:	84 c0                	test   %al,%al
4745f4:	74 27                	je     0x47461d
4745f6:	8b c3                	mov    %ebx,%eax
4745f8:	8b 10                	mov    (%eax),%edx
4745fa:	ff 52 50             	call   *0x50(%edx)
4745fd:	84 c0                	test   %al,%al
4745ff:	74 71                	je     0x474672
474601:	8b 43 24             	mov    0x24(%ebx),%eax
474604:	e8 9b 0f 00 00       	call   0x4755a4
474609:	8b 43 24             	mov    0x24(%ebx),%eax
47460c:	e8 a3 37 00 00       	call   0x477db4
474611:	8b d3                	mov    %ebx,%edx
474613:	8b 43 24             	mov    0x24(%ebx),%eax
474616:	e8 25 31 00 00       	call   0x477740
47461b:	eb 55                	jmp    0x474672
47461d:	8b 73 24             	mov    0x24(%ebx),%esi
474620:	3b 9e 8c 00 00 00    	cmp    0x8c(%esi),%ebx
474626:	0f 94 45 fe          	sete   -0x2(%ebp)
47462a:	33 d2                	xor    %edx,%edx
47462c:	8b c6                	mov    %esi,%eax
47462e:	e8 a9 0e 00 00       	call   0x4754dc
474633:	84 c0                	test   %al,%al
474635:	74 3b                	je     0x474672
474637:	80 7d fe 00          	cmpb   $0x0,-0x2(%ebp)
47463b:	74 18                	je     0x474655
47463d:	8b 43 24             	mov    0x24(%ebx),%eax
474640:	83 b8 98 00 00 00 00 	cmpl   $0x0,0x98(%eax)
474647:	75 0c                	jne    0x474655
474649:	80 78 70 00          	cmpb   $0x0,0x70(%eax)