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
40d95a:	8b df                	mov    %edi,%ebx
40d95c:	8d 8d 80 fd ff ff    	lea    -0x280(%ebp),%ecx
40d962:	e8 65 a8 ff ff       	call   0x4081cc
40d967:	e8 09 24 00 00       	call   0x40fd75
40d96c:	6b c0 f7             	imul   $0xfffffff7,%eax,%eax
40d96f:	6a 48                	push   $0x48
40d971:	59                   	pop    %ecx
40d972:	99                   	cltd
40d973:	f7 f9                	idiv   %ecx
40d975:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
40d97b:	8d 85 80 fd ff ff    	lea    -0x280(%ebp),%eax
40d981:	50                   	push   %eax
40d982:	ff 15 84 b0 41 00    	call   *0x41b084
40d988:	85 c0                	test   %eax,%eax
40d98a:	74 12                	je     0x40d99e
40d98c:	50                   	push   %eax
40d98d:	ff 76 18             	push   0x18(%esi)
40d990:	ff 15 88 b0 41 00    	call   *0x41b088
40d996:	8b d8                	mov    %eax,%ebx
40d998:	89 85 74 fd ff ff    	mov    %eax,-0x28c(%ebp)
40d99e:	f6 46 10 01          	testb  $0x1,0x10(%esi)
40d9a2:	74 16                	je     0x40d9ba
40d9a4:	6a 0e                	push   $0xe
40d9a6:	ff 15 5c b2 41 00    	call   *0x41b25c
40d9ac:	50                   	push   %eax
40d9ad:	ff 76 18             	push   0x18(%esi)
40d9b0:	ff 15 8c b0 41 00    	call   *0x41b08c
40d9b6:	6a 0d                	push   $0xd
40d9b8:	eb 14                	jmp    0x40d9ce
40d9ba:	6a 08                	push   $0x8
40d9bc:	ff 15 5c b2 41 00    	call   *0x41b25c
40d9c2:	50                   	push   %eax
40d9c3:	ff 76 18             	push   0x18(%esi)
40d9c6:	ff 15 8c b0 41 00    	call   *0x41b08c
40d9cc:	6a 05                	push   $0x5
40d9ce:	ff 15 5c b2 41 00    	call   *0x41b25c
40d9d4:	50                   	push   %eax
40d9d5:	ff 76 18             	push   0x18(%esi)
40d9d8:	ff 15 90 b0 41 00    	call   *0x41b090
40d9de:	39 7e 08             	cmp    %edi,0x8(%esi)
40d9e1:	74 06                	je     0x40d9e9
40d9e3:	83 7e 08 01          	cmpl   $0x1,0x8(%esi)
40d9e7:	76 13                	jbe    0x40d9fc
40d9e9:	ff 76 14             	push   0x14(%esi)
40d9ec:	ff 15 00 b2 41 00    	call   *0x41b200
40d9f2:	85 c0                	test   %eax,%eax
40d9f4:	74 06                	je     0x40d9fc
40d9f6:	f6 46 10 86          	testb  $0x86,0x10(%esi)
40d9fa:	74 24                	je     0x40da20
40d9fc:	6a 11                	push   $0x11
40d9fe:	ff 15 5c b2 41 00    	call   *0x41b25c
40da04:	50                   	push   %eax
40da05:	ff 76 18             	push   0x18(%esi)
40da08:	ff 15 8c b0 41 00    	call   *0x41b08c
40da0e:	6a 05                	push   $0x5
40da10:	ff 15 5c b2 41 00    	call   *0x41b25c
40da16:	50                   	push   %eax
40da17:	ff 76 18             	push   0x18(%esi)
40da1a:	ff 15 90 b0 41 00    	call   *0x41b090
40da20:	39 7e 08             	cmp    %edi,0x8(%esi)
40da23:	75 30                	jne    0x40da55
40da25:	8b 85 7c fd ff ff    	mov    -0x284(%ebp),%eax
40da2b:	83 78 10 21          	cmpl   $0x21,0x10(%eax)
40da2f:	75 24                	jne    0x40da55
40da31:	6a 11                	push   $0x11
40da33:	ff 15 5c b2 41 00    	call   *0x41b25c
40da39:	50                   	push   %eax
40da3a:	ff 76 18             	push   0x18(%esi)
40da3d:	ff 15 8c b0 41 00    	call   *0x41b08c
40da43:	6a 05                	push   $0x5
40da45:	ff 15 5c b2 41 00    	call   *0x41b25c
40da4b:	50                   	push   %eax
40da4c:	ff 76 18             	push   0x18(%esi)
40da4f:	ff 15 90 b0 41 00    	call   *0x41b090
40da55:	e8 1b 23 00 00       	call   0x40fd75
40da5a:	6b c0 09             	imul   $0x9,%eax,%eax
40da5d:	6a 48                	push   $0x48
40da5f:	59                   	pop    %ecx
40da60:	89 bd 78 fd ff ff    	mov    %edi,-0x288(%ebp)
40da66:	99                   	cltd
40da67:	f7 f9                	idiv   %ecx
40da69:	8b 8d f8 fd ff ff    	mov    -0x208(%ebp),%ecx
40da6f:	2b c8                	sub    %eax,%ecx
40da71:	2b 8d f0 fd ff ff    	sub    -0x210(%ebp),%ecx
40da77:	8b c1                	mov    %ecx,%eax
40da79:	8b 8d 44 fd ff ff    	mov    -0x2bc(%ebp),%ecx
40da7f:	99                   	cltd
40da80:	2b c2                	sub    %edx,%eax
40da82:	ba 04 01 00 00       	mov    $0x104,%edx
40da87:	d1 f8                	sar    $1,%eax
40da89:	40                   	inc    %eax
40da8a:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)
40da90:	8d 85 78 fd ff ff    	lea    -0x288(%ebp),%eax
40da96:	50                   	push   %eax
40da97:	e8 d7 b3 ff ff       	call   0x408e73
40da9c:	85 c0                	test   %eax,%eax
40da9e:	78 63                	js     0x40db03
40daa0:	8b 85 44 fd ff ff    	mov    -0x2bc(%ebp),%eax
40daa6:	8b 9d ec fd ff ff    	mov    -0x214(%ebp),%ebx
40daac:	89 85 70 fd ff ff    	mov    %eax,-0x290(%ebp)
40dab2:	83 c3 02             	add    $0x2,%ebx
40dab5:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40dabb:	01 85 7c fd ff ff    	add    %eax,-0x284(%ebp)
40dac1:	8b 46 18             	mov    0x18(%esi),%eax
40dac4:	50                   	push   %eax
40dac5:	89 85 6c fd ff ff    	mov    %eax,-0x294(%ebp)
40dacb:	ff 15 78 b0 41 00    	call   *0x41b078
40dad1:	83 f8 ff             	cmp    $0xffffffff,%eax
40dad4:	74 05                	je     0x40dadb
40dad6:	a8 01                	test   $0x1,%al
40dad8:	74 01                	je     0x40dadb
40dada:	4b                   	dec    %ebx
40dadb:	57                   	push   %edi
40dadc:	ff b5 78 fd ff ff    	push   -0x288(%ebp)
40dae2:	ff b5 70 fd ff ff    	push   -0x290(%ebp)
40dae8:	57                   	push   %edi
40dae9:	57                   	push   %edi
40daea:	ff b5 7c fd ff ff    	push   -0x284(%ebp)
40daf0:	53                   	push   %ebx
40daf1:	ff b5 6c fd ff ff    	push   -0x294(%ebp)
40daf7:	ff 15 7c b0 41 00    	call   *0x41b07c
40dafd:	8b 9d 74 fd ff ff    	mov    -0x28c(%ebp),%ebx
40db03:	85 db                	test   %ebx,%ebx
40db05:	74 11                	je     0x40db18
40db07:	53                   	push   %ebx
40db08:	ff 76 18             	push   0x18(%esi)
40db0b:	ff 15 88 b0 41 00    	call   *0x41b088
40db11:	50                   	push   %eax
40db12:	ff 15 80 b0 41 00    	call   *0x41b080
40db18:	68 40 40 40 00       	push   $0x404040
40db1d:	6a 01                	push   $0x1
40db1f:	57                   	push   %edi
40db20:	ff 15 94 b0 41 00    	call   *0x41b094
40db26:	85 c0                	test   %eax,%eax
40db28:	74 0e                	je     0x40db38
40db2a:	50                   	push   %eax
40db2b:	ff 76 18             	push   0x18(%esi)
40db2e:	ff 15 88 b0 41 00    	call   *0x41b088
40db34:	8b d8                	mov    %eax,%ebx
40db36:	eb 02                	jmp    0x40db3a
40db38:	8b df                	mov    %edi,%ebx
40db3a:	57                   	push   %edi
40db3b:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40db41:	57                   	push   %edi
40db42:	ff 76 18             	push   0x18(%esi)
40db45:	ff 15 98 b0 41 00    	call   *0x41b098
40db4b:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40db51:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40db57:	48                   	dec    %eax
40db58:	50                   	push   %eax
40db59:	ff 76 18             	push   0x18(%esi)
40db5c:	ff 15 9c b0 41 00    	call   *0x41b09c
40db62:	ff b5 f8 fd ff ff    	push   -0x208(%ebp)
40db68:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40db6e:	48                   	dec    %eax
40db6f:	50                   	push   %eax
40db70:	ff 76 18             	push   0x18(%esi)
40db73:	ff 15 9c b0 41 00    	call   *0x41b09c
40db79:	ff b5 f8 fd ff ff    	push   -0x208(%ebp)
40db7f:	57                   	push   %edi
40db80:	ff 76 18             	push   0x18(%esi)
40db83:	ff 15 9c b0 41 00    	call   *0x41b09c
40db89:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40db8f:	57                   	push   %edi
40db90:	ff 76 18             	push   0x18(%esi)
40db93:	ff 15 9c b0 41 00    	call   *0x41b09c
40db99:	85 db                	test   %ebx,%ebx
40db9b:	74 11                	je     0x40dbae
40db9d:	53                   	push   %ebx
40db9e:	ff 76 18             	push   0x18(%esi)
40dba1:	ff 15 88 b0 41 00    	call   *0x41b088
40dba7:	50                   	push   %eax
40dba8:	ff 15 80 b0 41 00    	call   *0x41b080
40dbae:	f6 46 10 10          	testb  $0x10,0x10(%esi)
40dbb2:	0f 84 80 00 00 00    	je     0x40dc38