41022b:	33 c9                	xor    %ecx,%ecx
41022d:	51                   	push   %ecx
41022e:	ff 15 68 b1 41 00    	call   *0x41b168
410234:	50                   	push   %eax
410235:	ff 15 28 b1 41 00    	call   *0x41b128
41023b:	53                   	push   %ebx
41023c:	6a 00                	push   $0x0
41023e:	ff 15 68 b1 41 00    	call   *0x41b168
410244:	50                   	push   %eax
410245:	ff 15 58 b1 41 00    	call   *0x41b158
41024b:	8b f0                	mov    %eax,%esi
41024d:	89 75 dc             	mov    %esi,-0x24(%ebp)
410250:	85 f6                	test   %esi,%esi
410252:	0f 84 a3 00 00 00    	je     0x4102fb
410258:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41025b:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
41025e:	50                   	push   %eax
41025f:	56                   	push   %esi
410260:	8d 47 08             	lea    0x8(%edi),%eax
410263:	50                   	push   %eax
410264:	51                   	push   %ecx
410265:	8d 4d e8             	lea    -0x18(%ebp),%ecx
410268:	e8 fc fd ff ff       	call   0x410069
41026d:	6a 10                	push   $0x10
41026f:	89 45 d8             	mov    %eax,-0x28(%ebp)
410272:	5a                   	pop    %edx
410273:	3d 23 00 00 c0       	cmp    $0xc0000023,%eax
410278:	74 90                	je     0x41020a
41027a:	85 c0                	test   %eax,%eax
41027c:	0f 85 52 01 00 00    	jne    0x4103d4
410282:	85 f6                	test   %esi,%esi
410284:	0f 84 4a 01 00 00    	je     0x4103d4
41028a:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41028d:	83 fa 04             	cmp    $0x4,%edx
410290:	76 05                	jbe    0x410297
410292:	8a 06                	mov    (%esi),%al
410294:	88 47 0c             	mov    %al,0xc(%edi)
410297:	6a 10                	push   $0x10
410299:	59                   	pop    %ecx
41029a:	3b d1                	cmp    %ecx,%edx
41029c:	0f 82 dd 00 00 00    	jb     0x41037f
4102a2:	80 7f 0c 02          	cmpb   $0x2,0xc(%edi)
4102a6:	0f 85 d3 00 00 00    	jne    0x41037f
4102ac:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4102b0:	66 3b c1             	cmp    %cx,%ax
4102b3:	0f 82 c6 00 00 00    	jb     0x41037f
4102b9:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4102bd:	6b c8 0c             	imul   $0xc,%eax,%ecx
4102c0:	0f b7 46 06          	movzwl 0x6(%esi),%eax
4102c4:	c1 e0 04             	shl    $0x4,%eax
4102c7:	03 c8                	add    %eax,%ecx
4102c9:	0f b7 46 02          	movzwl 0x2(%esi),%eax
4102cd:	03 c8                	add    %eax,%ecx
4102cf:	3b d1                	cmp    %ecx,%edx
4102d1:	0f 82 a5 00 00 00    	jb     0x41037c
4102d7:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
4102db:	33 c0                	xor    %eax,%eax
4102dd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4102e0:	66 85 c9             	test   %cx,%cx
4102e3:	74 4d                	je     0x410332
4102e5:	89 45 d8             	mov    %eax,-0x28(%ebp)
4102e8:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
4102eb:	75 18                	jne    0x410305
4102ed:	8b 0d 98 41 40 00    	mov    0x404198,%ecx
4102f3:	8b 15 9c 41 40 00    	mov    0x40419c,%edx
4102f9:	eb 16                	jmp    0x410311
4102fb:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
410300:	e9 e9 00 00 00       	jmp    0x4103ee
410305:	8b 0d b8 41 40 00    	mov    0x4041b8,%ecx
41030b:	8b 15 bc 41 40 00    	mov    0x4041bc,%edx
410311:	89 4d f0             	mov    %ecx,-0x10(%ebp)
410314:	8d 4d d8             	lea    -0x28(%ebp),%ecx
410317:	51                   	push   %ecx
410318:	50                   	push   %eax
410319:	8d 45 e0             	lea    -0x20(%ebp),%eax
41031c:	89 55 f4             	mov    %edx,-0xc(%ebp)
41031f:	50                   	push   %eax
410320:	51                   	push   %ecx
410321:	8d 4d f0             	lea    -0x10(%ebp),%ecx
410324:	e8 40 fd ff ff       	call   0x410069
410329:	8b 45 e0             	mov    -0x20(%ebp),%eax
41032c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41032f:	89 45 d0             	mov    %eax,-0x30(%ebp)
410332:	8d 4e 10             	lea    0x10(%esi),%ecx
410335:	89 77 14             	mov    %esi,0x14(%edi)
410338:	89 4f 18             	mov    %ecx,0x18(%edi)
41033b:	0f b7 46 04          	movzwl 0x4(%esi),%eax
41033f:	6b c0 0c             	imul   $0xc,%eax,%eax
410342:	03 c1                	add    %ecx,%eax
410344:	89 47 1c             	mov    %eax,0x1c(%edi)
410347:	33 c0                	xor    %eax,%eax
410349:	39 45 d0             	cmp    %eax,-0x30(%ebp)
41034c:	0f 95 c0             	setne  %al
41034f:	89 47 20             	mov    %eax,0x20(%edi)
410352:	80 3e 02             	cmpb   $0x2,(%esi)
410355:	75 5a                	jne    0x4103b1
410357:	80 7e 01 02          	cmpb   $0x2,0x1(%esi)
41035b:	73 54                	jae    0x4103b1
41035d:	0f b7 46 04          	movzwl 0x4(%esi),%eax
410361:	6b d0 0c             	imul   $0xc,%eax,%edx
410364:	0f b7 46 06          	movzwl 0x6(%esi),%eax
410368:	c1 e0 04             	shl    $0x4,%eax
41036b:	03 d0                	add    %eax,%edx
41036d:	0f b7 46 02          	movzwl 0x2(%esi),%eax
410371:	03 d0                	add    %eax,%edx
410373:	c7 47 10 01 00 00 00 	movl   $0x1,0x10(%edi)
41037a:	eb 35                	jmp    0x4103b1
41037c:	6a 10                	push   $0x10
41037e:	59                   	pop    %ecx
41037f:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
410382:	33 c0                	xor    %eax,%eax
410384:	8b fe                	mov    %esi,%edi
410386:	ab                   	stos   %eax,%es:(%edi)
410387:	ab                   	stos   %eax,%es:(%edi)
410388:	ab                   	stos   %eax,%es:(%edi)
410389:	ab                   	stos   %eax,%es:(%edi)
41038a:	8b 7d f4             	mov    -0xc(%ebp),%edi
41038d:	66 89 4e 02          	mov    %cx,0x2(%esi)
410391:	66 c7 06 02 02       	movw   $0x202,(%esi)
410396:	8b 55 e4             	mov    -0x1c(%ebp),%edx
410399:	89 77 14             	mov    %esi,0x14(%edi)
41039c:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
4103a0:	03 ce                	add    %esi,%ecx
4103a2:	89 4f 18             	mov    %ecx,0x18(%edi)
4103a5:	0f b7 46 04          	movzwl 0x4(%esi),%eax
4103a9:	6b c0 0c             	imul   $0xc,%eax,%eax
4103ac:	03 c1                	add    %ecx,%eax
4103ae:	89 47 1c             	mov    %eax,0x1c(%edi)
4103b1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
4103b4:	89 77 24             	mov    %esi,0x24(%edi)
4103b7:	89 57 28             	mov    %edx,0x28(%edi)
4103ba:	85 c9                	test   %ecx,%ecx
4103bc:	75 05                	jne    0x4103c3
4103be:	bb c8 00 00 00       	mov    $0xc8,%ebx
4103c3:	33 c0                	xor    %eax,%eax
4103c5:	89 5f 2c             	mov    %ebx,0x2c(%edi)
4103c8:	3b f1                	cmp    %ecx,%esi
4103ca:	0f 94 c0             	sete   %al
4103cd:	89 47 30             	mov    %eax,0x30(%edi)
4103d0:	33 c0                	xor    %eax,%eax
4103d2:	eb 1a                	jmp    0x4103ee
4103d4:	8b 45 dc             	mov    -0x24(%ebp),%eax
4103d7:	85 c0                	test   %eax,%eax
4103d9:	74 10                	je     0x4103eb
4103db:	50                   	push   %eax
4103dc:	6a 00                	push   $0x0
4103de:	ff 15 68 b1 41 00    	call   *0x41b168
4103e4:	50                   	push   %eax
4103e5:	ff 15 28 b1 41 00    	call   *0x41b128
4103eb:	8b 45 d8             	mov    -0x28(%ebp),%eax
4103ee:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4103f1:	5f                   	pop    %edi
4103f2:	5e                   	pop    %esi
4103f3:	33 cd                	xor    %ebp,%ecx
4103f5:	5b                   	pop    %ebx
4103f6:	e8 e5 34 00 00       	call   0x4138e0
4103fb:	c9                   	leave
4103fc:	c2 0c 00             	ret    $0xc
4103ff:	8b ff                	mov    %edi,%edi
410401:	55                   	push   %ebp
410402:	8b ec                	mov    %esp,%ebp
410404:	b8 24 10 00 00       	mov    $0x1024,%eax
410409:	e8 22 3d 00 00       	call   0x414130
41040e:	a1 18 51 41 00       	mov    0x415118,%eax
410413:	33 c5                	xor    %ebp,%eax
410415:	89 45 fc             	mov    %eax,-0x4(%ebp)
410418:	8b 41 14             	mov    0x14(%ecx),%eax
41041b:	53                   	push   %ebx
41041c:	56                   	push   %esi
41041d:	33 f6                	xor    %esi,%esi
41041f:	89 95 e8 ef ff ff    	mov    %edx,-0x1018(%ebp)
410425:	21 b5 e4 ef ff ff    	and    %esi,-0x101c(%ebp)
41042b:	33 db                	xor    %ebx,%ebx
41042d:	57                   	push   %edi
41042e:	8b 79 1c             	mov    0x1c(%ecx),%edi
410431:	89 8d dc ef ff ff    	mov    %ecx,-0x1024(%ebp)
410437:	66 3b 58 06          	cmp    0x6(%eax),%bx
41043b:	0f 83 2c 01 00 00    	jae    0x41056d
410441:	8b 5d 08             	mov    0x8(%ebp),%ebx
410444:	83 c7 04             	add    $0x4,%edi
410447:	39 57 fc             	cmp    %edx,-0x4(%edi)
41044a:	0f 85 01 01 00 00    	jne    0x410551
410450:	66 39 5f 08          	cmp    %bx,0x8(%edi)
410454:	0f 85 f7 00 00 00    	jne    0x410551
41045a:	f7 47 08 00 00 01 00 	testl  $0x10000,0x8(%edi)
410461:	74 0a                	je     0x41046d
410463:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
410467:	0f 84 e4 00 00 00    	je     0x410551
41046d:	8b 07                	mov    (%edi),%eax
41046f:	89 85 f0 ef ff ff    	mov    %eax,-0x1010(%ebp)
410475:	8b 47 04             	mov    0x4(%edi),%eax
410478:	89 85 f4 ef ff ff    	mov    %eax,-0x100c(%ebp)
41047e:	8d 85 ec ef ff ff    	lea    -0x1014(%ebp),%eax
410484:	c7 85 ec ef ff ff 00 	movl   $0x1000,-0x1014(%ebp)
41048b:	10 00 00
41048e:	50                   	push   %eax
41048f:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
410495:	50                   	push   %eax
410496:	8d 85 e0 ef ff ff    	lea    -0x1020(%ebp),%eax
41049c:	50                   	push   %eax
41049d:	51                   	push   %ecx
41049e:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
4104a4:	e8 c0 fb ff ff       	call   0x410069
4104a9:	8b f0                	mov    %eax,%esi
4104ab:	85 f6                	test   %esi,%esi
4104ad:	0f 85 86 00 00 00    	jne    0x410539
4104b3:	8a 85 ec ef ff ff    	mov    -0x1014(%ebp),%al
4104b9:	8b b5 e8 ef ff ff    	mov    -0x1018(%ebp),%esi
4104bf:	24 07                	and    $0x7,%al
4104c1:	0f b6 c0             	movzbl %al,%eax
4104c4:	f7 d8                	neg    %eax
4104c6:	1b c0                	sbb    %eax,%eax
4104c8:	33 c9                	xor    %ecx,%ecx
4104ca:	f7 d0                	not    %eax
4104cc:	23 85 ec ef ff ff    	and    -0x1014(%ebp),%eax
4104d2:	8b d0                	mov    %eax,%edx
4104d4:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
4104da:	c1 ea 03             	shr    $0x3,%edx
4104dd:	85 d2                	test   %edx,%edx
4104df:	74 18                	je     0x4104f9
4104e1:	39 b4 cd f8 ef ff ff 	cmp    %esi,-0x1008(%ebp,%ecx,8)
4104e8:	75 0a                	jne    0x4104f4
4104ea:	66 39 9c cd fc ef ff 	cmp    %bx,-0x1004(%ebp,%ecx,8)
4104f1:	ff
4104f2:	74 27                	je     0x41051b
4104f4:	41                   	inc    %ecx
4104f5:	3b ca                	cmp    %edx,%ecx
4104f7:	72 e8                	jb     0x4104e1
4104f9:	8d 48 08             	lea    0x8(%eax),%ecx
4104fc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
410502:	77 17                	ja     0x41051b
410504:	8b c1                	mov    %ecx,%eax
410506:	89 b4 d5 f8 ef ff ff 	mov    %esi,-0x1008(%ebp,%edx,8)
41050d:	66 89 9c d5 fc ef ff 	mov    %bx,-0x1004(%ebp,%edx,8)
410514:	ff
410515:	89 85 ec ef ff ff    	mov    %eax,-0x1014(%ebp)
41051b:	6a 01                	push   $0x1
41051d:	ff b5 e0 ef ff ff    	push   -0x1020(%ebp)
410523:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
410529:	51                   	push   %ecx
41052a:	51                   	push   %ecx
41052b:	50                   	push   %eax
41052c:	8d 8d f0 ef ff ff    	lea    -0x1010(%ebp),%ecx
410532:	e8 87 fb ff ff       	call   0x4100be
410537:	8b f0                	mov    %eax,%esi
410539:	81 fe 01 00 00 c0    	cmp    $0xc0000001,%esi
41053f:	0f 84 39 ff ff ff    	je     0x41047e
410545:	8b 95 e8 ef ff ff    	mov    -0x1018(%ebp),%edx
41054b:	8b 8d dc ef ff ff    	mov    -0x1024(%ebp),%ecx
410551:	8b 41 14             	mov    0x14(%ecx),%eax
410554:	83 c7 10             	add    $0x10,%edi
410557:	ff 85 e4 ef ff ff    	incl   -0x101c(%ebp)
41055d:	0f b7 40 06          	movzwl 0x6(%eax),%eax
410561:	39 85 e4 ef ff ff    	cmp    %eax,-0x101c(%ebp)
410567:	0f 82 da fe ff ff    	jb     0x410447
41056d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
410570:	8b c6                	mov    %esi,%eax
410572:	5f                   	pop    %edi
410573:	5e                   	pop    %esi
410574:	33 cd                	xor    %ebp,%ecx
410576:	5b                   	pop    %ebx
410577:	e8 64 33 00 00       	call   0x4138e0
41057c:	c9                   	leave
41057d:	c2 08 00             	ret    $0x8
410580:	8b ff                	mov    %edi,%edi
410582:	55                   	push   %ebp
410583:	8b ec                	mov    %esp,%ebp
410585:	83 e4 f8             	and    $0xfffffff8,%esp
410588:	81 ec 04 01 00 00    	sub    $0x104,%esp
41058e:	a1 18 51 41 00       	mov    0x415118,%eax
410593:	33 c4                	xor    %esp,%eax
410595:	89 84 24 00 01 00 00 	mov    %eax,0x100(%esp)
41059c:	53                   	push   %ebx
41059d:	56                   	push   %esi
41059e:	57                   	push   %edi
41059f:	51                   	push   %ecx
4105a0:	8d 44 24 44          	lea    0x44(%esp),%eax
4105a4:	8b fa                	mov    %edx,%edi
4105a6:	50                   	push   %eax
4105a7:	8b d9                	mov    %ecx,%ebx
4105a9:	33 d2                	xor    %edx,%edx
4105ab:	51                   	push   %ecx
4105ac:	8d 4c 24 18          	lea    0x18(%esp),%ecx
4105b0:	e8 c1 fb ff ff       	call   0x410176
4105b5:	8b f0                	mov    %eax,%esi
4105b7:	85 f6                	test   %esi,%esi
4105b9:	75 2b                	jne    0x4105e6
4105bb:	ff 75 08             	push   0x8(%ebp)
4105be:	8b d3                	mov    %ebx,%edx
4105c0:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4105c4:	57                   	push   %edi
4105c5:	e8 35 fe ff ff       	call   0x4103ff
4105ca:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
4105cf:	8b f0                	mov    %eax,%esi
4105d1:	74 13                	je     0x4105e6
4105d3:	ff 74 24 30          	push   0x30(%esp)
4105d7:	6a 00                	push   $0x0
4105d9:	ff 15 68 b1 41 00    	call   *0x41b168
4105df:	50                   	push   %eax
4105e0:	ff 15 28 b1 41 00    	call   *0x41b128
4105e6:	8b 8c 24 0c 01 00 00 	mov    0x10c(%esp),%ecx
4105ed:	8b c6                	mov    %esi,%eax
4105ef:	5f                   	pop    %edi
4105f0:	5e                   	pop    %esi
4105f1:	5b                   	pop    %ebx
4105f2:	33 cc                	xor    %esp,%ecx
4105f4:	e8 e7 32 00 00       	call   0x4138e0
4105f9:	8b e5                	mov    %ebp,%esp
4105fb:	5d                   	pop    %ebp
4105fc:	c2 04 00             	ret    $0x4
4105ff:	8b ff                	mov    %edi,%edi
410601:	55                   	push   %ebp
410602:	8b ec                	mov    %esp,%ebp
410604:	51                   	push   %ecx
410605:	51                   	push   %ecx
410606:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41060a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
41060e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
410611:	66 89 55 fc          	mov    %dx,-0x4(%ebp)
410615:	74 05                	je     0x41061c
410617:	66 83 4d fe 01       	orw    $0x1,-0x2(%ebp)
41061c:	56                   	push   %esi
41061d:	8b 35 24 a3 41 00    	mov    0x41a324,%esi
410623:	85 f6                	test   %esi,%esi
410625:	75 24                	jne    0x41064b
410627:	68 7c 40 40 00       	push   $0x40407c
41062c:	e8 9e 69 ff ff       	call   0x406fcf
410631:	50                   	push   %eax
410632:	ff 15 5c b1 41 00    	call   *0x41b15c
410638:	8b f0                	mov    %eax,%esi
41063a:	89 35 24 a3 41 00    	mov    %esi,0x41a324
410640:	85 f6                	test   %esi,%esi
410642:	75 07                	jne    0x41064b
410644:	b8 39 01 00 c0       	mov    $0xc0000139,%eax
410649:	eb 0e                	jmp    0x410659
41064b:	8d 45 f8             	lea    -0x8(%ebp),%eax
41064e:	8b ce                	mov    %esi,%ecx
410650:	50                   	push   %eax
410651:	ff 15 90 b3 41 00    	call   *0x41b390
410657:	ff d6                	call   *%esi
410659:	5e                   	pop    %esi
41065a:	c9                   	leave
41065b:	c2 04 00             	ret    $0x4
41065e:	8b ff                	mov    %edi,%edi
410660:	55                   	push   %ebp
410661:	8b ec                	mov    %esp,%ebp
410663:	6a ff                	push   $0xffffffff
410665:	68 67 41 41 00       	push   $0x414167
41066a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
410670:	50                   	push   %eax