477d53:	7c 56                	jl     0x477dab
477d55:	45                   	inc    %ebp
477d56:	33 f6                	xor    %esi,%esi
477d58:	8b 87 c4 00 00 00    	mov    0xc4(%edi),%eax
477d5e:	8b 04 b0             	mov    (%eax,%esi,4),%eax
477d61:	8b 58 1c             	mov    0x1c(%eax),%ebx
477d64:	8b c3                	mov    %ebx,%eax
477d66:	8b 15 9c 03 47 00    	mov    0x47039c,%edx
477d6c:	e8 93 be f8 ff       	call   0x403c04
477d71:	84 c0                	test   %al,%al
477d73:	74 32                	je     0x477da7
477d75:	8b 87 c4 00 00 00    	mov    0xc4(%edi),%eax
477d7b:	8b 04 b0             	mov    (%eax,%esi,4),%eax
477d7e:	80 78 20 00          	cmpb   $0x0,0x20(%eax)
477d82:	74 23                	je     0x477da7
477d84:	8b 83 b0 00 00 00    	mov    0xb0(%ebx),%eax
477d8a:	8b 15 e8 45 44 00    	mov    0x4445e8,%edx
477d90:	e8 6f be f8 ff       	call   0x403c04
477d95:	84 c0                	test   %al,%al
477d97:	74 0e                	je     0x477da7
477d99:	8b 93 b0 00 00 00    	mov    0xb0(%ebx),%edx
477d9f:	8b 04 24             	mov    (%esp),%eax
477da2:	e8 6d 3e fa ff       	call   0x41bc14
477da7:	46                   	inc    %esi
477da8:	4d                   	dec    %ebp
477da9:	75 ad                	jne    0x477d58
477dab:	5a                   	pop    %edx
477dac:	5d                   	pop    %ebp
477dad:	5f                   	pop    %edi
477dae:	5e                   	pop    %esi
477daf:	5b                   	pop    %ebx
477db0:	c3                   	ret
477db1:	8d 40 00             	lea    0x0(%eax),%eax
477db4:	c6 40 40 01          	movb   $0x1,0x40(%eax)
477db8:	c3                   	ret
477db9:	8d 40 00             	lea    0x0(%eax),%eax
477dbc:	56                   	push   %esi
477dbd:	80 78 40 00          	cmpb   $0x0,0x40(%eax)
477dc1:	74 1f                	je     0x477de2
477dc3:	c6 40 40 00          	movb   $0x0,0x40(%eax)
477dc7:	c7 05 24 8d 6a 00 00 	movl   $0x80000000,0x6a8d24
477dce:	00 00 80
477dd1:	8b b0 ac 00 00 00    	mov    0xac(%eax),%esi
477dd7:	85 f6                	test   %esi,%esi
477dd9:	74 07                	je     0x477de2
477ddb:	8b c6                	mov    %esi,%eax
477ddd:	8b 10                	mov    (%eax),%edx
477ddf:	ff 52 30             	call   *0x30(%edx)
477de2:	5e                   	pop    %esi
477de3:	c3                   	ret
477de4:	53                   	push   %ebx
477de5:	56                   	push   %esi
477de6:	8b da                	mov    %edx,%ebx
477de8:	8b f0                	mov    %eax,%esi
477dea:	8b cb                	mov    %ebx,%ecx
477dec:	8b 96 ac 00 00 00    	mov    0xac(%esi),%edx
477df2:	8b c6                	mov    %esi,%eax
477df4:	e8 fb fa ff ff       	call   0x4778f4
477df9:	8b d0                	mov    %eax,%edx
477dfb:	8b c6                	mov    %esi,%eax
477dfd:	e8 02 d9 ff ff       	call   0x475704
477e02:	8b c6                	mov    %esi,%eax
477e04:	e8 eb 03 00 00       	call   0x4781f4
477e09:	5e                   	pop    %esi
477e0a:	5b                   	pop    %ebx
477e0b:	c3                   	ret
477e0c:	55                   	push   %ebp
477e0d:	8b ec                	mov    %esp,%ebp
477e0f:	33 d2                	xor    %edx,%edx
477e11:	8b 45 08             	mov    0x8(%ebp),%eax
477e14:	8b 40 fc             	mov    -0x4(%eax),%eax
477e17:	85 c0                	test   %eax,%eax
477e19:	74 1e                	je     0x477e39
477e1b:	8b 88 ac 00 00 00    	mov    0xac(%eax),%ecx
477e21:	85 c9                	test   %ecx,%ecx
477e23:	74 0a                	je     0x477e2f
477e25:	8b 51 1c             	mov    0x1c(%ecx),%edx
477e28:	8b 52 48             	mov    0x48(%edx),%edx
477e2b:	85 d2                	test   %edx,%edx
477e2d:	75 0a                	jne    0x477e39
477e2f:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
477e35:	85 c0                	test   %eax,%eax
477e37:	75 e2                	jne    0x477e1b
477e39:	85 d2                	test   %edx,%edx
477e3b:	74 0b                	je     0x477e48
477e3d:	8b 45 08             	mov    0x8(%ebp),%eax
477e40:	8b 40 fc             	mov    -0x4(%eax),%eax
477e43:	e8 1c 02 00 00       	call   0x478064
477e48:	5d                   	pop    %ebp
477e49:	c3                   	ret
477e4a:	8b c0                	mov    %eax,%eax
477e4c:	55                   	push   %ebp
477e4d:	8b ec                	mov    %esp,%ebp
477e4f:	51                   	push   %ecx
477e50:	53                   	push   %ebx
477e51:	56                   	push   %esi
477e52:	8b da                	mov    %edx,%ebx
477e54:	89 45 fc             	mov    %eax,-0x4(%ebp)
477e57:	8b 45 fc             	mov    -0x4(%ebp),%eax
477e5a:	e8 89 cd ff ff       	call   0x474be8
477e5f:	8b f0                	mov    %eax,%esi
477e61:	0f b7 03             	movzwl (%ebx),%eax
477e64:	83 f8 25             	cmp    $0x25,%eax
477e67:	7f 32                	jg     0x477e9b
477e69:	0f 84 ba 00 00 00    	je     0x477f29
477e6f:	83 f8 12             	cmp    $0x12,%eax
477e72:	7f 11                	jg     0x477e85
477e74:	74 7d                	je     0x477ef3
477e76:	83 e8 09             	sub    $0x9,%eax
477e79:	74 4f                	je     0x477eca
477e7b:	83 e8 04             	sub    $0x4,%eax
477e7e:	74 64                	je     0x477ee4
477e80:	e9 ad 01 00 00       	jmp    0x478032
477e85:	83 e8 1b             	sub    $0x1b,%eax
477e88:	74 76                	je     0x477f00
477e8a:	83 c0 f8             	add    $0xfffffff8,%eax
477e8d:	83 e8 02             	sub    $0x2,%eax
477e90:	0f 82 6b 01 00 00    	jb     0x478001
477e96:	e9 97 01 00 00       	jmp    0x478032
477e9b:	83 f8 28             	cmp    $0x28,%eax
477e9e:	7f 17                	jg     0x477eb7
477ea0:	0f 84 2d 01 00 00    	je     0x477fd3
477ea6:	83 e8 26             	sub    $0x26,%eax
477ea9:	0f 84 24 01 00 00    	je     0x477fd3
477eaf:	48                   	dec    %eax
477eb0:	74 77                	je     0x477f29
477eb2:	e9 7b 01 00 00       	jmp    0x478032
477eb7:	83 e8 70             	sub    $0x70,%eax
477eba:	0f 84 66 01 00 00    	je     0x478026
477ec0:	83 e8 09             	sub    $0x9,%eax
477ec3:	74 2e                	je     0x477ef3
477ec5:	e9 68 01 00 00       	jmp    0x478032
477eca:	6a 10                	push   $0x10
477ecc:	e8 87 fb f8 ff       	call   0x407a58
477ed1:	66 85 c0             	test   %ax,%ax
477ed4:	0f 9d c2             	setge  %dl
477ed7:	8b 45 fc             	mov    -0x4(%ebp),%eax
477eda:	e8 05 ff ff ff       	call   0x477de4
477edf:	e9 49 01 00 00       	jmp    0x47802d
477ee4:	b2 01                	mov    $0x1,%dl
477ee6:	8b 45 fc             	mov    -0x4(%ebp),%eax
477ee9:	e8 a2 01 00 00       	call   0x478090
477eee:	e9 3a 01 00 00       	jmp    0x47802d
477ef3:	8b 45 fc             	mov    -0x4(%ebp),%eax
477ef6:	e8 3d 01 00 00       	call   0x478038
477efb:	e9 2d 01 00 00       	jmp    0x47802d
477f00:	66 c7 03 00 00       	movw   $0x0,(%ebx)
477f05:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f08:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
477f0e:	85 c0                	test   %eax,%eax
477f10:	75 0d                	jne    0x477f1f
477f12:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f15:	e8 1e 01 00 00       	call   0x478038
477f1a:	e9 0e 01 00 00       	jmp    0x47802d
477f1f:	e8 80 d6 ff ff       	call   0x4755a4
477f24:	e9 04 01 00 00       	jmp    0x47802d
477f29:	3b 75 fc             	cmp    -0x4(%ebp),%esi
477f2c:	75 1b                	jne    0x477f49
477f2e:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f31:	80 b8 a4 00 00 00 01 	cmpb   $0x1,0xa4(%eax)
477f38:	75 0f                	jne    0x477f49
477f3a:	b2 01                	mov    $0x1,%dl
477f3c:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f3f:	e8 98 d5 ff ff       	call   0x4754dc
477f44:	e9 e4 00 00 00       	jmp    0x47802d
477f49:	66 83 3b 25          	cmpw   $0x25,(%ebx)
477f4d:	75 59                	jne    0x477fa8
477f4f:	85 f6                	test   %esi,%esi
477f51:	74 3a                	je     0x477f8d
477f53:	80 be a4 00 00 00 01 	cmpb   $0x1,0xa4(%esi)
477f5a:	74 31                	je     0x477f8d
477f5c:	3b 75 fc             	cmp    -0x4(%ebp),%esi
477f5f:	74 0b                	je     0x477f6c
477f61:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f64:	3b b0 98 00 00 00    	cmp    0x98(%eax),%esi
477f6a:	75 0e                	jne    0x477f7a
477f6c:	33 d2                	xor    %edx,%edx
477f6e:	8b c6                	mov    %esi,%eax
477f70:	e8 6f fe ff ff       	call   0x477de4
477f75:	e9 b3 00 00 00       	jmp    0x47802d
477f7a:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f7d:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
477f83:	e8 dc d5 ff ff       	call   0x475564
477f88:	e9 a0 00 00 00       	jmp    0x47802d
477f8d:	8b 45 fc             	mov    -0x4(%ebp),%eax
477f90:	8b 80 98 00 00 00    	mov    0x98(%eax),%eax
477f96:	85 c0                	test   %eax,%eax
477f98:	0f 84 8f 00 00 00    	je     0x47802d
477f9e:	e8 01 d6 ff ff       	call   0x4755a4
477fa3:	e9 85 00 00 00       	jmp    0x47802d
477fa8:	3b 75 fc             	cmp    -0x4(%ebp),%esi
477fab:	74 0e                	je     0x477fbb
477fad:	b2 01                	mov    $0x1,%dl
477faf:	8b 45 fc             	mov    -0x4(%ebp),%eax
477fb2:	e8 25 d5 ff ff       	call   0x4754dc
477fb7:	84 c0                	test   %al,%al
477fb9:	75 72                	jne    0x47802d
477fbb:	85 f6                	test   %esi,%esi
477fbd:	74 6e                	je     0x47802d
477fbf:	80 be a4 00 00 00 01 	cmpb   $0x1,0xa4(%esi)
477fc6:	74 65                	je     0x47802d
477fc8:	b2 01                	mov    $0x1,%dl
477fca:	8b c6                	mov    %esi,%eax
477fcc:	e8 13 fe ff ff       	call   0x477de4
477fd1:	eb 5a                	jmp    0x47802d
477fd3:	3b 75 fc             	cmp    -0x4(%ebp),%esi
477fd6:	75 18                	jne    0x477ff0
477fd8:	8b 45 fc             	mov    -0x4(%ebp),%eax
477fdb:	80 b8 a4 00 00 00 01 	cmpb   $0x1,0xa4(%eax)
477fe2:	74 0c                	je     0x477ff0
477fe4:	b2 01                	mov    $0x1,%dl
477fe6:	8b 45 fc             	mov    -0x4(%ebp),%eax
477fe9:	e8 ee d4 ff ff       	call   0x4754dc
477fee:	eb 3d                	jmp    0x47802d
477ff0:	66 83 3b 28          	cmpw   $0x28,(%ebx)
477ff4:	0f 94 c2             	sete   %dl
477ff7:	8b 45 fc             	mov    -0x4(%ebp),%eax
477ffa:	e8 e5 fd ff ff       	call   0x477de4
477fff:	eb 2c                	jmp    0x47802d
478001:	66 83 3b 24          	cmpw   $0x24,(%ebx)
478005:	0f 94 c1             	sete   %cl
478008:	33 d2                	xor    %edx,%edx
47800a:	8b 45 fc             	mov    -0x4(%ebp),%eax
47800d:	e8 e2 f8 ff ff       	call   0x4778f4
478012:	8b d0                	mov    %eax,%edx
478014:	8b 45 fc             	mov    -0x4(%ebp),%eax
478017:	e8 e8 d6 ff ff       	call   0x475704
47801c:	8b 45 fc             	mov    -0x4(%ebp),%eax
47801f:	e8 d0 01 00 00       	call   0x4781f4
478024:	eb 07                	jmp    0x47802d
478026:	55                   	push   %ebp
478027:	e8 e0 fd ff ff       	call   0x477e0c
47802c:	59                   	pop    %ecx
47802d:	66 c7 03 00 00       	movw   $0x0,(%ebx)
478032:	5e                   	pop    %esi
478033:	5b                   	pop    %ebx
478034:	59                   	pop    %ecx
478035:	5d                   	pop    %ebp
478036:	c3                   	ret
478037:	90                   	nop
478038:	e8 9b cb ff ff       	call   0x474bd8
47803d:	c6 40 5c 01          	movb   $0x1,0x5c(%eax)
478041:	c3                   	ret
478042:	8b c0                	mov    %eax,%eax
478044:	53                   	push   %ebx
478045:	8b da                	mov    %edx,%ebx
478047:	e8 8c cb ff ff       	call   0x474bd8
47804c:	8b 53 1c             	mov    0x1c(%ebx),%edx
47804f:	89 50 60             	mov    %edx,0x60(%eax)
478052:	8b 53 24             	mov    0x24(%ebx),%edx
478055:	8a 52 70             	mov    0x70(%edx),%dl
478058:	88 50 64             	mov    %dl,0x64(%eax)
47805b:	c6 40 5c 02          	movb   $0x2,0x5c(%eax)
47805f:	5b                   	pop    %ebx
478060:	c3                   	ret
478061:	8d 40 00             	lea    0x0(%eax),%eax
478064:	53                   	push   %ebx
478065:	8b da                	mov    %edx,%ebx
478067:	e8 6c cb ff ff       	call   0x474bd8
47806c:	89 58 60             	mov    %ebx,0x60(%eax)
47806f:	c6 40 5c 04          	movb   $0x4,0x5c(%eax)
478073:	5b                   	pop    %ebx
478074:	c3                   	ret
478075:	8d 40 00             	lea    0x0(%eax),%eax
478078:	53                   	push   %ebx
478079:	56                   	push   %esi
47807a:	8b f1                	mov    %ecx,%esi
47807c:	8b da                	mov    %edx,%ebx
47807e:	e8 55 cb ff ff       	call   0x474bd8
478083:	89 58 60             	mov    %ebx,0x60(%eax)
478086:	89 70 64             	mov    %esi,0x64(%eax)
478089:	c6 40 5c 03          	movb   $0x3,0x5c(%eax)
47808d:	5e                   	pop    %esi
47808e:	5b                   	pop    %ebx
47808f:	c3                   	ret
478090:	53                   	push   %ebx
478091:	56                   	push   %esi
478092:	57                   	push   %edi
478093:	8b da                	mov    %edx,%ebx
478095:	8b f8                	mov    %eax,%edi
478097:	8b 87 ac 00 00 00    	mov    0xac(%edi),%eax
47809d:	85 c0                	test   %eax,%eax
47809f:	74 3d                	je     0x4780de
4780a1:	8b 50 1c             	mov    0x1c(%eax),%edx
4780a4:	80 7a 3e 00          	cmpb   $0x0,0x3e(%edx)
4780a8:	74 34                	je     0x4780de
4780aa:	8b 70 1c             	mov    0x1c(%eax),%esi
4780ad:	f6 46 64 20          	testb  $0x20,0x64(%esi)
4780b1:	75 0d                	jne    0x4780c0
4780b3:	b2 01                	mov    $0x1,%dl
4780b5:	8b c7                	mov    %edi,%eax
4780b7:	e8 20 d4 ff ff       	call   0x4754dc
4780bc:	84 c0                	test   %al,%al
4780be:	75 51                	jne    0x478111
4780c0:	f6 46 64 02          	testb  $0x2,0x64(%esi)
4780c4:	74 0f                	je     0x4780d5
4780c6:	8b d3                	mov    %ebx,%edx
4780c8:	8b 87 ac 00 00 00    	mov    0xac(%edi),%eax
4780ce:	e8 1d c7 ff ff       	call   0x4747f0
4780d3:	eb 3c                	jmp    0x478111
4780d5:	8b c7                	mov    %edi,%eax
4780d7:	e8 5c ff ff ff       	call   0x478038
4780dc:	eb 33                	jmp    0x478111
4780de:	8b c7                	mov    %edi,%eax
4780e0:	e8 53 ff ff ff       	call   0x478038
4780e5:	eb 2a                	jmp    0x478111
4780e7:	00 54 6f 6f          	add    %dl,0x6f(%edi,%ebp,2)
4780eb:	6c                   	insb   (%dx),%es:(%edi)
4780ec:	62 61 72             	bound  %esp,0x72(%ecx)
4780ef:	32 30                	xor    (%eax),%dh
4780f1:	30 30                	xor    %dh,(%eax)
4780f3:	20 28                	and    %ch,(%eax)
4780f5:	43                   	inc    %ebx
4780f6:	29 20                	sub    %esp,(%eax)
4780f8:	31 39                	xor    %edi,(%ecx)
4780fa:	39 38                	cmp    %edi,(%eax)
4780fc:	2d 32 30 30 33       	sub    $0x33303032,%eax
478101:	20 4a 6f             	and    %cl,0x6f(%edx)
478104:	72 64                	jb     0x47816a
478106:	61                   	popa
478107:	6e                   	outsb  %ds:(%esi),(%dx)
478108:	20 52 75             	and    %dl,0x75(%edx)
47810b:	73 73                	jae    0x478180
47810d:	65 6c                	gs insb (%dx),%es:(%edi)
47810f:	6c                   	insb   (%dx),%es:(%edi)
478110:	00 5f 5e             	add    %bl,0x5e(%edi)
478113:	5b                   	pop    %ebx
478114:	c3                   	ret
478115:	8d 40 00             	lea    0x0(%eax),%eax
478118:	53                   	push   %ebx
478119:	56                   	push   %esi
47811a:	57                   	push   %edi
47811b:	55                   	push   %ebp
47811c:	83 c4 f4             	add    $0xfffffff4,%esp
47811f:	8b da                	mov    %edx,%ebx
478121:	8b f8                	mov    %eax,%edi
478123:	8b c7                	mov    %edi,%eax
478125:	e8 5a cb ff ff       	call   0x474c84
47812a:	84 db                	test   %bl,%bl
47812c:	74 5a                	je     0x478188
47812e:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
478133:	8b 47 74             	mov    0x74(%edi),%eax
478136:	83 e8 13             	sub    $0x13,%eax
478139:	89 04 24             	mov    %eax,(%esp)
47813c:	8b b7 c0 00 00 00    	mov    0xc0(%edi),%esi
478142:	4e                   	dec    %esi
478143:	85 f6                	test   %esi,%esi
478145:	7c 2f                	jl     0x478176
478147:	46                   	inc    %esi
478148:	33 ed                	xor    %ebp,%ebp