420109:	8b 40 04             	mov    0x4(%eax),%eax
42010c:	3b ce                	cmp    %esi,%ecx
42010e:	72 f2                	jb     0x420102
420110:	85 c0                	test   %eax,%eax
420112:	74 0e                	je     0x420122
420114:	89 42 0c             	mov    %eax,0xc(%edx)
420117:	89 7a 10             	mov    %edi,0x10(%edx)
42011a:	89 4a 14             	mov    %ecx,0x14(%edx)
42011d:	89 45 fc             	mov    %eax,-0x4(%ebp)
420120:	eb 03                	jmp    0x420125
420122:	8b 45 fc             	mov    -0x4(%ebp),%eax
420125:	8b 08                	mov    (%eax),%ecx
420127:	39 19                	cmp    %ebx,(%ecx)
420129:	77 09                	ja     0x420134
42012b:	8b 41 04             	mov    0x4(%ecx),%eax
42012e:	03 01                	add    (%ecx),%eax
420130:	3b d8                	cmp    %eax,%ebx
420132:	72 12                	jb     0x420146
420134:	46                   	inc    %esi
420135:	3b 72 08             	cmp    0x8(%edx),%esi
420138:	72 ad                	jb     0x4200e7
42013a:	b8 90 04 07 80       	mov    $0x80070490,%eax
42013f:	5f                   	pop    %edi
420140:	5e                   	pop    %esi
420141:	5b                   	pop    %ebx
420142:	c9                   	leave
420143:	c2 04 00             	ret    $0x4
420146:	8b 45 f8             	mov    -0x8(%ebp),%eax
420149:	89 08                	mov    %ecx,(%eax)
42014b:	33 c0                	xor    %eax,%eax
42014d:	eb f0                	jmp    0x42013f
42014f:	8b ff                	mov    %edi,%edi
420151:	55                   	push   %ebp
420152:	8b ec                	mov    %esp,%ebp
420154:	81 ec 80 04 00 00    	sub    $0x480,%esp
42015a:	a1 74 b6 42 00       	mov    0x42b674,%eax
42015f:	33 c5                	xor    %ebp,%eax
420161:	89 45 f8             	mov    %eax,-0x8(%ebp)
420164:	53                   	push   %ebx
420165:	56                   	push   %esi
420166:	8b 75 08             	mov    0x8(%ebp),%esi
420169:	8d 85 80 fb ff ff    	lea    -0x480(%ebp),%eax
42016f:	57                   	push   %edi
420170:	6a 34                	push   $0x34
420172:	33 ff                	xor    %edi,%edi
420174:	89 8d b4 fb ff ff    	mov    %ecx,-0x44c(%ebp)
42017a:	8b da                	mov    %edx,%ebx
42017c:	57                   	push   %edi
42017d:	50                   	push   %eax
42017e:	89 9d c0 fb ff ff    	mov    %ebx,-0x440(%ebp)
420184:	e8 24 82 00 00       	call   0x4283ad
420189:	83 c4 0c             	add    $0xc,%esp
42018c:	89 bd c8 fb ff ff    	mov    %edi,-0x438(%ebp)
420192:	53                   	push   %ebx
420193:	ff 15 e4 c0 42 00    	call   *0x42c0e4
420199:	3b f0                	cmp    %eax,%esi
42019b:	74 05                	je     0x4201a2
42019d:	e8 98 61 00 00       	call   0x42633a
4201a2:	56                   	push   %esi
4201a3:	6a 08                	push   $0x8
4201a5:	ff 15 e0 c0 42 00    	call   *0x42c0e0
4201ab:	8b d8                	mov    %eax,%ebx
4201ad:	89 9d b8 fb ff ff    	mov    %ebx,-0x448(%ebp)
4201b3:	83 fb ff             	cmp    $0xffffffff,%ebx
4201b6:	75 12                	jne    0x4201ca
4201b8:	ff 15 18 c2 42 00    	call   *0x42c218
4201be:	8b c8                	mov    %eax,%ecx
4201c0:	e8 e5 b3 fe ff       	call   0x40b5aa
4201c5:	e9 a8 01 00 00       	jmp    0x420372
4201ca:	68 24 04 00 00       	push   $0x424
4201cf:	8d 85 d0 fb ff ff    	lea    -0x430(%ebp),%eax
4201d5:	57                   	push   %edi
4201d6:	50                   	push   %eax
4201d7:	e8 d1 81 00 00       	call   0x4283ad
4201dc:	83 c4 0c             	add    $0xc,%esp
4201df:	c7 85 cc fb ff ff 28 	movl   $0x428,-0x434(%ebp)
4201e6:	04 00 00
4201e9:	8d 85 cc fb ff ff    	lea    -0x434(%ebp),%eax
4201ef:	50                   	push   %eax
4201f0:	53                   	push   %ebx
4201f1:	ff 15 ac c0 42 00    	call   *0x42c0ac
4201f7:	e9 65 01 00 00       	jmp    0x420361
4201fc:	8d 85 c8 fb ff ff    	lea    -0x438(%ebp),%eax
420202:	ba 00 01 00 00       	mov    $0x100,%edx
420207:	50                   	push   %eax
420208:	8d 8d ec fb ff ff    	lea    -0x414(%ebp),%ecx
42020e:	e8 00 65 ff ff       	call   0x416713
420213:	85 c0                	test   %eax,%eax
420215:	79 16                	jns    0x42022d
420217:	bf ff 00 00 00       	mov    $0xff,%edi
42021c:	33 c0                	xor    %eax,%eax
42021e:	89 bd c8 fb ff ff    	mov    %edi,-0x438(%ebp)
420224:	66 89 85 ea fd ff ff 	mov    %ax,-0x216(%ebp)
42022b:	eb 06                	jmp    0x420233
42022d:	8b bd c8 fb ff ff    	mov    -0x438(%ebp),%edi
420233:	8d 04 7d 1e 00 00 00 	lea    0x1e(,%edi,2),%eax
42023a:	50                   	push   %eax
42023b:	ff 15 24 c3 42 00    	call   *0x42c324
420241:	8b f0                	mov    %eax,%esi
420243:	89 b5 c4 fb ff ff    	mov    %esi,-0x43c(%ebp)
420249:	59                   	pop    %ecx
42024a:	85 f6                	test   %esi,%esi
42024c:	0f 84 e1 00 00 00    	je     0x420333
420252:	8d 04 7d 1e 00 00 00 	lea    0x1e(,%edi,2),%eax
420259:	50                   	push   %eax
42025a:	6a 00                	push   $0x0
42025c:	56                   	push   %esi
42025d:	e8 4b 81 00 00       	call   0x4283ad
420262:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
420268:	83 c4 0c             	add    $0xc,%esp
42026b:	8b 8d c0 fb ff ff    	mov    -0x440(%ebp),%ecx
420271:	89 06                	mov    %eax,(%esi)
420273:	8b 85 e4 fb ff ff    	mov    -0x41c(%ebp),%eax
420279:	89 46 04             	mov    %eax,0x4(%esi)
42027c:	8b 95 e0 fb ff ff    	mov    -0x420(%ebp),%edx
420282:	e8 08 23 ff ff       	call   0x41258f
420287:	89 46 08             	mov    %eax,0x8(%esi)
42028a:	8d 95 80 fb ff ff    	lea    -0x480(%ebp),%edx
420290:	33 c0                	xor    %eax,%eax
420292:	8d 8d ec fd ff ff    	lea    -0x214(%ebp),%ecx
420298:	50                   	push   %eax
420299:	50                   	push   %eax
42029a:	50                   	push   %eax
42029b:	e8 f7 12 ff ff       	call   0x411597
4202a0:	85 c0                	test   %eax,%eax
4202a2:	78 26                	js     0x4202ca
4202a4:	8b 8d 88 fb ff ff    	mov    -0x478(%ebp),%ecx
4202aa:	8b c1                	mov    %ecx,%eax
4202ac:	c1 e8 10             	shr    $0x10,%eax
4202af:	66 89 46 0c          	mov    %ax,0xc(%esi)
4202b3:	66 89 4e 0e          	mov    %cx,0xe(%esi)
4202b7:	8b 8d 8c fb ff ff    	mov    -0x474(%ebp),%ecx
4202bd:	8b c1                	mov    %ecx,%eax
4202bf:	c1 e8 10             	shr    $0x10,%eax
4202c2:	66 89 46 10          	mov    %ax,0x10(%esi)
4202c6:	66 89 4e 12          	mov    %cx,0x12(%esi)
4202ca:	83 a5 bc fb ff ff 00 	andl   $0x0,-0x444(%ebp)
4202d1:	8d 46 1c             	lea    0x1c(%esi),%eax
4202d4:	89 46 14             	mov    %eax,0x14(%esi)
4202d7:	83 66 18 00          	andl   $0x0,0x18(%esi)
4202db:	85 ff                	test   %edi,%edi
4202dd:	74 28                	je     0x420307
4202df:	8b 9d bc fb ff ff    	mov    -0x444(%ebp),%ebx
4202e5:	0f b7 84 5d ec fb ff 	movzwl -0x414(%ebp,%ebx,2),%eax
4202ec:	ff
4202ed:	50                   	push   %eax
4202ee:	ff 15 0c c3 42 00    	call   *0x42c30c
4202f4:	59                   	pop    %ecx
4202f5:	8b 4e 14             	mov    0x14(%esi),%ecx
4202f8:	66 89 04 59          	mov    %ax,(%ecx,%ebx,2)
4202fc:	43                   	inc    %ebx
4202fd:	3b df                	cmp    %edi,%ebx
4202ff:	72 e4                	jb     0x4202e5
420301:	8b 9d b8 fb ff ff    	mov    -0x448(%ebp),%ebx
420307:	8b 46 14             	mov    0x14(%esi),%eax
42030a:	33 c9                	xor    %ecx,%ecx
42030c:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
420310:	8d 85 c4 fb ff ff    	lea    -0x43c(%ebp),%eax
420316:	8b 8d b4 fb ff ff    	mov    -0x44c(%ebp),%ecx
42031c:	50                   	push   %eax
42031d:	e8 fd 02 00 00       	call   0x42061f
420322:	85 c0                	test   %eax,%eax
420324:	79 0d                	jns    0x420333
420326:	ff b5 c4 fb ff ff    	push   -0x43c(%ebp)
42032c:	ff 15 1c c3 42 00    	call   *0x42c31c
420332:	59                   	pop    %ecx
420333:	68 24 04 00 00       	push   $0x424
420338:	8d 85 d0 fb ff ff    	lea    -0x430(%ebp),%eax
42033e:	6a 00                	push   $0x0
420340:	50                   	push   %eax
420341:	e8 67 80 00 00       	call   0x4283ad
420346:	83 c4 0c             	add    $0xc,%esp
420349:	c7 85 cc fb ff ff 28 	movl   $0x428,-0x434(%ebp)
420350:	04 00 00
420353:	8d 85 cc fb ff ff    	lea    -0x434(%ebp),%eax
420359:	50                   	push   %eax
42035a:	53                   	push   %ebx
42035b:	ff 15 a4 c0 42 00    	call   *0x42c0a4
420361:	85 c0                	test   %eax,%eax
420363:	0f 85 93 fe ff ff    	jne    0x4201fc
420369:	53                   	push   %ebx
42036a:	ff 15 30 c2 42 00    	call   *0x42c230
420370:	33 c0                	xor    %eax,%eax
420372:	8b 4d f8             	mov    -0x8(%ebp),%ecx
420375:	5f                   	pop    %edi
420376:	5e                   	pop    %esi
420377:	33 cd                	xor    %ebp,%ecx
420379:	5b                   	pop    %ebx
42037a:	e8 61 77 00 00       	call   0x427ae0
42037f:	c9                   	leave
420380:	c2 04 00             	ret    $0x4
420383:	8b ff                	mov    %edi,%edi
420385:	55                   	push   %ebp
420386:	8b ec                	mov    %esp,%ebp
420388:	81 ec 98 00 00 00    	sub    $0x98,%esp
42038e:	a1 74 b6 42 00       	mov    0x42b674,%eax
420393:	33 c5                	xor    %ebp,%eax
420395:	89 45 fc             	mov    %eax,-0x4(%ebp)
420398:	53                   	push   %ebx
420399:	56                   	push   %esi
42039a:	57                   	push   %edi
42039b:	33 ff                	xor    %edi,%edi
42039d:	89 8d 68 ff ff ff    	mov    %ecx,-0x98(%ebp)
4203a3:	6a 5c                	push   $0x5c
4203a5:	8d 45 a0             	lea    -0x60(%ebp),%eax
4203a8:	89 7d 9c             	mov    %edi,-0x64(%ebp)
4203ab:	8b f2                	mov    %edx,%esi
4203ad:	89 7d 88             	mov    %edi,-0x78(%ebp)
4203b0:	57                   	push   %edi
4203b1:	50                   	push   %eax
4203b2:	89 75 90             	mov    %esi,-0x70(%ebp)
4203b5:	89 7d 80             	mov    %edi,-0x80(%ebp)
4203b8:	89 bd 7c ff ff ff    	mov    %edi,-0x84(%ebp)
4203be:	89 7d 84             	mov    %edi,-0x7c(%ebp)
4203c1:	89 7d 98             	mov    %edi,-0x68(%ebp)
4203c4:	89 7d 8c             	mov    %edi,-0x74(%ebp)
4203c7:	e8 e1 7f 00 00       	call   0x4283ad
4203cc:	83 c4 0c             	add    $0xc,%esp
4203cf:	89 7d 94             	mov    %edi,-0x6c(%ebp)
4203d2:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4203d8:	50                   	push   %eax
4203d9:	8d 45 80             	lea    -0x80(%ebp),%eax
4203dc:	50                   	push   %eax
4203dd:	8d 45 88             	lea    -0x78(%ebp),%eax
4203e0:	50                   	push   %eax
4203e1:	ff 15 f0 c3 42 00    	call   *0x42c3f0
4203e7:	8d 45 9c             	lea    -0x64(%ebp),%eax
4203ea:	50                   	push   %eax
4203eb:	6a 04                	push   $0x4
4203ed:	5b                   	pop    %ebx
4203ee:	53                   	push   %ebx
4203ef:	8d 45 84             	lea    -0x7c(%ebp),%eax
4203f2:	50                   	push   %eax
4203f3:	ff 75 88             	push   -0x78(%ebp)
4203f6:	56                   	push   %esi
4203f7:	ff 15 38 c1 42 00    	call   *0x42c138
4203fd:	85 c0                	test   %eax,%eax
4203ff:	75 12                	jne    0x420413
420401:	ff 15 18 c2 42 00    	call   *0x42c218
420407:	8b c8                	mov    %eax,%ecx
420409:	e8 9c b1 fe ff       	call   0x40b5aa
42040e:	e9 d2 01 00 00       	jmp    0x4205e5
420413:	39 5d 9c             	cmp    %ebx,-0x64(%ebp)
420416:	0f 85 c4 01 00 00    	jne    0x4205e0
42041c:	83 7d 84 5c          	cmpl   $0x5c,-0x7c(%ebp)
420420:	74 0a                	je     0x42042c
420422:	b8 5e 06 07 80       	mov    $0x8007065e,%eax
420427:	e9 b9 01 00 00       	jmp    0x4205e5
42042c:	8d 45 9c             	lea    -0x64(%ebp),%eax
42042f:	50                   	push   %eax
420430:	53                   	push   %ebx
420431:	8d 45 98             	lea    -0x68(%ebp),%eax
420434:	50                   	push   %eax
420435:	ff 75 80             	push   -0x80(%ebp)
420438:	56                   	push   %esi
420439:	ff 15 38 c1 42 00    	call   *0x42c138
42043f:	85 c0                	test   %eax,%eax
420441:	74 be                	je     0x420401
420443:	39 5d 9c             	cmp    %ebx,-0x64(%ebp)
420446:	0f 85 94 01 00 00    	jne    0x4205e0
42044c:	b8 00 10 00 00       	mov    $0x1000,%eax
420451:	39 45 98             	cmp    %eax,-0x68(%ebp)
420454:	72 03                	jb     0x420459
420456:	89 45 98             	mov    %eax,-0x68(%ebp)
420459:	8d 45 9c             	lea    -0x64(%ebp),%eax
42045c:	50                   	push   %eax
42045d:	53                   	push   %ebx
42045e:	8d 45 8c             	lea    -0x74(%ebp),%eax
420461:	50                   	push   %eax
420462:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
420468:	56                   	push   %esi
420469:	ff 15 38 c1 42 00    	call   *0x42c138
42046f:	85 c0                	test   %eax,%eax
420471:	74 8e                	je     0x420401
420473:	39 5d 9c             	cmp    %ebx,-0x64(%ebp)
420476:	0f 85 64 01 00 00    	jne    0x4205e0
42047c:	8b 45 8c             	mov    -0x74(%ebp),%eax
42047f:	85 c0                	test   %eax,%eax
420481:	0f 84 55 01 00 00    	je     0x4205dc
420487:	8b df                	mov    %edi,%ebx
420489:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
42048f:	39 5d 98             	cmp    %ebx,-0x68(%ebp)
420492:	0f 86 44 01 00 00    	jbe    0x4205dc
420498:	8b cf                	mov    %edi,%ecx
42049a:	89 bd 70 ff ff ff    	mov    %edi,-0x90(%ebp)
4204a0:	8d 55 9c             	lea    -0x64(%ebp),%edx
4204a3:	03 c1                	add    %ecx,%eax
4204a5:	52                   	push   %edx
4204a6:	6a 5c                	push   $0x5c
4204a8:	8d 55 a0             	lea    -0x60(%ebp),%edx
4204ab:	52                   	push   %edx
4204ac:	50                   	push   %eax
4204ad:	56                   	push   %esi
4204ae:	ff 15 38 c1 42 00    	call   *0x42c138
4204b4:	85 c0                	test   %eax,%eax
4204b6:	0f 84 fd 00 00 00    	je     0x4205b9
4204bc:	83 7d 9c 5c          	cmpl   $0x5c,-0x64(%ebp)
4204c0:	0f 85 f3 00 00 00    	jne    0x4205b9
4204c6:	8d 45 94             	lea    -0x6c(%ebp),%eax
4204c9:	50                   	push   %eax
4204ca:	6a 20                	push   $0x20
4204cc:	5a                   	pop    %edx
4204cd:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
4204d0:	e8 3e 62 ff ff       	call   0x416713
4204d5:	85 c0                	test   %eax,%eax
4204d7:	79 0e                	jns    0x4204e7
4204d9:	6a 1f                	push   $0x1f
4204db:	5f                   	pop    %edi
4204dc:	33 c0                	xor    %eax,%eax
4204de:	89 7d 94             	mov    %edi,-0x6c(%ebp)
4204e1:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
4204e5:	eb 03                	jmp    0x4204ea
4204e7:	8b 7d 94             	mov    -0x6c(%ebp),%edi
4204ea:	8d 04 7d 1e 00 00 00 	lea    0x1e(,%edi,2),%eax
4204f1:	50                   	push   %eax
4204f2:	ff 15 24 c3 42 00    	call   *0x42c324
4204f8:	8b f0                	mov    %eax,%esi
4204fa:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
420500:	59                   	pop    %ecx
420501:	85 f6                	test   %esi,%esi
420503:	0f 84 ad 00 00 00    	je     0x4205b6
420509:	8d 04 7d 1e 00 00 00 	lea    0x1e(,%edi,2),%eax
420510:	50                   	push   %eax
420511:	6a 00                	push   $0x0
420513:	56                   	push   %esi
420514:	e8 94 7e 00 00       	call   0x4283ad
420519:	8b 45 a0             	mov    -0x60(%ebp),%eax
42051c:	83 c4 0c             	add    $0xc,%esp
42051f:	89 06                	mov    %eax,(%esi)
420521:	8b 45 a4             	mov    -0x5c(%ebp),%eax
420524:	83 a5 6c ff ff ff 00 	andl   $0x0,-0x94(%ebp)
42052b:	89 46 04             	mov    %eax,0x4(%esi)
42052e:	8b 45 ac             	mov    -0x54(%ebp),%eax
420531:	89 46 08             	mov    %eax,0x8(%esi)
420534:	66 8b 45 f6          	mov    -0xa(%ebp),%ax
420538:	66 89 46 0c          	mov    %ax,0xc(%esi)
42053c:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
420540:	66 89 46 0e          	mov    %ax,0xe(%esi)
420544:	66 8b 45 fa          	mov    -0x6(%ebp),%ax
420548:	66 89 46 10          	mov    %ax,0x10(%esi)
42054c:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
420550:	66 89 46 12          	mov    %ax,0x12(%esi)
420554:	8d 46 1c             	lea    0x1c(%esi),%eax
420557:	89 46 14             	mov    %eax,0x14(%esi)
42055a:	c7 46 18 01 00 00 00 	movl   $0x1,0x18(%esi)
420561:	85 ff                	test   %edi,%edi
420563:	74 25                	je     0x42058a
420565:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
42056b:	0f b7 44 5d b4       	movzwl -0x4c(%ebp,%ebx,2),%eax
420570:	50                   	push   %eax