41a235:	0f 84 14 01 00 00    	je     0x41a34f
41a23b:	57                   	push   %edi
41a23c:	ff 73 04             	push   0x4(%ebx)
41a23f:	8b d6                	mov    %esi,%edx
41a241:	89 45 8c             	mov    %eax,-0x74(%ebp)
41a244:	8b c8                	mov    %eax,%ecx
41a246:	e8 6d 92 ff ff       	call   0x4134b8
41a24b:	ff 75 24             	push   0x24(%ebp)
41a24e:	8b 43 0c             	mov    0xc(%ebx),%eax
41a251:	8d 4d 88             	lea    -0x78(%ebp),%ecx
41a254:	ff 75 20             	push   0x20(%ebp)
41a257:	8b 55 f0             	mov    -0x10(%ebp),%edx
41a25a:	33 ff                	xor    %edi,%edi
41a25c:	ff 75 1c             	push   0x1c(%ebp)
41a25f:	89 45 94             	mov    %eax,-0x6c(%ebp)
41a262:	8b 43 08             	mov    0x8(%ebx),%eax
41a265:	57                   	push   %edi
41a266:	ff 75 14             	push   0x14(%ebp)
41a269:	89 45 90             	mov    %eax,-0x70(%ebp)
41a26c:	ff 75 fc             	push   -0x4(%ebp)
41a26f:	8a 43 10             	mov    0x10(%ebx),%al
41a272:	ff 75 0c             	push   0xc(%ebp)
41a275:	88 45 98             	mov    %al,-0x68(%ebp)
41a278:	ff 75 08             	push   0x8(%ebp)
41a27b:	e8 08 c2 fe ff       	call   0x406488
41a280:	8b 4d a0             	mov    -0x60(%ebp),%ecx
41a283:	8b f0                	mov    %eax,%esi
41a285:	e8 d6 39 ff ff       	call   0x40dc60
41a28a:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
41a28d:	89 7d a0             	mov    %edi,-0x60(%ebp)
41a290:	e8 cb 39 ff ff       	call   0x40dc60
41a295:	8b 4d 8c             	mov    -0x74(%ebp),%ecx
41a298:	89 7d a4             	mov    %edi,-0x5c(%ebp)
41a29b:	e8 c0 39 ff ff       	call   0x40dc60
41a2a0:	89 7d 8c             	mov    %edi,-0x74(%ebp)
41a2a3:	85 f6                	test   %esi,%esi
41a2a5:	75 09                	jne    0x41a2b0
41a2a7:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
41a2ae:	eb 35                	jmp    0x41a2e5
41a2b0:	83 fe 6f             	cmp    $0x6f,%esi
41a2b3:	74 2e                	je     0x41a2e3
41a2b5:	83 fe 02             	cmp    $0x2,%esi
41a2b8:	74 29                	je     0x41a2e3
41a2ba:	83 fe 03             	cmp    $0x3,%esi
41a2bd:	74 24                	je     0x41a2e3
41a2bf:	8b 45 d4             	mov    -0x2c(%ebp),%eax
41a2c2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41a2c5:	8b 04 88             	mov    (%eax,%ecx,4),%eax
41a2c8:	f7 40 04 00 04 00 00 	testl  $0x400,0x4(%eax)
41a2cf:	74 24                	je     0x41a2f5
41a2d1:	f7 40 28 00 00 00 20 	testl  $0x20000000,0x28(%eax)
41a2d8:	75 09                	jne    0x41a2e3
41a2da:	81 78 28 0a 00 00 80 	cmpl   $0x8000000a,0x28(%eax)
41a2e1:	75 12                	jne    0x41a2f5
41a2e3:	8b f7                	mov    %edi,%esi
41a2e5:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a2e8:	40                   	inc    %eax
41a2e9:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a2ec:	3b 45 cc             	cmp    -0x34(%ebp),%eax
41a2ef:	0f 82 3a fe ff ff    	jb     0x41a12f
41a2f5:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
41a2f8:	e8 63 39 ff ff       	call   0x40dc60
41a2fd:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41a300:	e8 5b 39 ff ff       	call   0x40dc60
41a305:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41a308:	8b 49 04             	mov    0x4(%ecx),%ecx
41a30b:	e8 50 39 ff ff       	call   0x40dc60
41a310:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
41a313:	e8 48 39 ff ff       	call   0x40dc60
41a318:	8b 4d bc             	mov    -0x44(%ebp),%ecx
41a31b:	e8 40 39 ff ff       	call   0x40dc60
41a320:	85 f6                	test   %esi,%esi
41a322:	75 05                	jne    0x41a329
41a324:	39 75 f4             	cmp    %esi,-0xc(%ebp)
41a327:	74 1e                	je     0x41a347
41a329:	8b c6                	mov    %esi,%eax
41a32b:	e9 d7 c1 fe ff       	jmp    0x406507
41a330:	57                   	push   %edi
41a331:	ff 73 04             	push   0x4(%ebx)
41a334:	6a 02                	push   $0x2
41a336:	68 d8 23 00 40       	push   $0x400023d8
41a33b:	e8 a4 d5 fe ff       	call   0x4078e4
41a340:	83 c4 10             	add    $0x10,%esp
41a343:	6a 6f                	push   $0x6f
41a345:	eb 02                	jmp    0x41a349
41a347:	6a 02                	push   $0x2
41a349:	58                   	pop    %eax
41a34a:	e9 b8 c1 fe ff       	jmp    0x406507
41a34f:	e8 ce f5 00 00       	call   0x429922
41a354:	6a 01                	push   $0x1
41a356:	68 30 0a 44 00       	push   $0x440a30
41a35b:	ff 15 30 a4 44 00    	call   *0x44a430
41a361:	cc                   	int3
41a362:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41a368:	e9 9e c2 fe ff       	jmp    0x40660b
41a36d:	8d 95 e0 fd ff ff    	lea    -0x220(%ebp),%edx
41a373:	e9 c1 c2 fe ff       	jmp    0x406639
41a378:	8b 3d a8 67 43 00    	mov    0x4367a8,%edi
41a37e:	85 ff                	test   %edi,%edi
41a380:	0f 84 fd c3 fe ff    	je     0x406783
41a386:	83 ff 12             	cmp    $0x12,%edi
41a389:	74 09                	je     0x41a394
41a38b:	83 ff 05             	cmp    $0x5,%edi
41a38e:	0f 85 e2 c3 fe ff    	jne    0x406776
41a394:	6a 02                	push   $0x2
41a396:	5f                   	pop    %edi
41a397:	89 3d a8 67 43 00    	mov    %edi,0x4367a8
41a39d:	e9 d4 c3 fe ff       	jmp    0x406776
41a3a2:	ff 46 14             	incl   0x14(%esi)
41a3a5:	0f b7 03             	movzwl (%ebx),%eax
41a3a8:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
41a3ae:	03 d8                	add    %eax,%ebx
41a3b0:	03 c8                	add    %eax,%ecx
41a3b2:	89 8d d8 fd ff ff    	mov    %ecx,-0x228(%ebp)
41a3b8:	8d 81 54 02 00 00    	lea    0x254(%ecx),%eax
41a3be:	8b 8d c8 fd ff ff    	mov    -0x238(%ebp),%ecx
41a3c4:	3b c1                	cmp    %ecx,%eax
41a3c6:	0f 82 79 c3 fe ff    	jb     0x406745
41a3cc:	8b 7e 18             	mov    0x18(%esi),%edi
41a3cf:	81 c1 00 00 01 00    	add    $0x10000,%ecx
41a3d5:	89 8d c8 fd ff ff    	mov    %ecx,-0x238(%ebp)
41a3db:	8b d1                	mov    %ecx,%edx
41a3dd:	8b cf                	mov    %edi,%ecx
41a3df:	e8 3c 39 ff ff       	call   0x40dd20
41a3e4:	85 c0                	test   %eax,%eax
41a3e6:	75 0b                	jne    0x41a3f3
41a3e8:	8b cf                	mov    %edi,%ecx
41a3ea:	e8 71 38 ff ff       	call   0x40dc60
41a3ef:	33 c9                	xor    %ecx,%ecx
41a3f1:	8b c1                	mov    %ecx,%eax
41a3f3:	89 46 18             	mov    %eax,0x18(%esi)
41a3f6:	85 c0                	test   %eax,%eax
41a3f8:	74 2c                	je     0x41a426
41a3fa:	8b 9d d8 fd ff ff    	mov    -0x228(%ebp),%ebx
41a400:	03 d8                	add    %eax,%ebx
41a402:	e9 3e c3 fe ff       	jmp    0x406745
41a407:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
41a40b:	0f 86 0e c4 fe ff    	jbe    0x40681f
41a411:	e9 6d c3 fe ff       	jmp    0x406783
41a416:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
41a41c:	e8 2c e7 fe ff       	call   0x408b4d
41a421:	e9 f9 c3 fe ff       	jmp    0x40681f
41a426:	bf 74 23 00 00       	mov    $0x2374,%edi
41a42b:	e9 ef c3 fe ff       	jmp    0x40681f
41a430:	8b 8d dc fd ff ff    	mov    -0x224(%ebp),%ecx
41a436:	e8 12 e7 fe ff       	call   0x408b4d
41a43b:	33 ff                	xor    %edi,%edi
41a43d:	47                   	inc    %edi
41a43e:	e9 dc c3 fe ff       	jmp    0x40681f
41a443:	6a 6f                	push   $0x6f
41a445:	5f                   	pop    %edi
41a446:	e9 d4 c3 fe ff       	jmp    0x40681f
41a44b:	8b 4e 14             	mov    0x14(%esi),%ecx
41a44e:	85 c9                	test   %ecx,%ecx
41a450:	0f 84 61 c3 fe ff    	je     0x4067b7
41a456:	c1 e1 02             	shl    $0x2,%ecx
41a459:	e8 72 38 ff ff       	call   0x40dcd0
41a45e:	85 c0                	test   %eax,%eax
41a460:	74 31                	je     0x41a493
41a462:	8b d7                	mov    %edi,%edx
41a464:	8b 4e 18             	mov    0x18(%esi),%ecx
41a467:	89 46 1c             	mov    %eax,0x1c(%esi)
41a46a:	39 7e 14             	cmp    %edi,0x14(%esi)
41a46d:	0f 86 44 c3 fe ff    	jbe    0x4067b7
41a473:	8b 46 1c             	mov    0x1c(%esi),%eax
41a476:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
41a479:	0f b7 01             	movzwl (%ecx),%eax
41a47c:	03 c8                	add    %eax,%ecx
41a47e:	42                   	inc    %edx
41a47f:	3b 56 14             	cmp    0x14(%esi),%edx
41a482:	72 ef                	jb     0x41a473
41a484:	e9 2e c3 fe ff       	jmp    0x4067b7
41a489:	6a 02                	push   $0x2
41a48b:	58                   	pop    %eax
41a48c:	8b f8                	mov    %eax,%edi
41a48e:	e9 3b c3 fe ff       	jmp    0x4067ce
41a493:	e8 8a f4 00 00       	call   0x429922
41a498:	6a 01                	push   $0x1
41a49a:	68 30 0a 44 00       	push   $0x440a30
41a49f:	ff 15 30 a4 44 00    	call   *0x44a430
41a4a5:	cc                   	int3
41a4a6:	6a 09                	push   $0x9
41a4a8:	59                   	pop    %ecx
41a4a9:	8d bd 60 fe ff ff    	lea    -0x1a0(%ebp),%edi
41a4af:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
41a4b1:	8d 95 8c fe ff ff    	lea    -0x174(%ebp),%edx
41a4b7:	8d 8d 60 fe ff ff    	lea    -0x1a0(%ebp),%ecx
41a4bd:	e8 15 a4 00 00       	call   0x4248d7
41a4c2:	e9 e9 c3 fe ff       	jmp    0x4068b0
41a4c7:	ff 35 88 e5 42 00    	push   0x42e588
41a4cd:	8b d6                	mov    %esi,%edx
41a4cf:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
41a4d5:	e8 c6 4e ff ff       	call   0x40f3a0
41a4da:	e9 36 c4 fe ff       	jmp    0x406915
41a4df:	33 c0                	xor    %eax,%eax
41a4e1:	03 f7                	add    %edi,%esi
41a4e3:	85 db                	test   %ebx,%ebx
41a4e5:	0f 94 c0             	sete   %al
41a4e8:	8b d8                	mov    %eax,%ebx
41a4ea:	e9 6a c4 fe ff       	jmp    0x406959
41a4ef:	6a 64                	push   $0x64
41a4f1:	58                   	pop    %eax
41a4f2:	66 3b c8             	cmp    %ax,%cx
41a4f5:	75 08                	jne    0x41a4ff
41a4f7:	33 c0                	xor    %eax,%eax
41a4f9:	89 85 9c fe ff ff    	mov    %eax,-0x164(%ebp)
41a4ff:	83 fa 03             	cmp    $0x3,%edx
41a502:	7e 41                	jle    0x41a545
41a504:	8b 95 a0 fe ff ff    	mov    -0x160(%ebp),%edx
41a50a:	8b ca                	mov    %edx,%ecx
41a50c:	8d 41 02             	lea    0x2(%ecx),%eax
41a50f:	89 85 a0 fe ff ff    	mov    %eax,-0x160(%ebp)
41a515:	66 8b 01             	mov    (%ecx),%ax
41a518:	03 cf                	add    %edi,%ecx
41a51a:	66 3b 85 a4 fe ff ff 	cmp    -0x15c(%ebp),%ax
41a521:	75 f2                	jne    0x41a515
41a523:	2b 8d a0 fe ff ff    	sub    -0x160(%ebp),%ecx
41a529:	83 c6 06             	add    $0x6,%esi
41a52c:	d1 f9                	sar    $1,%ecx
41a52e:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
41a535:	50                   	push   %eax
41a536:	52                   	push   %edx
41a537:	56                   	push   %esi
41a538:	e8 05 d7 ff ff       	call   0x417c42
41a53d:	83 c4 0c             	add    $0xc,%esp
41a540:	e9 14 c4 fe ff       	jmp    0x406959
41a545:	8b b5 a0 fe ff ff    	mov    -0x160(%ebp),%esi
41a54b:	e9 09 c4 fe ff       	jmp    0x406959
41a550:	ff 15 80 a0 44 00    	call   *0x44a080
41a556:	33 c9                	xor    %ecx,%ecx
41a558:	51                   	push   %ecx
41a559:	eb 07                	jmp    0x41a562
41a55b:	ff 15 80 a0 44 00    	call   *0x44a080
41a561:	56                   	push   %esi
41a562:	a3 a8 67 43 00       	mov    %eax,0x4367a8
41a567:	50                   	push   %eax
41a568:	eb 05                	jmp    0x41a56f
41a56a:	33 c0                	xor    %eax,%eax
41a56c:	50                   	push   %eax
41a56d:	6a 08                	push   $0x8
41a56f:	e8 70 d3 fe ff       	call   0x4078e4
41a574:	59                   	pop    %ecx
41a575:	59                   	pop    %ecx
41a576:	33 c0                	xor    %eax,%eax
41a578:	e9 b2 c4 fe ff       	jmp    0x406a2f
41a57d:	0f b7 95 a8 fe ff ff 	movzwl -0x158(%ebp),%edx
41a584:	0f b7 b5 aa fe ff ff 	movzwl -0x156(%ebp),%esi
41a58b:	0f b7 bd ae fe ff ff 	movzwl -0x152(%ebp),%edi
41a592:	89 95 a4 fe ff ff    	mov    %edx,-0x15c(%ebp)
41a598:	39 85 98 fe ff ff    	cmp    %eax,-0x168(%ebp)
41a59e:	75 0f                	jne    0x41a5af
41a5a0:	8b c2                	mov    %edx,%eax
41a5a2:	33 d2                	xor    %edx,%edx
41a5a4:	6a 64                	push   $0x64
41a5a6:	59                   	pop    %ecx
41a5a7:	f7 f1                	div    %ecx
41a5a9:	89 95 a4 fe ff ff    	mov    %edx,-0x15c(%ebp)
41a5af:	a1 8c e5 42 00       	mov    0x42e58c,%eax
41a5b4:	83 f8 02             	cmp    $0x2,%eax
41a5b7:	75 10                	jne    0x41a5c9
41a5b9:	8b c2                	mov    %edx,%eax
41a5bb:	8b d7                	mov    %edi,%edx
41a5bd:	8b fe                	mov    %esi,%edi
41a5bf:	89 95 a4 fe ff ff    	mov    %edx,-0x15c(%ebp)
41a5c5:	8b f0                	mov    %eax,%esi
41a5c7:	eb 0b                	jmp    0x41a5d4
41a5c9:	83 f8 01             	cmp    $0x1,%eax
41a5cc:	75 06                	jne    0x41a5d4
41a5ce:	8b c6                	mov    %esi,%eax
41a5d0:	8b f7                	mov    %edi,%esi
41a5d2:	8b f8                	mov    %eax,%edi
41a5d4:	8b 0d 50 67 43 00    	mov    0x436750,%ecx
41a5da:	83 f9 20             	cmp    $0x20,%ecx
41a5dd:	7d 30                	jge    0x41a60f
41a5df:	6a 40                	push   $0x40
41a5e1:	ff 35 4c 67 43 00    	push   0x43674c
41a5e7:	ff 15 0c a4 44 00    	call   *0x44a40c
41a5ed:	59                   	pop    %ecx
41a5ee:	59                   	pop    %ecx
41a5ef:	85 c0                	test   %eax,%eax
41a5f1:	75 06                	jne    0x41a5f9
41a5f3:	50                   	push   %eax
41a5f4:	e9 74 ff ff ff       	jmp    0x41a56d
41a5f9:	8b 95 a4 fe ff ff    	mov    -0x15c(%ebp),%edx
41a5ff:	6a 20                	push   $0x20
41a601:	59                   	pop    %ecx
41a602:	a3 4c 67 43 00       	mov    %eax,0x43674c
41a607:	89 0d 50 67 43 00    	mov    %ecx,0x436750
41a60d:	eb 05                	jmp    0x41a614
41a60f:	a1 4c 67 43 00       	mov    0x43674c,%eax
41a614:	52                   	push   %edx
41a615:	ba d0 c9 43 00       	mov    $0x43c9d0,%edx
41a61a:	52                   	push   %edx
41a61b:	57                   	push   %edi
41a61c:	52                   	push   %edx
41a61d:	56                   	push   %esi
41a61e:	68 a8 3a 40 00       	push   $0x403aa8
41a623:	51                   	push   %ecx
41a624:	50                   	push   %eax
41a625:	e8 95 f4 fe ff       	call   0x409abf
41a62a:	83 c4 20             	add    $0x20,%esp
41a62d:	6a 02                	push   $0x2
41a62f:	5f                   	pop    %edi
41a630:	e9 d7 c4 fe ff       	jmp    0x406b0c
41a635:	83 bd 9c fe ff ff 00 	cmpl   $0x0,-0x164(%ebp)
41a63c:	75 0f                	jne    0x41a64d
41a63e:	56                   	push   %esi
41a63f:	68 84 3a 40 00       	push   $0x403a84
41a644:	e8 07 f3 fe ff       	call   0x409950
41a649:	59                   	pop    %ecx
41a64a:	59                   	pop    %ecx
41a64b:	eb 1f                	jmp    0x41a66c
41a64d:	e8 e2 ed fe ff       	call   0x409434
41a652:	84 c0                	test   %al,%al
41a654:	8d 45 b8             	lea    -0x48(%ebp),%eax
41a657:	74 04                	je     0x41a65d
41a659:	50                   	push   %eax
41a65a:	56                   	push   %esi
41a65b:	eb 02                	jmp    0x41a65f
41a65d:	56                   	push   %esi
41a65e:	50                   	push   %eax
41a65f:	68 40 3a 40 00       	push   $0x403a40
41a664:	e8 e7 f2 fe ff       	call   0x409950
41a669:	83 c4 0c             	add    $0xc,%esp
41a66c:	8b d8                	mov    %eax,%ebx
41a66e:	e9 ba c3 fe ff       	jmp    0x406a2d
41a673:	56                   	push   %esi
41a674:	e8 27 4d ff ff       	call   0x40f3a0
41a679:	8b 55 0c             	mov    0xc(%ebp),%edx
41a67c:	8b cb                	mov    %ebx,%ecx
41a67e:	68 4c 23 40 00       	push   $0x40234c
41a683:	e8 b8 55 ff ff       	call   0x40fc40
41a688:	8d 45 b8             	lea    -0x48(%ebp),%eax
41a68b:	50                   	push   %eax
41a68c:	e9 7f c3 fe ff       	jmp    0x406a10
41a691:	8b 55 0c             	mov    0xc(%ebp),%edx
41a694:	8b cb                	mov    %ebx,%ecx
41a696:	56                   	push   %esi
41a697:	e8 04 4d ff ff       	call   0x40f3a0
41a69c:	e9 79 c3 fe ff       	jmp    0x406a1a
41a6a1:	6a 00                	push   $0x0
41a6a3:	6a 08                	push   $0x8
41a6a5:	e8 3a d2 fe ff       	call   0x4078e4
41a6aa:	59                   	pop    %ecx
41a6ab:	59                   	pop    %ecx
41a6ac:	33 c0                	xor    %eax,%eax
41a6ae:	40                   	inc    %eax
41a6af:	e9 35 c6 fe ff       	jmp    0x406ce9
41a6b4:	83 4e 0c ff          	orl    $0xffffffff,0xc(%esi)
41a6b8:	eb 04                	jmp    0x41a6be