40da96:	33 ff                	xor    %edi,%edi
40da98:	89 7b 34             	mov    %edi,0x34(%ebx)
40da9b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40da9e:	89 7b 38             	mov    %edi,0x38(%ebx)
40daa1:	89 7b 3c             	mov    %edi,0x3c(%ebx)
40daa4:	89 7b 40             	mov    %edi,0x40(%ebx)
40daa7:	89 7b 44             	mov    %edi,0x44(%ebx)
40daaa:	89 7b 48             	mov    %edi,0x48(%ebx)
40daad:	89 7b 4c             	mov    %edi,0x4c(%ebx)
40dab0:	89 7b 50             	mov    %edi,0x50(%ebx)
40dab3:	89 7b 54             	mov    %edi,0x54(%ebx)
40dab6:	89 7b 58             	mov    %edi,0x58(%ebx)
40dab9:	89 7b 5c             	mov    %edi,0x5c(%ebx)
40dabc:	89 7b 60             	mov    %edi,0x60(%ebx)
40dabf:	89 7b 64             	mov    %edi,0x64(%ebx)
40dac2:	89 7b 68             	mov    %edi,0x68(%ebx)
40dac5:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dac8:	c6 45 fc 0d          	movb   $0xd,-0x4(%ebp)
40dacc:	89 4b 04             	mov    %ecx,0x4(%ebx)
40dacf:	51                   	push   %ecx
40dad0:	8b 01                	mov    (%ecx),%eax
40dad2:	8b 70 04             	mov    0x4(%eax),%esi
40dad5:	8b ce                	mov    %esi,%ecx
40dad7:	ff 15 28 63 41 00    	call   *0x416328
40dadd:	ff d6                	call   *%esi
40dadf:	89 7b 08             	mov    %edi,0x8(%ebx)
40dae2:	8b c3                	mov    %ebx,%eax
40dae4:	89 7b 0c             	mov    %edi,0xc(%ebx)
40dae7:	89 7b 24             	mov    %edi,0x24(%ebx)
40daea:	89 7b 28             	mov    %edi,0x28(%ebx)
40daed:	89 7b 2c             	mov    %edi,0x2c(%ebx)
40daf0:	89 7b 6c             	mov    %edi,0x6c(%ebx)
40daf3:	e8 34 4a 00 00       	call   0x41252c
40daf8:	c2 04 00             	ret    $0x4
40dafb:	8b ff                	mov    %edi,%edi
40dafd:	55                   	push   %ebp
40dafe:	8b ec                	mov    %esp,%ebp
40db00:	6a ff                	push   $0xffffffff
40db02:	68 5f 2e 41 00       	push   $0x412e5f
40db07:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40db0d:	50                   	push   %eax
40db0e:	53                   	push   %ebx
40db0f:	56                   	push   %esi
40db10:	57                   	push   %edi
40db11:	a1 f4 51 41 00       	mov    0x4151f4,%eax
40db16:	33 c5                	xor    %ebp,%eax
40db18:	50                   	push   %eax
40db19:	8d 45 f4             	lea    -0xc(%ebp),%eax
40db1c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40db22:	8b f9                	mov    %ecx,%edi
40db24:	8b 4f 04             	mov    0x4(%edi),%ecx
40db27:	33 db                	xor    %ebx,%ebx
40db29:	c7 07 cc 19 40 00    	movl   $0x4019cc,(%edi)
40db2f:	85 c9                	test   %ecx,%ecx
40db31:	74 1e                	je     0x40db51
40db33:	8b 01                	mov    (%ecx),%eax
40db35:	51                   	push   %ecx
40db36:	8b 70 08             	mov    0x8(%eax),%esi
40db39:	8b ce                	mov    %esi,%ecx
40db3b:	ff 15 28 63 41 00    	call   *0x416328
40db41:	ff d6                	call   *%esi
40db43:	8b cb                	mov    %ebx,%ecx
40db45:	89 5f 04             	mov    %ebx,0x4(%edi)
40db48:	85 c9                	test   %ecx,%ecx
40db4a:	74 05                	je     0x40db51
40db4c:	e8 7e fe ff ff       	call   0x40d9cf
40db51:	39 5f 28             	cmp    %ebx,0x28(%edi)
40db54:	74 0c                	je     0x40db62
40db56:	ff 77 28             	push   0x28(%edi)
40db59:	ff 15 74 60 41 00    	call   *0x416074
40db5f:	89 5f 28             	mov    %ebx,0x28(%edi)
40db62:	39 5f 2c             	cmp    %ebx,0x2c(%edi)
40db65:	74 0c                	je     0x40db73
40db67:	ff 77 2c             	push   0x2c(%edi)
40db6a:	ff 15 74 60 41 00    	call   *0x416074
40db70:	89 5f 2c             	mov    %ebx,0x2c(%edi)
40db73:	39 5f 24             	cmp    %ebx,0x24(%edi)
40db76:	74 0d                	je     0x40db85
40db78:	53                   	push   %ebx
40db79:	ff 77 24             	push   0x24(%edi)
40db7c:	ff 15 78 60 41 00    	call   *0x416078
40db82:	89 5f 24             	mov    %ebx,0x24(%edi)
40db85:	8d 4f 68             	lea    0x68(%edi),%ecx
40db88:	e8 62 8e ff ff       	call   0x4069ef
40db8d:	ff 77 64             	push   0x64(%edi)
40db90:	ff 15 b8 61 41 00    	call   *0x4161b8
40db96:	ff 77 60             	push   0x60(%edi)
40db99:	ff 15 b8 61 41 00    	call   *0x4161b8
40db9f:	ff 77 5c             	push   0x5c(%edi)
40dba2:	ff 15 b8 61 41 00    	call   *0x4161b8
40dba8:	ff 77 58             	push   0x58(%edi)
40dbab:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbb1:	ff 77 54             	push   0x54(%edi)
40dbb4:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbba:	ff 77 50             	push   0x50(%edi)
40dbbd:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbc3:	ff 77 4c             	push   0x4c(%edi)
40dbc6:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbcc:	ff 77 48             	push   0x48(%edi)
40dbcf:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbd5:	ff 77 44             	push   0x44(%edi)
40dbd8:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbde:	ff 77 40             	push   0x40(%edi)
40dbe1:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbe7:	ff 77 3c             	push   0x3c(%edi)
40dbea:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbf0:	ff 77 38             	push   0x38(%edi)
40dbf3:	ff 15 b8 61 41 00    	call   *0x4161b8
40dbf9:	ff 77 34             	push   0x34(%edi)
40dbfc:	ff 15 b8 61 41 00    	call   *0x4161b8
40dc02:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40dc05:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40dc0c:	59                   	pop    %ecx
40dc0d:	5f                   	pop    %edi
40dc0e:	5e                   	pop    %esi
40dc0f:	5b                   	pop    %ebx
40dc10:	c9                   	leave
40dc11:	c3                   	ret
40dc12:	8b ff                	mov    %edi,%edi
40dc14:	57                   	push   %edi
40dc15:	8b f9                	mov    %ecx,%edi
40dc17:	8b 57 0c             	mov    0xc(%edi),%edx
40dc1a:	85 d2                	test   %edx,%edx
40dc1c:	74 32                	je     0x40dc50
40dc1e:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
40dc22:	56                   	push   %esi
40dc23:	74 16                	je     0x40dc3b
40dc25:	8b 02                	mov    (%edx),%eax
40dc27:	ff 77 10             	push   0x10(%edi)
40dc2a:	52                   	push   %edx
40dc2b:	8b 70 18             	mov    0x18(%eax),%esi
40dc2e:	8b ce                	mov    %esi,%ecx
40dc30:	ff 15 28 63 41 00    	call   *0x416328
40dc36:	ff d6                	call   *%esi
40dc38:	8b 57 0c             	mov    0xc(%edi),%edx
40dc3b:	8b 02                	mov    (%edx),%eax
40dc3d:	52                   	push   %edx
40dc3e:	8b 70 08             	mov    0x8(%eax),%esi
40dc41:	8b ce                	mov    %esi,%ecx
40dc43:	ff 15 28 63 41 00    	call   *0x416328
40dc49:	ff d6                	call   *%esi
40dc4b:	83 67 0c 00          	andl   $0x0,0xc(%edi)
40dc4f:	5e                   	pop    %esi
40dc50:	33 c0                	xor    %eax,%eax
40dc52:	5f                   	pop    %edi
40dc53:	c3                   	ret
40dc54:	cc                   	int3
40dc55:	cc                   	int3
40dc56:	cc                   	int3
40dc57:	cc                   	int3
40dc58:	cc                   	int3
40dc59:	cc                   	int3
40dc5a:	cc                   	int3
40dc5b:	cc                   	int3
40dc5c:	cc                   	int3
40dc5d:	cc                   	int3
40dc5e:	cc                   	int3
40dc5f:	cc                   	int3
40dc60:	8b ff                	mov    %edi,%edi
40dc62:	55                   	push   %ebp
40dc63:	8b ec                	mov    %esp,%ebp
40dc65:	53                   	push   %ebx
40dc66:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40dc69:	33 c9                	xor    %ecx,%ecx
40dc6b:	56                   	push   %esi
40dc6c:	57                   	push   %edi
40dc6d:	8b 7d 10             	mov    0x10(%ebp),%edi
40dc70:	b8 5c 27 40 00       	mov    $0x40275c,%eax
40dc75:	8b f1                	mov    %ecx,%esi
40dc77:	89 0f                	mov    %ecx,(%edi)
40dc79:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40dc7c:	8b 55 08             	mov    0x8(%ebp),%edx
40dc7f:	3b 04 b3             	cmp    (%ebx,%esi,4),%eax
40dc82:	75 0d                	jne    0x40dc91
40dc84:	46                   	inc    %esi
40dc85:	b8 5c 27 40 00       	mov    $0x40275c,%eax
40dc8a:	83 fe 04             	cmp    $0x4,%esi
40dc8d:	75 ea                	jne    0x40dc79
40dc8f:	eb 26                	jmp    0x40dcb7
40dc91:	8b f1                	mov    %ecx,%esi
40dc93:	8b 44 b2 14          	mov    0x14(%edx,%esi,4),%eax
40dc97:	3b 04 b3             	cmp    (%ebx,%esi,4),%eax
40dc9a:	75 08                	jne    0x40dca4
40dc9c:	46                   	inc    %esi
40dc9d:	83 fe 04             	cmp    $0x4,%esi
40dca0:	75 f1                	jne    0x40dc93
40dca2:	eb 13                	jmp    0x40dcb7
40dca4:	be 8c 27 40 00       	mov    $0x40278c,%esi
40dca9:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
40dcac:	3b 04 8b             	cmp    (%ebx,%ecx,4),%eax
40dcaf:	75 20                	jne    0x40dcd1
40dcb1:	41                   	inc    %ecx
40dcb2:	83 f9 04             	cmp    $0x4,%ecx
40dcb5:	75 f2                	jne    0x40dca9
40dcb7:	89 17                	mov    %edx,(%edi)
40dcb9:	85 d2                	test   %edx,%edx
40dcbb:	74 14                	je     0x40dcd1
40dcbd:	8b 02                	mov    (%edx),%eax
40dcbf:	52                   	push   %edx
40dcc0:	8b 70 04             	mov    0x4(%eax),%esi
40dcc3:	8b ce                	mov    %esi,%ecx
40dcc5:	ff 15 28 63 41 00    	call   *0x416328
40dccb:	ff d6                	call   *%esi
40dccd:	33 c0                	xor    %eax,%eax
40dccf:	eb 05                	jmp    0x40dcd6
40dcd1:	b8 02 40 00 80       	mov    $0x80004002,%eax
40dcd6:	5f                   	pop    %edi
40dcd7:	5e                   	pop    %esi
40dcd8:	5b                   	pop    %ebx
40dcd9:	5d                   	pop    %ebp
40dcda:	c2 0c 00             	ret    $0xc
40dcdd:	cc                   	int3
40dcde:	cc                   	int3
40dcdf:	cc                   	int3
40dce0:	8b ff                	mov    %edi,%edi
40dce2:	55                   	push   %ebp
40dce3:	8b ec                	mov    %esp,%ebp
40dce5:	8b 45 0c             	mov    0xc(%ebp),%eax
40dce8:	83 20 00             	andl   $0x0,(%eax)
40dceb:	33 c0                	xor    %eax,%eax
40dced:	5d                   	pop    %ebp
40dcee:	c2 08 00             	ret    $0x8
40dcf1:	cc                   	int3
40dcf2:	cc                   	int3
40dcf3:	cc                   	int3
40dcf4:	cc                   	int3
40dcf5:	cc                   	int3
40dcf6:	cc                   	int3
40dcf7:	cc                   	int3
40dcf8:	cc                   	int3
40dcf9:	cc                   	int3
40dcfa:	cc                   	int3
40dcfb:	cc                   	int3
40dcfc:	cc                   	int3
40dcfd:	cc                   	int3
40dcfe:	cc                   	int3
40dcff:	cc                   	int3
40dd00:	8b ff                	mov    %edi,%edi
40dd02:	55                   	push   %ebp
40dd03:	8b ec                	mov    %esp,%ebp
40dd05:	8b 45 14             	mov    0x14(%ebp),%eax
40dd08:	83 20 00             	andl   $0x0,(%eax)
40dd0b:	8b 45 0c             	mov    0xc(%ebp),%eax
40dd0e:	f7 d8                	neg    %eax
40dd10:	1b c0                	sbb    %eax,%eax
40dd12:	25 0a c0 01 00       	and    $0x1c00a,%eax
40dd17:	05 01 40 00 80       	add    $0x80004001,%eax
40dd1c:	5d                   	pop    %ebp
40dd1d:	c2 10 00             	ret    $0x10
40dd20:	8b ff                	mov    %edi,%edi
40dd22:	55                   	push   %ebp
40dd23:	8b ec                	mov    %esp,%ebp
40dd25:	8b 55 0c             	mov    0xc(%ebp),%edx
40dd28:	33 c9                	xor    %ecx,%ecx
40dd2a:	56                   	push   %esi
40dd2b:	be 7c 27 40 00       	mov    $0x40277c,%esi
40dd30:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
40dd33:	3b 04 8e             	cmp    (%esi,%ecx,4),%eax
40dd36:	75 0d                	jne    0x40dd45
40dd38:	41                   	inc    %ecx
40dd39:	83 f9 04             	cmp    $0x4,%ecx
40dd3c:	75 f2                	jne    0x40dd30
40dd3e:	b8 01 40 00 80       	mov    $0x80004001,%eax
40dd43:	eb 05                	jmp    0x40dd4a
40dd45:	b8 01 00 02 80       	mov    $0x80020001,%eax
40dd4a:	5e                   	pop    %esi
40dd4b:	5d                   	pop    %ebp
40dd4c:	c2 18 00             	ret    $0x18
40dd4f:	cc                   	int3
40dd50:	8b ff                	mov    %edi,%edi
40dd52:	55                   	push   %ebp
40dd53:	8b ec                	mov    %esp,%ebp
40dd55:	83 e4 f8             	and    $0xfffffff8,%esp
40dd58:	83 ec 34             	sub    $0x34,%esp
40dd5b:	53                   	push   %ebx
40dd5c:	33 c0                	xor    %eax,%eax
40dd5e:	56                   	push   %esi
40dd5f:	57                   	push   %edi
40dd60:	8b f8                	mov    %eax,%edi
40dd62:	89 44 24 28          	mov    %eax,0x28(%esp)
40dd66:	68 b0 3c 40 00       	push   $0x403cb0
40dd6b:	89 7c 24 14          	mov    %edi,0x14(%esp)
40dd6f:	89 44 24 10          	mov    %eax,0x10(%esp)
40dd73:	89 44 24 28          	mov    %eax,0x28(%esp)
40dd77:	ff 15 a4 61 41 00    	call   *0x4161a4
40dd7d:	8b f0                	mov    %eax,%esi
40dd7f:	89 74 24 38          	mov    %esi,0x38(%esp)
40dd83:	85 f6                	test   %esi,%esi
40dd85:	0f 84 ea 08 00 00    	je     0x40e675
40dd8b:	68 cc 3c 40 00       	push   $0x403ccc
40dd90:	ff 15 a4 61 41 00    	call   *0x4161a4
40dd96:	89 44 24 3c          	mov    %eax,0x3c(%esp)
40dd9a:	85 c0                	test   %eax,%eax
40dd9c:	0f 84 d3 08 00 00    	je     0x40e675
40dda2:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40dda5:	53                   	push   %ebx
40dda6:	68 94 01 00 00       	push   $0x194
40ddab:	68 e8 3c 40 00       	push   $0x403ce8
40ddb0:	51                   	push   %ecx
40ddb1:	c7 44 24 24 01 00 00 	movl   $0x1,0x24(%esp)
40ddb8:	00
40ddb9:	e8 c8 30 00 00       	call   0x410e86
40ddbe:	83 eb 05             	sub    $0x5,%ebx
40ddc1:	0f 84 78 04 00 00    	je     0x40e23f
40ddc7:	83 eb 01             	sub    $0x1,%ebx
40ddca:	0f 84 62 04 00 00    	je     0x40e232
40ddd0:	83 eb 01             	sub    $0x1,%ebx
40ddd3:	74 29                	je     0x40ddfe
40ddd5:	83 eb 01             	sub    $0x1,%ebx
40ddd8:	0f 85 55 06 00 00    	jne    0x40e433
40ddde:	53                   	push   %ebx
40dddf:	68 48 3d 40 00       	push   $0x403d48
40dde4:	68 b5 03 00 00       	push   $0x3b5
40dde9:	68 e8 3c 40 00       	push   $0x403ce8
40ddee:	51                   	push   %ecx
40ddef:	e8 de 31 00 00       	call   0x410fd2
40ddf4:	bb 05 40 00 80       	mov    $0x80004005,%ebx
40ddf9:	e9 4b 06 00 00       	jmp    0x40e449
40ddfe:	bf e8 3c 40 00       	mov    $0x403ce8,%edi
40de03:	57                   	push   %edi
40de04:	68 af 02 00 00       	push   $0x2af
40de09:	68 f8 2a 40 00       	push   $0x402af8
40de0e:	e8 0a 31 00 00       	call   0x410f1d
40de13:	8b 45 1c             	mov    0x1c(%ebp),%eax
40de16:	8b 00                	mov    (%eax),%eax
40de18:	8b 40 08             	mov    0x8(%eax),%eax
40de1b:	85 c0                	test   %eax,%eax
40de1d:	75 06                	jne    0x40de25
40de1f:	21 44 24 2c          	and    %eax,0x2c(%esp)
40de23:	eb 0c                	jmp    0x40de31
40de25:	50                   	push   %eax
40de26:	8d 4c 24 30          	lea    0x30(%esp),%ecx
40de2a:	e8 08 dc ff ff       	call   0x40ba37
40de2f:	8b 00                	mov    (%eax),%eax
40de31:	50                   	push   %eax
40de32:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40de36:	e8 46 0e 00 00       	call   0x40ec81
40de3b:	ff 74 24 2c          	push   0x2c(%esp)
40de3f:	8b d8                	mov    %eax,%ebx
40de41:	ff 15 b8 61 41 00    	call   *0x4161b8
40de47:	85 db                	test   %ebx,%ebx
40de49:	79 1f                	jns    0x40de6a
40de4b:	53                   	push   %ebx
40de4c:	68 48 3d 40 00       	push   $0x403d48
40de51:	68 b4 02 00 00       	push   $0x2b4
40de56:	57                   	push   %edi
40de57:	51                   	push   %ecx
40de58:	e8 75 31 00 00       	call   0x410fd2
40de5d:	8b 7c 24 10          	mov    0x10(%esp),%edi
40de61:	8b 44 24 0c          	mov    0xc(%esp),%eax