40399b:	5f                   	pop    %edi
40399c:	74 0b                	je     0x4039a9
40399e:	ff b5 ec fd ff ff    	push   -0x214(%ebp)
4039a4:	e8 6e ea ff ff       	call   0x402417
4039a9:	83 bd f0 fd ff ff 00 	cmpl   $0x0,-0x210(%ebp)
4039b0:	74 0b                	je     0x4039bd
4039b2:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
4039b8:	e8 35 ea ff ff       	call   0x4023f2
4039bd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4039c0:	8b c6                	mov    %esi,%eax
4039c2:	5e                   	pop    %esi
4039c3:	33 cd                	xor    %ebp,%ecx
4039c5:	5b                   	pop    %ebx
4039c6:	e8 d5 08 00 00       	call   0x4042a0
4039cb:	c9                   	leave
4039cc:	c3                   	ret
4039cd:	53                   	push   %ebx
4039ce:	8d 95 f0 fd ff ff    	lea    -0x210(%ebp),%edx
4039d4:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4039da:	e8 17 01 00 00       	call   0x403af6
4039df:	8b f0                	mov    %eax,%esi
4039e1:	85 f6                	test   %esi,%esi
4039e3:	79 ad                	jns    0x403992
4039e5:	ba 2e 01 00 00       	mov    $0x12e,%edx
4039ea:	56                   	push   %esi
4039eb:	51                   	push   %ecx
4039ec:	8b 4d 04             	mov    0x4(%ebp),%ecx
4039ef:	e8 87 e9 ff ff       	call   0x40237b
4039f4:	eb 9e                	jmp    0x403994
4039f6:	8b ff                	mov    %edi,%edi
4039f8:	55                   	push   %ebp
4039f9:	8b ec                	mov    %esp,%ebp
4039fb:	51                   	push   %ecx
4039fc:	80 3d bc 53 40 00 00 	cmpb   $0x0,0x4053bc
403a03:	53                   	push   %ebx
403a04:	56                   	push   %esi
403a05:	57                   	push   %edi
403a06:	8b d9                	mov    %ecx,%ebx
403a08:	0f 85 ac 00 00 00    	jne    0x403aba
403a0e:	8b 3d ac 53 40 00    	mov    0x4053ac,%edi
403a14:	33 f6                	xor    %esi,%esi
403a16:	85 ff                	test   %edi,%edi
403a18:	74 0f                	je     0x403a29
403a1a:	8b cf                	mov    %edi,%ecx
403a1c:	ff 15 90 61 40 00    	call   *0x406190
403a22:	ff d7                	call   *%edi
403a24:	0f b6 c0             	movzbl %al,%eax
403a27:	eb 02                	jmp    0x403a2b
403a29:	8b c6                	mov    %esi,%eax
403a2b:	85 c0                	test   %eax,%eax
403a2d:	0f 85 87 00 00 00    	jne    0x403aba
403a33:	83 ec 0c             	sub    $0xc,%esp
403a36:	8d 4d fc             	lea    -0x4(%ebp),%ecx
403a39:	51                   	push   %ecx
403a3a:	8d 4b 04             	lea    0x4(%ebx),%ecx
403a3d:	e8 39 02 00 00       	call   0x403c7b
403a42:	8b 03                	mov    (%ebx),%eax
403a44:	83 e8 01             	sub    $0x1,%eax
403a47:	89 03                	mov    %eax,(%ebx)
403a49:	75 60                	jne    0x403aab
403a4b:	8d 7b 08             	lea    0x8(%ebx),%edi
403a4e:	56                   	push   %esi
403a4f:	8b cf                	mov    %edi,%ecx
403a51:	e8 be fd ff ff       	call   0x403814
403a56:	56                   	push   %esi
403a57:	8d 4f 04             	lea    0x4(%edi),%ecx
403a5a:	e8 b5 fd ff ff       	call   0x403814
403a5f:	39 75 fc             	cmp    %esi,-0x4(%ebp)
403a62:	74 1a                	je     0x403a7e
403a64:	ff 15 2c 60 40 00    	call   *0x40602c
403a6a:	ff 75 fc             	push   -0x4(%ebp)
403a6d:	8b f8                	mov    %eax,%edi
403a6f:	e8 a3 e9 ff ff       	call   0x402417
403a74:	57                   	push   %edi
403a75:	ff 15 68 60 40 00    	call   *0x406068
403a7b:	8d 7b 08             	lea    0x8(%ebx),%edi
403a7e:	8d 4b 18             	lea    0x18(%ebx),%ecx
403a81:	e8 a0 01 00 00       	call   0x403c26
403a86:	8b cf                	mov    %edi,%ecx
403a88:	e8 34 00 00 00       	call   0x403ac1
403a8d:	39 73 04             	cmp    %esi,0x4(%ebx)
403a90:	74 08                	je     0x403a9a
403a92:	ff 73 04             	push   0x4(%ebx)
403a95:	e8 58 e9 ff ff       	call   0x4023f2
403a9a:	53                   	push   %ebx
403a9b:	56                   	push   %esi
403a9c:	ff 15 58 60 40 00    	call   *0x406058
403aa2:	50                   	push   %eax
403aa3:	ff 15 6c 60 40 00    	call   *0x40606c
403aa9:	eb 03                	jmp    0x403aae
403aab:	8b 75 fc             	mov    -0x4(%ebp),%esi
403aae:	85 f6                	test   %esi,%esi
403ab0:	74 0a                	je     0x403abc
403ab2:	56                   	push   %esi
403ab3:	e8 5f e9 ff ff       	call   0x402417
403ab8:	eb 02                	jmp    0x403abc
403aba:	ff 0b                	decl   (%ebx)
403abc:	5f                   	pop    %edi
403abd:	5e                   	pop    %esi
403abe:	5b                   	pop    %ebx
403abf:	c9                   	leave
403ac0:	c3                   	ret
403ac1:	8b ff                	mov    %edi,%edi
403ac3:	56                   	push   %esi
403ac4:	8b f1                	mov    %ecx,%esi
403ac6:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
403aca:	74 08                	je     0x403ad4
403acc:	ff 76 04             	push   0x4(%esi)
403acf:	e8 1e e9 ff ff       	call   0x4023f2
403ad4:	83 3e 00             	cmpl   $0x0,(%esi)
403ad7:	74 07                	je     0x403ae0
403ad9:	ff 36                	push   (%esi)
403adb:	e8 12 e9 ff ff       	call   0x4023f2
403ae0:	5e                   	pop    %esi
403ae1:	c3                   	ret
403ae2:	cc                   	int3
403ae3:	cc                   	int3
403ae4:	cc                   	int3
403ae5:	cc                   	int3
403ae6:	cc                   	int3
403ae7:	cc                   	int3
403ae8:	cc                   	int3
403ae9:	cc                   	int3
403aea:	cc                   	int3
403aeb:	cc                   	int3
403aec:	cc                   	int3
403aed:	cc                   	int3
403aee:	cc                   	int3
403aef:	cc                   	int3
403af0:	33 c0                	xor    %eax,%eax
403af2:	40                   	inc    %eax
403af3:	c2 08 00             	ret    $0x8
403af6:	8b ff                	mov    %edi,%edi
403af8:	55                   	push   %ebp
403af9:	8b ec                	mov    %esp,%ebp
403afb:	83 e4 f8             	and    $0xfffffff8,%esp
403afe:	83 ec 14             	sub    $0x14,%esp
403b01:	8b 45 08             	mov    0x8(%ebp),%eax
403b04:	53                   	push   %ebx
403b05:	56                   	push   %esi
403b06:	57                   	push   %edi
403b07:	6a 40                	push   $0x40
403b09:	89 54 24 14          	mov    %edx,0x14(%esp)
403b0d:	8b f1                	mov    %ecx,%esi
403b0f:	5a                   	pop    %edx
403b10:	6a 08                	push   $0x8
403b12:	33 ff                	xor    %edi,%edi
403b14:	59                   	pop    %ecx
403b15:	89 38                	mov    %edi,(%eax)
403b17:	e8 90 e1 ff ff       	call   0x401cac
403b1c:	8b d8                	mov    %eax,%ebx
403b1e:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
403b22:	85 db                	test   %ebx,%ebx
403b24:	75 19                	jne    0x403b3f
403b26:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
403b2b:	ba 42 01 00 00       	mov    $0x142,%edx
403b30:	57                   	push   %edi
403b31:	51                   	push   %ecx
403b32:	8b 4d 04             	mov    0x4(%ebp),%ecx
403b35:	e8 41 e8 ff ff       	call   0x40237b
403b3a:	e9 d6 00 00 00       	jmp    0x403c15
403b3f:	89 7c 24 18          	mov    %edi,0x18(%esp)
403b43:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
403b47:	f6 c3 03             	test   $0x3,%bl
403b4a:	0f 85 d0 00 00 00    	jne    0x403c20
403b50:	57                   	push   %edi
403b51:	c1 e8 02             	shr    $0x2,%eax
403b54:	50                   	push   %eax
403b55:	51                   	push   %ecx
403b56:	56                   	push   %esi
403b57:	8d 4c 24 28          	lea    0x28(%esp),%ecx
403b5b:	e8 dc e8 ff ff       	call   0x40243c
403b60:	8b f8                	mov    %eax,%edi
403b62:	85 ff                	test   %edi,%edi
403b64:	79 1d                	jns    0x403b83
403b66:	57                   	push   %edi
403b67:	51                   	push   %ecx
403b68:	8b 4d 04             	mov    0x4(%ebp),%ecx
403b6b:	ba 45 01 00 00       	mov    $0x145,%edx
403b70:	e8 06 e8 ff ff       	call   0x40237b
403b75:	8b 74 24 0c          	mov    0xc(%esp),%esi
403b79:	8b 44 24 1c          	mov    0x1c(%esp),%eax
403b7d:	8b 5c 24 18          	mov    0x18(%esp),%ebx
403b81:	eb 6a                	jmp    0x403bed
403b83:	8b 4c 24 10          	mov    0x10(%esp),%ecx
403b87:	8d 7b 10             	lea    0x10(%ebx),%edi
403b8a:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
403b90:	6a 30                	push   $0x30
403b92:	5e                   	pop    %esi
403b93:	8b 01                	mov    (%ecx),%eax
403b95:	89 43 04             	mov    %eax,0x4(%ebx)
403b98:	83 21 00             	andl   $0x0,(%ecx)
403b9b:	8b 44 24 18          	mov    0x18(%esp),%eax
403b9f:	89 43 08             	mov    %eax,0x8(%ebx)
403ba2:	33 c0                	xor    %eax,%eax
403ba4:	89 44 24 10          	mov    %eax,0x10(%esp)
403ba8:	89 44 24 18          	mov    %eax,0x18(%esp)
403bac:	8b 44 24 1c          	mov    0x1c(%esp),%eax
403bb0:	89 43 0c             	mov    %eax,0xc(%ebx)
403bb3:	33 c0                	xor    %eax,%eax
403bb5:	56                   	push   %esi
403bb6:	50                   	push   %eax
403bb7:	57                   	push   %edi
403bb8:	89 44 24 20          	mov    %eax,0x20(%esp)
403bbc:	89 44 24 28          	mov    %eax,0x28(%esp)
403bc0:	e8 86 0d 00 00       	call   0x40494b
403bc5:	83 c4 0c             	add    $0xc,%esp
403bc8:	66 89 37             	mov    %si,(%edi)
403bcb:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
403bd2:	33 c0                	xor    %eax,%eax
403bd4:	83 c7 08             	add    $0x8,%edi
403bd7:	33 f6                	xor    %esi,%esi
403bd9:	6a 0a                	push   $0xa
403bdb:	59                   	pop    %ecx
403bdc:	f3 ab                	rep stos %eax,%es:(%edi)
403bde:	8b 45 08             	mov    0x8(%ebp),%eax
403be1:	33 ff                	xor    %edi,%edi
403be3:	89 18                	mov    %ebx,(%eax)
403be5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
403be9:	8b 44 24 14          	mov    0x14(%esp),%eax
403bed:	85 c0                	test   %eax,%eax
403bef:	74 06                	je     0x403bf7
403bf1:	50                   	push   %eax
403bf2:	e8 fb e7 ff ff       	call   0x4023f2
403bf7:	85 db                	test   %ebx,%ebx
403bf9:	74 06                	je     0x403c01
403bfb:	53                   	push   %ebx
403bfc:	e8 f1 e7 ff ff       	call   0x4023f2
403c01:	85 f6                	test   %esi,%esi
403c03:	74 10                	je     0x403c15
403c05:	56                   	push   %esi
403c06:	6a 00                	push   $0x0
403c08:	ff 15 58 60 40 00    	call   *0x406058
403c0e:	50                   	push   %eax
403c0f:	ff 15 6c 60 40 00    	call   *0x40606c
403c15:	8b c7                	mov    %edi,%eax
403c17:	5f                   	pop    %edi
403c18:	5e                   	pop    %esi
403c19:	5b                   	pop    %ebx
403c1a:	8b e5                	mov    %ebp,%esp
403c1c:	5d                   	pop    %ebp
403c1d:	c2 04 00             	ret    $0x4
403c20:	e8 c7 e7 ff ff       	call   0x4023ec
403c25:	cc                   	int3
403c26:	8b ff                	mov    %edi,%edi
403c28:	55                   	push   %ebp
403c29:	8b ec                	mov    %esp,%ebp
403c2b:	51                   	push   %ecx
403c2c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
403c2f:	8d 41 28             	lea    0x28(%ecx),%eax
403c32:	57                   	push   %edi
403c33:	8b 7d fc             	mov    -0x4(%ebp),%edi
403c36:	89 45 fc             	mov    %eax,-0x4(%ebp)
403c39:	3b f8                	cmp    %eax,%edi
403c3b:	74 3b                	je     0x403c78
403c3d:	53                   	push   %ebx
403c3e:	56                   	push   %esi
403c3f:	8b 1f                	mov    (%edi),%ebx
403c41:	85 db                	test   %ebx,%ebx
403c43:	74 24                	je     0x403c69
403c45:	8b f3                	mov    %ebx,%esi
403c47:	8b 5b 04             	mov    0x4(%ebx),%ebx
403c4a:	8d 4e 08             	lea    0x8(%esi),%ecx
403c4d:	e8 b0 eb ff ff       	call   0x402802
403c52:	56                   	push   %esi
403c53:	6a 00                	push   $0x0
403c55:	ff 15 58 60 40 00    	call   *0x406058
403c5b:	50                   	push   %eax
403c5c:	ff 15 6c 60 40 00    	call   *0x40606c
403c62:	85 db                	test   %ebx,%ebx
403c64:	75 df                	jne    0x403c45
403c66:	8b 45 fc             	mov    -0x4(%ebp),%eax
403c69:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
403c6f:	83 c7 04             	add    $0x4,%edi
403c72:	3b f8                	cmp    %eax,%edi
403c74:	75 c9                	jne    0x403c3f
403c76:	5e                   	pop    %esi
403c77:	5b                   	pop    %ebx
403c78:	5f                   	pop    %edi
403c79:	c9                   	leave
403c7a:	c3                   	ret
403c7b:	8b ff                	mov    %edi,%edi
403c7d:	55                   	push   %ebp
403c7e:	8b ec                	mov    %esp,%ebp
403c80:	56                   	push   %esi
403c81:	57                   	push   %edi
403c82:	8b 39                	mov    (%ecx),%edi
403c84:	33 f6                	xor    %esi,%esi
403c86:	56                   	push   %esi
403c87:	6a ff                	push   $0xffffffff
403c89:	57                   	push   %edi
403c8a:	ff 15 38 60 40 00    	call   *0x406038
403c90:	b9 80 00 00 00       	mov    $0x80,%ecx
403c95:	3d 02 01 00 00       	cmp    $0x102,%eax
403c9a:	74 08                	je     0x403ca4
403c9c:	85 c0                	test   %eax,%eax
403c9e:	74 0c                	je     0x403cac
403ca0:	3b c1                	cmp    %ecx,%eax
403ca2:	75 15                	jne    0x403cb9
403ca4:	85 c0                	test   %eax,%eax
403ca6:	74 04                	je     0x403cac
403ca8:	3b c1                	cmp    %ecx,%eax
403caa:	75 02                	jne    0x403cae
403cac:	8b f7                	mov    %edi,%esi
403cae:	8b 45 08             	mov    0x8(%ebp),%eax
403cb1:	5f                   	pop    %edi
403cb2:	89 30                	mov    %esi,(%eax)
403cb4:	5e                   	pop    %esi
403cb5:	5d                   	pop    %ebp
403cb6:	c2 10 00             	ret    $0x10
403cb9:	51                   	push   %ecx
403cba:	8b 4d 04             	mov    0x4(%ebp),%ecx
403cbd:	e8 04 e7 ff ff       	call   0x4023c6
403cc2:	cc                   	int3
403cc3:	8b ff                	mov    %edi,%edi
403cc5:	55                   	push   %ebp
403cc6:	8b ec                	mov    %esp,%ebp
403cc8:	51                   	push   %ecx
403cc9:	53                   	push   %ebx
403cca:	56                   	push   %esi
403ccb:	8b f1                	mov    %ecx,%esi
403ccd:	8b da                	mov    %edx,%ebx
403ccf:	33 c9                	xor    %ecx,%ecx
403cd1:	57                   	push   %edi
403cd2:	3b f3                	cmp    %ebx,%esi
403cd4:	74 45                	je     0x403d1b
403cd6:	8b 7d 08             	mov    0x8(%ebp),%edi
403cd9:	85 ff                	test   %edi,%edi
403cdb:	74 3e                	je     0x403d1b
403cdd:	66 39 0f             	cmp    %cx,(%edi)
403ce0:	74 39                	je     0x403d1b
403ce2:	8b cf                	mov    %edi,%ecx
403ce4:	e8 2d e2 ff ff       	call   0x401f16
403ce9:	2b de                	sub    %esi,%ebx
403ceb:	89 45 fc             	mov    %eax,-0x4(%ebp)
403cee:	3b d8                	cmp    %eax,%ebx
403cf0:	73 0c                	jae    0x403cfe
403cf2:	8b 45 0c             	mov    0xc(%ebp),%eax
403cf5:	85 c0                	test   %eax,%eax
403cf7:	74 2b                	je     0x403d24
403cf9:	83 20 00             	andl   $0x0,(%eax)
403cfc:	eb 26                	jmp    0x403d24
403cfe:	50                   	push   %eax
403cff:	57                   	push   %edi
403d00:	53                   	push   %ebx
403d01:	56                   	push   %esi
403d02:	ff 15 68 61 40 00    	call   *0x406168
403d08:	8b 45 0c             	mov    0xc(%ebp),%eax
403d0b:	83 c4 10             	add    $0x10,%esp
403d0e:	85 c0                	test   %eax,%eax