40fe5f:	8b 48 30             	mov    0x30(%eax),%ecx
40fe62:	8b 78 70             	mov    0x70(%eax),%edi
40fe65:	8b 98 88 00 00 00    	mov    0x88(%eax),%ebx
40fe6b:	89 5c 24 08          	mov    %ebx,0x8(%esp)
40fe6f:	03 ca                	add    %edx,%ecx
40fe71:	8b 58 24             	mov    0x24(%eax),%ebx
40fe74:	81 eb 06 01 00 00    	sub    $0x106,%ebx
40fe7a:	3b d3                	cmp    %ebx,%edx
40fe7c:	76 10                	jbe    0x40fe8e
40fe7e:	8b 50 24             	mov    0x24(%eax),%edx
40fe81:	81 ea 06 01 00 00    	sub    $0x106,%edx
40fe87:	8b 58 64             	mov    0x64(%eax),%ebx
40fe8a:	2b da                	sub    %edx,%ebx
40fe8c:	eb 02                	jmp    0x40fe90
40fe8e:	33 db                	xor    %ebx,%ebx
40fe90:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40fe94:	8b 50 38             	mov    0x38(%eax),%edx
40fe97:	89 54 24 10          	mov    %edx,0x10(%esp)
40fe9b:	8b 50 2c             	mov    0x2c(%eax),%edx
40fe9e:	89 54 24 14          	mov    %edx,0x14(%esp)
40fea2:	8b 50 30             	mov    0x30(%eax),%edx
40fea5:	8a 5c 39 ff          	mov    -0x1(%ecx,%edi,1),%bl
40fea9:	03 50 64             	add    0x64(%eax),%edx
40feac:	88 5c 24 18          	mov    %bl,0x18(%esp)
40feb0:	8a 1c 39             	mov    (%ecx,%edi,1),%bl
40feb3:	81 c2 02 01 00 00    	add    $0x102,%edx
40feb9:	88 5c 24 19          	mov    %bl,0x19(%esp)
40febd:	8b 58 70             	mov    0x70(%eax),%ebx
40fec0:	3b 98 84 00 00 00    	cmp    0x84(%eax),%ebx
40fec6:	72 05                	jb     0x40fecd
40fec8:	c1 6c 24 04 02       	shrl   $0x2,0x4(%esp)
40fecd:	8b 58 6c             	mov    0x6c(%eax),%ebx
40fed0:	3b 5c 24 08          	cmp    0x8(%esp),%ebx
40fed4:	73 04                	jae    0x40feda
40fed6:	89 5c 24 08          	mov    %ebx,0x8(%esp)
40feda:	8b 70 30             	mov    0x30(%eax),%esi
40fedd:	03 34 24             	add    (%esp),%esi
40fee0:	8a 1c 3e             	mov    (%esi,%edi,1),%bl
40fee3:	3a 5c 24 19          	cmp    0x19(%esp),%bl
40fee7:	0f 85 9c 00 00 00    	jne    0x40ff89
40feed:	8a 5c 3e ff          	mov    -0x1(%esi,%edi,1),%bl
40fef1:	3a 5c 24 18          	cmp    0x18(%esp),%bl
40fef5:	0f 85 8e 00 00 00    	jne    0x40ff89
40fefb:	8a 1e                	mov    (%esi),%bl
40fefd:	3a 19                	cmp    (%ecx),%bl
40feff:	0f 85 84 00 00 00    	jne    0x40ff89
40ff05:	46                   	inc    %esi
40ff06:	8a 1e                	mov    (%esi),%bl
40ff08:	3a 59 01             	cmp    0x1(%ecx),%bl
40ff0b:	75 7c                	jne    0x40ff89
40ff0d:	83 c1 02             	add    $0x2,%ecx
40ff10:	46                   	inc    %esi
40ff11:	41                   	inc    %ecx
40ff12:	46                   	inc    %esi
40ff13:	8a 19                	mov    (%ecx),%bl
40ff15:	3a 1e                	cmp    (%esi),%bl
40ff17:	75 3c                	jne    0x40ff55
40ff19:	41                   	inc    %ecx
40ff1a:	46                   	inc    %esi
40ff1b:	8a 19                	mov    (%ecx),%bl
40ff1d:	3a 1e                	cmp    (%esi),%bl
40ff1f:	75 34                	jne    0x40ff55
40ff21:	41                   	inc    %ecx
40ff22:	46                   	inc    %esi
40ff23:	8a 19                	mov    (%ecx),%bl
40ff25:	3a 1e                	cmp    (%esi),%bl
40ff27:	75 2c                	jne    0x40ff55
40ff29:	41                   	inc    %ecx
40ff2a:	46                   	inc    %esi
40ff2b:	8a 19                	mov    (%ecx),%bl
40ff2d:	3a 1e                	cmp    (%esi),%bl
40ff2f:	75 24                	jne    0x40ff55
40ff31:	41                   	inc    %ecx
40ff32:	46                   	inc    %esi
40ff33:	8a 19                	mov    (%ecx),%bl
40ff35:	3a 1e                	cmp    (%esi),%bl
40ff37:	75 1c                	jne    0x40ff55
40ff39:	41                   	inc    %ecx
40ff3a:	46                   	inc    %esi
40ff3b:	8a 19                	mov    (%ecx),%bl
40ff3d:	3a 1e                	cmp    (%esi),%bl
40ff3f:	75 14                	jne    0x40ff55
40ff41:	41                   	inc    %ecx
40ff42:	46                   	inc    %esi
40ff43:	8a 19                	mov    (%ecx),%bl
40ff45:	3a 1e                	cmp    (%esi),%bl
40ff47:	75 0c                	jne    0x40ff55
40ff49:	41                   	inc    %ecx
40ff4a:	46                   	inc    %esi
40ff4b:	8a 19                	mov    (%ecx),%bl
40ff4d:	3a 1e                	cmp    (%esi),%bl
40ff4f:	75 04                	jne    0x40ff55
40ff51:	3b d1                	cmp    %ecx,%edx
40ff53:	77 bc                	ja     0x40ff11
40ff55:	8b da                	mov    %edx,%ebx
40ff57:	2b d9                	sub    %ecx,%ebx
40ff59:	53                   	push   %ebx
40ff5a:	bb 02 01 00 00       	mov    $0x102,%ebx
40ff5f:	59                   	pop    %ecx
40ff60:	2b d9                	sub    %ecx,%ebx
40ff62:	8d 8a fe fe ff ff    	lea    -0x102(%edx),%ecx
40ff68:	3b fb                	cmp    %ebx,%edi
40ff6a:	7d 1d                	jge    0x40ff89
40ff6c:	8b 34 24             	mov    (%esp),%esi
40ff6f:	89 70 68             	mov    %esi,0x68(%eax)
40ff72:	8b fb                	mov    %ebx,%edi
40ff74:	3b 5c 24 08          	cmp    0x8(%esp),%ebx
40ff78:	7d 31                	jge    0x40ffab
40ff7a:	8a 5c 39 ff          	mov    -0x1(%ecx,%edi,1),%bl
40ff7e:	88 5c 24 18          	mov    %bl,0x18(%esp)
40ff82:	8a 1c 39             	mov    (%ecx,%edi,1),%bl
40ff85:	88 5c 24 19          	mov    %bl,0x19(%esp)
40ff89:	8b 1c 24             	mov    (%esp),%ebx
40ff8c:	23 5c 24 14          	and    0x14(%esp),%ebx
40ff90:	8b 74 24 10          	mov    0x10(%esp),%esi
40ff94:	0f b7 1c 5e          	movzwl (%esi,%ebx,2),%ebx
40ff98:	89 1c 24             	mov    %ebx,(%esp)
40ff9b:	3b 5c 24 0c          	cmp    0xc(%esp),%ebx
40ff9f:	76 0a                	jbe    0x40ffab
40ffa1:	ff 4c 24 04          	decl   0x4(%esp)
40ffa5:	0f 85 2f ff ff ff    	jne    0x40feda
40ffab:	8b 50 6c             	mov    0x6c(%eax),%edx
40ffae:	8b cf                	mov    %edi,%ecx
40ffb0:	3b d1                	cmp    %ecx,%edx
40ffb2:	72 04                	jb     0x40ffb8
40ffb4:	8b c1                	mov    %ecx,%eax
40ffb6:	eb 02                	jmp    0x40ffba
40ffb8:	8b c2                	mov    %edx,%eax
40ffba:	83 c4 1c             	add    $0x1c,%esp
40ffbd:	5f                   	pop    %edi
40ffbe:	5e                   	pop    %esi
40ffbf:	5b                   	pop    %ebx
40ffc0:	c3                   	ret
40ffc1:	90                   	nop
40ffc2:	90                   	nop
40ffc3:	90                   	nop
40ffc4:	53                   	push   %ebx
40ffc5:	56                   	push   %esi
40ffc6:	57                   	push   %edi
40ffc7:	8b d8                	mov    %eax,%ebx
40ffc9:	55                   	push   %ebp
40ffca:	51                   	push   %ecx
40ffcb:	8b 73 24             	mov    0x24(%ebx),%esi
40ffce:	8b 7b 34             	mov    0x34(%ebx),%edi
40ffd1:	2b 7b 6c             	sub    0x6c(%ebx),%edi
40ffd4:	2b 7b 64             	sub    0x64(%ebx),%edi
40ffd7:	85 ff                	test   %edi,%edi
40ffd9:	75 13                	jne    0x40ffee
40ffdb:	83 7b 64 00          	cmpl   $0x0,0x64(%ebx)
40ffdf:	75 0d                	jne    0x40ffee
40ffe1:	83 7b 6c 00          	cmpl   $0x0,0x6c(%ebx)
40ffe5:	75 07                	jne    0x40ffee
40ffe7:	8b fe                	mov    %esi,%edi
40ffe9:	e9 87 00 00 00       	jmp    0x410075
40ffee:	83 ff ff             	cmp    $0xffffffff,%edi
40fff1:	75 03                	jne    0x40fff6
40fff3:	4f                   	dec    %edi
40fff4:	eb 7f                	jmp    0x410075
40fff6:	8b 43 24             	mov    0x24(%ebx),%eax
40fff9:	2d 06 01 00 00       	sub    $0x106,%eax
40fffe:	03 c6                	add    %esi,%eax
410000:	3b 43 64             	cmp    0x64(%ebx),%eax
410003:	77 70                	ja     0x410075
410005:	56                   	push   %esi
410006:	8b 43 30             	mov    0x30(%ebx),%eax
410009:	8b d0                	mov    %eax,%edx
41000b:	8b ee                	mov    %esi,%ebp
41000d:	03 d5                	add    %ebp,%edx
41000f:	52                   	push   %edx
410010:	50                   	push   %eax
410011:	e8 8e f3 ff ff       	call   0x40f3a4
410016:	83 c4 0c             	add    $0xc,%esp
410019:	29 73 68             	sub    %esi,0x68(%ebx)
41001c:	29 73 64             	sub    %esi,0x64(%ebx)
41001f:	29 6b 54             	sub    %ebp,0x54(%ebx)
410022:	8b 43 44             	mov    0x44(%ebx),%eax
410025:	8b d0                	mov    %eax,%edx
410027:	03 d2                	add    %edx,%edx
410029:	03 53 3c             	add    0x3c(%ebx),%edx
41002c:	83 ea 02             	sub    $0x2,%edx
41002f:	0f b7 0a             	movzwl (%edx),%ecx
410032:	89 0c 24             	mov    %ecx,(%esp)
410035:	3b 34 24             	cmp    (%esp),%esi
410038:	77 09                	ja     0x410043
41003a:	66 8b 0c 24          	mov    (%esp),%cx
41003e:	66 2b ce             	sub    %si,%cx
410041:	eb 02                	jmp    0x410045
410043:	33 c9                	xor    %ecx,%ecx
410045:	66 89 0a             	mov    %cx,(%edx)
410048:	48                   	dec    %eax
410049:	75 e1                	jne    0x41002c
41004b:	8b c6                	mov    %esi,%eax
41004d:	8b d0                	mov    %eax,%edx
41004f:	03 d2                	add    %edx,%edx
410051:	03 53 38             	add    0x38(%ebx),%edx
410054:	83 ea 02             	sub    $0x2,%edx
410057:	0f b7 0a             	movzwl (%edx),%ecx
41005a:	89 0c 24             	mov    %ecx,(%esp)
41005d:	3b 34 24             	cmp    (%esp),%esi
410060:	77 09                	ja     0x41006b
410062:	66 8b 0c 24          	mov    (%esp),%cx
410066:	66 2b ce             	sub    %si,%cx
410069:	eb 02                	jmp    0x41006d
41006b:	33 c9                	xor    %ecx,%ecx
41006d:	66 89 0a             	mov    %cx,(%edx)
410070:	48                   	dec    %eax
410071:	75 e1                	jne    0x410054
410073:	03 fe                	add    %esi,%edi
410075:	8b 2b                	mov    (%ebx),%ebp
410077:	83 7d 04 00          	cmpl   $0x0,0x4(%ebp)
41007b:	74 55                	je     0x4100d2
41007d:	8b 53 30             	mov    0x30(%ebx),%edx
410080:	8b cf                	mov    %edi,%ecx
410082:	03 53 64             	add    0x64(%ebx),%edx
410085:	8b c5                	mov    %ebp,%eax
410087:	03 53 6c             	add    0x6c(%ebx),%edx
41008a:	e8 d1 fc ff ff       	call   0x40fd60
41008f:	01 43 6c             	add    %eax,0x6c(%ebx)
410092:	83 7b 6c 03          	cmpl   $0x3,0x6c(%ebx)
410096:	72 25                	jb     0x4100bd
410098:	8b 43 30             	mov    0x30(%ebx),%eax
41009b:	8b 53 64             	mov    0x64(%ebx),%edx
41009e:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
4100a2:	89 43 40             	mov    %eax,0x40(%ebx)
4100a5:	8b 4b 50             	mov    0x50(%ebx),%ecx
4100a8:	d3 e0                	shl    %cl,%eax
4100aa:	8b 53 30             	mov    0x30(%ebx),%edx
4100ad:	8b 4b 64             	mov    0x64(%ebx),%ecx
4100b0:	0f b6 54 0a 01       	movzbl 0x1(%edx,%ecx,1),%edx
4100b5:	33 c2                	xor    %edx,%eax
4100b7:	23 43 4c             	and    0x4c(%ebx),%eax
4100ba:	89 43 40             	mov    %eax,0x40(%ebx)
4100bd:	81 7b 6c 06 01 00 00 	cmpl   $0x106,0x6c(%ebx)
4100c4:	73 0c                	jae    0x4100d2
4100c6:	8b 03                	mov    (%ebx),%eax
4100c8:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4100cc:	0f 85 fc fe ff ff    	jne    0x40ffce
4100d2:	5a                   	pop    %edx
4100d3:	5d                   	pop    %ebp
4100d4:	5f                   	pop    %edi
4100d5:	5e                   	pop    %esi
4100d6:	5b                   	pop    %ebx
4100d7:	c3                   	ret
4100d8:	53                   	push   %ebx
4100d9:	8b d8                	mov    %eax,%ebx
4100db:	56                   	push   %esi
4100dc:	51                   	push   %ecx
4100dd:	89 14 24             	mov    %edx,(%esp)
4100e0:	be ff ff 00 00       	mov    $0xffff,%esi
4100e5:	8b 43 0c             	mov    0xc(%ebx),%eax
4100e8:	83 e8 05             	sub    $0x5,%eax
4100eb:	3b f0                	cmp    %eax,%esi
4100ed:	76 02                	jbe    0x4100f1
4100ef:	8b f0                	mov    %eax,%esi
4100f1:	83 7b 6c 01          	cmpl   $0x1,0x6c(%ebx)
4100f5:	77 23                	ja     0x41011a
4100f7:	8b c3                	mov    %ebx,%eax
4100f9:	e8 c6 fe ff ff       	call   0x40ffc4
4100fe:	8b 43 6c             	mov    0x6c(%ebx),%eax
410101:	85 c0                	test   %eax,%eax
410103:	75 0d                	jne    0x410112
410105:	83 3c 24 00          	cmpl   $0x0,(%esp)
410109:	75 07                	jne    0x410112
41010b:	33 c0                	xor    %eax,%eax
41010d:	e9 19 01 00 00       	jmp    0x41022b
410112:	85 c0                	test   %eax,%eax
410114:	0f 84 b1 00 00 00    	je     0x4101cb
41011a:	8b 53 6c             	mov    0x6c(%ebx),%edx
41011d:	33 c9                	xor    %ecx,%ecx
41011f:	01 53 64             	add    %edx,0x64(%ebx)
410122:	89 4b 6c             	mov    %ecx,0x6c(%ebx)
410125:	8b 43 54             	mov    0x54(%ebx),%eax
410128:	8b 53 64             	mov    0x64(%ebx),%edx
41012b:	03 c6                	add    %esi,%eax
41012d:	85 d2                	test   %edx,%edx
41012f:	74 04                	je     0x410135
410131:	3b c2                	cmp    %edx,%eax
410133:	77 43                	ja     0x410178
410135:	2b d0                	sub    %eax,%edx
410137:	89 53 6c             	mov    %edx,0x6c(%ebx)
41013a:	89 43 64             	mov    %eax,0x64(%ebx)
41013d:	6a 00                	push   $0x0
41013f:	8b 4b 64             	mov    0x64(%ebx),%ecx
410142:	2b 4b 54             	sub    0x54(%ebx),%ecx
410145:	83 7b 54 00          	cmpl   $0x0,0x54(%ebx)
410149:	7c 08                	jl     0x410153
41014b:	8b 53 30             	mov    0x30(%ebx),%edx
41014e:	03 53 54             	add    0x54(%ebx),%edx
410151:	eb 02                	jmp    0x410155
410153:	33 d2                	xor    %edx,%edx
410155:	8b c3                	mov    %ebx,%eax
410157:	e8 2c 1c 00 00       	call   0x411d88
41015c:	8b 4b 64             	mov    0x64(%ebx),%ecx
41015f:	89 4b 54             	mov    %ecx,0x54(%ebx)
410162:	8b 03                	mov    (%ebx),%eax
410164:	e8 e7 f6 ff ff       	call   0x40f850
410169:	8b 13                	mov    (%ebx),%edx
41016b:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
41016f:	75 07                	jne    0x410178
410171:	33 c0                	xor    %eax,%eax
410173:	e9 b3 00 00 00       	jmp    0x41022b
410178:	8b 53 64             	mov    0x64(%ebx),%edx
41017b:	8b 43 54             	mov    0x54(%ebx),%eax
41017e:	2b d0                	sub    %eax,%edx
410180:	8b 4b 24             	mov    0x24(%ebx),%ecx
410183:	81 e9 06 01 00 00    	sub    $0x106,%ecx
410189:	3b d1                	cmp    %ecx,%edx
41018b:	0f 82 60 ff ff ff    	jb     0x4100f1
410191:	6a 00                	push   $0x0
410193:	8b 4b 64             	mov    0x64(%ebx),%ecx
410196:	2b 4b 54             	sub    0x54(%ebx),%ecx
410199:	85 c0                	test   %eax,%eax
41019b:	7c 08                	jl     0x4101a5
41019d:	8b 53 30             	mov    0x30(%ebx),%edx
4101a0:	03 53 54             	add    0x54(%ebx),%edx
4101a3:	eb 02                	jmp    0x4101a7
4101a5:	33 d2                	xor    %edx,%edx
4101a7:	8b c3                	mov    %ebx,%eax
4101a9:	e8 da 1b 00 00       	call   0x411d88
4101ae:	8b 4b 64             	mov    0x64(%ebx),%ecx
4101b1:	89 4b 54             	mov    %ecx,0x54(%ebx)
4101b4:	8b 03                	mov    (%ebx),%eax
4101b6:	e8 95 f6 ff ff       	call   0x40f850
4101bb:	8b 13                	mov    (%ebx),%edx
4101bd:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
4101c1:	0f 85 2a ff ff ff    	jne    0x4100f1
4101c7:	33 c0                	xor    %eax,%eax
4101c9:	eb 60                	jmp    0x41022b
4101cb:	83 3c 24 04          	cmpl   $0x4,(%esp)
4101cf:	0f 94 c2             	sete   %dl
4101d2:	83 e2 01             	and    $0x1,%edx
4101d5:	52                   	push   %edx
4101d6:	8b 4b 64             	mov    0x64(%ebx),%ecx
4101d9:	2b 4b 54             	sub    0x54(%ebx),%ecx
4101dc:	83 7b 54 00          	cmpl   $0x0,0x54(%ebx)
4101e0:	7c 08                	jl     0x4101ea
4101e2:	8b 53 30             	mov    0x30(%ebx),%edx
4101e5:	03 53 54             	add    0x54(%ebx),%edx
4101e8:	eb 02                	jmp    0x4101ec
4101ea:	33 d2                	xor    %edx,%edx
4101ec:	8b c3                	mov    %ebx,%eax
4101ee:	e8 95 1b 00 00       	call   0x411d88
4101f3:	8b 4b 64             	mov    0x64(%ebx),%ecx
4101f6:	89 4b 54             	mov    %ecx,0x54(%ebx)
4101f9:	8b 03                	mov    (%ebx),%eax
4101fb:	e8 50 f6 ff ff       	call   0x40f850
410200:	8b 13                	mov    (%ebx),%edx
410202:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
410206:	75 11                	jne    0x410219
410208:	83 3c 24 04          	cmpl   $0x4,(%esp)