403c03:	89 0d fc 2f 41 00    	mov    %ecx,0x412ffc
403c09:	89 15 f8 2f 41 00    	mov    %edx,0x412ff8
403c0f:	89 1d f4 2f 41 00    	mov    %ebx,0x412ff4
403c15:	89 35 f0 2f 41 00    	mov    %esi,0x412ff0
403c1b:	89 3d ec 2f 41 00    	mov    %edi,0x412fec
403c21:	66 8c 15 18 30 41 00 	data16 mov %ss,0x413018
403c28:	66 8c 0d 0c 30 41 00 	data16 mov %cs,0x41300c
403c2f:	66 8c 1d e8 2f 41 00 	data16 mov %ds,0x412fe8
403c36:	66 8c 05 e4 2f 41 00 	data16 mov %es,0x412fe4
403c3d:	66 8c 25 e0 2f 41 00 	data16 mov %fs,0x412fe0
403c44:	66 8c 2d dc 2f 41 00 	data16 mov %gs,0x412fdc
403c4b:	9c                   	pushf
403c4c:	8f 05 10 30 41 00    	pop    0x413010
403c52:	8b 45 00             	mov    0x0(%ebp),%eax
403c55:	a3 04 30 41 00       	mov    %eax,0x413004
403c5a:	8b 45 04             	mov    0x4(%ebp),%eax
403c5d:	a3 08 30 41 00       	mov    %eax,0x413008
403c62:	8d 45 08             	lea    0x8(%ebp),%eax
403c65:	a3 14 30 41 00       	mov    %eax,0x413014
403c6a:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
403c70:	c7 05 50 2f 41 00 01 	movl   $0x10001,0x412f50
403c77:	00 01 00
403c7a:	a1 08 30 41 00       	mov    0x413008,%eax
403c7f:	a3 04 2f 41 00       	mov    %eax,0x412f04
403c84:	c7 05 f8 2e 41 00 09 	movl   $0xc0000409,0x412ef8
403c8b:	04 00 c0
403c8e:	c7 05 fc 2e 41 00 01 	movl   $0x1,0x412efc
403c95:	00 00 00
403c98:	a1 84 22 41 00       	mov    0x412284,%eax
403c9d:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
403ca3:	a1 88 22 41 00       	mov    0x412288,%eax
403ca8:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
403cae:	ff 15 88 f0 40 00    	call   *0x40f088
403cb4:	a3 48 2f 41 00       	mov    %eax,0x412f48
403cb9:	6a 01                	push   $0x1
403cbb:	e8 04 4a 00 00       	call   0x4086c4
403cc0:	59                   	pop    %ecx
403cc1:	6a 00                	push   $0x0
403cc3:	ff 15 84 f0 40 00    	call   *0x40f084
403cc9:	68 bc f1 40 00       	push   $0x40f1bc
403cce:	ff 15 80 f0 40 00    	call   *0x40f080
403cd4:	83 3d 48 2f 41 00 00 	cmpl   $0x0,0x412f48
403cdb:	75 08                	jne    0x403ce5
403cdd:	6a 01                	push   $0x1
403cdf:	e8 e0 49 00 00       	call   0x4086c4
403ce4:	59                   	pop    %ecx
403ce5:	68 09 04 00 c0       	push   $0xc0000409
403cea:	ff 15 98 f0 40 00    	call   *0x40f098
403cf0:	50                   	push   %eax
403cf1:	ff 15 94 f0 40 00    	call   *0x40f094
403cf7:	c9                   	leave
403cf8:	c3                   	ret
403cf9:	8b ff                	mov    %edi,%edi
403cfb:	55                   	push   %ebp
403cfc:	8b ec                	mov    %esp,%ebp
403cfe:	83 ec 10             	sub    $0x10,%esp
403d01:	a1 20 3b 41 00       	mov    0x413b20,%eax
403d06:	33 d2                	xor    %edx,%edx
403d08:	53                   	push   %ebx
403d09:	56                   	push   %esi
403d0a:	8b 75 0c             	mov    0xc(%ebp),%esi
403d0d:	89 45 fc             	mov    %eax,-0x4(%ebp)
403d10:	89 55 f4             	mov    %edx,-0xc(%ebp)
403d13:	89 55 f8             	mov    %edx,-0x8(%ebp)
403d16:	89 55 f0             	mov    %edx,-0x10(%ebp)
403d19:	eb 03                	jmp    0x403d1e
403d1b:	83 c6 02             	add    $0x2,%esi
403d1e:	66 83 3e 20          	cmpw   $0x20,(%esi)
403d22:	74 f7                	je     0x403d1b
403d24:	0f b7 06             	movzwl (%esi),%eax
403d27:	83 f8 61             	cmp    $0x61,%eax
403d2a:	74 30                	je     0x403d5c
403d2c:	83 f8 72             	cmp    $0x72,%eax
403d2f:	74 23                	je     0x403d54
403d31:	83 f8 77             	cmp    $0x77,%eax
403d34:	74 17                	je     0x403d4d
403d36:	e8 ec 03 00 00       	call   0x404127
403d3b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403d41:	e8 41 ef ff ff       	call   0x402c87
403d46:	33 c0                	xor    %eax,%eax
403d48:	e9 61 02 00 00       	jmp    0x403fae
403d4d:	bb 01 03 00 00       	mov    $0x301,%ebx
403d52:	eb 0d                	jmp    0x403d61
403d54:	33 db                	xor    %ebx,%ebx
403d56:	83 4d fc 01          	orl    $0x1,-0x4(%ebp)
403d5a:	eb 09                	jmp    0x403d65
403d5c:	bb 09 01 00 00       	mov    $0x109,%ebx
403d61:	83 4d fc 02          	orl    $0x2,-0x4(%ebp)
403d65:	83 c6 02             	add    $0x2,%esi
403d68:	0f b7 06             	movzwl (%esi),%eax
403d6b:	33 c9                	xor    %ecx,%ecx
403d6d:	41                   	inc    %ecx
403d6e:	57                   	push   %edi
403d6f:	66 3b c2             	cmp    %dx,%ax
403d72:	0f 84 d6 01 00 00    	je     0x403f4e
403d78:	8d 79 7f             	lea    0x7f(%ecx),%edi
403d7b:	ba 00 40 00 00       	mov    $0x4000,%edx
403d80:	85 c9                	test   %ecx,%ecx
403d82:	0f 84 1c 01 00 00    	je     0x403ea4
403d88:	0f b7 c0             	movzwl %ax,%eax
403d8b:	83 f8 53             	cmp    $0x53,%eax
403d8e:	0f 8f 93 00 00 00    	jg     0x403e27
403d94:	74 7f                	je     0x403e15
403d96:	83 e8 20             	sub    $0x20,%eax
403d99:	0f 84 f6 00 00 00    	je     0x403e95
403d9f:	83 e8 0b             	sub    $0xb,%eax
403da2:	74 52                	je     0x403df6
403da4:	48                   	dec    %eax
403da5:	74 43                	je     0x403dea
403da7:	83 e8 18             	sub    $0x18,%eax
403daa:	74 2d                	je     0x403dd9
403dac:	83 e8 0a             	sub    $0xa,%eax
403daf:	74 21                	je     0x403dd2
403db1:	83 e8 04             	sub    $0x4,%eax
403db4:	0f 85 a1 01 00 00    	jne    0x403f5b
403dba:	39 45 f8             	cmp    %eax,-0x8(%ebp)
403dbd:	0f 85 cc 00 00 00    	jne    0x403e8f
403dc3:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
403dca:	83 cb 10             	or     $0x10,%ebx
403dcd:	e9 c3 00 00 00       	jmp    0x403e95
403dd2:	0b df                	or     %edi,%ebx
403dd4:	e9 bc 00 00 00       	jmp    0x403e95
403dd9:	f6 c3 40             	test   $0x40,%bl
403ddc:	0f 85 ad 00 00 00    	jne    0x403e8f
403de2:	83 cb 40             	or     $0x40,%ebx
403de5:	e9 ab 00 00 00       	jmp    0x403e95
403dea:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
403df1:	e9 99 00 00 00       	jmp    0x403e8f
403df6:	f6 c3 02             	test   $0x2,%bl
403df9:	0f 85 90 00 00 00    	jne    0x403e8f
403dff:	8b 45 fc             	mov    -0x4(%ebp),%eax
403e02:	83 e3 fe             	and    $0xfffffffe,%ebx
403e05:	83 e0 fc             	and    $0xfffffffc,%eax
403e08:	83 cb 02             	or     $0x2,%ebx
403e0b:	0b c7                	or     %edi,%eax
403e0d:	89 45 fc             	mov    %eax,-0x4(%ebp)
403e10:	e9 80 00 00 00       	jmp    0x403e95
403e15:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
403e19:	75 74                	jne    0x403e8f
403e1b:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
403e22:	83 cb 20             	or     $0x20,%ebx
403e25:	eb 6e                	jmp    0x403e95
403e27:	83 e8 54             	sub    $0x54,%eax
403e2a:	74 5a                	je     0x403e86
403e2c:	83 e8 0e             	sub    $0xe,%eax
403e2f:	74 45                	je     0x403e76
403e31:	48                   	dec    %eax
403e32:	74 30                	je     0x403e64
403e34:	83 e8 0b             	sub    $0xb,%eax
403e37:	74 15                	je     0x403e4e
403e39:	83 e8 06             	sub    $0x6,%eax
403e3c:	0f 85 19 01 00 00    	jne    0x403f5b
403e42:	f7 c3 00 c0 00 00    	test   $0xc000,%ebx
403e48:	75 45                	jne    0x403e8f
403e4a:	0b da                	or     %edx,%ebx
403e4c:	eb 47                	jmp    0x403e95
403e4e:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
403e52:	75 3b                	jne    0x403e8f
403e54:	81 65 fc ff bf ff ff 	andl   $0xffffbfff,-0x4(%ebp)
403e5b:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
403e62:	eb 31                	jmp    0x403e95
403e64:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
403e68:	75 25                	jne    0x403e8f
403e6a:	09 55 fc             	or     %edx,-0x4(%ebp)
403e6d:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
403e74:	eb 1f                	jmp    0x403e95
403e76:	f7 c3 00 c0 00 00    	test   $0xc000,%ebx
403e7c:	75 11                	jne    0x403e8f
403e7e:	81 cb 00 80 00 00    	or     $0x8000,%ebx
403e84:	eb 0f                	jmp    0x403e95
403e86:	b8 00 10 00 00       	mov    $0x1000,%eax
403e8b:	85 d8                	test   %ebx,%eax
403e8d:	74 04                	je     0x403e93
403e8f:	33 c9                	xor    %ecx,%ecx
403e91:	eb 02                	jmp    0x403e95
403e93:	0b d8                	or     %eax,%ebx
403e95:	83 c6 02             	add    $0x2,%esi
403e98:	0f b7 06             	movzwl (%esi),%eax
403e9b:	66 85 c0             	test   %ax,%ax
403e9e:	0f 85 dc fe ff ff    	jne    0x403d80
403ea4:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
403ea8:	0f 84 a0 00 00 00    	je     0x403f4e
403eae:	6a 20                	push   $0x20
403eb0:	5f                   	pop    %edi
403eb1:	eb 03                	jmp    0x403eb6
403eb3:	83 c6 02             	add    $0x2,%esi
403eb6:	66 39 3e             	cmp    %di,(%esi)
403eb9:	74 f8                	je     0x403eb3
403ebb:	6a 03                	push   $0x3
403ebd:	56                   	push   %esi
403ebe:	68 c4 f1 40 00       	push   $0x40f1c4
403ec3:	e8 b7 67 00 00       	call   0x40a67f
403ec8:	83 c4 0c             	add    $0xc,%esp
403ecb:	85 c0                	test   %eax,%eax
403ecd:	0f 85 88 00 00 00    	jne    0x403f5b
403ed3:	83 c6 06             	add    $0x6,%esi
403ed6:	eb 03                	jmp    0x403edb
403ed8:	83 c6 02             	add    $0x2,%esi
403edb:	66 39 3e             	cmp    %di,(%esi)
403ede:	74 f8                	je     0x403ed8
403ee0:	66 83 3e 3d          	cmpw   $0x3d,(%esi)
403ee4:	75 75                	jne    0x403f5b
403ee6:	83 c6 02             	add    $0x2,%esi
403ee9:	66 39 3e             	cmp    %di,(%esi)
403eec:	74 f8                	je     0x403ee6
403eee:	6a 05                	push   $0x5
403ef0:	68 cc f1 40 00       	push   $0x40f1cc
403ef5:	56                   	push   %esi
403ef6:	e8 56 e2 ff ff       	call   0x402151
403efb:	83 c4 0c             	add    $0xc,%esp
403efe:	85 c0                	test   %eax,%eax
403f00:	75 0b                	jne    0x403f0d
403f02:	83 c6 0a             	add    $0xa,%esi
403f05:	81 cb 00 00 04 00    	or     $0x40000,%ebx
403f0b:	eb 41                	jmp    0x403f4e
403f0d:	6a 08                	push   $0x8
403f0f:	68 d8 f1 40 00       	push   $0x40f1d8
403f14:	56                   	push   %esi
403f15:	e8 37 e2 ff ff       	call   0x402151
403f1a:	83 c4 0c             	add    $0xc,%esp
403f1d:	85 c0                	test   %eax,%eax
403f1f:	75 0b                	jne    0x403f2c
403f21:	83 c6 10             	add    $0x10,%esi
403f24:	81 cb 00 00 02 00    	or     $0x20000,%ebx
403f2a:	eb 22                	jmp    0x403f4e
403f2c:	6a 07                	push   $0x7
403f2e:	68 ec f1 40 00       	push   $0x40f1ec
403f33:	56                   	push   %esi
403f34:	e8 18 e2 ff ff       	call   0x402151
403f39:	83 c4 0c             	add    $0xc,%esp
403f3c:	85 c0                	test   %eax,%eax
403f3e:	75 1b                	jne    0x403f5b
403f40:	83 c6 0e             	add    $0xe,%esi
403f43:	81 cb 00 00 01 00    	or     $0x10000,%ebx
403f49:	eb 03                	jmp    0x403f4e
403f4b:	83 c6 02             	add    $0x2,%esi
403f4e:	66 83 3e 20          	cmpw   $0x20,(%esi)
403f52:	74 f7                	je     0x403f4b
403f54:	33 ff                	xor    %edi,%edi
403f56:	66 39 3e             	cmp    %di,(%esi)
403f59:	74 12                	je     0x403f6d
403f5b:	e8 c7 01 00 00       	call   0x404127
403f60:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
403f66:	e8 1c ed ff ff       	call   0x402c87
403f6b:	eb 1c                	jmp    0x403f89
403f6d:	68 80 01 00 00       	push   $0x180
403f72:	ff 75 10             	push   0x10(%ebp)
403f75:	8d 45 0c             	lea    0xc(%ebp),%eax
403f78:	53                   	push   %ebx
403f79:	ff 75 08             	push   0x8(%ebp)
403f7c:	50                   	push   %eax
403f7d:	e8 dd 66 00 00       	call   0x40a65f
403f82:	83 c4 14             	add    $0x14,%esp
403f85:	85 c0                	test   %eax,%eax
403f87:	74 04                	je     0x403f8d
403f89:	33 c0                	xor    %eax,%eax
403f8b:	eb 20                	jmp    0x403fad
403f8d:	8b 45 14             	mov    0x14(%ebp),%eax
403f90:	ff 05 e0 2e 41 00    	incl   0x412ee0
403f96:	8b 4d fc             	mov    -0x4(%ebp),%ecx
403f99:	89 48 0c             	mov    %ecx,0xc(%eax)
403f9c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403f9f:	89 78 04             	mov    %edi,0x4(%eax)
403fa2:	89 38                	mov    %edi,(%eax)
403fa4:	89 78 08             	mov    %edi,0x8(%eax)
403fa7:	89 78 1c             	mov    %edi,0x1c(%eax)
403faa:	89 48 10             	mov    %ecx,0x10(%eax)
403fad:	5f                   	pop    %edi
403fae:	5e                   	pop    %esi
403faf:	5b                   	pop    %ebx
403fb0:	c9                   	leave
403fb1:	c3                   	ret
403fb2:	6a 10                	push   $0x10
403fb4:	68 d8 11 41 00       	push   $0x4111d8
403fb9:	e8 b2 01 00 00       	call   0x404170
403fbe:	33 db                	xor    %ebx,%ebx
403fc0:	33 ff                	xor    %edi,%edi
403fc2:	89 7d e4             	mov    %edi,-0x1c(%ebp)
403fc5:	6a 01                	push   $0x1
403fc7:	e8 cd 2d 00 00       	call   0x406d99
403fcc:	59                   	pop    %ecx
403fcd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403fd0:	33 f6                	xor    %esi,%esi
403fd2:	89 75 e0             	mov    %esi,-0x20(%ebp)
403fd5:	3b 35 60 57 41 00    	cmp    0x415760,%esi
403fdb:	0f 8d ca 00 00 00    	jge    0x4040ab
403fe1:	a1 44 47 41 00       	mov    0x414744,%eax
403fe6:	8d 04 b0             	lea    (%eax,%esi,4),%eax
403fe9:	39 18                	cmp    %ebx,(%eax)
403feb:	74 5b                	je     0x404048
403fed:	8b 00                	mov    (%eax),%eax
403fef:	8b 40 0c             	mov    0xc(%eax),%eax
403ff2:	a8 83                	test   $0x83,%al
403ff4:	75 48                	jne    0x40403e
403ff6:	a9 00 80 00 00       	test   $0x8000,%eax
403ffb:	75 41                	jne    0x40403e
403ffd:	8d 46 fd             	lea    -0x3(%esi),%eax
404000:	83 f8 10             	cmp    $0x10,%eax
404003:	77 12                	ja     0x404017
404005:	8d 46 10             	lea    0x10(%esi),%eax
404008:	50                   	push   %eax
404009:	e8 c9 2c 00 00       	call   0x406cd7
40400e:	59                   	pop    %ecx
40400f:	85 c0                	test   %eax,%eax
404011:	0f 84 94 00 00 00    	je     0x4040ab
404017:	a1 44 47 41 00       	mov    0x414744,%eax
40401c:	ff 34 b0             	push   (%eax,%esi,4)
40401f:	56                   	push   %esi
404020:	e8 76 e3 ff ff       	call   0x40239b
404025:	59                   	pop    %ecx
404026:	59                   	pop    %ecx
404027:	a1 44 47 41 00       	mov    0x414744,%eax
40402c:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40402f:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
404033:	74 0c                	je     0x404041
404035:	50                   	push   %eax
404036:	56                   	push   %esi
404037:	e8 cd e3 ff ff       	call   0x402409
40403c:	59                   	pop    %ecx
40403d:	59                   	pop    %ecx
40403e:	46                   	inc    %esi
40403f:	eb 91                	jmp    0x403fd2
404041:	8b f8                	mov    %eax,%edi
404043:	89 7d e4             	mov    %edi,-0x1c(%ebp)
404046:	eb 63                	jmp    0x4040ab
404048:	6a 38                	push   $0x38
40404a:	e8 70 28 00 00       	call   0x4068bf
40404f:	59                   	pop    %ecx
404050:	8b 0d 44 47 41 00    	mov    0x414744,%ecx
404056:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
404059:	3b c3                	cmp    %ebx,%eax
40405b:	74 4e                	je     0x4040ab
40405d:	68 a0 0f 00 00       	push   $0xfa0
404062:	a1 44 47 41 00       	mov    0x414744,%eax
404067:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40406a:	83 c0 20             	add    $0x20,%eax
40406d:	50                   	push   %eax
40406e:	ff 15 9c f0 40 00    	call   *0x40f09c
404074:	85 c0                	test   %eax,%eax
404076:	a1 44 47 41 00       	mov    0x414744,%eax
40407b:	75 13                	jne    0x404090
40407d:	ff 34 b0             	push   (%eax,%esi,4)
404080:	e8 e6 de ff ff       	call   0x401f6b
404085:	59                   	pop    %ecx
404086:	a1 44 47 41 00       	mov    0x414744,%eax
40408b:	89 1c b0             	mov    %ebx,(%eax,%esi,4)
40408e:	eb 1b                	jmp    0x4040ab
404090:	8b 04 b0             	mov    (%eax,%esi,4),%eax
404093:	83 c0 20             	add    $0x20,%eax
404096:	50                   	push   %eax