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
40dc64:	8b 70 0c             	mov    0xc(%eax),%esi
40dc67:	8b ce                	mov    %esi,%ecx
40dc69:	ff 15 18 34 43 00    	call   *0x433418
40dc6f:	ff d6                	call   *%esi
40dc71:	5e                   	pop    %esi
40dc72:	c3                   	ret
40dc73:	8b ff                	mov    %edi,%edi
40dc75:	53                   	push   %ebx
40dc76:	56                   	push   %esi
40dc77:	57                   	push   %edi
40dc78:	8b f2                	mov    %edx,%esi
40dc7a:	8b f9                	mov    %ecx,%edi
40dc7c:	ff 15 30 32 43 00    	call   *0x433230
40dc82:	33 db                	xor    %ebx,%ebx
40dc84:	39 5e 20             	cmp    %ebx,0x20(%esi)
40dc87:	74 07                	je     0x40dc90
40dc89:	8b ce                	mov    %esi,%ecx
40dc8b:	e8 46 f6 ff ff       	call   0x40d2d6
40dc90:	0f b7 46 54          	movzwl 0x54(%esi),%eax
40dc94:	8b d7                	mov    %edi,%edx
40dc96:	6a 01                	push   $0x1
40dc98:	6a 01                	push   $0x1
40dc9a:	50                   	push   %eax
40dc9b:	8b ce                	mov    %esi,%ecx
40dc9d:	89 5e 40             	mov    %ebx,0x40(%esi)
40dca0:	e8 72 ea ff ff       	call   0x40c717
40dca5:	39 5e 48             	cmp    %ebx,0x48(%esi)
40dca8:	74 08                	je     0x40dcb2
40dcaa:	6a 01                	push   $0x1
40dcac:	ff 15 bc 32 43 00    	call   *0x4332bc
40dcb2:	5f                   	pop    %edi
40dcb3:	89 5e 48             	mov    %ebx,0x48(%esi)
40dcb6:	89 5e 44             	mov    %ebx,0x44(%esi)
40dcb9:	89 5e 4c             	mov    %ebx,0x4c(%esi)
40dcbc:	5e                   	pop    %esi
40dcbd:	5b                   	pop    %ebx
40dcbe:	c3                   	ret
40dcbf:	8b ff                	mov    %edi,%edi
40dcc1:	55                   	push   %ebp
40dcc2:	8b ec                	mov    %esp,%ebp
40dcc4:	83 ec 60             	sub    $0x60,%esp
40dcc7:	a1 64 10 41 00       	mov    0x411064,%eax
40dccc:	33 c5                	xor    %ebp,%eax
40dcce:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dcd1:	56                   	push   %esi
40dcd2:	57                   	push   %edi
40dcd3:	6a 3c                	push   $0x3c
40dcd5:	33 ff                	xor    %edi,%edi
40dcd7:	8d 45 a0             	lea    -0x60(%ebp),%eax
40dcda:	57                   	push   %edi
40dcdb:	50                   	push   %eax
40dcdc:	8b f1                	mov    %ecx,%esi
40dcde:	e8 24 2e 00 00       	call   0x410b07
40dce3:	83 c4 0c             	add    $0xc,%esp
40dce6:	8d 45 a0             	lea    -0x60(%ebp),%eax
40dce9:	50                   	push   %eax
40dcea:	56                   	push   %esi
40dceb:	ff 15 dc 32 43 00    	call   *0x4332dc
40dcf1:	8d 45 ec             	lea    -0x14(%ebp),%eax
40dcf4:	89 7d ec             	mov    %edi,-0x14(%ebp)
40dcf7:	50                   	push   %eax
40dcf8:	56                   	push   %esi
40dcf9:	89 7d f0             	mov    %edi,-0x10(%ebp)
40dcfc:	89 7d f4             	mov    %edi,-0xc(%ebp)
40dcff:	c7 45 f8 3c 01 00 00 	movl   $0x13c,-0x8(%ebp)
40dd06:	ff 15 7c 32 43 00    	call   *0x43327c
40dd0c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40dd0f:	a3 64 1f 43 00       	mov    %eax,0x431f64
40dd14:	8d 45 dc             	lea    -0x24(%ebp),%eax
40dd17:	50                   	push   %eax
40dd18:	6a 77                	push   $0x77
40dd1a:	56                   	push   %esi
40dd1b:	ff 15 14 33 43 00    	call   *0x433314
40dd21:	50                   	push   %eax
40dd22:	ff 15 e0 31 43 00    	call   *0x4331e0
40dd28:	6a 60                	push   $0x60
40dd2a:	56                   	push   %esi
40dd2b:	ff 15 8c 32 43 00    	call   *0x43328c
40dd31:	50                   	push   %eax
40dd32:	6a 01                	push   $0x1
40dd34:	ff 15 80 31 43 00    	call   *0x433180
40dd3a:	8b 0d 3c 1f 43 00    	mov    0x431f3c,%ecx
40dd40:	2b 4d a8             	sub    -0x58(%ebp),%ecx
40dd43:	03 45 d4             	add    -0x2c(%ebp),%eax
40dd46:	03 c8                	add    %eax,%ecx
40dd48:	03 4d e8             	add    -0x18(%ebp),%ecx
40dd4b:	89 0d 60 1f 43 00    	mov    %ecx,0x431f60
40dd51:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dd54:	5f                   	pop    %edi
40dd55:	33 cd                	xor    %ebp,%ecx
40dd57:	5e                   	pop    %esi
40dd58:	e8 d3 26 00 00       	call   0x410430
40dd5d:	c9                   	leave
40dd5e:	c3                   	ret
40dd5f:	8b ff                	mov    %edi,%edi
40dd61:	55                   	push   %ebp
40dd62:	8b ec                	mov    %esp,%ebp
40dd64:	81 ec 04 02 00 00    	sub    $0x204,%esp
40dd6a:	a1 64 10 41 00       	mov    0x411064,%eax
40dd6f:	33 c5                	xor    %ebp,%eax
40dd71:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dd74:	53                   	push   %ebx
40dd75:	56                   	push   %esi
40dd76:	57                   	push   %edi
40dd77:	33 db                	xor    %ebx,%ebx
40dd79:	8b f1                	mov    %ecx,%esi
40dd7b:	53                   	push   %ebx
40dd7c:	53                   	push   %ebx
40dd7d:	68 f0 00 00 00       	push   $0xf0
40dd82:	6a 77                	push   $0x77
40dd84:	56                   	push   %esi
40dd85:	ff 15 14 33 43 00    	call   *0x433314
40dd8b:	50                   	push   %eax
40dd8c:	ff 15 10 33 43 00    	call   *0x433310
40dd92:	53                   	push   %ebx
40dd93:	48                   	dec    %eax
40dd94:	53                   	push   %ebx
40dd95:	f7 d8                	neg    %eax
40dd97:	68 4e 01 00 00       	push   $0x14e
40dd9c:	1b c0                	sbb    %eax,%eax
40dd9e:	68 ca 00 00 00       	push   $0xca
40dda3:	ff 35 10 19 43 00    	push   0x431910
40dda9:	f7 d8                	neg    %eax
40ddab:	a3 34 13 41 00       	mov    %eax,0x411334
40ddb0:	ff 15 14 33 43 00    	call   *0x433314
40ddb6:	50                   	push   %eax
40ddb7:	ff 15 10 33 43 00    	call   *0x433310
40ddbd:	33 ff                	xor    %edi,%edi
40ddbf:	47                   	inc    %edi
40ddc0:	39 1d 34 13 41 00    	cmp    %ebx,0x411334
40ddc6:	75 74                	jne    0x40de3c
40ddc8:	39 1d 8c 25 43 00    	cmp    %ebx,0x43258c
40ddce:	75 08                	jne    0x40ddd8
40ddd0:	39 1d 88 25 43 00    	cmp    %ebx,0x432588
40ddd6:	74 1b                	je     0x40ddf3
40ddd8:	a1 90 25 43 00       	mov    0x432590,%eax
40dddd:	89 3d 78 26 43 00    	mov    %edi,0x432678
40dde3:	85 c0                	test   %eax,%eax
40dde5:	74 07                	je     0x40ddee
40dde7:	50                   	push   %eax
40dde8:	ff 15 00 33 43 00    	call   *0x433300
40ddee:	e8 e8 88 ff ff       	call   0x4066db
40ddf3:	68 82 00 00 00       	push   $0x82
40ddf8:	56                   	push   %esi
40ddf9:	ff 15 14 33 43 00    	call   *0x433314
40ddff:	85 c0                	test   %eax,%eax
40de01:	74 12                	je     0x40de15
40de03:	8b c8                	mov    %eax,%ecx
40de05:	e8 d1 5f ff ff       	call   0x403ddb
40de0a:	3d b0 04 00 00       	cmp    $0x4b0,%eax
40de0f:	0f 84 91 00 00 00    	je     0x40dea6
40de15:	53                   	push   %ebx
40de16:	53                   	push   %ebx
40de17:	68 4e 01 00 00       	push   $0x14e
40de1c:	68 82 00 00 00       	push   $0x82
40de21:	ff 35 10 19 43 00    	push   0x431910
40de27:	ff 15 14 33 43 00    	call   *0x433314
40de2d:	50                   	push   %eax
40de2e:	ff 15 10 33 43 00    	call   *0x433310
40de34:	89 3d 78 26 43 00    	mov    %edi,0x432678
40de3a:	eb 6a                	jmp    0x40dea6
40de3c:	68 5c 15 40 00       	push   $0x40155c
40de41:	68 84 00 00 00       	push   $0x84
40de46:	56                   	push   %esi
40de47:	89 1d 78 26 43 00    	mov    %ebx,0x432678
40de4d:	89 1d 74 26 43 00    	mov    %ebx,0x432674
40de53:	ff 15 10 32 43 00    	call   *0x433210
40de59:	68 00 01 00 00       	push   $0x100
40de5e:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40de64:	50                   	push   %eax
40de65:	68 93 01 00 00       	push   $0x193
40de6a:	ff 35 0c 19 41 00    	push   0x41190c
40de70:	ff 15 20 33 43 00    	call   *0x433320
40de76:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40de7c:	bf 85 00 00 00       	mov    $0x85,%edi