40cf04:	53                   	push   %ebx
40cf05:	56                   	push   %esi
40cf06:	57                   	push   %edi
40cf07:	84 d2                	test   %dl,%dl
40cf09:	74 08                	je     0x40cf13
40cf0b:	83 c4 f0             	add    $0xfffffff0,%esp
40cf0e:	e8 c9 6e ff ff       	call   0x403ddc
40cf13:	8b f1                	mov    %ecx,%esi
40cf15:	8b da                	mov    %edx,%ebx
40cf17:	8b f8                	mov    %eax,%edi
40cf19:	8d 57 04             	lea    0x4(%edi),%edx
40cf1c:	8b c6                	mov    %esi,%eax
40cf1e:	e8 f9 9d ff ff       	call   0x406d1c
40cf23:	8b c7                	mov    %edi,%eax
40cf25:	84 db                	test   %bl,%bl
40cf27:	74 0f                	je     0x40cf38
40cf29:	e8 06 6f ff ff       	call   0x403e34
40cf2e:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40cf35:	83 c4 0c             	add    $0xc,%esp
40cf38:	8b c7                	mov    %edi,%eax
40cf3a:	5f                   	pop    %edi
40cf3b:	5e                   	pop    %esi
40cf3c:	5b                   	pop    %ebx
40cf3d:	c3                   	ret
40cf3e:	8b c0                	mov    %eax,%eax
40cf40:	55                   	push   %ebp
40cf41:	8b ec                	mov    %esp,%ebp
40cf43:	6a 00                	push   $0x0
40cf45:	6a 00                	push   $0x0
40cf47:	53                   	push   %ebx
40cf48:	56                   	push   %esi
40cf49:	57                   	push   %edi
40cf4a:	84 d2                	test   %dl,%dl
40cf4c:	74 08                	je     0x40cf56
40cf4e:	83 c4 f0             	add    $0xfffffff0,%esp
40cf51:	e8 86 6e ff ff       	call   0x403ddc
40cf56:	8b f1                	mov    %ecx,%esi
40cf58:	8b da                	mov    %edx,%ebx
40cf5a:	8b f8                	mov    %eax,%edi
40cf5c:	33 c0                	xor    %eax,%eax
40cf5e:	55                   	push   %ebp
40cf5f:	68 ac cf 40 00       	push   $0x40cfac
40cf64:	64 ff 30             	push   %fs:(%eax)
40cf67:	64 89 20             	mov    %esp,%fs:(%eax)
40cf6a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cf6d:	50                   	push   %eax
40cf6e:	8d 55 f8             	lea    -0x8(%ebp),%edx
40cf71:	8b c6                	mov    %esi,%eax
40cf73:	e8 a4 9d ff ff       	call   0x406d1c
40cf78:	8b 45 f8             	mov    -0x8(%ebp),%eax
40cf7b:	8b 55 0c             	mov    0xc(%ebp),%edx
40cf7e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cf81:	e8 56 d6 ff ff       	call   0x40a5dc
40cf86:	8b 55 fc             	mov    -0x4(%ebp),%edx
40cf89:	8d 47 04             	lea    0x4(%edi),%eax
40cf8c:	e8 2b 79 ff ff       	call   0x4048bc
40cf91:	33 c0                	xor    %eax,%eax
40cf93:	5a                   	pop    %edx
40cf94:	59                   	pop    %ecx
40cf95:	59                   	pop    %ecx
40cf96:	64 89 10             	mov    %edx,%fs:(%eax)
40cf99:	68 b3 cf 40 00       	push   $0x40cfb3
40cf9e:	8d 45 f8             	lea    -0x8(%ebp),%eax
40cfa1:	ba 02 00 00 00       	mov    $0x2,%edx
40cfa6:	e8 e1 78 ff ff       	call   0x40488c
40cfab:	c3                   	ret
40cfac:	e9 5b 72 ff ff       	jmp    0x40420c
40cfb1:	eb eb                	jmp    0x40cf9e
40cfb3:	8b c7                	mov    %edi,%eax
40cfb5:	84 db                	test   %bl,%bl
40cfb7:	74 0f                	je     0x40cfc8
40cfb9:	e8 76 6e ff ff       	call   0x403e34
40cfbe:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40cfc5:	83 c4 0c             	add    $0xc,%esp
40cfc8:	8b c7                	mov    %edi,%eax
40cfca:	5f                   	pop    %edi
40cfcb:	5e                   	pop    %esi
40cfcc:	5b                   	pop    %ebx
40cfcd:	59                   	pop    %ecx
40cfce:	59                   	pop    %ecx
40cfcf:	5d                   	pop    %ebp
40cfd0:	c2 08 00             	ret    $0x8
40cfd3:	90                   	nop
40cfd4:	55                   	push   %ebp
40cfd5:	8b ec                	mov    %esp,%ebp
40cfd7:	53                   	push   %ebx
40cfd8:	56                   	push   %esi
40cfd9:	57                   	push   %edi
40cfda:	84 d2                	test   %dl,%dl
40cfdc:	74 08                	je     0x40cfe6
40cfde:	83 c4 f0             	add    $0xfffffff0,%esp
40cfe1:	e8 f6 6d ff ff       	call   0x403ddc
40cfe6:	8b f1                	mov    %ecx,%esi
40cfe8:	8b da                	mov    %edx,%ebx
40cfea:	8b f8                	mov    %eax,%edi
40cfec:	8d 47 04             	lea    0x4(%edi),%eax
40cfef:	8b d6                	mov    %esi,%edx
40cff1:	e8 c6 78 ff ff       	call   0x4048bc
40cff6:	8b 45 08             	mov    0x8(%ebp),%eax
40cff9:	89 47 08             	mov    %eax,0x8(%edi)
40cffc:	8b c7                	mov    %edi,%eax
40cffe:	84 db                	test   %bl,%bl
40d000:	74 0f                	je     0x40d011
40d002:	e8 2d 6e ff ff       	call   0x403e34
40d007:	64 8f 05 00 00 00 00 	pop    %fs:0x0
40d00e:	83 c4 0c             	add    $0xc,%esp
40d011:	8b c7                	mov    %edi,%eax
40d013:	5f                   	pop    %edi
40d014:	5e                   	pop    %esi
40d015:	5b                   	pop    %ebx
40d016:	5d                   	pop    %ebp
40d017:	c2 04 00             	ret    $0x4
40d01a:	8b c0                	mov    %eax,%eax
40d01c:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
40d020:	74 05                	je     0x40d027
40d022:	e8 05 6a ff ff       	call   0x403a2c
40d027:	c3                   	ret
40d028:	2c d0                	sub    $0xd0,%al
40d02a:	40                   	inc    %eax
40d02b:	00 0e                	add    %cl,(%esi)
40d02d:	09 54 45 72          	or     %edx,0x72(%ebp,%eax,2)
40d031:	72 6f                	jb     0x40d0a2
40d033:	72 52                	jb     0x40d087
40d035:	65 63 08             	arpl   %ecx,%gs:(%eax)
40d038:	00 00                	add    %al,(%eax)
40d03a:	00 01                	add    %al,(%ecx)
40d03c:	00 00                	add    %al,(%eax)
40d03e:	00 ac 10 40 00 04 00 	add    %ch,0x40040(%eax,%edx,1)
40d045:	00 00                	add    %al,(%eax)
40d047:	90                   	nop
40d048:	53                   	push   %ebx
40d049:	56                   	push   %esi
40d04a:	83 c4 f8             	add    $0xfffffff8,%esp
40d04d:	33 db                	xor    %ebx,%ebx
40d04f:	e8 ac 59 ff ff       	call   0x402a00
40d054:	8b f0                	mov    %eax,%esi
40d056:	eb 01                	jmp    0x40d059
40d058:	43                   	inc    %ebx
40d059:	83 fb 06             	cmp    $0x6,%ebx
40d05c:	7f 09                	jg     0x40d067
40d05e:	3b 34 dd 34 a2 68 00 	cmp    0x68a234(,%ebx,8),%esi
40d065:	75 f1                	jne    0x40d058
40d067:	83 fb 06             	cmp    $0x6,%ebx
40d06a:	7f 15                	jg     0x40d081
40d06c:	8b 0c dd 38 a2 68 00 	mov    0x68a238(,%ebx,8),%ecx
40d073:	b2 01                	mov    $0x1,%dl
40d075:	a1 40 86 40 00       	mov    0x408640,%eax
40d07a:	e8 c9 fd ff ff       	call   0x40ce48
40d07f:	eb 1d                	jmp    0x40d09e
40d081:	89 34 24             	mov    %esi,(%esp)
40d084:	c6 44 24 04 00       	movb   $0x0,0x4(%esp)
40d089:	54                   	push   %esp
40d08a:	6a 00                	push   $0x0
40d08c:	8b 0d 44 6d 6a 00    	mov    0x6a6d44,%ecx
40d092:	b2 01                	mov    $0x1,%dl
40d094:	a1 40 86 40 00       	mov    0x408640,%eax
40d099:	e8 a2 fe ff ff       	call   0x40cf40
40d09e:	89 70 0c             	mov    %esi,0xc(%eax)
40d0a1:	59                   	pop    %ecx
40d0a2:	5a                   	pop    %edx
40d0a3:	5e                   	pop    %esi
40d0a4:	5b                   	pop    %ebx
40d0a5:	c3                   	ret
40d0a6:	8b c0                	mov    %eax,%eax
40d0a8:	ac                   	lods   %ds:(%esi),%al
40d0a9:	d0 40 00             	rolb   $1,0x0(%eax)
40d0ac:	0e                   	push   %cs
40d0ad:	0a 54 45 78          	or     0x78(%ebp,%eax,2),%dl
40d0b1:	63 65 70             	arpl   %esp,0x70(%ebp)
40d0b4:	74 52                	je     0x40d108
40d0b6:	65 63 08             	arpl   %ecx,%gs:(%eax)
40d0b9:	00 00                	add    %al,(%eax)
40d0bb:	00 01                	add    %al,(%ecx)
40d0bd:	00 00                	add    %al,(%eax)
40d0bf:	00 ac 10 40 00 04 00 	add    %ch,0x40040(%eax,%edx,1)
40d0c6:	00 00                	add    %al,(%eax)
40d0c8:	53                   	push   %ebx
40d0c9:	8b da                	mov    %edx,%ebx
40d0cb:	8b d0                	mov    %eax,%edx
40d0cd:	fe ca                	dec    %dl
40d0cf:	74 0c                	je     0x40d0dd
40d0d1:	fe ca                	dec    %dl
40d0d3:	74 10                	je     0x40d0e5
40d0d5:	4a                   	dec    %edx
40d0d6:	80 ea 16             	sub    $0x16,%dl
40d0d9:	72 12                	jb     0x40d0ed
40d0db:	eb 2c                	jmp    0x40d109
40d0dd:	8b 15 48 88 6a 00    	mov    0x6a8848,%edx
40d0e3:	eb 2b                	jmp    0x40d110
40d0e5:	8b 15 4c 88 6a 00    	mov    0x6a884c,%edx
40d0eb:	eb 23                	jmp    0x40d110
40d0ed:	25 ff 00 00 00       	and    $0xff,%eax
40d0f2:	8d 04 c5 54 a2 68 00 	lea    0x68a254(,%eax,8),%eax
40d0f9:	8b 48 04             	mov    0x4(%eax),%ecx
40d0fc:	8b 00                	mov    (%eax),%eax
40d0fe:	b2 01                	mov    $0x1,%dl
40d100:	e8 43 fd ff ff       	call   0x40ce48
40d105:	8b d0                	mov    %eax,%edx
40d107:	eb 07                	jmp    0x40d110
40d109:	e8 3a ff ff ff       	call   0x40d048
40d10e:	8b d0                	mov    %eax,%edx
40d110:	53                   	push   %ebx
40d111:	8b c2                	mov    %edx,%eax
40d113:	e9 2c 71 ff ff       	jmp    0x404244
40d118:	5b                   	pop    %ebx
40d119:	c3                   	ret
40d11a:	8b c0                	mov    %eax,%eax
40d11c:	55                   	push   %ebp
40d11d:	8b ec                	mov    %esp,%ebp
40d11f:	83 c4 e0             	add    $0xffffffe0,%esp
40d122:	53                   	push   %ebx
40d123:	56                   	push   %esi
40d124:	57                   	push   %edi
40d125:	33 db                	xor    %ebx,%ebx
40d127:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40d12a:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40d12d:	8b f9                	mov    %ecx,%edi
40d12f:	8b f2                	mov    %edx,%esi
40d131:	8b d8                	mov    %eax,%ebx
40d133:	33 c0                	xor    %eax,%eax
40d135:	55                   	push   %ebp
40d136:	68 b8 d1 40 00       	push   $0x40d1b8
40d13b:	64 ff 30             	push   %fs:(%eax)
40d13e:	64 89 20             	mov    %esp,%fs:(%eax)
40d141:	85 db                	test   %ebx,%ebx
40d143:	74 0c                	je     0x40d151
40d145:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d148:	8b d3                	mov    %ebx,%edx
40d14a:	e8 b1 77 ff ff       	call   0x404900
40d14f:	eb 0d                	jmp    0x40d15e
40d151:	8d 55 fc             	lea    -0x4(%ebp),%edx
40d154:	a1 6c 70 6a 00       	mov    0x6a706c,%eax
40d159:	e8 be 9b ff ff       	call   0x406d1c
40d15e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d161:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d164:	c6 45 e8 0b          	movb   $0xb,-0x18(%ebp)
40d168:	89 75 ec             	mov    %esi,-0x14(%ebp)
40d16b:	c6 45 f0 0b          	movb   $0xb,-0x10(%ebp)
40d16f:	89 7d f4             	mov    %edi,-0xc(%ebp)
40d172:	c6 45 f8 00          	movb   $0x0,-0x8(%ebp)
40d176:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d179:	50                   	push   %eax
40d17a:	6a 02                	push   $0x2
40d17c:	8d 55 e0             	lea    -0x20(%ebp),%edx
40d17f:	a1 44 71 6a 00       	mov    0x6a7144,%eax
40d184:	e8 93 9b ff ff       	call   0x406d1c
40d189:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40d18c:	b2 01                	mov    $0x1,%dl
40d18e:	a1 48 8d 40 00       	mov    0x408d48,%eax
40d193:	e8 ec fc ff ff       	call   0x40ce84
40d198:	8b d8                	mov    %eax,%ebx
40d19a:	33 c0                	xor    %eax,%eax
40d19c:	5a                   	pop    %edx
40d19d:	59                   	pop    %ecx
40d19e:	59                   	pop    %ecx
40d19f:	64 89 10             	mov    %edx,%fs:(%eax)
40d1a2:	68 bf d1 40 00       	push   $0x40d1bf
40d1a7:	8d 45 e0             	lea    -0x20(%ebp),%eax
40d1aa:	e8 b9 76 ff ff       	call   0x404868
40d1af:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d1b2:	e8 b1 76 ff ff       	call   0x404868
40d1b7:	c3                   	ret
40d1b8:	e9 4f 70 ff ff       	jmp    0x40420c
40d1bd:	eb e8                	jmp    0x40d1a7
40d1bf:	8b c3                	mov    %ebx,%eax
40d1c1:	5f                   	pop    %edi
40d1c2:	5e                   	pop    %esi
40d1c3:	5b                   	pop    %ebx
40d1c4:	8b e5                	mov    %ebp,%esp
40d1c6:	5d                   	pop    %ebp
40d1c7:	c3                   	ret
40d1c8:	89 cc                	mov    %ecx,%esp
40d1ca:	89 14 24             	mov    %edx,(%esp)
40d1cd:	8b 6d 00             	mov    0x0(%ebp),%ebp
40d1d0:	e9 6f 70 ff ff       	jmp    0x404244
40d1d5:	c3                   	ret
40d1d6:	8b c0                	mov    %eax,%eax
40d1d8:	55                   	push   %ebp
40d1d9:	8b ec                	mov    %esp,%ebp
40d1db:	e8 3c ff ff ff       	call   0x40d11c
40d1e0:	8d 4d 08             	lea    0x8(%ebp),%ecx
40d1e3:	83 c1 04             	add    $0x4,%ecx
40d1e6:	8b 55 08             	mov    0x8(%ebp),%edx
40d1e9:	e8 da ff ff ff       	call   0x40d1c8
40d1ee:	5d                   	pop    %ebp
40d1ef:	c2 04 00             	ret    $0x4
40d1f2:	8b c0                	mov    %eax,%eax
40d1f4:	8b 0d 78 6d 6a 00    	mov    0x6a6d78,%ecx
40d1fa:	b2 01                	mov    $0x1,%dl
40d1fc:	a1 a8 8d 40 00       	mov    0x408da8,%eax
40d201:	e8 fe fc ff ff       	call   0x40cf04
40d206:	e8 39 70 ff ff       	call   0x404244
40d20b:	c3                   	ret
40d20c:	8b 00                	mov    (%eax),%eax
40d20e:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
40d213:	7f 2c                	jg     0x40d241
40d215:	74 59                	je     0x40d270
40d217:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
40d21c:	7f 15                	jg     0x40d233
40d21e:	74 53                	je     0x40d273
40d220:	2d 05 00 00 c0       	sub    $0xc0000005,%eax
40d225:	74 55                	je     0x40d27c
40d227:	2d 87 00 00 00       	sub    $0x87,%eax
40d22c:	74 3c                	je     0x40d26a
40d22e:	48                   	dec    %eax
40d22f:	74 48                	je     0x40d279
40d231:	eb 55                	jmp    0x40d288
40d233:	05 71 ff ff 3f       	add    $0x3fffff71,%eax
40d238:	83 e8 02             	sub    $0x2,%eax
40d23b:	72 33                	jb     0x40d270
40d23d:	74 37                	je     0x40d276
40d23f:	eb 47                	jmp    0x40d288
40d241:	3d 96 00 00 c0       	cmp    $0xc0000096,%eax
40d246:	7f 11                	jg     0x40d259
40d248:	74 35                	je     0x40d27f
40d24a:	2d 93 00 00 c0       	sub    $0xc0000093,%eax
40d24f:	74 28                	je     0x40d279
40d251:	48                   	dec    %eax
40d252:	74 13                	je     0x40d267
40d254:	48                   	dec    %eax
40d255:	74 16                	je     0x40d26d
40d257:	eb 2f                	jmp    0x40d288
40d259:	2d fd 00 00 c0       	sub    $0xc00000fd,%eax
40d25e:	74 25                	je     0x40d285
40d260:	83 e8 3d             	sub    $0x3d,%eax
40d263:	74 1d                	je     0x40d282
40d265:	eb 21                	jmp    0x40d288
40d267:	b0 03                	mov    $0x3,%al
40d269:	c3                   	ret
40d26a:	b0 04                	mov    $0x4,%al
40d26c:	c3                   	ret
40d26d:	b0 05                	mov    $0x5,%al
40d26f:	c3                   	ret
40d270:	b0 06                	mov    $0x6,%al
40d272:	c3                   	ret
40d273:	b0 07                	mov    $0x7,%al
40d275:	c3                   	ret
40d276:	b0 08                	mov    $0x8,%al
40d278:	c3                   	ret
40d279:	b0 09                	mov    $0x9,%al
40d27b:	c3                   	ret
40d27c:	b0 0b                	mov    $0xb,%al
40d27e:	c3                   	ret
40d27f:	b0 0c                	mov    $0xc,%al
40d281:	c3                   	ret
40d282:	b0 0d                	mov    $0xd,%al
40d284:	c3                   	ret
40d285:	b0 0e                	mov    $0xe,%al
40d287:	c3                   	ret
40d288:	b0 16                	mov    $0x16,%al