40ff8d:	fe 40 00             	incb   0x0(%eax)
40ff90:	e4 fe                	in     $0xfe,%al
40ff92:	40                   	inc    %eax
40ff93:	00 e9                	add    %ch,%cl
40ff95:	fe 40 00             	incb   0x0(%eax)
40ff98:	0e                   	push   %cs
40ff99:	ff 40 00             	incl   0x0(%eax)
40ff9c:	17                   	pop    %ss
40ff9d:	ff 40 00             	incl   0x0(%eax)
40ffa0:	8b ff                	mov    %edi,%edi
40ffa2:	53                   	push   %ebx
40ffa3:	56                   	push   %esi
40ffa4:	8b f1                	mov    %ecx,%esi
40ffa6:	57                   	push   %edi
40ffa7:	ff 76 08             	push   0x8(%esi)
40ffaa:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40ffb0:	e8 b9 19 00 00       	call   0x41196e
40ffb5:	84 c0                	test   %al,%al
40ffb7:	74 27                	je     0x40ffe0
40ffb9:	8b 56 0c             	mov    0xc(%esi),%edx
40ffbc:	85 d2                	test   %edx,%edx
40ffbe:	75 27                	jne    0x40ffe7
40ffc0:	8b 46 08             	mov    0x8(%esi),%eax
40ffc3:	33 db                	xor    %ebx,%ebx
40ffc5:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
40ffc9:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
40ffd0:	ff 76 08             	push   0x8(%esi)
40ffd3:	53                   	push   %ebx
40ffd4:	53                   	push   %ebx
40ffd5:	53                   	push   %ebx
40ffd6:	53                   	push   %ebx
40ffd7:	53                   	push   %ebx
40ffd8:	e8 94 d3 ff ff       	call   0x40d371
40ffdd:	83 c4 18             	add    $0x18,%esp
40ffe0:	83 c8 ff             	or     $0xffffffff,%eax
40ffe3:	5f                   	pop    %edi
40ffe4:	5e                   	pop    %esi
40ffe5:	5b                   	pop    %ebx
40ffe6:	c3                   	ret
40ffe7:	8b 86 50 04 00 00    	mov    0x450(%esi),%eax
40ffed:	40                   	inc    %eax
40ffee:	89 86 50 04 00 00    	mov    %eax,0x450(%esi)
40fff4:	83 f8 02             	cmp    $0x2,%eax
40fff7:	0f 84 a2 01 00 00    	je     0x41019f
40fffd:	33 db                	xor    %ebx,%ebx
40ffff:	89 5e 34             	mov    %ebx,0x34(%esi)
410002:	88 5e 18             	mov    %bl,0x18(%esi)
410005:	0f b7 02             	movzwl (%edx),%eax
410008:	83 c2 02             	add    $0x2,%edx
41000b:	89 56 0c             	mov    %edx,0xc(%esi)
41000e:	66 89 46 2e          	mov    %ax,0x2e(%esi)
410012:	66 85 c0             	test   %ax,%ax
410015:	0f 84 71 01 00 00    	je     0x41018c
41001b:	8b f8                	mov    %eax,%edi
41001d:	8d 46 14             	lea    0x14(%esi),%eax
410020:	8b 00                	mov    (%eax),%eax
410022:	85 c0                	test   %eax,%eax
410024:	0f 88 62 01 00 00    	js     0x41018c
41002a:	0f b6 46 18          	movzbl 0x18(%esi),%eax
41002e:	8b ce                	mov    %esi,%ecx
410030:	50                   	push   %eax
410031:	57                   	push   %edi
410032:	e8 1d f6 ff ff       	call   0x40f654
410037:	88 46 18             	mov    %al,0x18(%esi)
41003a:	3c 08                	cmp    $0x8,%al
41003c:	0f 83 65 01 00 00    	jae    0x4101a7
410042:	0f b6 c0             	movzbl %al,%eax
410045:	83 f8 07             	cmp    $0x7,%eax
410048:	77 96                	ja     0x40ffe0
41004a:	ff 24 85 bc 01 41 00 	jmp    *0x4101bc(,%eax,4)
410051:	c6 46 38 01          	movb   $0x1,0x38(%esi)
410055:	8b 8e 48 04 00 00    	mov    0x448(%esi),%ecx
41005b:	8b 41 08             	mov    0x8(%ecx),%eax
41005e:	3b 41 04             	cmp    0x4(%ecx),%eax
410061:	75 18                	jne    0x41007b
410063:	38 59 0c             	cmp    %bl,0xc(%ecx)
410066:	8d 4e 14             	lea    0x14(%esi),%ecx
410069:	74 06                	je     0x410071
41006b:	8b 46 14             	mov    0x14(%esi),%eax
41006e:	40                   	inc    %eax
41006f:	eb 03                	jmp    0x410074
410071:	83 c8 ff             	or     $0xffffffff,%eax
410074:	89 01                	mov    %eax,(%ecx)
410076:	e9 f3 00 00 00       	jmp    0x41016e
41007b:	ff 46 14             	incl   0x14(%esi)
41007e:	ff 41 08             	incl   0x8(%ecx)
410081:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
410087:	8b 01                	mov    (%ecx),%eax
410089:	8b 00                	mov    (%eax),%eax
41008b:	66 89 38             	mov    %di,(%eax)
41008e:	8b 01                	mov    (%ecx),%eax
410090:	83 00 02             	addl   $0x2,(%eax)
410093:	e9 d6 00 00 00       	jmp    0x41016e
410098:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
41009c:	89 5e 20             	mov    %ebx,0x20(%esi)
41009f:	88 5e 2c             	mov    %bl,0x2c(%esi)
4100a2:	89 5e 1c             	mov    %ebx,0x1c(%esi)
4100a5:	89 5e 28             	mov    %ebx,0x28(%esi)
4100a8:	88 5e 38             	mov    %bl,0x38(%esi)
4100ab:	e9 be 00 00 00       	jmp    0x41016e
4100b0:	0f b7 c7             	movzwl %di,%eax
4100b3:	83 e8 20             	sub    $0x20,%eax
4100b6:	74 3a                	je     0x4100f2
4100b8:	83 e8 03             	sub    $0x3,%eax
4100bb:	74 2f                	je     0x4100ec
4100bd:	83 e8 08             	sub    $0x8,%eax
4100c0:	74 21                	je     0x4100e3
4100c2:	48                   	dec    %eax
4100c3:	83 e8 01             	sub    $0x1,%eax
4100c6:	74 12                	je     0x4100da
4100c8:	83 e8 03             	sub    $0x3,%eax
4100cb:	0f 85 9d 00 00 00    	jne    0x41016e
4100d1:	83 4e 1c 08          	orl    $0x8,0x1c(%esi)
4100d5:	e9 94 00 00 00       	jmp    0x41016e
4100da:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
4100de:	e9 8b 00 00 00       	jmp    0x41016e
4100e3:	83 4e 1c 01          	orl    $0x1,0x1c(%esi)
4100e7:	e9 82 00 00 00       	jmp    0x41016e
4100ec:	83 4e 1c 20          	orl    $0x20,0x1c(%esi)
4100f0:	eb 7c                	jmp    0x41016e
4100f2:	83 4e 1c 02          	orl    $0x2,0x1c(%esi)
4100f6:	eb 76                	jmp    0x41016e
4100f8:	6a 2a                	push   $0x2a
4100fa:	58                   	pop    %eax
4100fb:	66 3b f8             	cmp    %ax,%di
4100fe:	74 0d                	je     0x41010d
410100:	8d 46 20             	lea    0x20(%esi),%eax
410103:	50                   	push   %eax
410104:	8b ce                	mov    %esi,%ecx
410106:	e8 57 f6 ff ff       	call   0x40f762
41010b:	eb 59                	jmp    0x410166
41010d:	8b 4e 10             	mov    0x10(%esi),%ecx
410110:	8d 41 04             	lea    0x4(%ecx),%eax
410113:	89 46 10             	mov    %eax,0x10(%esi)
410116:	8b 01                	mov    (%ecx),%eax
410118:	89 46 20             	mov    %eax,0x20(%esi)
41011b:	85 c0                	test   %eax,%eax
41011d:	79 09                	jns    0x410128
41011f:	83 4e 1c 04          	orl    $0x4,0x1c(%esi)
410123:	f7 d8                	neg    %eax
410125:	89 46 20             	mov    %eax,0x20(%esi)
410128:	b0 01                	mov    $0x1,%al
41012a:	eb 3a                	jmp    0x410166
41012c:	89 5e 24             	mov    %ebx,0x24(%esi)
41012f:	eb 3d                	jmp    0x41016e
410131:	6a 2a                	push   $0x2a
410133:	58                   	pop    %eax
410134:	66 3b f8             	cmp    %ax,%di
410137:	74 05                	je     0x41013e
410139:	8d 46 24             	lea    0x24(%esi),%eax
41013c:	eb c5                	jmp    0x410103
41013e:	8b 4e 10             	mov    0x10(%esi),%ecx
410141:	8d 41 04             	lea    0x4(%ecx),%eax
410144:	89 46 10             	mov    %eax,0x10(%esi)
410147:	8b 01                	mov    (%ecx),%eax
410149:	89 46 24             	mov    %eax,0x24(%esi)
41014c:	85 c0                	test   %eax,%eax
41014e:	79 d8                	jns    0x410128
410150:	83 4e 24 ff          	orl    $0xffffffff,0x24(%esi)
410154:	eb d2                	jmp    0x410128
410156:	8b ce                	mov    %esi,%ecx
410158:	e8 31 03 00 00       	call   0x41048e
41015d:	eb 07                	jmp    0x410166
41015f:	8b ce                	mov    %esi,%ecx
410161:	e8 53 0b 00 00       	call   0x410cb9
410166:	84 c0                	test   %al,%al
410168:	0f 84 72 fe ff ff    	je     0x40ffe0
41016e:	8b 46 0c             	mov    0xc(%esi),%eax
410171:	0f b7 08             	movzwl (%eax),%ecx
410174:	8d 50 02             	lea    0x2(%eax),%edx
410177:	89 56 0c             	mov    %edx,0xc(%esi)
41017a:	8b f9                	mov    %ecx,%edi
41017c:	66 89 4e 2e          	mov    %cx,0x2e(%esi)
410180:	8d 46 14             	lea    0x14(%esi),%eax
410183:	66 85 c9             	test   %cx,%cx
410186:	0f 85 94 fe ff ff    	jne    0x410020
41018c:	ff 86 50 04 00 00    	incl   0x450(%esi)
410192:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
410199:	0f 85 60 fe ff ff    	jne    0x40ffff
41019f:	8b 46 14             	mov    0x14(%esi),%eax
4101a2:	e9 3c fe ff ff       	jmp    0x40ffe3
4101a7:	8b 4e 08             	mov    0x8(%esi),%ecx
4101aa:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
4101ae:	c7 41 18 16 00 00 00 	movl   $0x16,0x18(%ecx)
4101b5:	e9 16 fe ff ff       	jmp    0x40ffd0
4101ba:	8b ff                	mov    %edi,%edi
4101bc:	51                   	push   %ecx
4101bd:	00 41 00             	add    %al,0x0(%ecx)
4101c0:	98                   	cwtl
4101c1:	00 41 00             	add    %al,0x0(%ecx)
4101c4:	b0 00                	mov    $0x0,%al
4101c6:	41                   	inc    %ecx
4101c7:	00 f8                	add    %bh,%al
4101c9:	00 41 00             	add    %al,0x0(%ecx)
4101cc:	2c 01                	sub    $0x1,%al
4101ce:	41                   	inc    %ecx
4101cf:	00 31                	add    %dh,(%ecx)
4101d1:	01 41 00             	add    %eax,0x0(%ecx)
4101d4:	56                   	push   %esi
4101d5:	01 41 00             	add    %eax,0x0(%ecx)
4101d8:	5f                   	pop    %edi
4101d9:	01 41 00             	add    %eax,0x0(%ecx)
4101dc:	8a 41 2d             	mov    0x2d(%ecx),%al
4101df:	3c 46                	cmp    $0x46,%al
4101e1:	75 17                	jne    0x4101fa
4101e3:	8b 01                	mov    (%ecx),%eax
4101e5:	83 e0 08             	and    $0x8,%eax
4101e8:	83 c8 00             	or     $0x0,%eax
4101eb:	0f 85 41 01 00 00    	jne    0x410332
4101f1:	c6 41 18 07          	movb   $0x7,0x18(%ecx)
4101f5:	e9 1e 04 00 00       	jmp    0x410618
4101fa:	33 d2                	xor    %edx,%edx
4101fc:	3c 4e                	cmp    $0x4e,%al
4101fe:	75 34                	jne    0x410234
410200:	8b 01                	mov    (%ecx),%eax
410202:	83 e0 08             	and    $0x8,%eax
410205:	0b c2                	or     %edx,%eax
410207:	0f 85 25 01 00 00    	jne    0x410332
41020d:	c6 41 18 08          	movb   $0x8,0x18(%ecx)
410211:	8b 41 08             	mov    0x8(%ecx),%eax
410214:	83 c0 18             	add    $0x18,%eax
410217:	c6 40 04 01          	movb   $0x1,0x4(%eax)
41021b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
410221:	ff 71 08             	push   0x8(%ecx)
410224:	52                   	push   %edx
410225:	52                   	push   %edx
410226:	52                   	push   %edx
410227:	52                   	push   %edx
410228:	52                   	push   %edx
410229:	e8 43 d1 ff ff       	call   0x40d371
41022e:	83 c4 18             	add    $0x18,%esp
410231:	32 c0                	xor    %al,%al
410233:	c3                   	ret
410234:	39 51 28             	cmp    %edx,0x28(%ecx)
410237:	75 d8                	jne    0x410211
410239:	3c 6a                	cmp    $0x6a,%al
41023b:	0f 8f b0 00 00 00    	jg     0x4102f1
410241:	0f 84 a1 00 00 00    	je     0x4102e8
410247:	3c 49                	cmp    $0x49,%al
410249:	74 43                	je     0x41028e
41024b:	3c 4c                	cmp    $0x4c,%al
41024d:	74 33                	je     0x410282
41024f:	3c 54                	cmp    $0x54,%al
410251:	74 23                	je     0x410276
410253:	3c 68                	cmp    $0x68,%al
410255:	0f 85 d7 00 00 00    	jne    0x410332
41025b:	8b 41 0c             	mov    0xc(%ecx),%eax
41025e:	80 38 68             	cmpb   $0x68,(%eax)
410261:	75 0c                	jne    0x41026f
410263:	40                   	inc    %eax
410264:	89 41 0c             	mov    %eax,0xc(%ecx)
410267:	33 c0                	xor    %eax,%eax
410269:	40                   	inc    %eax
41026a:	e9 c0 00 00 00       	jmp    0x41032f
41026f:	6a 02                	push   $0x2
410271:	e9 b8 00 00 00       	jmp    0x41032e
410276:	c7 41 28 0d 00 00 00 	movl   $0xd,0x28(%ecx)
41027d:	e9 b0 00 00 00       	jmp    0x410332
410282:	c7 41 28 08 00 00 00 	movl   $0x8,0x28(%ecx)
410289:	e9 a4 00 00 00       	jmp    0x410332
41028e:	56                   	push   %esi
41028f:	8b 71 0c             	mov    0xc(%ecx),%esi
410292:	8a 06                	mov    (%esi),%al
410294:	3c 33                	cmp    $0x33,%al
410296:	75 15                	jne    0x4102ad
410298:	80 7e 01 32          	cmpb   $0x32,0x1(%esi)
41029c:	75 0f                	jne    0x4102ad
41029e:	8d 46 02             	lea    0x2(%esi),%eax
4102a1:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
4102a8:	89 41 0c             	mov    %eax,0xc(%ecx)
4102ab:	eb 38                	jmp    0x4102e5
4102ad:	3c 36                	cmp    $0x36,%al
4102af:	75 15                	jne    0x4102c6
4102b1:	80 7e 01 34          	cmpb   $0x34,0x1(%esi)
4102b5:	75 2e                	jne    0x4102e5
4102b7:	8d 46 02             	lea    0x2(%esi),%eax
4102ba:	c7 41 28 0b 00 00 00 	movl   $0xb,0x28(%ecx)
4102c1:	89 41 0c             	mov    %eax,0xc(%ecx)
4102c4:	eb 1f                	jmp    0x4102e5
4102c6:	3c 64                	cmp    $0x64,%al
4102c8:	74 14                	je     0x4102de
4102ca:	3c 69                	cmp    $0x69,%al
4102cc:	74 10                	je     0x4102de
4102ce:	3c 6f                	cmp    $0x6f,%al
4102d0:	74 0c                	je     0x4102de
4102d2:	3c 75                	cmp    $0x75,%al
4102d4:	74 08                	je     0x4102de
4102d6:	3c 78                	cmp    $0x78,%al
4102d8:	74 04                	je     0x4102de
4102da:	3c 58                	cmp    $0x58,%al
4102dc:	75 07                	jne    0x4102e5
4102de:	c7 41 28 09 00 00 00 	movl   $0x9,0x28(%ecx)
4102e5:	5e                   	pop    %esi
4102e6:	eb 4a                	jmp    0x410332
4102e8:	c7 41 28 05 00 00 00 	movl   $0x5,0x28(%ecx)
4102ef:	eb 41                	jmp    0x410332
4102f1:	3c 6c                	cmp    $0x6c,%al
4102f3:	74 27                	je     0x41031c
4102f5:	3c 74                	cmp    $0x74,%al
4102f7:	74 1a                	je     0x410313
4102f9:	3c 77                	cmp    $0x77,%al
4102fb:	74 0d                	je     0x41030a
4102fd:	3c 7a                	cmp    $0x7a,%al
4102ff:	75 31                	jne    0x410332
410301:	c7 41 28 06 00 00 00 	movl   $0x6,0x28(%ecx)
410308:	eb 28                	jmp    0x410332
41030a:	c7 41 28 0c 00 00 00 	movl   $0xc,0x28(%ecx)
410311:	eb 1f                	jmp    0x410332
410313:	c7 41 28 07 00 00 00 	movl   $0x7,0x28(%ecx)
41031a:	eb 16                	jmp    0x410332
41031c:	8b 41 0c             	mov    0xc(%ecx),%eax
41031f:	80 38 6c             	cmpb   $0x6c,(%eax)
410322:	75 08                	jne    0x41032c
410324:	40                   	inc    %eax
410325:	89 41 0c             	mov    %eax,0xc(%ecx)
410328:	6a 04                	push   $0x4
41032a:	eb 02                	jmp    0x41032e
41032c:	6a 03                	push   $0x3
41032e:	58                   	pop    %eax
41032f:	89 41 28             	mov    %eax,0x28(%ecx)
410332:	b0 01                	mov    $0x1,%al
410334:	c3                   	ret
410335:	8a 41 2d             	mov    0x2d(%ecx),%al
410338:	3c 46                	cmp    $0x46,%al
41033a:	75 17                	jne    0x410353
41033c:	8b 01                	mov    (%ecx),%eax
41033e:	83 e0 08             	and    $0x8,%eax
410341:	83 c8 00             	or     $0x0,%eax
410344:	0f 85 41 01 00 00    	jne    0x41048b
41034a:	c6 41 18 07          	movb   $0x7,0x18(%ecx)
41034e:	e9 07 06 00 00       	jmp    0x41095a
410353:	33 d2                	xor    %edx,%edx
410355:	3c 4e                	cmp    $0x4e,%al
410357:	75 34                	jne    0x41038d
410359:	8b 01                	mov    (%ecx),%eax
41035b:	83 e0 08             	and    $0x8,%eax
41035e:	0b c2                	or     %edx,%eax
410360:	0f 85 25 01 00 00    	jne    0x41048b
410366:	c6 41 18 08          	movb   $0x8,0x18(%ecx)
41036a:	8b 41 08             	mov    0x8(%ecx),%eax
41036d:	83 c0 18             	add    $0x18,%eax
410370:	c6 40 04 01          	movb   $0x1,0x4(%eax)
410374:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
41037a:	ff 71 08             	push   0x8(%ecx)
41037d:	52                   	push   %edx
41037e:	52                   	push   %edx
41037f:	52                   	push   %edx
410380:	52                   	push   %edx
410381:	52                   	push   %edx
410382:	e8 ea cf ff ff       	call   0x40d371