41836c:	8b f3                	mov    %ebx,%esi
41836e:	89 95 48 f4 ff ff    	mov    %edx,-0xbb8(%ebp)
418374:	85 c0                	test   %eax,%eax
418376:	79 06                	jns    0x41837e
418378:	8b c8                	mov    %eax,%ecx
41837a:	8b c3                	mov    %ebx,%eax
41837c:	f7 d9                	neg    %ecx
41837e:	8b 95 60 f4 ff ff    	mov    -0xba0(%ebp),%edx
418384:	2b d6                	sub    %esi,%edx
418386:	8b b5 d8 fb ff ff    	mov    -0x428(%ebp),%esi
41838c:	2b b5 48 f4 ff ff    	sub    -0xbb8(%ebp),%esi
418392:	89 b5 4c f4 ff ff    	mov    %esi,-0xbb4(%ebp)
418398:	3b f2                	cmp    %edx,%esi
41839a:	7c 08                	jl     0x4183a4
41839c:	8b f2                	mov    %edx,%esi
41839e:	89 95 4c f4 ff ff    	mov    %edx,-0xbb4(%ebp)
4183a4:	8b 95 dc fb ff ff    	mov    -0x424(%ebp),%edx
4183aa:	29 85 84 f4 ff ff    	sub    %eax,-0xb7c(%ebp)
4183b0:	2b d1                	sub    %ecx,%edx
4183b2:	89 95 68 f4 ff ff    	mov    %edx,-0xb98(%ebp)
4183b8:	3b 95 84 f4 ff ff    	cmp    -0xb7c(%ebp),%edx
4183be:	7c 0c                	jl     0x4183cc
4183c0:	8b 95 84 f4 ff ff    	mov    -0xb7c(%ebp),%edx
4183c6:	89 95 68 f4 ff ff    	mov    %edx,-0xb98(%ebp)
4183cc:	85 f6                	test   %esi,%esi
4183ce:	0f 8e 96 01 00 00    	jle    0x41856a
4183d4:	85 d2                	test   %edx,%edx
4183d6:	0f 8e 8e 01 00 00    	jle    0x41856a
4183dc:	8b 95 d8 fb ff ff    	mov    -0x428(%ebp),%edx
4183e2:	0f af 85 60 f4 ff ff 	imul   -0xba0(%ebp),%eax
4183e9:	8b bd 7c f4 ff ff    	mov    -0xb84(%ebp),%edi
4183ef:	0f af ca             	imul   %edx,%ecx
4183f2:	c1 e2 02             	shl    $0x2,%edx
4183f5:	03 85 78 f4 ff ff    	add    -0xb88(%ebp),%eax
4183fb:	03 8d 48 f4 ff ff    	add    -0xbb8(%ebp),%ecx
418401:	8d 0c 8f             	lea    (%edi,%ecx,4),%ecx
418404:	8b bd 5c f4 ff ff    	mov    -0xba4(%ebp),%edi
41840a:	89 95 5c f4 ff ff    	mov    %edx,-0xba4(%ebp)
418410:	8b 95 60 f4 ff ff    	mov    -0xba0(%ebp),%edx
418416:	c1 e2 02             	shl    $0x2,%edx
418419:	8d 04 87             	lea    (%edi,%eax,4),%eax
41841c:	89 8d 7c f4 ff ff    	mov    %ecx,-0xb84(%ebp)
418422:	89 85 78 f4 ff ff    	mov    %eax,-0xb88(%ebp)
418428:	89 95 60 f4 ff ff    	mov    %edx,-0xba0(%ebp)
41842e:	8b d8                	mov    %eax,%ebx
418430:	89 b5 44 f4 ff ff    	mov    %esi,-0xbbc(%ebp)
418436:	8d 50 03             	lea    0x3(%eax),%edx
418439:	2b d9                	sub    %ecx,%ebx
41843b:	89 95 84 f4 ff ff    	mov    %edx,-0xb7c(%ebp)
418441:	8d 79 02             	lea    0x2(%ecx),%edi
418444:	89 9d 48 f4 ff ff    	mov    %ebx,-0xbb8(%ebp)
41844a:	0f b6 47 fe          	movzbl -0x2(%edi),%eax
41844e:	0f b6 4f ff          	movzbl -0x1(%edi),%ecx
418452:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
418455:	0f b6 07             	movzbl (%edi),%eax
418458:	03 c8                	add    %eax,%ecx
41845a:	c1 e9 02             	shr    $0x2,%ecx
41845d:	f6 d1                	not    %cl
41845f:	84 c9                	test   %cl,%cl
418461:	0f 84 a9 00 00 00    	je     0x418510
418467:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
41846a:	8b 85 74 f4 ff ff    	mov    -0xb8c(%ebp),%eax
418470:	0f b6 c0             	movzbl %al,%eax
418473:	0f b6 f1             	movzbl %cl,%esi
418476:	0f b6 cb             	movzbl %bl,%ecx
418479:	2b c1                	sub    %ecx,%eax
41847b:	b9 ff 00 00 00       	mov    $0xff,%ecx
418480:	0f af c6             	imul   %esi,%eax
418483:	99                   	cltd
418484:	f7 f9                	idiv   %ecx
418486:	8b 8d 48 f4 ff ff    	mov    -0xbb8(%ebp),%ecx
41848c:	02 c3                	add    %bl,%al
41848e:	88 04 0f             	mov    %al,(%edi,%ecx,1)
418491:	8b 85 84 f4 ff ff    	mov    -0xb7c(%ebp),%eax
418497:	8a 58 fe             	mov    -0x2(%eax),%bl
41849a:	8b 85 74 f4 ff ff    	mov    -0xb8c(%ebp),%eax
4184a0:	0f b6 c4             	movzbl %ah,%eax
4184a3:	0f b6 cb             	movzbl %bl,%ecx
4184a6:	2b c1                	sub    %ecx,%eax
4184a8:	b9 ff 00 00 00       	mov    $0xff,%ecx
4184ad:	0f af c6             	imul   %esi,%eax
4184b0:	99                   	cltd
4184b1:	f7 f9                	idiv   %ecx
4184b3:	8b 8d 84 f4 ff ff    	mov    -0xb7c(%ebp),%ecx
4184b9:	02 c3                	add    %bl,%al
4184bb:	88 41 fe             	mov    %al,-0x2(%ecx)
4184be:	8a 59 fd             	mov    -0x3(%ecx),%bl
4184c1:	0f b6 85 76 f4 ff ff 	movzbl -0xb8a(%ebp),%eax
4184c8:	0f b6 cb             	movzbl %bl,%ecx
4184cb:	2b c1                	sub    %ecx,%eax
4184cd:	b9 ff 00 00 00       	mov    $0xff,%ecx
4184d2:	0f af c6             	imul   %esi,%eax
4184d5:	99                   	cltd
4184d6:	f7 f9                	idiv   %ecx
4184d8:	8b 8d 84 f4 ff ff    	mov    -0xb7c(%ebp),%ecx
4184de:	02 c3                	add    %bl,%al
4184e0:	88 41 fd             	mov    %al,-0x3(%ecx)
4184e3:	b8 ff 00 00 00       	mov    $0xff,%eax
4184e8:	8a 19                	mov    (%ecx),%bl
4184ea:	0f b6 cb             	movzbl %bl,%ecx
4184ed:	2b c1                	sub    %ecx,%eax
4184ef:	b9 ff 00 00 00       	mov    $0xff,%ecx
4184f4:	0f af c6             	imul   %esi,%eax
4184f7:	8b b5 44 f4 ff ff    	mov    -0xbbc(%ebp),%esi
4184fd:	99                   	cltd
4184fe:	f7 f9                	idiv   %ecx
418500:	8b 95 84 f4 ff ff    	mov    -0xb7c(%ebp),%edx
418506:	02 c3                	add    %bl,%al
418508:	8b 9d 48 f4 ff ff    	mov    -0xbb8(%ebp),%ebx
41850e:	88 02                	mov    %al,(%edx)
418510:	83 c2 04             	add    $0x4,%edx
418513:	83 c7 04             	add    $0x4,%edi
418516:	83 ee 01             	sub    $0x1,%esi
418519:	89 95 84 f4 ff ff    	mov    %edx,-0xb7c(%ebp)
41851f:	89 b5 44 f4 ff ff    	mov    %esi,-0xbbc(%ebp)
418525:	0f 85 1f ff ff ff    	jne    0x41844a
41852b:	8b 8d 7c f4 ff ff    	mov    -0xb84(%ebp),%ecx
418531:	8b 85 78 f4 ff ff    	mov    -0xb88(%ebp),%eax
418537:	03 8d 5c f4 ff ff    	add    -0xba4(%ebp),%ecx
41853d:	03 85 60 f4 ff ff    	add    -0xba0(%ebp),%eax
418543:	83 ad 68 f4 ff ff 01 	subl   $0x1,-0xb98(%ebp)
41854a:	8b b5 4c f4 ff ff    	mov    -0xbb4(%ebp),%esi
418550:	89 8d 7c f4 ff ff    	mov    %ecx,-0xb84(%ebp)
418556:	89 85 78 f4 ff ff    	mov    %eax,-0xb88(%ebp)
41855c:	0f 85 cc fe ff ff    	jne    0x41842e
418562:	8b bd 80 f4 ff ff    	mov    -0xb80(%ebp),%edi
418568:	33 db                	xor    %ebx,%ebx
41856a:	ff b5 40 f4 ff ff    	push   -0xbc0(%ebp)
418570:	8b 35 1c 40 42 00    	mov    0x42401c,%esi
418576:	8b ce                	mov    %esi,%ecx
418578:	ff 15 78 64 42 00    	call   *0x426478
41857e:	ff d6                	call   *%esi
418580:	8b 85 64 f4 ff ff    	mov    -0xb9c(%ebp),%eax
418586:	85 c0                	test   %eax,%eax
418588:	74 12                	je     0x41859c
41858a:	8b 35 3c 40 42 00    	mov    0x42403c,%esi
418590:	8b ce                	mov    %esi,%ecx
418592:	50                   	push   %eax
418593:	57                   	push   %edi
418594:	ff 15 78 64 42 00    	call   *0x426478
41859a:	ff d6                	call   *%esi
41859c:	8b 35 18 40 42 00    	mov    0x424018,%esi
4185a2:	8b ce                	mov    %esi,%ecx
4185a4:	57                   	push   %edi
4185a5:	ff 15 78 64 42 00    	call   *0x426478
4185ab:	ff d6                	call   *%esi
4185ad:	83 bd 70 f4 ff ff 00 	cmpl   $0x0,-0xb90(%ebp)
4185b4:	0f 8c d0 14 00 00    	jl     0x419a8a
4185ba:	8b 85 f4 f6 ff ff    	mov    -0x90c(%ebp),%eax
4185c0:	8b b5 fc f6 ff ff    	mov    -0x904(%ebp),%esi
4185c6:	89 85 74 f4 ff ff    	mov    %eax,-0xb8c(%ebp)
4185cc:	8b 85 08 f7 ff ff    	mov    -0x8f8(%ebp),%eax
4185d2:	6a 54                	push   $0x54
4185d4:	89 85 64 f4 ff ff    	mov    %eax,-0xb9c(%ebp)
4185da:	8d 85 90 f5 ff ff    	lea    -0xa70(%ebp),%eax
4185e0:	53                   	push   %ebx
4185e1:	50                   	push   %eax
4185e2:	89 b5 78 f4 ff ff    	mov    %esi,-0xb88(%ebp)
4185e8:	e8 5b a2 00 00       	call   0x422848
4185ed:	83 c4 0c             	add    $0xc,%esp
4185f0:	8d 85 38 f5 ff ff    	lea    -0xac8(%ebp),%eax
4185f6:	6a 54                	push   $0x54
4185f8:	53                   	push   %ebx
4185f9:	50                   	push   %eax
4185fa:	e8 49 a2 00 00       	call   0x422848
4185ff:	83 c4 0c             	add    $0xc,%esp
418602:	89 9d 5c f4 ff ff    	mov    %ebx,-0xba4(%ebp)
418608:	8d 85 08 fa ff ff    	lea    -0x5f8(%ebp),%eax
41860e:	89 9d 7c f4 ff ff    	mov    %ebx,-0xb84(%ebp)
418614:	89 9d 60 f4 ff ff    	mov    %ebx,-0xba0(%ebp)
41861a:	89 9d 84 f4 ff ff    	mov    %ebx,-0xb7c(%ebp)
418620:	6a 2c                	push   $0x2c
418622:	53                   	push   %ebx
418623:	50                   	push   %eax
418624:	e8 1f a2 00 00       	call   0x422848
418629:	33 c0                	xor    %eax,%eax
41862b:	8d bd a0 fb ff ff    	lea    -0x460(%ebp),%edi
418631:	ab                   	stos   %eax,%es:(%edi)
418632:	83 c4 0c             	add    $0xc,%esp
418635:	ab                   	stos   %eax,%es:(%edi)
418636:	ab                   	stos   %eax,%es:(%edi)
418637:	ab                   	stos   %eax,%es:(%edi)
418638:	85 f6                	test   %esi,%esi
41863a:	0f 84 4a 14 00 00    	je     0x419a8a
418640:	8b 35 28 40 42 00    	mov    0x424028,%esi
418646:	8b ce                	mov    %esi,%ecx
418648:	8b bd 3c f4 ff ff    	mov    -0xbc4(%ebp),%edi
41864e:	6a 07                	push   $0x7
418650:	57                   	push   %edi
418651:	ff 15 78 64 42 00    	call   *0x426478
418657:	ff d6                	call   *%esi
418659:	85 c0                	test   %eax,%eax
41865b:	0f 84 81 05 00 00    	je     0x418be2
418661:	8b 35 34 40 42 00    	mov    0x424034,%esi
418667:	8d 8d 90 f5 ff ff    	lea    -0xa70(%ebp),%ecx
41866d:	51                   	push   %ecx
41866e:	6a 54                	push   $0x54
418670:	50                   	push   %eax
418671:	8b ce                	mov    %esi,%ecx
418673:	ff 15 78 64 42 00    	call   *0x426478
418679:	ff d6                	call   *%esi
41867b:	85 c0                	test   %eax,%eax
41867d:	74 24                	je     0x4186a3
41867f:	8b 85 a4 f5 ff ff    	mov    -0xa5c(%ebp),%eax
418685:	89 85 5c f4 ff ff    	mov    %eax,-0xba4(%ebp)
41868b:	8b 85 94 f5 ff ff    	mov    -0xa6c(%ebp),%eax
418691:	89 85 60 f4 ff ff    	mov    %eax,-0xba0(%ebp)
418697:	8b 85 98 f5 ff ff    	mov    -0xa68(%ebp),%eax
41869d:	89 85 84 f4 ff ff    	mov    %eax,-0xb7c(%ebp)
4186a3:	8b 35 08 40 42 00    	mov    0x424008,%esi
4186a9:	8b ce                	mov    %esi,%ecx
4186ab:	57                   	push   %edi
4186ac:	ff 15 78 64 42 00    	call   *0x426478
4186b2:	ff d6                	call   *%esi
4186b4:	8b f8                	mov    %eax,%edi
4186b6:	89 bd 80 f4 ff ff    	mov    %edi,-0xb80(%ebp)
4186bc:	85 ff                	test   %edi,%edi
4186be:	0f 84 1e 05 00 00    	je     0x418be2
4186c4:	8b 85 2c f7 ff ff    	mov    -0x8d4(%ebp),%eax
4186ca:	2b 85 24 f7 ff ff    	sub    -0x8dc(%ebp),%eax
4186d0:	8b 35 0c 40 42 00    	mov    0x42400c,%esi
4186d6:	8b ce                	mov    %esi,%ecx
4186d8:	89 85 0c fa ff ff    	mov    %eax,-0x5f4(%ebp)
4186de:	8b 85 28 f7 ff ff    	mov    -0x8d8(%ebp),%eax
4186e4:	2b 85 30 f7 ff ff    	sub    -0x8d0(%ebp),%eax
4186ea:	89 85 10 fa ff ff    	mov    %eax,-0x5f0(%ebp)
4186f0:	33 c0                	xor    %eax,%eax
4186f2:	6a 20                	push   $0x20
4186f4:	40                   	inc    %eax
4186f5:	89 9d d4 f3 ff ff    	mov    %ebx,-0xc2c(%ebp)
4186fb:	66 89 85 14 fa ff ff 	mov    %ax,-0x5ec(%ebp)
418702:	58                   	pop    %eax
418703:	53                   	push   %ebx
418704:	53                   	push   %ebx
418705:	66 89 85 16 fa ff ff 	mov    %ax,-0x5ea(%ebp)
41870c:	8d 85 d4 f3 ff ff    	lea    -0xc2c(%ebp),%eax
418712:	50                   	push   %eax
418713:	53                   	push   %ebx
418714:	8d 85 08 fa ff ff    	lea    -0x5f8(%ebp),%eax
41871a:	89 9d 70 f4 ff ff    	mov    %ebx,-0xb90(%ebp)
418720:	50                   	push   %eax
418721:	57                   	push   %edi
418722:	89 9d 18 fa ff ff    	mov    %ebx,-0x5e8(%ebp)
418728:	89 9d 1c fa ff ff    	mov    %ebx,-0x5e4(%ebp)
41872e:	89 9d 20 fa ff ff    	mov    %ebx,-0x5e0(%ebp)
418734:	89 9d 24 fa ff ff    	mov    %ebx,-0x5dc(%ebp)
41873a:	89 9d 28 fa ff ff    	mov    %ebx,-0x5d8(%ebp)
418740:	89 9d 2c fa ff ff    	mov    %ebx,-0x5d4(%ebp)
418746:	89 9d 30 fa ff ff    	mov    %ebx,-0x5d0(%ebp)
41874c:	c7 85 08 fa ff ff 28 	movl   $0x28,-0x5f8(%ebp)
418753:	00 00 00
418756:	ff 15 78 64 42 00    	call   *0x426478
41875c:	ff d6                	call   *%esi
41875e:	89 85 40 f4 ff ff    	mov    %eax,-0xbc0(%ebp)
418764:	85 c0                	test   %eax,%eax
418766:	75 35                	jne    0x41879d
418768:	ff 15 70 61 42 00    	call   *0x426170
41876e:	89 85 70 f4 ff ff    	mov    %eax,-0xb90(%ebp)
418774:	85 c0                	test   %eax,%eax
418776:	7e 10                	jle    0x418788
418778:	0f b7 c0             	movzwl %ax,%eax
41877b:	0d 00 00 07 80       	or     $0x80070000,%eax
418780:	89 85 70 f4 ff ff    	mov    %eax,-0xb90(%ebp)
418786:	85 c0                	test   %eax,%eax
418788:	0f 88 9f 03 00 00    	js     0x418b2d
41878e:	c7 85 70 f4 ff ff 05 	movl   $0x80004005,-0xb90(%ebp)
418795:	40 00 80
418798:	e9 90 03 00 00       	jmp    0x418b2d
41879d:	8b 35 34 40 42 00    	mov    0x424034,%esi
4187a3:	8d 8d 38 f5 ff ff    	lea    -0xac8(%ebp),%ecx
4187a9:	51                   	push   %ecx
4187aa:	6a 54                	push   $0x54
4187ac:	50                   	push   %eax
4187ad:	8b ce                	mov    %esi,%ecx
4187af:	ff 15 78 64 42 00    	call   *0x426478
4187b5:	ff d6                	call   *%esi
4187b7:	85 c0                	test   %eax,%eax
4187b9:	74 0c                	je     0x4187c7
4187bb:	8b 85 4c f5 ff ff    	mov    -0xab4(%ebp),%eax
4187c1:	89 85 7c f4 ff ff    	mov    %eax,-0xb84(%ebp)
4187c7:	8b 85 2c f7 ff ff    	mov    -0x8d4(%ebp),%eax
4187cd:	2b 85 24 f7 ff ff    	sub    -0x8dc(%ebp),%eax
4187d3:	ff b5 40 f4 ff ff    	push   -0xbc0(%ebp)
4187d9:	8b 35 3c 40 42 00    	mov    0x42403c,%esi
4187df:	8b ce                	mov    %esi,%ecx
4187e1:	89 85 a8 fb ff ff    	mov    %eax,-0x458(%ebp)
4187e7:	8b 85 30 f7 ff ff    	mov    -0x8d0(%ebp),%eax
4187ed:	2b 85 28 f7 ff ff    	sub    -0x8d8(%ebp),%eax
4187f3:	57                   	push   %edi
4187f4:	89 85 ac fb ff ff    	mov    %eax,-0x454(%ebp)
4187fa:	ff 15 78 64 42 00    	call   *0x426478
418800:	ff d6                	call   *%esi
418802:	8b 35 40 40 42 00    	mov    0x424040,%esi
418808:	33 c0                	xor    %eax,%eax
41880a:	40                   	inc    %eax
41880b:	8b ce                	mov    %esi,%ecx
41880d:	50                   	push   %eax
41880e:	57                   	push   %edi
41880f:	ff 15 78 64 42 00    	call   *0x426478
418815:	ff d6                	call   *%esi
418817:	ff b5 64 f4 ff ff    	push   -0xb9c(%ebp)
41881d:	8b 35 3c 40 42 00    	mov    0x42403c,%esi
418823:	8b ce                	mov    %esi,%ecx
418825:	57                   	push   %edi
418826:	ff 15 78 64 42 00    	call   *0x426478
41882c:	ff d6                	call   *%esi
41882e:	8b 35 38 40 42 00    	mov    0x424038,%esi
418834:	8b ce                	mov    %esi,%ecx
418836:	8b 3d 74 40 42 00    	mov    0x424074,%edi
41883c:	53                   	push   %ebx
41883d:	89 85 64 f4 ff ff    	mov    %eax,-0xb9c(%ebp)
418843:	ff 15 78 64 42 00    	call   *0x426478
418849:	ff d6                	call   *%esi
41884b:	50                   	push   %eax
41884c:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
418852:	8b cf                	mov    %edi,%ecx
418854:	50                   	push   %eax
418855:	ff b5 80 f4 ff ff    	push   -0xb80(%ebp)
41885b:	ff 15 78 64 42 00    	call   *0x426478
418861:	ff d7                	call   *%edi
418863:	8b bd 80 f4 ff ff    	mov    -0xb80(%ebp),%edi
418869:	8d 85 a0 fb ff ff    	lea    -0x460(%ebp),%eax
41886f:	8b 35 6c 40 42 00    	mov    0x42406c,%esi
418875:	8b ce                	mov    %esi,%ecx
418877:	53                   	push   %ebx
418878:	ff b5 54 f4 ff ff    	push   -0xbac(%ebp)
41887e:	50                   	push   %eax
41887f:	6a ff                	push   $0xffffffff
418881:	ff b5 78 f4 ff ff    	push   -0xb88(%ebp)
418887:	57                   	push   %edi
418888:	ff 15 78 64 42 00    	call   *0x426478
41888e:	ff d6                	call   *%esi
418890:	33 c0                	xor    %eax,%eax
418892:	40                   	inc    %eax
418893:	39 85 38 f4 ff ff    	cmp    %eax,-0xbc8(%ebp)
418899:	75 29                	jne    0x4188c4
41889b:	83 bd 74 f4 ff ff 00 	cmpl   $0x0,-0xb8c(%ebp)
4188a2:	74 14                	je     0x4188b8
4188a4:	8b 35 8c 40 42 00    	mov    0x42408c,%esi
4188aa:	8b ce                	mov    %esi,%ecx
4188ac:	6a 08                	push   $0x8
4188ae:	ff 15 78 64 42 00    	call   *0x426478
4188b4:	ff d6                	call   *%esi
4188b6:	eb 11                	jmp    0x4188c9
4188b8:	c7 85 38 f4 ff ff ff 	movl   $0xffffff,-0xbc8(%ebp)
4188bf:	ff ff 00
4188c2:	eb 11                	jmp    0x4188d5
4188c4:	b8 a8 a8 a8 ff       	mov    $0xffa8a8a8,%eax
4188c9:	89 85 38 f4 ff ff    	mov    %eax,-0xbc8(%ebp)
4188cf:	89 85 50 f4 ff ff    	mov    %eax,-0xbb0(%ebp)