40fc7f:	8b e8                	mov    %eax,%ebp
40fc81:	89 6b 08             	mov    %ebp,0x8(%ebx)
40fc84:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
40fc88:	74 12                	je     0x40fc9c
40fc8a:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
40fc8e:	74 0c                	je     0x40fc9c
40fc90:	83 7b 3c 00          	cmpl   $0x0,0x3c(%ebx)
40fc94:	74 06                	je     0x40fc9c
40fc96:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40fc9a:	75 11                	jne    0x40fcad
40fc9c:	8b c6                	mov    %esi,%eax
40fc9e:	e8 85 fe ff ff       	call   0x40fb28
40fca3:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
40fca8:	e9 ac 00 00 00       	jmp    0x40fd59
40fcad:	8b 53 24             	mov    0x24(%ebx),%edx
40fcb0:	03 d2                	add    %edx,%edx
40fcb2:	52                   	push   %edx
40fcb3:	8b 4f 30             	mov    0x30(%edi),%ecx
40fcb6:	51                   	push   %ecx
40fcb7:	8b 43 30             	mov    0x30(%ebx),%eax
40fcba:	50                   	push   %eax
40fcbb:	e8 e4 f6 ff ff       	call   0x40f3a4
40fcc0:	83 c4 0c             	add    $0xc,%esp
40fcc3:	8b 53 24             	mov    0x24(%ebx),%edx
40fcc6:	03 d2                	add    %edx,%edx
40fcc8:	52                   	push   %edx
40fcc9:	8b 4f 38             	mov    0x38(%edi),%ecx
40fccc:	51                   	push   %ecx
40fccd:	8b 43 38             	mov    0x38(%ebx),%eax
40fcd0:	50                   	push   %eax
40fcd1:	e8 ce f6 ff ff       	call   0x40f3a4
40fcd6:	83 c4 0c             	add    $0xc,%esp
40fcd9:	8b 53 44             	mov    0x44(%ebx),%edx
40fcdc:	03 d2                	add    %edx,%edx
40fcde:	52                   	push   %edx
40fcdf:	8b 4f 3c             	mov    0x3c(%edi),%ecx
40fce2:	51                   	push   %ecx
40fce3:	8b 43 3c             	mov    0x3c(%ebx),%eax
40fce6:	50                   	push   %eax
40fce7:	e8 b8 f6 ff ff       	call   0x40f3a4
40fcec:	83 c4 0c             	add    $0xc,%esp
40fcef:	8b 53 0c             	mov    0xc(%ebx),%edx
40fcf2:	52                   	push   %edx
40fcf3:	8b 4f 08             	mov    0x8(%edi),%ecx
40fcf6:	51                   	push   %ecx
40fcf7:	8b 43 08             	mov    0x8(%ebx),%eax
40fcfa:	50                   	push   %eax
40fcfb:	e8 a4 f6 ff ff       	call   0x40f3a4
40fd00:	8b 57 10             	mov    0x10(%edi),%edx
40fd03:	83 c4 0c             	add    $0xc,%esp
40fd06:	2b 57 08             	sub    0x8(%edi),%edx
40fd09:	03 53 08             	add    0x8(%ebx),%edx
40fd0c:	89 53 10             	mov    %edx,0x10(%ebx)
40fd0f:	8d 93 8c 00 00 00    	lea    0x8c(%ebx),%edx
40fd15:	8b 8b 94 16 00 00    	mov    0x1694(%ebx),%ecx
40fd1b:	d1 e9                	shr    $1,%ecx
40fd1d:	03 c9                	add    %ecx,%ecx
40fd1f:	03 e9                	add    %ecx,%ebp
40fd21:	8d 8b 80 09 00 00    	lea    0x980(%ebx),%ecx
40fd27:	89 ab 9c 16 00 00    	mov    %ebp,0x169c(%ebx)
40fd2d:	8b 83 94 16 00 00    	mov    0x1694(%ebx),%eax
40fd33:	8d 04 40             	lea    (%eax,%eax,2),%eax
40fd36:	03 43 08             	add    0x8(%ebx),%eax
40fd39:	89 83 90 16 00 00    	mov    %eax,0x1690(%ebx)
40fd3f:	89 93 10 0b 00 00    	mov    %edx,0xb10(%ebx)
40fd45:	8d 83 74 0a 00 00    	lea    0xa74(%ebx),%eax
40fd4b:	89 8b 1c 0b 00 00    	mov    %ecx,0xb1c(%ebx)
40fd51:	89 83 28 0b 00 00    	mov    %eax,0xb28(%ebx)
40fd57:	33 c0                	xor    %eax,%eax
40fd59:	5a                   	pop    %edx
40fd5a:	5d                   	pop    %ebp
40fd5b:	5f                   	pop    %edi
40fd5c:	5e                   	pop    %esi
40fd5d:	5b                   	pop    %ebx
40fd5e:	c3                   	ret
40fd5f:	90                   	nop
40fd60:	53                   	push   %ebx
40fd61:	56                   	push   %esi
40fd62:	8b f0                	mov    %eax,%esi
40fd64:	57                   	push   %edi
40fd65:	8b fa                	mov    %edx,%edi
40fd67:	8b 5e 04             	mov    0x4(%esi),%ebx
40fd6a:	3b cb                	cmp    %ebx,%ecx
40fd6c:	73 02                	jae    0x40fd70
40fd6e:	8b d9                	mov    %ecx,%ebx
40fd70:	85 db                	test   %ebx,%ebx
40fd72:	75 04                	jne    0x40fd78
40fd74:	33 c0                	xor    %eax,%eax
40fd76:	eb 2f                	jmp    0x40fda7
40fd78:	29 5e 04             	sub    %ebx,0x4(%esi)
40fd7b:	8b 56 1c             	mov    0x1c(%esi),%edx
40fd7e:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
40fd82:	75 0f                	jne    0x40fd93
40fd84:	8b cb                	mov    %ebx,%ecx
40fd86:	8b 16                	mov    (%esi),%edx
40fd88:	8b 46 30             	mov    0x30(%esi),%eax
40fd8b:	e8 58 37 00 00       	call   0x4134e8
40fd90:	89 46 30             	mov    %eax,0x30(%esi)
40fd93:	53                   	push   %ebx
40fd94:	8b 0e                	mov    (%esi),%ecx
40fd96:	51                   	push   %ecx
40fd97:	57                   	push   %edi
40fd98:	e8 07 f6 ff ff       	call   0x40f3a4
40fd9d:	83 c4 0c             	add    $0xc,%esp
40fda0:	8b c3                	mov    %ebx,%eax
40fda2:	01 06                	add    %eax,(%esi)
40fda4:	01 5e 08             	add    %ebx,0x8(%esi)
40fda7:	5f                   	pop    %edi
40fda8:	5e                   	pop    %esi
40fda9:	5b                   	pop    %ebx
40fdaa:	c3                   	ret
40fdab:	90                   	nop
40fdac:	53                   	push   %ebx
40fdad:	8b d8                	mov    %eax,%ebx
40fdaf:	8b 43 24             	mov    0x24(%ebx),%eax
40fdb2:	03 c0                	add    %eax,%eax
40fdb4:	89 43 34             	mov    %eax,0x34(%ebx)
40fdb7:	8b 53 3c             	mov    0x3c(%ebx),%edx
40fdba:	8b 4b 44             	mov    0x44(%ebx),%ecx
40fdbd:	66 c7 44 4a fe 00 00 	movw   $0x0,-0x2(%edx,%ecx,2)
40fdc4:	8b 43 44             	mov    0x44(%ebx),%eax
40fdc7:	48                   	dec    %eax
40fdc8:	03 c0                	add    %eax,%eax
40fdca:	50                   	push   %eax
40fdcb:	6a 00                	push   $0x0
40fdcd:	8b 53 3c             	mov    0x3c(%ebx),%edx
40fdd0:	52                   	push   %edx
40fdd1:	e8 ba f5 ff ff       	call   0x40f390
40fdd6:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
40fdd9:	83 c4 0c             	add    $0xc,%esp
40fddc:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
40fddf:	0f b7 04 8d f2 64 42 	movzwl 0x4264f2(,%ecx,4),%eax
40fde6:	00
40fde7:	89 43 78             	mov    %eax,0x78(%ebx)
40fdea:	8b 53 7c             	mov    0x7c(%ebx),%edx
40fded:	8d 14 52             	lea    (%edx,%edx,2),%edx
40fdf0:	0f b7 0c 95 f0 64 42 	movzwl 0x4264f0(,%edx,4),%ecx
40fdf7:	00
40fdf8:	89 8b 84 00 00 00    	mov    %ecx,0x84(%ebx)
40fdfe:	8b 43 7c             	mov    0x7c(%ebx),%eax
40fe01:	8d 04 40             	lea    (%eax,%eax,2),%eax
40fe04:	0f b7 14 85 f4 64 42 	movzwl 0x4264f4(,%eax,4),%edx
40fe0b:	00
40fe0c:	89 93 88 00 00 00    	mov    %edx,0x88(%ebx)
40fe12:	33 d2                	xor    %edx,%edx
40fe14:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
40fe17:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
40fe1a:	0f b7 04 8d f6 64 42 	movzwl 0x4264f6(,%ecx,4),%eax
40fe21:	00
40fe22:	89 43 74             	mov    %eax,0x74(%ebx)
40fe25:	89 53 64             	mov    %edx,0x64(%ebx)
40fe28:	33 c9                	xor    %ecx,%ecx
40fe2a:	33 c0                	xor    %eax,%eax
40fe2c:	89 4b 54             	mov    %ecx,0x54(%ebx)
40fe2f:	89 43 6c             	mov    %eax,0x6c(%ebx)
40fe32:	ba 02 00 00 00       	mov    $0x2,%edx
40fe37:	33 c0                	xor    %eax,%eax
40fe39:	89 53 70             	mov    %edx,0x70(%ebx)
40fe3c:	89 53 58             	mov    %edx,0x58(%ebx)
40fe3f:	89 43 60             	mov    %eax,0x60(%ebx)
40fe42:	33 c9                	xor    %ecx,%ecx
40fe44:	89 4b 40             	mov    %ecx,0x40(%ebx)
40fe47:	5b                   	pop    %ebx
40fe48:	c3                   	ret
40fe49:	90                   	nop
40fe4a:	90                   	nop
40fe4b:	90                   	nop
40fe4c:	53                   	push   %ebx
40fe4d:	56                   	push   %esi
40fe4e:	57                   	push   %edi
40fe4f:	83 c4 e4             	add    $0xffffffe4,%esp
40fe52:	89 14 24             	mov    %edx,(%esp)
40fe55:	8b 50 74             	mov    0x74(%eax),%edx
40fe58:	89 54 24 04          	mov    %edx,0x4(%esp)
40fe5c:	8b 50 64             	mov    0x64(%eax),%edx
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)