40d86f:	74 07                	je     0x40d878
40d871:	8b c8                	mov    %eax,%ecx
40d873:	e8 63 65 ff ff       	call   0x403ddb
40d878:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40d87b:	51                   	push   %ecx
40d87c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40d87f:	51                   	push   %ecx
40d880:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40d883:	51                   	push   %ecx
40d884:	50                   	push   %eax
40d885:	8b cf                	mov    %edi,%ecx
40d887:	e8 50 9e ff ff       	call   0x4076dc
40d88c:	6a 69                	push   $0x69
40d88e:	57                   	push   %edi
40d88f:	ff 15 14 33 43 00    	call   *0x433314
40d895:	85 c0                	test   %eax,%eax
40d897:	74 12                	je     0x40d8ab
40d899:	50                   	push   %eax
40d89a:	8d 55 f8             	lea    -0x8(%ebp),%edx
40d89d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40d8a0:	e8 dc 72 ff ff       	call   0x404b81
40d8a5:	8b 75 fc             	mov    -0x4(%ebp),%esi
40d8a8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40d8ab:	8b 55 f0             	mov    -0x10(%ebp),%edx
40d8ae:	51                   	push   %ecx
40d8af:	51                   	push   %ecx
40d8b0:	ff 75 e4             	push   -0x1c(%ebp)
40d8b3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40d8b6:	ff 75 f4             	push   -0xc(%ebp)
40d8b9:	53                   	push   %ebx
40d8ba:	56                   	push   %esi
40d8bb:	e8 7f 67 ff ff       	call   0x40403f
40d8c0:	a3 48 26 43 00       	mov    %eax,0x432648
40d8c5:	85 c0                	test   %eax,%eax
40d8c7:	74 17                	je     0x40d8e0
40d8c9:	33 c9                	xor    %ecx,%ecx
40d8cb:	66 39 08             	cmp    %cx,(%eax)
40d8ce:	74 10                	je     0x40d8e0
40d8d0:	50                   	push   %eax
40d8d1:	ff 15 a8 31 43 00    	call   *0x4331a8
40d8d7:	48                   	dec    %eax
40d8d8:	66 a3 38 13 41 00    	mov    %ax,0x411338
40d8de:	eb 06                	jmp    0x40d8e6
40d8e0:	66 a1 38 13 41 00    	mov    0x411338,%ax
40d8e6:	0f b7 1d 7c 26 43 00 	movzwl 0x43267c,%ebx
40d8ed:	0f b7 c0             	movzwl %ax,%eax
40d8f0:	8d b3 c7 00 00 00    	lea    0xc7(%ebx),%esi
40d8f6:	3b f0                	cmp    %eax,%esi
40d8f8:	72 02                	jb     0x40d8fc
40d8fa:	8b f0                	mov    %eax,%esi
40d8fc:	68 cc 00 00 00       	push   $0xcc
40d901:	57                   	push   %edi
40d902:	ff 15 14 33 43 00    	call   *0x433314
40d908:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40d90f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d912:	3b f1                	cmp    %ecx,%esi
40d914:	74 62                	je     0x40d978
40d916:	33 c9                	xor    %ecx,%ecx
40d918:	c7 45 e8 05 00 00 00 	movl   $0x5,-0x18(%ebp)
40d91f:	51                   	push   %ecx
40d920:	51                   	push   %ecx
40d921:	6a 02                	push   $0x2
40d923:	50                   	push   %eax
40d924:	ff 15 d0 32 43 00    	call   *0x4332d0
40d92a:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40d931:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40d938:	2b c8                	sub    %eax,%ecx
40d93a:	a1 b0 10 41 00       	mov    0x4110b0,%eax
40d93f:	81 e9 c7 00 00 00    	sub    $0xc7,%ecx
40d945:	3b c8                	cmp    %eax,%ecx
40d947:	7d 05                	jge    0x40d94e
40d949:	33 c0                	xor    %eax,%eax
40d94b:	40                   	inc    %eax
40d94c:	eb 0a                	jmp    0x40d958
40d94e:	48                   	dec    %eax
40d94f:	03 c1                	add    %ecx,%eax
40d951:	99                   	cltd
40d952:	f7 3d b0 10 41 00    	idivl  0x4110b0
40d958:	33 c9                	xor    %ecx,%ecx
40d95a:	51                   	push   %ecx
40d95b:	50                   	push   %eax
40d95c:	51                   	push   %ecx
40d95d:	6a 02                	push   $0x2
40d95f:	ff 75 fc             	push   -0x4(%ebp)
40d962:	ff 15 d4 32 43 00    	call   *0x4332d4
40d968:	33 c0                	xor    %eax,%eax
40d96a:	50                   	push   %eax
40d96b:	50                   	push   %eax
40d96c:	ff 75 fc             	push   -0x4(%ebp)
40d96f:	ff 15 fc 31 43 00    	call   *0x4331fc
40d975:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d978:	ff 75 e8             	push   -0x18(%ebp)
40d97b:	50                   	push   %eax
40d97c:	ff 15 f4 31 43 00    	call   *0x4331f4
40d982:	56                   	push   %esi
40d983:	8b d3                	mov    %ebx,%edx
40d985:	8b cf                	mov    %edi,%ecx
40d987:	e8 74 00 00 00       	call   0x40da00
40d98c:	57                   	push   %edi
40d98d:	ff 15 f0 32 43 00    	call   *0x4332f0
40d993:	8b f8                	mov    %eax,%edi
40d995:	85 ff                	test   %edi,%edi
40d997:	74 60                	je     0x40d9f9
40d999:	ff 35 cc 1f 43 00    	push   0x431fcc
40d99f:	57                   	push   %edi
40d9a0:	ff 15 ac 30 43 00    	call   *0x4330ac
40d9a6:	83 3d 48 26 43 00 00 	cmpl   $0x0,0x432648
40d9ad:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d9b0:	74 13                	je     0x40d9c5
40d9b2:	51                   	push   %ecx
40d9b3:	68 d8 1f 43 00       	push   $0x431fd8
40d9b8:	56                   	push   %esi
40d9b9:	8b d3                	mov    %ebx,%edx
40d9bb:	8b cf                	mov    %edi,%ecx
40d9bd:	e8 29 72 ff ff       	call   0x404beb
40d9c2:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d9c5:	50                   	push   %eax
40d9c6:	57                   	push   %edi
40d9c7:	ff 15 ac 30 43 00    	call   *0x4330ac
40d9cd:	3b de                	cmp    %esi,%ebx
40d9cf:	77 1e                	ja     0x40d9ef
40d9d1:	2b f3                	sub    %ebx,%esi
40d9d3:	b9 d8 1f 43 00       	mov    $0x431fd8,%ecx
40d9d8:	46                   	inc    %esi
40d9d9:	a1 70 1f 43 00       	mov    0x431f70,%eax
40d9de:	2b 01                	sub    (%ecx),%eax
40d9e0:	99                   	cltd
40d9e1:	2b c2                	sub    %edx,%eax
40d9e3:	d1 f8                	sar    $1,%eax
40d9e5:	89 01                	mov    %eax,(%ecx)
40d9e7:	8d 49 04             	lea    0x4(%ecx),%ecx
40d9ea:	83 ee 01             	sub    $0x1,%esi
40d9ed:	75 ea                	jne    0x40d9d9
40d9ef:	57                   	push   %edi
40d9f0:	ff 75 e0             	push   -0x20(%ebp)
40d9f3:	ff 15 08 33 43 00    	call   *0x433308
40d9f9:	5f                   	pop    %edi
40d9fa:	5e                   	pop    %esi
40d9fb:	5b                   	pop    %ebx
40d9fc:	c9                   	leave
40d9fd:	c2 04 00             	ret    $0x4
40da00:	8b ff                	mov    %edi,%edi
40da02:	55                   	push   %ebp
40da03:	8b ec                	mov    %esp,%ebp
40da05:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
40da09:	53                   	push   %ebx
40da0a:	56                   	push   %esi
40da0b:	0f b7 35 c4 1f 43 00 	movzwl 0x431fc4,%esi
40da12:	8b d9                	mov    %ecx,%ebx
40da14:	66 2b 35 80 26 43 00 	sub    0x432680,%si
40da1b:	57                   	push   %edi
40da1c:	0f b7 fa             	movzwl %dx,%edi
40da1f:	66 89 3d 80 26 43 00 	mov    %di,0x432680
40da26:	66 a3 3c 13 41 00    	mov    %ax,0x41133c
40da2c:	8d 14 3e             	lea    (%esi,%edi,1),%edx
40da2f:	66 89 15 c4 1f 43 00 	mov    %dx,0x431fc4
40da36:	66 3b d0             	cmp    %ax,%dx
40da39:	76 0a                	jbe    0x40da45
40da3b:	66 8b d7             	mov    %di,%dx
40da3e:	66 89 15 c4 1f 43 00 	mov    %dx,0x431fc4
40da45:	66 3b d7             	cmp    %di,%dx
40da48:	76 24                	jbe    0x40da6e
40da4a:	8b 0d 48 26 43 00    	mov    0x432648,%ecx
40da50:	0f b7 c2             	movzwl %dx,%eax
40da53:	66 83 3c 41 20       	cmpw   $0x20,(%ecx,%eax,2)
40da58:	75 14                	jne    0x40da6e
40da5a:	b8 ff ff 00 00       	mov    $0xffff,%eax
40da5f:	66 03 d0             	add    %ax,%dx
40da62:	66 89 15 c4 1f 43 00 	mov    %dx,0x431fc4
40da69:	66 3b d7             	cmp    %di,%dx
40da6c:	77 e2                	ja     0x40da50
40da6e:	85 db                	test   %ebx,%ebx
40da70:	74 26                	je     0x40da98
40da72:	53                   	push   %ebx
40da73:	ff 15 f0 32 43 00    	call   *0x4332f0
40da79:	8b f0                	mov    %eax,%esi
40da7b:	85 f6                	test   %esi,%esi
40da7d:	74 28                	je     0x40daa7
40da7f:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40da85:	8b ce                	mov    %esi,%ecx
40da87:	6a 01                	push   $0x1
40da89:	e8 90 f8 ff ff       	call   0x40d31e
40da8e:	56                   	push   %esi
40da8f:	53                   	push   %ebx
40da90:	ff 15 08 33 43 00    	call   *0x433308
40da96:	eb 0f                	jmp    0x40daa7
40da98:	8b 15 c4 1f 43 00    	mov    0x431fc4,%edx
40da9e:	33 c9                	xor    %ecx,%ecx
40daa0:	6a 00                	push   $0x0
40daa2:	e8 77 f8 ff ff       	call   0x40d31e
40daa7:	5f                   	pop    %edi
40daa8:	5e                   	pop    %esi
40daa9:	5b                   	pop    %ebx
40daaa:	5d                   	pop    %ebp
40daab:	c2 04 00             	ret    $0x4
40daae:	8b ff                	mov    %edi,%edi
40dab0:	55                   	push   %ebp
40dab1:	8b ec                	mov    %esp,%ebp
40dab3:	83 ec 30             	sub    $0x30,%esp
40dab6:	a1 64 10 41 00       	mov    0x411064,%eax
40dabb:	33 c5                	xor    %ebp,%eax
40dabd:	89 45 f8             	mov    %eax,-0x8(%ebp)
40dac0:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
40dac4:	53                   	push   %ebx
40dac5:	56                   	push   %esi
40dac6:	57                   	push   %edi
40dac7:	8b d9                	mov    %ecx,%ebx
40dac9:	6a 06                	push   $0x6
40dacb:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40dace:	ff 15 ec 31 43 00    	call   *0x4331ec
40dad4:	8b f0                	mov    %eax,%esi
40dad6:	a1 1c 19 43 00       	mov    0x43191c,%eax
40dadb:	85 c0                	test   %eax,%eax
40dadd:	74 0b                	je     0x40daea
40dadf:	50                   	push   %eax
40dae0:	53                   	push   %ebx
40dae1:	ff 15 ac 30 43 00    	call   *0x4330ac
40dae7:	89 45 d0             	mov    %eax,-0x30(%ebp)
40daea:	6a 12                	push   $0x12
40daec:	ff 15 0c 32 43 00    	call   *0x43320c
40daf2:	50                   	push   %eax
40daf3:	53                   	push   %ebx
40daf4:	ff 15 80 30 43 00    	call   *0x433080
40dafa:	6a 0f                	push   $0xf
40dafc:	ff 15 0c 32 43 00    	call   *0x43320c
40db02:	50                   	push   %eax
40db03:	53                   	push   %ebx
40db04:	ff 15 94 30 43 00    	call   *0x433094
40db0a:	a1 44 1f 43 00       	mov    0x431f44,%eax
40db0f:	8d 3c 36             	lea    (%esi,%esi,1),%edi
40db12:	6b ce 03             	imul   $0x3,%esi,%ecx
40db15:	03 c1                	add    %ecx,%eax
40db17:	89 45 dc             	mov    %eax,-0x24(%ebp)
40db1a:	a1 4c 1f 43 00       	mov    0x431f4c,%eax
40db1f:	2b c1                	sub    %ecx,%eax
40db21:	6b ce 09             	imul   $0x9,%esi,%ecx
40db24:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40db27:	be 30 1d 43 00       	mov    $0x431d30,%esi
40db2c:	a1 48 1f 43 00       	mov    0x431f48,%eax
40db31:	51                   	push   %ecx
40db32:	2b c1                	sub    %ecx,%eax
40db34:	89 4d d8             	mov    %ecx,-0x28(%ebp)
40db37:	56                   	push   %esi
40db38:	89 45 e0             	mov    %eax,-0x20(%ebp)
40db3b:	ff 15 a8 31 43 00    	call   *0x4331a8
40db41:	8b 55 d8             	mov    -0x28(%ebp),%edx
40db44:	8b cb                	mov    %ebx,%ecx
40db46:	50                   	push   %eax
40db47:	56                   	push   %esi
40db48:	8d 45 d8             	lea    -0x28(%ebp),%eax
40db4b:	50                   	push   %eax
40db4c:	6a 06                	push   $0x6
40db4e:	ff 75 dc             	push   -0x24(%ebp)
40db51:	8d 14 17             	lea    (%edi,%edx,1),%edx
40db54:	e8 30 25 00 00       	call   0x410089
40db59:	66 83 3d 28 1b 43 00 	cmpw   $0x0,0x431b28
40db60:	00
40db61:	74 4d                	je     0x40dbb0
40db63:	a1 38 1f 43 00       	mov    0x431f38,%eax
40db68:	01 45 d8             	add    %eax,-0x28(%ebp)
40db6b:	53                   	push   %ebx
40db6c:	ff 15 48 30 43 00    	call   *0x433048
40db72:	8b f0                	mov    %eax,%esi
40db74:	8b ce                	mov    %esi,%ecx
40db76:	83 c9 02             	or     $0x2,%ecx
40db79:	51                   	push   %ecx
40db7a:	53                   	push   %ebx
40db7b:	ff 15 44 30 43 00    	call   *0x433044
40db81:	51                   	push   %ecx
40db82:	68 28 1b 43 00       	push   $0x431b28
40db87:	ff 15 a8 31 43 00    	call   *0x4331a8
40db8d:	8b 55 e0             	mov    -0x20(%ebp),%edx
40db90:	8b cb                	mov    %ebx,%ecx
40db92:	50                   	push   %eax
40db93:	68 28 1b 43 00       	push   $0x431b28
40db98:	8d 45 d8             	lea    -0x28(%ebp),%eax
40db9b:	2b d7                	sub    %edi,%edx
40db9d:	50                   	push   %eax
40db9e:	6a 02                	push   $0x2
40dba0:	ff 75 dc             	push   -0x24(%ebp)
40dba3:	e8 e1 24 00 00       	call   0x410089
40dba8:	56                   	push   %esi
40dba9:	53                   	push   %ebx
40dbaa:	ff 15 44 30 43 00    	call   *0x433044
40dbb0:	a1 4c 26 43 00       	mov    0x43264c,%eax
40dbb5:	85 c0                	test   %eax,%eax
40dbb7:	74 78                	je     0x40dc31
40dbb9:	be b4 19 40 00       	mov    $0x4019b4,%esi
40dbbe:	8d 7d e8             	lea    -0x18(%ebp),%edi
40dbc1:	6a 01                	push   $0x1
40dbc3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40dbc6:	51                   	push   %ecx
40dbc7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dbc8:	6a 00                	push   $0x0
40dbca:	6a fc                	push   $0xfffffffc
40dbcc:	ff 35 14 19 43 00    	push   0x431914
40dbd2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dbd3:	50                   	push   %eax
40dbd4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dbd5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dbd6:	8b 38                	mov    (%eax),%edi
40dbd8:	8b 4f 24             	mov    0x24(%edi),%ecx
40dbdb:	ff 15 18 34 43 00    	call   *0x433418
40dbe1:	ff 57 24             	call   *0x24(%edi)
40dbe4:	a1 4c 26 43 00       	mov    0x43264c,%eax
40dbe9:	be b4 19 40 00       	mov    $0x4019b4,%esi
40dbee:	68 30 1d 43 00       	push   $0x431d30
40dbf3:	83 ec 10             	sub    $0x10,%esp
40dbf6:	8b fc                	mov    %esp,%edi
40dbf8:	8b 18                	mov    (%eax),%ebx
40dbfa:	6a 00                	push   $0x0
40dbfc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dbfd:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
40dc00:	6a fc                	push   $0xfffffffc
40dc02:	ff 35 14 19 43 00    	push   0x431914
40dc08:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dc09:	50                   	push   %eax
40dc0a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dc0b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40dc0c:	ff 15 18 34 43 00    	call   *0x433418
40dc12:	ff 53 1c             	call   *0x1c(%ebx)
40dc15:	85 c0                	test   %eax,%eax
40dc17:	78 15                	js     0x40dc2e
40dc19:	6a 00                	push   $0x0
40dc1b:	6a fc                	push   $0xfffffffc
40dc1d:	ff 35 14 19 43 00    	push   0x431914
40dc23:	68 0c 80 00 00       	push   $0x800c
40dc28:	ff 15 d8 32 43 00    	call   *0x4332d8
40dc2e:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
40dc31:	8b 45 d0             	mov    -0x30(%ebp),%eax
40dc34:	85 c0                	test   %eax,%eax
40dc36:	74 08                	je     0x40dc40
40dc38:	50                   	push   %eax
40dc39:	53                   	push   %ebx
40dc3a:	ff 15 ac 30 43 00    	call   *0x4330ac
40dc40:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40dc43:	5f                   	pop    %edi
40dc44:	5e                   	pop    %esi
40dc45:	33 cd                	xor    %ebp,%ecx
40dc47:	5b                   	pop    %ebx
40dc48:	e8 e3 27 00 00       	call   0x410430
40dc4d:	c9                   	leave
40dc4e:	c2 04 00             	ret    $0x4
40dc51:	8b 0d 40 26 43 00    	mov    0x432640,%ecx
40dc57:	85 c9                	test   %ecx,%ecx
40dc59:	74 17                	je     0x40dc72
40dc5b:	8b 01                	mov    (%ecx),%eax
40dc5d:	56                   	push   %esi
40dc5e:	68 a8 18 40 00       	push   $0x4018a8
40dc63:	51                   	push   %ecx