40d532:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d538:	8b 46 20             	mov    0x20(%esi),%eax
40d53b:	85 c0                	test   %eax,%eax
40d53d:	75 05                	jne    0x40d544
40d53f:	b8 e0 3c 40 00       	mov    $0x403ce0,%eax
40d544:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40d547:	66 8b 11             	mov    (%ecx),%dx
40d54a:	66 3b 10             	cmp    (%eax),%dx
40d54d:	75 28                	jne    0x40d577
40d54f:	66 85 d2             	test   %dx,%dx
40d552:	74 15                	je     0x40d569
40d554:	66 8b 51 02          	mov    0x2(%ecx),%dx
40d558:	66 3b 50 02          	cmp    0x2(%eax),%dx
40d55c:	75 19                	jne    0x40d577
40d55e:	83 c1 04             	add    $0x4,%ecx
40d561:	83 c0 04             	add    $0x4,%eax
40d564:	66 85 d2             	test   %dx,%dx
40d567:	75 de                	jne    0x40d547
40d569:	8b c7                	mov    %edi,%eax
40d56b:	eb 0f                	jmp    0x40d57c
40d56d:	6a 10                	push   $0x10
40d56f:	51                   	push   %ecx
40d570:	6a 3a                	push   $0x3a
40d572:	e9 61 01 00 00       	jmp    0x40d6d8
40d577:	1b c0                	sbb    %eax,%eax
40d579:	83 c8 01             	or     $0x1,%eax
40d57c:	85 c0                	test   %eax,%eax
40d57e:	0f 84 df 00 00 00    	je     0x40d663
40d584:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d587:	8b 4b 10             	mov    0x10(%ebx),%ecx
40d58a:	40                   	inc    %eax
40d58b:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d58e:	3b c1                	cmp    %ecx,%eax
40d590:	7c 80                	jl     0x40d512
40d592:	8b 46 10             	mov    0x10(%esi),%eax
40d595:	85 c0                	test   %eax,%eax
40d597:	0f 85 e6 00 00 00    	jne    0x40d683
40d59d:	8b 46 20             	mov    0x20(%esi),%eax
40d5a0:	8b 75 c8             	mov    -0x38(%ebp),%esi
40d5a3:	89 45 90             	mov    %eax,-0x70(%ebp)
40d5a6:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
40d5ac:	50                   	push   %eax
40d5ad:	57                   	push   %edi
40d5ae:	68 4d 10 00 00       	push   $0x104d
40d5b3:	56                   	push   %esi
40d5b4:	c7 85 7c ff ff ff 01 	movl   $0x1,-0x84(%ebp)
40d5bb:	00 00 00
40d5be:	89 4d 80             	mov    %ecx,-0x80(%ebp)
40d5c1:	89 7d 84             	mov    %edi,-0x7c(%ebp)
40d5c4:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d5ca:	8d 85 40 ff ff ff    	lea    -0xc0(%ebp),%eax
40d5d0:	c7 85 50 ff ff ff 00 	movl   $0xf000,-0xb0(%ebp)
40d5d7:	f0 00 00
40d5da:	50                   	push   %eax
40d5db:	ff 73 10             	push   0x10(%ebx)
40d5de:	c7 85 4c ff ff ff 00 	movl   $0x2000,-0xb4(%ebp)
40d5e5:	20 00 00
40d5e8:	68 2b 10 00 00       	push   $0x102b
40d5ed:	56                   	push   %esi
40d5ee:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d5f4:	ff 43 10             	incl   0x10(%ebx)
40d5f7:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d5fa:	50                   	push   %eax
40d5fb:	56                   	push   %esi
40d5fc:	ff 15 f8 b1 41 00    	call   *0x41b1f8
40d602:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d605:	2b 45 d0             	sub    -0x30(%ebp),%eax
40d608:	89 45 b8             	mov    %eax,-0x48(%ebp)
40d60b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d60e:	50                   	push   %eax
40d60f:	56                   	push   %esi
40d610:	ff 15 28 b2 41 00    	call   *0x41b228
40d616:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d619:	2b 45 d0             	sub    -0x30(%ebp),%eax
40d61c:	6a 02                	push   $0x2
40d61e:	89 45 bc             	mov    %eax,-0x44(%ebp)
40d621:	ff 15 fc b1 41 00    	call   *0x41b1fc
40d627:	8b f0                	mov    %eax,%esi
40d629:	e8 47 27 00 00       	call   0x40fd75
40d62e:	0f af c6             	imul   %esi,%eax
40d631:	6a 60                	push   $0x60
40d633:	59                   	pop    %ecx
40d634:	8b 75 c8             	mov    -0x38(%ebp),%esi
40d637:	57                   	push   %edi
40d638:	99                   	cltd
40d639:	f7 f9                	idiv   %ecx
40d63b:	57                   	push   %edi
40d63c:	68 28 10 00 00       	push   $0x1028
40d641:	56                   	push   %esi
40d642:	89 45 cc             	mov    %eax,-0x34(%ebp)
40d645:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d64b:	8b 55 b8             	mov    -0x48(%ebp),%edx
40d64e:	8b 4d bc             	mov    -0x44(%ebp),%ecx
40d651:	2b d1                	sub    %ecx,%edx
40d653:	3b 43 10             	cmp    0x10(%ebx),%eax
40d656:	8b 45 cc             	mov    -0x34(%ebp),%eax
40d659:	7d 0f                	jge    0x40d66a
40d65b:	3b d0                	cmp    %eax,%edx
40d65d:	7d 11                	jge    0x40d670
40d65f:	2b c8                	sub    %eax,%ecx
40d661:	eb 0d                	jmp    0x40d670
40d663:	6a 10                	push   $0x10
40d665:	51                   	push   %ecx
40d666:	6a 40                	push   $0x40
40d668:	eb 6e                	jmp    0x40d6d8
40d66a:	3b d0                	cmp    %eax,%edx
40d66c:	7e 02                	jle    0x40d670
40d66e:	03 c8                	add    %eax,%ecx
40d670:	0f b7 c1             	movzwl %cx,%eax
40d673:	50                   	push   %eax
40d674:	57                   	push   %edi
40d675:	68 1e 10 00 00       	push   $0x101e
40d67a:	56                   	push   %esi
40d67b:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d681:	eb 5e                	jmp    0x40d6e1
40d683:	8b 4e 20             	mov    0x20(%esi),%ecx
40d686:	85 c9                	test   %ecx,%ecx
40d688:	74 34                	je     0x40d6be
40d68a:	66 39 39             	cmp    %di,(%ecx)
40d68d:	74 2f                	je     0x40d6be
40d68f:	8d 8d 40 ff ff ff    	lea    -0xc0(%ebp),%ecx
40d695:	c7 85 50 ff ff ff 00 	movl   $0xf000,-0xb0(%ebp)
40d69c:	f0 00 00
40d69f:	51                   	push   %ecx
40d6a0:	50                   	push   %eax
40d6a1:	68 2b 10 00 00       	push   $0x102b
40d6a6:	ff 75 c8             	push   -0x38(%ebp)
40d6a9:	c7 85 4c ff ff ff 00 	movl   $0x2000,-0xb4(%ebp)
40d6b0:	20 00 00
40d6b3:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d6b9:	33 ff                	xor    %edi,%edi
40d6bb:	47                   	inc    %edi
40d6bc:	eb 23                	jmp    0x40d6e1
40d6be:	57                   	push   %edi
40d6bf:	50                   	push   %eax
40d6c0:	68 08 10 00 00       	push   $0x1008
40d6c5:	ff 75 c8             	push   -0x38(%ebp)
40d6c8:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d6ce:	ff 4b 10             	decl   0x10(%ebx)
40d6d1:	eb 0e                	jmp    0x40d6e1
40d6d3:	6a 10                	push   $0x10
40d6d5:	51                   	push   %ecx
40d6d6:	6a 3b                	push   $0x3b
40d6d8:	8b 4b 04             	mov    0x4(%ebx),%ecx
40d6db:	5a                   	pop    %edx
40d6dc:	e8 0a 27 00 00       	call   0x40fdeb
40d6e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d6e4:	8b c7                	mov    %edi,%eax
40d6e6:	5f                   	pop    %edi
40d6e7:	5e                   	pop    %esi
40d6e8:	33 cd                	xor    %ebp,%ecx
40d6ea:	5b                   	pop    %ebx
40d6eb:	e8 f0 61 00 00       	call   0x4138e0
40d6f0:	c9                   	leave
40d6f1:	c2 04 00             	ret    $0x4
40d6f4:	8b ff                	mov    %edi,%edi
40d6f6:	55                   	push   %ebp
40d6f7:	8b ec                	mov    %esp,%ebp
40d6f9:	83 ec 1c             	sub    $0x1c,%esp
40d6fc:	a1 18 51 41 00       	mov    0x415118,%eax
40d701:	33 c5                	xor    %ebp,%eax
40d703:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d706:	53                   	push   %ebx
40d707:	56                   	push   %esi
40d708:	8b f1                	mov    %ecx,%esi
40d70a:	57                   	push   %edi
40d70b:	68 0e 04 00 00       	push   $0x40e
40d710:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40d713:	ff 76 04             	push   0x4(%esi)
40d716:	ff 15 d0 b1 41 00    	call   *0x41b1d0
40d71c:	33 ff                	xor    %edi,%edi
40d71e:	8b d8                	mov    %eax,%ebx
40d720:	57                   	push   %edi
40d721:	57                   	push   %edi
40d722:	68 42 10 00 00       	push   $0x1042
40d727:	53                   	push   %ebx
40d728:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d72e:	85 c0                	test   %eax,%eax
40d730:	0f 84 a4 00 00 00    	je     0x40d7da
40d736:	83 f8 01             	cmp    $0x1,%eax
40d739:	0f 8e 9b 00 00 00    	jle    0x40d7da
40d73f:	57                   	push   %edi
40d740:	50                   	push   %eax
40d741:	68 08 10 00 00       	push   $0x1008
40d746:	53                   	push   %ebx
40d747:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d74d:	ff 4e 10             	decl   0x10(%esi)
40d750:	57                   	push   %edi
40d751:	57                   	push   %edi
40d752:	68 15 10 00 00       	push   $0x1015
40d757:	53                   	push   %ebx
40d758:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d75e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d761:	50                   	push   %eax
40d762:	53                   	push   %ebx
40d763:	ff 15 f8 b1 41 00    	call   *0x41b1f8
40d769:	8b 45 f4             	mov    -0xc(%ebp),%eax
40d76c:	2b 45 ec             	sub    -0x14(%ebp),%eax
40d76f:	89 45 e8             	mov    %eax,-0x18(%ebp)
40d772:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d775:	50                   	push   %eax
40d776:	53                   	push   %ebx
40d777:	ff 15 28 b2 41 00    	call   *0x41b228
40d77d:	8b 7d f4             	mov    -0xc(%ebp),%edi
40d780:	2b 7d ec             	sub    -0x14(%ebp),%edi
40d783:	6a 02                	push   $0x2
40d785:	ff 15 fc b1 41 00    	call   *0x41b1fc
40d78b:	8b f0                	mov    %eax,%esi
40d78d:	e8 e3 25 00 00       	call   0x40fd75
40d792:	0f af c6             	imul   %esi,%eax
40d795:	6a 60                	push   $0x60
40d797:	59                   	pop    %ecx
40d798:	6a 00                	push   $0x0
40d79a:	6a 00                	push   $0x0
40d79c:	99                   	cltd
40d79d:	f7 f9                	idiv   %ecx
40d79f:	68 28 10 00 00       	push   $0x1028
40d7a4:	53                   	push   %ebx
40d7a5:	8b f0                	mov    %eax,%esi
40d7a7:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d7ad:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40d7b0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40d7b3:	2b cf                	sub    %edi,%ecx
40d7b5:	3b 42 10             	cmp    0x10(%edx),%eax
40d7b8:	7d 08                	jge    0x40d7c2
40d7ba:	3b ce                	cmp    %esi,%ecx
40d7bc:	7d 0a                	jge    0x40d7c8
40d7be:	2b fe                	sub    %esi,%edi
40d7c0:	eb 06                	jmp    0x40d7c8
40d7c2:	3b ce                	cmp    %esi,%ecx
40d7c4:	7e 02                	jle    0x40d7c8
40d7c6:	03 fe                	add    %esi,%edi
40d7c8:	0f b7 c7             	movzwl %di,%eax
40d7cb:	50                   	push   %eax
40d7cc:	6a 00                	push   $0x0
40d7ce:	68 1e 10 00 00       	push   $0x101e
40d7d3:	53                   	push   %ebx
40d7d4:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d7da:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d7dd:	5f                   	pop    %edi
40d7de:	5e                   	pop    %esi
40d7df:	33 cd                	xor    %ebp,%ecx
40d7e1:	5b                   	pop    %ebx
40d7e2:	e8 f9 60 00 00       	call   0x4138e0
40d7e7:	c9                   	leave
40d7e8:	c3                   	ret
40d7e9:	cc                   	int3
40d7ea:	cc                   	int3
40d7eb:	cc                   	int3
40d7ec:	cc                   	int3
40d7ed:	cc                   	int3
40d7ee:	cc                   	int3
40d7ef:	cc                   	int3
40d7f0:	8b ff                	mov    %edi,%edi
40d7f2:	55                   	push   %ebp
40d7f3:	8b ec                	mov    %esp,%ebp
40d7f5:	81 ec d0 02 00 00    	sub    $0x2d0,%esp
40d7fb:	a1 18 51 41 00       	mov    0x415118,%eax
40d800:	33 c5                	xor    %ebp,%eax
40d802:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d805:	53                   	push   %ebx
40d806:	56                   	push   %esi
40d807:	8b 75 0c             	mov    0xc(%ebp),%esi
40d80a:	57                   	push   %edi
40d80b:	33 ff                	xor    %edi,%edi
40d80d:	89 8d 7c fd ff ff    	mov    %ecx,-0x284(%ebp)
40d813:	81 7d 08 0e 04 00 00 	cmpl   $0x40e,0x8(%ebp)
40d81a:	8b df                	mov    %edi,%ebx
40d81c:	89 9d 74 fd ff ff    	mov    %ebx,-0x28c(%ebp)
40d822:	0f 85 13 04 00 00    	jne    0x40dc3b
40d828:	68 fe 01 00 00       	push   $0x1fe
40d82d:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40d833:	57                   	push   %edi
40d834:	50                   	push   %eax
40d835:	e8 27 69 00 00       	call   0x414161
40d83a:	8b 46 08             	mov    0x8(%esi),%eax
40d83d:	83 c4 0c             	add    $0xc,%esp
40d840:	83 8d 40 fd ff ff ff 	orl    $0xffffffff,-0x2c0(%ebp)
40d847:	89 85 34 fd ff ff    	mov    %eax,-0x2cc(%ebp)
40d84d:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40d853:	89 85 44 fd ff ff    	mov    %eax,-0x2bc(%ebp)
40d859:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40d85f:	50                   	push   %eax
40d860:	57                   	push   %edi
40d861:	68 4b 10 00 00       	push   $0x104b
40d866:	ff 76 14             	push   0x14(%esi)
40d869:	c7 85 30 fd ff ff 09 	movl   $0x9,-0x2d0(%ebp)
40d870:	00 00 00
40d873:	89 bd 38 fd ff ff    	mov    %edi,-0x2c8(%ebp)
40d879:	c7 85 48 fd ff ff ff 	movl   $0xff,-0x2b8(%ebp)
40d880:	00 00 00
40d883:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d889:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40d88f:	c7 85 ec fd ff ff 02 	movl   $0x2,-0x214(%ebp)
40d896:	00 00 00
40d899:	50                   	push   %eax
40d89a:	ff 76 08             	push   0x8(%esi)
40d89d:	68 0e 10 00 00       	push   $0x100e
40d8a2:	ff 76 14             	push   0x14(%esi)
40d8a5:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d8ab:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40d8b1:	89 bd dc fd ff ff    	mov    %edi,-0x224(%ebp)
40d8b7:	50                   	push   %eax
40d8b8:	ff 76 08             	push   0x8(%esi)
40d8bb:	68 0e 10 00 00       	push   $0x100e
40d8c0:	ff 76 14             	push   0x14(%esi)
40d8c3:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d8c9:	f6 46 10 01          	testb  $0x1,0x10(%esi)
40d8cd:	74 04                	je     0x40d8d3
40d8cf:	6a 0d                	push   $0xd
40d8d1:	eb 02                	jmp    0x40d8d5
40d8d3:	6a 05                	push   $0x5
40d8d5:	ff 15 58 b2 41 00    	call   *0x41b258
40d8db:	50                   	push   %eax
40d8dc:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40d8e2:	50                   	push   %eax
40d8e3:	ff 76 18             	push   0x18(%esi)
40d8e6:	ff 15 4c b2 41 00    	call   *0x41b24c
40d8ec:	57                   	push   %edi
40d8ed:	6a 02                	push   $0x2
40d8ef:	68 02 10 00 00       	push   $0x1002
40d8f4:	ff 76 14             	push   0x14(%esi)
40d8f7:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d8fd:	89 85 78 fd ff ff    	mov    %eax,-0x288(%ebp)
40d903:	85 c0                	test   %eax,%eax
40d905:	74 55                	je     0x40d95c
40d907:	39 5e 08             	cmp    %ebx,0x8(%esi)
40d90a:	74 50                	je     0x40d95c
40d90c:	8b 5e 10             	mov    0x10(%esi),%ebx
40d90f:	83 e3 01             	and    $0x1,%ebx
40d912:	c1 e3 02             	shl    $0x2,%ebx
40d915:	f6 46 10 10          	testb  $0x10,0x10(%esi)
40d919:	74 03                	je     0x40d91e
40d91b:	83 cb 02             	or     $0x2,%ebx
40d91e:	68 00 f0 00 00       	push   $0xf000
40d923:	ff 76 08             	push   0x8(%esi)
40d926:	68 2c 10 00 00       	push   $0x102c
40d92b:	ff 76 14             	push   0x14(%esi)
40d92e:	ff 15 d8 b1 41 00    	call   *0x41b1d8
40d934:	53                   	push   %ebx
40d935:	ff 76 20             	push   0x20(%esi)
40d938:	33 c9                	xor    %ecx,%ecx
40d93a:	25 00 f0 ff ff       	and    $0xfffff000,%eax
40d93f:	ff 76 1c             	push   0x1c(%esi)
40d942:	3d 00 10 00 00       	cmp    $0x1000,%eax
40d947:	ff 76 18             	push   0x18(%esi)
40d94a:	0f 95 c1             	setne  %cl
40d94d:	51                   	push   %ecx
40d94e:	ff b5 78 fd ff ff    	push   -0x288(%ebp)
40d954:	ff 15 50 b0 41 00    	call   *0x41b050