40395f:	74 1b                	je     0x40397c
403961:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
403965:	89 70 08             	mov    %esi,0x8(%eax)
403968:	89 48 04             	mov    %ecx,0x4(%eax)
40396b:	8b 0d 5c 98 42 00    	mov    0x42985c,%ecx
403971:	89 08                	mov    %ecx,(%eax)
403973:	a3 5c 98 42 00       	mov    %eax,0x42985c
403978:	33 c0                	xor    %eax,%eax
40397a:	eb 03                	jmp    0x40397f
40397c:	83 c8 ff             	or     $0xffffffff,%eax
40397f:	5e                   	pop    %esi
403980:	c2 08 00             	ret    $0x8
403983:	83 ec 10             	sub    $0x10,%esp
403986:	53                   	push   %ebx
403987:	55                   	push   %ebp
403988:	56                   	push   %esi
403989:	8b 35 34 f4 42 00    	mov    0x42f434,%esi
40398f:	57                   	push   %edi
403990:	6a 02                	push   $0x2
403992:	e8 67 2b 00 00       	call   0x4064fe
403997:	33 db                	xor    %ebx,%ebx
403999:	3b c3                	cmp    %ebx,%eax
40399b:	74 12                	je     0x4039af
40399d:	ff d0                	call   *%eax
40399f:	0f b7 c0             	movzwl %ax,%eax
4039a2:	50                   	push   %eax
4039a3:	68 00 60 43 00       	push   $0x436000
4039a8:	e8 17 27 00 00       	call   0x4060c4
4039ad:	eb 54                	jmp    0x403a03
4039af:	bf 98 a8 42 00       	mov    $0x42a898,%edi
4039b4:	53                   	push   %ebx
4039b5:	57                   	push   %edi
4039b6:	53                   	push   %ebx
4039b7:	68 44 83 40 00       	push   $0x408344
4039bc:	68 01 00 00 80       	push   $0x80000001
4039c1:	c6 05 00 60 43 00 30 	movb   $0x30,0x436000
4039c8:	c6 05 01 60 43 00 78 	movb   $0x78,0x436001
4039cf:	88 1d 02 60 43 00    	mov    %bl,0x436002
4039d5:	e8 73 26 00 00       	call   0x40604d
4039da:	38 1d 98 a8 42 00    	cmp    %bl,0x42a898
4039e0:	75 16                	jne    0x4039f8
4039e2:	53                   	push   %ebx
4039e3:	57                   	push   %edi
4039e4:	68 62 83 40 00       	push   $0x408362
4039e9:	68 1c 83 40 00       	push   $0x40831c
4039ee:	68 03 00 00 80       	push   $0x80000003
4039f3:	e8 55 26 00 00       	call   0x40604d
4039f8:	57                   	push   %edi
4039f9:	68 00 60 43 00       	push   $0x436000
4039fe:	e8 7f 27 00 00       	call   0x406182
403a03:	e8 40 02 00 00       	call   0x403c48
403a08:	a1 3c f4 42 00       	mov    0x42f43c,%eax
403a0d:	bd 00 54 43 00       	mov    $0x435400,%ebp
403a12:	83 e0 20             	and    $0x20,%eax
403a15:	55                   	push   %ebp
403a16:	a3 c0 f4 42 00       	mov    %eax,0x42f4c0
403a1b:	c7 05 dc f4 42 00 00 	movl   $0x10000,0x42f4dc
403a22:	00 01 00
403a25:	e8 c2 21 00 00       	call   0x405bec
403a2a:	85 c0                	test   %eax,%eax
403a2c:	0f 85 81 00 00 00    	jne    0x403ab3
403a32:	8b 4e 48             	mov    0x48(%esi),%ecx
403a35:	3b cb                	cmp    %ebx,%ecx
403a37:	74 7a                	je     0x403ab3
403a39:	8b 56 4c             	mov    0x4c(%esi),%edx
403a3c:	a1 78 f4 42 00       	mov    0x42f478,%eax
403a41:	bf c0 e3 42 00       	mov    $0x42e3c0,%edi
403a46:	53                   	push   %ebx
403a47:	03 d0                	add    %eax,%edx
403a49:	57                   	push   %edi
403a4a:	03 c8                	add    %eax,%ecx
403a4c:	52                   	push   %edx
403a4d:	51                   	push   %ecx
403a4e:	ff 76 44             	push   0x44(%esi)
403a51:	e8 f7 25 00 00       	call   0x40604d
403a56:	a0 c0 e3 42 00       	mov    0x42e3c0,%al
403a5b:	3a c3                	cmp    %bl,%al
403a5d:	74 54                	je     0x403ab3
403a5f:	3c 22                	cmp    $0x22,%al
403a61:	75 0f                	jne    0x403a72
403a63:	bf c1 e3 42 00       	mov    $0x42e3c1,%edi
403a68:	6a 22                	push   $0x22
403a6a:	57                   	push   %edi
403a6b:	e8 b9 20 00 00       	call   0x405b29
403a70:	88 18                	mov    %bl,(%eax)
403a72:	57                   	push   %edi
403a73:	e8 04 27 00 00       	call   0x40617c
403a78:	8d 44 38 fc          	lea    -0x4(%eax,%edi,1),%eax
403a7c:	3b c7                	cmp    %edi,%eax
403a7e:	76 26                	jbe    0x403aa6
403a80:	68 14 a2 40 00       	push   $0x40a214
403a85:	50                   	push   %eax
403a86:	ff 15 18 81 40 00    	call   *0x408118
403a8c:	85 c0                	test   %eax,%eax
403a8e:	75 16                	jne    0x403aa6
403a90:	57                   	push   %edi
403a91:	ff 15 fc 80 40 00    	call   *0x4080fc
403a97:	83 f8 ff             	cmp    $0xffffffff,%eax
403a9a:	74 04                	je     0x403aa0
403a9c:	a8 10                	test   $0x10,%al
403a9e:	75 06                	jne    0x403aa6
403aa0:	57                   	push   %edi
403aa1:	e8 9f 20 00 00       	call   0x405b45
403aa6:	57                   	push   %edi
403aa7:	e8 52 20 00 00       	call   0x405afe
403aac:	50                   	push   %eax
403aad:	55                   	push   %ebp
403aae:	e8 b3 26 00 00       	call   0x406166
403ab3:	55                   	push   %ebp
403ab4:	e8 33 21 00 00       	call   0x405bec
403ab9:	85 c0                	test   %eax,%eax
403abb:	75 0c                	jne    0x403ac9
403abd:	ff b6 18 01 00 00    	push   0x118(%esi)
403ac3:	55                   	push   %ebp
403ac4:	e8 bf 26 00 00       	call   0x406188
403ac9:	68 40 80 00 00       	push   $0x8040
403ace:	53                   	push   %ebx
403acf:	53                   	push   %ebx
403ad0:	6a 01                	push   $0x1
403ad2:	6a 67                	push   $0x67
403ad4:	ff 35 20 f4 42 00    	push   0x42f420
403ada:	ff 15 34 82 40 00    	call   *0x408234
403ae0:	a3 08 ec 42 00       	mov    %eax,0x42ec08
403ae5:	83 7e 50 ff          	cmpl   $0xffffffff,0x50(%esi)
403ae9:	bf c0 eb 42 00       	mov    $0x42ebc0,%edi
403aee:	74 7f                	je     0x403b6f
403af0:	8b 0d 20 f4 42 00    	mov    0x42f420,%ecx
403af6:	be 10 a2 40 00       	mov    $0x40a210,%esi
403afb:	57                   	push   %edi
403afc:	c7 05 c4 eb 42 00 00 	movl   $0x401000,0x42ebc4
403b03:	10 40 00
403b06:	89 0d d0 eb 42 00    	mov    %ecx,0x42ebd0
403b0c:	a3 d4 eb 42 00       	mov    %eax,0x42ebd4
403b11:	89 35 e4 eb 42 00    	mov    %esi,0x42ebe4
403b17:	ff 15 18 82 40 00    	call   *0x408218
403b1d:	66 85 c0             	test   %ax,%ax
403b20:	0f 84 18 01 00 00    	je     0x403c3e
403b26:	8d 44 24 10          	lea    0x10(%esp),%eax
403b2a:	53                   	push   %ebx
403b2b:	50                   	push   %eax
403b2c:	53                   	push   %ebx
403b2d:	6a 30                	push   $0x30
403b2f:	ff 15 1c 82 40 00    	call   *0x40821c
403b35:	53                   	push   %ebx
403b36:	ff 35 20 f4 42 00    	push   0x42f420
403b3c:	8b 44 24 24          	mov    0x24(%esp),%eax
403b40:	2b 44 24 1c          	sub    0x1c(%esp),%eax
403b44:	53                   	push   %ebx
403b45:	53                   	push   %ebx
403b46:	50                   	push   %eax
403b47:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403b4b:	2b 44 24 24          	sub    0x24(%esp),%eax
403b4f:	50                   	push   %eax
403b50:	ff 74 24 2c          	push   0x2c(%esp)
403b54:	ff 74 24 2c          	push   0x2c(%esp)
403b58:	68 00 00 00 80       	push   $0x80000000
403b5d:	53                   	push   %ebx
403b5e:	56                   	push   %esi
403b5f:	68 80 00 00 00       	push   $0x80
403b64:	ff 15 20 82 40 00    	call   *0x408220
403b6a:	a3 78 a8 42 00       	mov    %eax,0x42a878
403b6f:	53                   	push   %ebx
403b70:	e8 96 d8 ff ff       	call   0x40140b
403b75:	85 c0                	test   %eax,%eax
403b77:	74 08                	je     0x403b81
403b79:	6a 02                	push   $0x2
403b7b:	58                   	pop    %eax
403b7c:	e9 bf 00 00 00       	jmp    0x403c40
403b81:	e8 c2 00 00 00       	call   0x403c48
403b86:	39 1d e0 f4 42 00    	cmp    %ebx,0x42f4e0
403b8c:	0f 85 83 00 00 00    	jne    0x403c15
403b92:	6a 05                	push   $0x5
403b94:	ff 35 78 a8 42 00    	push   0x42a878
403b9a:	ff 15 48 82 40 00    	call   *0x408248
403ba0:	68 10 83 40 00       	push   $0x408310
403ba5:	e8 e6 28 00 00       	call   0x406490
403baa:	85 c0                	test   %eax,%eax
403bac:	75 0a                	jne    0x403bb8
403bae:	68 04 83 40 00       	push   $0x408304
403bb3:	e8 d8 28 00 00       	call   0x406490
403bb8:	8b 35 24 82 40 00    	mov    0x408224,%esi
403bbe:	bd f8 82 40 00       	mov    $0x4082f8,%ebp
403bc3:	57                   	push   %edi
403bc4:	55                   	push   %ebp
403bc5:	53                   	push   %ebx
403bc6:	ff d6                	call   *%esi
403bc8:	85 c0                	test   %eax,%eax
403bca:	75 16                	jne    0x403be2
403bcc:	57                   	push   %edi
403bcd:	68 ec 82 40 00       	push   $0x4082ec
403bd2:	53                   	push   %ebx
403bd3:	ff d6                	call   *%esi
403bd5:	57                   	push   %edi
403bd6:	89 2d e4 eb 42 00    	mov    %ebp,0x42ebe4
403bdc:	ff 15 18 82 40 00    	call   *0x408218
403be2:	a1 00 ec 42 00       	mov    0x42ec00,%eax
403be7:	53                   	push   %ebx
403be8:	83 c0 69             	add    $0x69,%eax
403beb:	68 20 3d 40 00       	push   $0x403d20
403bf0:	0f b7 c0             	movzwl %ax,%eax
403bf3:	53                   	push   %ebx
403bf4:	50                   	push   %eax
403bf5:	ff 35 20 f4 42 00    	push   0x42f420
403bfb:	ff 15 28 82 40 00    	call   *0x408228
403c01:	6a 05                	push   $0x5
403c03:	8b f0                	mov    %eax,%esi
403c05:	e8 01 d8 ff ff       	call   0x40140b
403c0a:	6a 01                	push   $0x1
403c0c:	e8 c2 fc ff ff       	call   0x4038d3
403c11:	8b c6                	mov    %esi,%eax
403c13:	eb 2b                	jmp    0x403c40
403c15:	53                   	push   %ebx
403c16:	e8 44 17 00 00       	call   0x40535f
403c1b:	85 c0                	test   %eax,%eax
403c1d:	74 18                	je     0x403c37
403c1f:	39 1d ec eb 42 00    	cmp    %ebx,0x42ebec
403c25:	0f 85 4e ff ff ff    	jne    0x403b79
403c2b:	6a 02                	push   $0x2
403c2d:	e8 d9 d7 ff ff       	call   0x40140b
403c32:	e9 42 ff ff ff       	jmp    0x403b79
403c37:	6a 01                	push   $0x1
403c39:	e8 cd d7 ff ff       	call   0x40140b
403c3e:	33 c0                	xor    %eax,%eax
403c40:	5f                   	pop    %edi
403c41:	5e                   	pop    %esi
403c42:	5d                   	pop    %ebp
403c43:	5b                   	pop    %ebx
403c44:	83 c4 10             	add    $0x10,%esp
403c47:	c3                   	ret
403c48:	53                   	push   %ebx
403c49:	55                   	push   %ebp
403c4a:	56                   	push   %esi
403c4b:	57                   	push   %edi
403c4c:	bf 00 60 43 00       	mov    $0x436000,%edi
403c51:	bb ff ff 00 00       	mov    $0xffff,%ebx
403c56:	57                   	push   %edi
403c57:	e8 81 24 00 00       	call   0x4060dd
403c5c:	8b 35 84 f4 42 00    	mov    0x42f484,%esi
403c62:	85 f6                	test   %esi,%esi
403c64:	74 45                	je     0x403cab
403c66:	8b 0d 34 f4 42 00    	mov    0x42f434,%ecx
403c6c:	8b 49 64             	mov    0x64(%ecx),%ecx
403c6f:	8b d1                	mov    %ecx,%edx
403c71:	0f af ce             	imul   %esi,%ecx
403c74:	f7 da                	neg    %edx
403c76:	03 0d 80 f4 42 00    	add    0x42f480,%ecx
403c7c:	03 ca                	add    %edx,%ecx
403c7e:	4e                   	dec    %esi
403c7f:	66 8b 29             	mov    (%ecx),%bp
403c82:	66 33 e8             	xor    %ax,%bp
403c85:	23 eb                	and    %ebx,%ebp
403c87:	66 85 ed             	test   %bp,%bp
403c8a:	74 06                	je     0x403c92
403c8c:	85 f6                	test   %esi,%esi
403c8e:	75 ec                	jne    0x403c7c
403c90:	eb 19                	jmp    0x403cab
403c92:	8b 51 02             	mov    0x2(%ecx),%edx
403c95:	89 15 00 ec 42 00    	mov    %edx,0x42ec00
403c9b:	8b 51 06             	mov    0x6(%ecx),%edx
403c9e:	89 15 e8 f4 42 00    	mov    %edx,0x42f4e8
403ca4:	8d 51 0a             	lea    0xa(%ecx),%edx
403ca7:	85 d2                	test   %edx,%edx
403ca9:	75 12                	jne    0x403cbd
403cab:	66 81 fb ff ff       	cmp    $0xffff,%bx
403cb0:	75 07                	jne    0x403cb9
403cb2:	bb ff 03 00 00       	mov    $0x3ff,%ebx
403cb7:	eb a3                	jmp    0x403c5c
403cb9:	33 db                	xor    %ebx,%ebx
403cbb:	eb 9f                	jmp    0x403c5c
403cbd:	89 15 fc eb 42 00    	mov    %edx,0x42ebfc
403cc3:	0f b7 01             	movzwl (%ecx),%eax
403cc6:	50                   	push   %eax
403cc7:	57                   	push   %edi
403cc8:	e8 f7 23 00 00       	call   0x4060c4
403ccd:	e8 2f 00 00 00       	call   0x403d01
403cd2:	a1 6c f4 42 00       	mov    0x42f46c,%eax
403cd7:	8b 35 68 f4 42 00    	mov    0x42f468,%esi
403cdd:	85 c0                	test   %eax,%eax
403cdf:	74 1b                	je     0x403cfc
403ce1:	8b f8                	mov    %eax,%edi
403ce3:	8b 06                	mov    (%esi),%eax
403ce5:	85 c0                	test   %eax,%eax
403ce7:	74 0a                	je     0x403cf3
403ce9:	50                   	push   %eax
403cea:	8d 46 18             	lea    0x18(%esi),%eax
403ced:	50                   	push   %eax
403cee:	e8 95 24 00 00       	call   0x406188
403cf3:	81 c6 18 04 00 00    	add    $0x418,%esi
403cf9:	4f                   	dec    %edi
403cfa:	75 e7                	jne    0x403ce3
403cfc:	5f                   	pop    %edi
403cfd:	5e                   	pop    %esi
403cfe:	5d                   	pop    %ebp
403cff:	5b                   	pop    %ebx
403d00:	c3                   	ret
403d01:	56                   	push   %esi
403d02:	be 20 ec 42 00       	mov    $0x42ec20,%esi
403d07:	6a fe                	push   $0xfffffffe
403d09:	56                   	push   %esi
403d0a:	e8 79 24 00 00       	call   0x406188
403d0f:	56                   	push   %esi
403d10:	ff 35 78 a8 42 00    	push   0x42a878
403d16:	ff 15 40 82 40 00    	call   *0x408240
403d1c:	8b c6                	mov    %esi,%eax
403d1e:	5e                   	pop    %esi
403d1f:	c3                   	ret
403d20:	83 ec 10             	sub    $0x10,%esp
403d23:	b9 10 01 00 00       	mov    $0x110,%ecx
403d28:	53                   	push   %ebx
403d29:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
403d2d:	55                   	push   %ebp
403d2e:	56                   	push   %esi
403d2f:	3b d9                	cmp    %ecx,%ebx
403d31:	57                   	push   %edi
403d32:	0f 84 3b 01 00 00    	je     0x403e73
403d38:	81 fb 08 04 00 00    	cmp    $0x408,%ebx
403d3e:	0f 84 2f 01 00 00    	je     0x403e73
403d44:	8b 7c 24 24          	mov    0x24(%esp),%edi
403d48:	33 ed                	xor    %ebp,%ebp
403d4a:	83 fb 47             	cmp    $0x47,%ebx
403d4d:	75 13                	jne    0x403d62
403d4f:	6a 13                	push   $0x13
403d51:	55                   	push   %ebp
403d52:	55                   	push   %ebp
403d53:	55                   	push   %ebp
403d54:	55                   	push   %ebp
403d55:	57                   	push   %edi
403d56:	ff 35 78 a8 42 00    	push   0x42a878
403d5c:	ff 15 94 81 40 00    	call   *0x408194
403d62:	83 fb 05             	cmp    $0x5,%ebx
403d65:	75 18                	jne    0x403d7f
403d67:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403d6b:	48                   	dec    %eax
403d6c:	f7 d8                	neg    %eax
403d6e:	1b c0                	sbb    %eax,%eax
403d70:	23 c3                	and    %ebx,%eax
403d72:	50                   	push   %eax
403d73:	ff 35 78 a8 42 00    	push   0x42a878
403d79:	ff 15 48 82 40 00    	call   *0x408248
403d7f:	81 fb 0d 04 00 00    	cmp    $0x40d,%ebx
403d85:	75 1a                	jne    0x403da1
403d87:	ff 35 f8 eb 42 00    	push   0x42ebf8
403d8d:	ff 15 70 82 40 00    	call   *0x408270
403d93:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403d97:	a3 f8 eb 42 00       	mov    %eax,0x42ebf8
403d9c:	e9 fd 03 00 00       	jmp    0x40419e
403da1:	83 fb 11             	cmp    $0x11,%ebx
403da4:	75 11                	jne    0x403db7
403da6:	55                   	push   %ebp
403da7:	55                   	push   %ebp