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
40dbb8:	ff 76 18             	push   0x18(%esi)
40dbbb:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
40dbc1:	bf b0 fd 40 00       	mov    $0x40fdb0,%edi
40dbc6:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40dbcc:	41                   	inc    %ecx
40dbcd:	57                   	push   %edi
40dbce:	51                   	push   %ecx
40dbcf:	48                   	dec    %eax
40dbd0:	50                   	push   %eax
40dbd1:	51                   	push   %ecx
40dbd2:	6a 01                	push   $0x1
40dbd4:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40dbda:	ff 76 18             	push   0x18(%esi)
40dbdd:	8b 8d f4 fd ff ff    	mov    -0x20c(%ebp),%ecx
40dbe3:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40dbe9:	49                   	dec    %ecx
40dbea:	57                   	push   %edi
40dbeb:	48                   	dec    %eax
40dbec:	50                   	push   %eax
40dbed:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40dbf3:	51                   	push   %ecx
40dbf4:	40                   	inc    %eax
40dbf5:	50                   	push   %eax
40dbf6:	51                   	push   %ecx
40dbf7:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40dbfd:	ff 76 18             	push   0x18(%esi)
40dc00:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40dc06:	48                   	dec    %eax
40dc07:	57                   	push   %edi
40dc08:	50                   	push   %eax
40dc09:	6a 01                	push   $0x1
40dc0b:	50                   	push   %eax
40dc0c:	8b 85 f4 fd ff ff    	mov    -0x20c(%ebp),%eax
40dc12:	48                   	dec    %eax
40dc13:	50                   	push   %eax
40dc14:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40dc1a:	ff 76 18             	push   0x18(%esi)
40dc1d:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40dc23:	57                   	push   %edi
40dc24:	40                   	inc    %eax
40dc25:	50                   	push   %eax
40dc26:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
40dc2c:	6a 01                	push   $0x1
40dc2e:	48                   	dec    %eax
40dc2f:	50                   	push   %eax
40dc30:	6a 01                	push   $0x1
40dc32:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40dc38:	33 ff                	xor    %edi,%edi
40dc3a:	47                   	inc    %edi
40dc3b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dc3e:	8b c7                	mov    %edi,%eax
40dc40:	5f                   	pop    %edi
40dc41:	5e                   	pop    %esi
40dc42:	33 cd                	xor    %ebp,%ecx
40dc44:	5b                   	pop    %ebx
40dc45:	e8 96 5c 00 00       	call   0x4138e0
40dc4a:	c9                   	leave
40dc4b:	c2 08 00             	ret    $0x8
40dc4e:	8b ff                	mov    %edi,%edi
40dc50:	55                   	push   %ebp
40dc51:	8b ec                	mov    %esp,%ebp
40dc53:	56                   	push   %esi
40dc54:	57                   	push   %edi
40dc55:	68 94 42 40 00       	push   $0x404294
40dc5a:	ff 15 6c b1 41 00    	call   *0x41b16c
40dc60:	33 ff                	xor    %edi,%edi
40dc62:	47                   	inc    %edi
40dc63:	85 c0                	test   %eax,%eax
40dc65:	74 1d                	je     0x40dc84
40dc67:	68 a8 42 40 00       	push   $0x4042a8
40dc6c:	50                   	push   %eax
40dc6d:	ff 15 5c b1 41 00    	call   *0x41b15c
40dc73:	8b f0                	mov    %eax,%esi
40dc75:	85 f6                	test   %esi,%esi
40dc77:	74 0b                	je     0x40dc84
40dc79:	57                   	push   %edi
40dc7a:	8b ce                	mov    %esi,%ecx
40dc7c:	ff 15 90 b3 41 00    	call   *0x41b390
40dc82:	ff d6                	call   *%esi
40dc84:	8b 75 10             	mov    0x10(%ebp),%esi
40dc87:	85 f6                	test   %esi,%esi
40dc89:	0f 84 62 01 00 00    	je     0x40ddf1
40dc8f:	68 74 3d 40 00       	push   $0x403d74
40dc94:	56                   	push   %esi
40dc95:	ff 15 64 b3 41 00    	call   *0x41b364
40dc9b:	59                   	pop    %ecx
40dc9c:	59                   	pop    %ecx
40dc9d:	85 c0                	test   %eax,%eax
40dc9f:	74 06                	je     0x40dca7
40dca1:	51                   	push   %ecx
40dca2:	e8 39 0b 00 00       	call   0x40e7e0
40dca7:	68 9c 3d 40 00       	push   $0x403d9c
40dcac:	56                   	push   %esi
40dcad:	ff 15 64 b3 41 00    	call   *0x41b364
40dcb3:	59                   	pop    %ecx
40dcb4:	59                   	pop    %ecx
40dcb5:	85 c0                	test   %eax,%eax
40dcb7:	74 12                	je     0x40dccb
40dcb9:	83 25 34 57 41 00 00 	andl   $0x0,0x415734
40dcc0:	89 3d 80 93 41 00    	mov    %edi,0x419380
40dcc6:	e9 f0 00 00 00       	jmp    0x40ddbb
40dccb:	68 a0 3d 40 00       	push   $0x403da0
40dcd0:	56                   	push   %esi
40dcd1:	ff 15 64 b3 41 00    	call   *0x41b364
40dcd7:	59                   	pop    %ecx
40dcd8:	59                   	pop    %ecx
40dcd9:	85 c0                	test   %eax,%eax
40dcdb:	74 15                	je     0x40dcf2
40dcdd:	89 3d 34 57 41 00    	mov    %edi,0x415734
40dce3:	c7 05 80 93 41 00 02 	movl   $0x2,0x419380
40dcea:	00 00 00
40dced:	e9 c9 00 00 00       	jmp    0x40ddbb
40dcf2:	68 a8 3d 40 00       	push   $0x403da8
40dcf7:	56                   	push   %esi
40dcf8:	ff 15 64 b3 41 00    	call   *0x41b364
40dcfe:	59                   	pop    %ecx
40dcff:	59                   	pop    %ecx
40dd00:	85 c0                	test   %eax,%eax
40dd02:	74 19                	je     0x40dd1d
40dd04:	c7 05 34 57 41 00 02 	movl   $0x2,0x415734
40dd0b:	00 00 00
40dd0e:	c7 05 80 93 41 00 04 	movl   $0x4,0x419380
40dd15:	00 00 00
40dd18:	e9 9e 00 00 00       	jmp    0x40ddbb
40dd1d:	68 ac 3d 40 00       	push   $0x403dac
40dd22:	56                   	push   %esi
40dd23:	ff 15 64 b3 41 00    	call   *0x41b364
40dd29:	59                   	pop    %ecx
40dd2a:	59                   	pop    %ecx
40dd2b:	85 c0                	test   %eax,%eax
40dd2d:	74 16                	je     0x40dd45
40dd2f:	c7 05 34 57 41 00 03 	movl   $0x3,0x415734
40dd36:	00 00 00
40dd39:	c7 05 80 93 41 00 08 	movl   $0x8,0x419380
40dd40:	00 00 00
40dd43:	eb 76                	jmp    0x40ddbb
40dd45:	68 b4 3d 40 00       	push   $0x403db4
40dd4a:	56                   	push   %esi
40dd4b:	ff 15 64 b3 41 00    	call   *0x41b364
40dd51:	59                   	pop    %ecx
40dd52:	59                   	pop    %ecx
40dd53:	85 c0                	test   %eax,%eax
40dd55:	74 16                	je     0x40dd6d
40dd57:	c7 05 34 57 41 00 04 	movl   $0x4,0x415734
40dd5e:	00 00 00
40dd61:	c7 05 80 93 41 00 10 	movl   $0x10,0x419380
40dd68:	00 00 00
40dd6b:	eb 4e                	jmp    0x40ddbb
40dd6d:	68 b8 3d 40 00       	push   $0x403db8
40dd72:	56                   	push   %esi
40dd73:	ff 15 64 b3 41 00    	call   *0x41b364
40dd79:	59                   	pop    %ecx
40dd7a:	59                   	pop    %ecx
40dd7b:	85 c0                	test   %eax,%eax
40dd7d:	74 16                	je     0x40dd95
40dd7f:	c7 05 34 57 41 00 05 	movl   $0x5,0x415734
40dd86:	00 00 00
40dd89:	c7 05 80 93 41 00 20 	movl   $0x20,0x419380
40dd90:	00 00 00
40dd93:	eb 26                	jmp    0x40ddbb
40dd95:	68 c0 3d 40 00       	push   $0x403dc0
40dd9a:	56                   	push   %esi
40dd9b:	ff 15 64 b3 41 00    	call   *0x41b364
40dda1:	59                   	pop    %ecx
40dda2:	59                   	pop    %ecx
40dda3:	85 c0                	test   %eax,%eax
40dda5:	74 4a                	je     0x40ddf1
40dda7:	c7 05 34 57 41 00 06 	movl   $0x6,0x415734
40ddae:	00 00 00
40ddb1:	c7 05 80 93 41 00 40 	movl   $0x40,0x419380
40ddb8:	00 00 00
40ddbb:	8b 45 08             	mov    0x8(%ebp),%eax
40ddbe:	a3 18 a3 41 00       	mov    %eax,0x41a318
40ddc3:	e8 60 4a 00 00       	call   0x412828
40ddc8:	85 c0                	test   %eax,%eax