40fdee:	40                   	inc    %eax
40fdef:	00 96 f8 40 00 ff    	add    %dl,-0xffbf08(%esi)
40fdf5:	fc                   	cld
40fdf6:	40                   	inc    %eax
40fdf7:	00 ff                	add    %bh,%bh
40fdf9:	fc                   	cld
40fdfa:	40                   	inc    %eax
40fdfb:	00 b3 8c 47 00 be    	add    %dh,-0x41ffb874(%ebx)
40fe01:	8c 47 00             	mov    %es,0x0(%edi)
40fe04:	c7 f8 40 00 92 fc    	xbegin 0xfcd2fe4a
40fe0a:	40                   	inc    %eax
40fe0b:	00 e9                	add    %ch,%cl
40fe0d:	8c 47 00             	mov    %es,0x0(%edi)
40fe10:	0f fd 40 00          	paddw  0x0(%eax),%mm0
40fe14:	0f fd 40 00          	paddw  0x0(%eax),%mm0
40fe18:	c7 f8 40 00 0f fd    	xbegin 0xfd4ffe5e
40fe1e:	40                   	inc    %eax
40fe1f:	00 28                	add    %ch,(%eax)
40fe21:	8d 47 00             	lea    0x0(%edi),%eax
40fe24:	07                   	pop    %es
40fe25:	fd                   	std
40fe26:	40                   	inc    %eax
40fe27:	00 36                	add    %dh,(%esi)
40fe29:	8d 47 00             	lea    0x0(%edi),%eax
40fe2c:	cc                   	int3
40fe2d:	cc                   	int3
40fe2e:	cc                   	int3
40fe2f:	cc                   	int3
40fe30:	55                   	push   %ebp
40fe31:	8b ec                	mov    %esp,%ebp
40fe33:	83 e4 f8             	and    $0xfffffff8,%esp
40fe36:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
40fe3c:	a1 1c 22 4c 00       	mov    0x4c221c,%eax
40fe41:	53                   	push   %ebx
40fe42:	56                   	push   %esi
40fe43:	57                   	push   %edi
40fe44:	89 4c 24 14          	mov    %ecx,0x14(%esp)
40fe48:	a8 01                	test   $0x1,%al
40fe4a:	0f 84 7f 15 00 00    	je     0x4113cf
40fe50:	8b 7d 10             	mov    0x10(%ebp),%edi
40fe53:	33 c0                	xor    %eax,%eax
40fe55:	6a 08                	push   $0x8
40fe57:	66 c7 44 24 60 01 00 	movw   $0x1,0x60(%esp)
40fe5e:	89 7c 24 24          	mov    %edi,0x24(%esp)
40fe62:	c7 44 24 28 00 00 00 	movl   $0x0,0x28(%esp)
40fe69:	00
40fe6a:	89 44 24 14          	mov    %eax,0x14(%esp)
40fe6e:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40fe72:	66 c7 44 24 30 01 00 	movw   $0x1,0x30(%esp)
40fe79:	e8 6c f6 00 00       	call   0x41f4ea
40fe7e:	8b d8                	mov    %eax,%ebx
40fe80:	83 c4 04             	add    $0x4,%esp
40fe83:	89 44 24 34          	mov    %eax,0x34(%esp)
40fe87:	85 db                	test   %ebx,%ebx
40fe89:	0f 84 7d 16 00 00    	je     0x41150c
40fe8f:	c7 03 14 00 00 00    	movl   $0x14,(%ebx)
40fe95:	8b 75 0c             	mov    0xc(%ebp),%esi
40fe98:	8b 55 08             	mov    0x8(%ebp),%edx
40fe9b:	8b 0e                	mov    (%esi),%ecx
40fe9d:	c7 43 04 00 00 00 00 	movl   $0x0,0x4(%ebx)
40fea4:	8b 42 04             	mov    0x4(%edx),%eax
40fea7:	89 5c 24 58          	mov    %ebx,0x58(%esp)
40feab:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40feae:	c7 44 24 54 01 00 00 	movl   $0x1,0x54(%esp)
40feb5:	00
40feb6:	0f bf 40 0a          	movswl 0xa(%eax),%eax
40feba:	c7 44 24 18 17 00 00 	movl   $0x17,0x18(%esp)
40fec1:	00
40fec2:	89 44 24 64          	mov    %eax,0x64(%esp)
40fec6:	eb 73                	jmp    0x40ff3b
40fec8:	c6 44 24 1f 01       	movb   $0x1,0x1f(%esp)
40fecd:	80 7c 24 1f 00       	cmpb   $0x0,0x1f(%esp)
40fed2:	8b 06                	mov    (%esi),%eax
40fed4:	8b 4c 24 68          	mov    0x68(%esp),%ecx
40fed8:	8b 40 18             	mov    0x18(%eax),%eax
40fedb:	89 41 1c             	mov    %eax,0x1c(%ecx)
40fede:	8b 06                	mov    (%esi),%eax
40fee0:	8b 4c 24 40          	mov    0x40(%esp),%ecx
40fee4:	8b 40 1c             	mov    0x1c(%eax),%eax
40fee7:	89 41 18             	mov    %eax,0x18(%ecx)
40feea:	8b 0e                	mov    (%esi),%ecx
40feec:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40fef1:	89 41 18             	mov    %eax,0x18(%ecx)
40fef4:	8b 0e                	mov    (%esi),%ecx
40fef6:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40fefb:	89 41 1c             	mov    %eax,0x1c(%ecx)
40fefe:	0f 84 f7 04 00 00    	je     0x4103fb
40ff04:	8b 06                	mov    (%esi),%eax
40ff06:	85 c0                	test   %eax,%eax
40ff08:	0f 84 ed 04 00 00    	je     0x4103fb
40ff0e:	8b 40 14             	mov    0x14(%eax),%eax
40ff11:	85 c0                	test   %eax,%eax
40ff13:	0f 84 e2 04 00 00    	je     0x4103fb
40ff19:	ff 74 24 6c          	push   0x6c(%esp)
40ff1d:	8b 75 0c             	mov    0xc(%ebp),%esi
40ff20:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40ff24:	ff 06                	incl   (%esi)
40ff26:	50                   	push   %eax
40ff27:	56                   	push   %esi
40ff28:	ff 75 08             	push   0x8(%ebp)
40ff2b:	e8 f0 18 00 00       	call   0x411820
40ff30:	85 c0                	test   %eax,%eax
40ff32:	0f 88 b7 a8 06 00    	js     0x47a7ef
40ff38:	8b 55 08             	mov    0x8(%ebp),%edx
40ff3b:	8b 45 14             	mov    0x14(%ebp),%eax
40ff3e:	8b 0e                	mov    (%esi),%ecx
40ff40:	3b c8                	cmp    %eax,%ecx
40ff42:	74 4f                	je     0x40ff93
40ff44:	8b 72 04             	mov    0x4(%edx),%esi
40ff47:	8b 14 8e             	mov    (%esi,%ecx,4),%edx
40ff4a:	0f b7 42 08          	movzwl 0x8(%edx),%eax
40ff4e:	66 83 f8 7f          	cmp    $0x7f,%ax
40ff52:	74 3f                	je     0x40ff93
40ff54:	98                   	cwtl
40ff55:	83 f8 33             	cmp    $0x33,%eax
40ff58:	0f 84 a4 00 00 00    	je     0x410002
40ff5e:	83 f8 4f             	cmp    $0x4f,%eax
40ff61:	74 30                	je     0x40ff93
40ff63:	83 f8 05             	cmp    $0x5,%eax
40ff66:	0f 84 df 03 00 00    	je     0x41034b
40ff6c:	83 f8 58             	cmp    $0x58,%eax
40ff6f:	77 22                	ja     0x40ff93
40ff71:	0f b6 80 2c 16 41 00 	movzbl 0x41162c(%eax),%eax
40ff78:	ff 24 85 c0 15 41 00 	jmp    *0x4115c0(,%eax,4)
40ff7f:	8b 02                	mov    (%edx),%eax
40ff81:	83 f8 04             	cmp    $0x4,%eax
40ff84:	0f 8c b0 10 00 00    	jl     0x41103a
40ff8a:	83 f8 27             	cmp    $0x27,%eax
40ff8d:	0f 8d a7 10 00 00    	jge    0x41103a
40ff93:	be 14 00 00 00       	mov    $0x14,%esi
40ff98:	89 74 24 18          	mov    %esi,0x18(%esp)
40ff9c:	8d 64 24 00          	lea    0x0(%esp),%esp
40ffa0:	8a 4c 24 5d          	mov    0x5d(%esp),%cl
40ffa4:	84 c9                	test   %cl,%cl
40ffa6:	0f 85 88 05 00 00    	jne    0x410534
40ffac:	8b c3                	mov    %ebx,%eax
40ffae:	8b 00                	mov    (%eax),%eax
40ffb0:	6b c0 15             	imul   $0x15,%eax,%eax
40ffb3:	0f b6 84 30 20 bc 4b 	movzbl 0x4bbc20(%eax,%esi,1),%eax
40ffba:	00
40ffbb:	83 f8 03             	cmp    $0x3,%eax
40ffbe:	0f 85 f0 02 00 00    	jne    0x4102b4
40ffc4:	83 7c 24 24 01       	cmpl   $0x1,0x24(%esp)
40ffc9:	0f 85 e6 15 00 00    	jne    0x4115b5
40ffcf:	33 ff                	xor    %edi,%edi
40ffd1:	8b 44 24 28          	mov    0x28(%esp),%eax
40ffd5:	89 44 24 10          	mov    %eax,0x10(%esp)
40ffd9:	85 c0                	test   %eax,%eax
40ffdb:	0f 85 9d 07 00 00    	jne    0x41077e
40ffe1:	85 db                	test   %ebx,%ebx
40ffe3:	74 12                	je     0x40fff7
40ffe5:	8b 73 04             	mov    0x4(%ebx),%esi
40ffe8:	53                   	push   %ebx
40ffe9:	e8 70 f5 00 00       	call   0x41f55e
40ffee:	83 c4 04             	add    $0x4,%esp
40fff1:	8b de                	mov    %esi,%ebx
40fff3:	85 f6                	test   %esi,%esi
40fff5:	75 ee                	jne    0x40ffe5
40fff7:	8b c7                	mov    %edi,%eax
40fff9:	5f                   	pop    %edi
40fffa:	5e                   	pop    %esi
40fffb:	5b                   	pop    %ebx
40fffc:	8b e5                	mov    %ebp,%esp
40fffe:	5d                   	pop    %ebp
40ffff:	c2 10 00             	ret    $0x10
410002:	8b 74 24 24          	mov    0x24(%esp),%esi
410006:	c7 44 24 18 16 00 00 	movl   $0x16,0x18(%esp)
41000d:	00
41000e:	85 f6                	test   %esi,%esi
410010:	0f 85 08 07 00 00    	jne    0x41071e
410016:	81 ff 20 22 4c 00    	cmp    $0x4c2220,%edi
41001c:	74 3e                	je     0x41005c
41001e:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
410022:	0f 84 a6 0f 00 00    	je     0x410fce
410028:	8b 77 08             	mov    0x8(%edi),%esi
41002b:	85 f6                	test   %esi,%esi
41002d:	0f 85 ad 0f 00 00    	jne    0x410fe0
410033:	8b 47 0c             	mov    0xc(%edi),%eax
410036:	83 f8 05             	cmp    $0x5,%eax
410039:	0f 8d ef a3 06 00    	jge    0x47a42e
41003f:	68 20 22 4c 00       	push   $0x4c2220
410044:	8b cf                	mov    %edi,%ecx
410046:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
41004d:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
410053:	e8 c8 16 00 00       	call   0x411720
410058:	8b 74 24 24          	mov    0x24(%esp),%esi
41005c:	8b 44 24 10          	mov    0x10(%esp),%eax
410060:	46                   	inc    %esi
410061:	89 74 24 24          	mov    %esi,0x24(%esp)
410065:	83 fe 01             	cmp    $0x1,%esi
410068:	0f 85 fc 06 00 00    	jne    0x41076a
41006e:	89 7c 24 6c          	mov    %edi,0x6c(%esp)
410072:	80 3d fc 20 4c 00 00 	cmpb   $0x0,0x4c20fc
410079:	8b 45 0c             	mov    0xc(%ebp),%eax
41007c:	8b 08                	mov    (%eax),%ecx
41007e:	8b 45 08             	mov    0x8(%ebp),%eax
410081:	8b 40 04             	mov    0x4(%eax),%eax
410084:	8b 04 88             	mov    (%eax,%ecx,4),%eax
410087:	8b 00                	mov    (%eax),%eax
410089:	89 44 24 30          	mov    %eax,0x30(%esp)
41008d:	0f 85 71 a8 06 00    	jne    0x47a904
410093:	83 3d f0 20 4c 00 00 	cmpl   $0x0,0x4c20f0
41009a:	0f 84 5f 03 00 00    	je     0x4103ff
4100a0:	80 3d f9 20 4c 00 00 	cmpb   $0x0,0x4c20f9
4100a7:	0f 85 14 a5 06 00    	jne    0x47a5c1
4100ad:	8b 35 f4 20 4c 00    	mov    0x4c20f4,%esi
4100b3:	83 3e 00             	cmpl   $0x0,(%esi)
4100b6:	0f 84 43 03 00 00    	je     0x4103ff
4100bc:	8b 0d f0 21 4c 00    	mov    0x4c21f0,%ecx
4100c2:	c6 44 24 1f 00       	movb   $0x0,0x1f(%esp)
4100c7:	f6 c1 01             	test   $0x1,%cl
4100ca:	0f 84 02 a5 06 00    	je     0x47a5d2
4100d0:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
4100d7:	00 00 00
4100da:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
4100e1:	00 00 00
4100e4:	c7 44 24 40 f4 21 4c 	movl   $0x4c21f4,0x40(%esp)
4100eb:	00
4100ec:	c7 44 24 68 f4 21 4c 	movl   $0x4c21f4,0x68(%esp)
4100f3:	00
4100f4:	8b 16                	mov    (%esi),%edx
4100f6:	8b 40 04             	mov    0x4(%eax),%eax
4100f9:	8b 4a 04             	mov    0x4(%edx),%ecx
4100fc:	89 54 24 38          	mov    %edx,0x38(%esp)
410100:	89 44 24 60          	mov    %eax,0x60(%esp)
410104:	85 c0                	test   %eax,%eax
410106:	0f 84 ef a4 06 00    	je     0x47a5fb
41010c:	85 c9                	test   %ecx,%ecx
41010e:	0f 84 ef a4 06 00    	je     0x47a603
410114:	3b c1                	cmp    %ecx,%eax
410116:	0f 82 f7 01 00 00    	jb     0x410313
41011c:	8b 0a                	mov    (%edx),%ecx
41011e:	8b 54 24 30          	mov    0x30(%esp),%edx
410122:	89 44 24 3c          	mov    %eax,0x3c(%esp)
410126:	8b 12                	mov    (%edx),%edx
410128:	85 c0                	test   %eax,%eax
41012a:	74 18                	je     0x410144
41012c:	8d 64 24 00          	lea    0x0(%esp),%esp
410130:	66 8b 02             	mov    (%edx),%ax
410133:	66 3b 01             	cmp    (%ecx),%ax
410136:	75 10                	jne    0x410148
410138:	83 c2 02             	add    $0x2,%edx
41013b:	83 c1 02             	add    $0x2,%ecx
41013e:	ff 4c 24 3c          	decl   0x3c(%esp)
410142:	75 ec                	jne    0x410130
410144:	33 c0                	xor    %eax,%eax
410146:	eb 0c                	jmp    0x410154
410148:	0f b7 02             	movzwl (%edx),%eax
41014b:	66 3b 01             	cmp    (%ecx),%ax
41014e:	1b c0                	sbb    %eax,%eax
410150:	83 e0 fe             	and    $0xfffffffe,%eax
410153:	40                   	inc    %eax
410154:	85 c0                	test   %eax,%eax
410156:	0f 88 7f 00 00 00    	js     0x4101db
41015c:	0f 8e 66 fd ff ff    	jle    0x40fec8
410162:	8b 44 24 60          	mov    0x60(%esp),%eax
410166:	8b 54 24 38          	mov    0x38(%esp),%edx
41016a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
41016d:	85 c9                	test   %ecx,%ecx
41016f:	0f 84 58 fd ff ff    	je     0x40fecd
410175:	8b 51 04             	mov    0x4(%ecx),%edx
410178:	3b d0                	cmp    %eax,%edx
41017a:	0f 87 45 06 00 00    	ja     0x4107c5
410180:	8b 5c 24 30          	mov    0x30(%esp),%ebx
410184:	89 54 24 48          	mov    %edx,0x48(%esp)
410188:	8b 1b                	mov    (%ebx),%ebx
41018a:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
41018e:	8b 19                	mov    (%ecx),%ebx
410190:	89 5c 24 44          	mov    %ebx,0x44(%esp)
410194:	8b 5c 24 34          	mov    0x34(%esp),%ebx
410198:	85 d2                	test   %edx,%edx
41019a:	74 32                	je     0x4101ce
41019c:	8b 44 24 44          	mov    0x44(%esp),%eax
4101a0:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
4101a4:	66 8b 00             	mov    (%eax),%ax
4101a7:	66 3b 03             	cmp    (%ebx),%ax
4101aa:	8b 5c 24 34          	mov    0x34(%esp),%ebx
4101ae:	8b 44 24 44          	mov    0x44(%esp),%eax
4101b2:	0f 85 b8 00 00 00    	jne    0x410270
4101b8:	83 44 24 3c 02       	addl   $0x2,0x3c(%esp)
4101bd:	83 c0 02             	add    $0x2,%eax
4101c0:	ff 4c 24 48          	decl   0x48(%esp)
4101c4:	89 44 24 44          	mov    %eax,0x44(%esp)
4101c8:	75 d6                	jne    0x4101a0
4101ca:	8b 44 24 60          	mov    0x60(%esp),%eax
4101ce:	3b d0                	cmp    %eax,%edx
4101d0:	0f 82 a6 00 00 00    	jb     0x41027c
4101d6:	e9 bc 00 00 00       	jmp    0x410297
4101db:	8b 44 24 60          	mov    0x60(%esp),%eax
4101df:	8b 54 24 38          	mov    0x38(%esp),%edx
4101e3:	8b 4a 18             	mov    0x18(%edx),%ecx
4101e6:	85 c9                	test   %ecx,%ecx
4101e8:	0f 84 df fc ff ff    	je     0x40fecd
4101ee:	8b 51 04             	mov    0x4(%ecx),%edx
4101f1:	3b c2                	cmp    %edx,%eax
4101f3:	0f 87 0b 06 00 00    	ja     0x410804
4101f9:	8b 5c 24 30          	mov    0x30(%esp),%ebx
4101fd:	8b 11                	mov    (%ecx),%edx
4101ff:	8b 1b                	mov    (%ebx),%ebx
410201:	89 5c 24 44          	mov    %ebx,0x44(%esp)
410205:	8b 5c 24 34          	mov    0x34(%esp),%ebx
410209:	89 44 24 3c          	mov    %eax,0x3c(%esp)
41020d:	85 c0                	test   %eax,%eax
41020f:	0f 84 11 03 00 00    	je     0x410526
410215:	8b 44 24 44          	mov    0x44(%esp),%eax
410219:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410220:	66 8b 00             	mov    (%eax),%ax
410223:	66 3b 02             	cmp    (%edx),%ax
410226:	8b 44 24 44          	mov    0x44(%esp),%eax
41022a:	0f 84 de 02 00 00    	je     0x41050e
410230:	66 8b 00             	mov    (%eax),%ax
410233:	66 3b 02             	cmp    (%edx),%ax
410236:	73 1b                	jae    0x410253
410238:	8b 41 1c             	mov    0x1c(%ecx),%eax
41023b:	8b 54 24 38          	mov    0x38(%esp),%edx
41023f:	89 42 18             	mov    %eax,0x18(%edx)
410242:	8b 06                	mov    (%esi),%eax
410244:	89 41 1c             	mov    %eax,0x1c(%ecx)
410247:	89 0e                	mov    %ecx,(%esi)
410249:	83 79 18 00          	cmpl   $0x0,0x18(%ecx)
41024d:	0f 84 7a fc ff ff    	je     0x40fecd
410253:	8b 06                	mov    (%esi),%eax
410255:	8b 4c 24 40          	mov    0x40(%esp),%ecx
410259:	89 41 18             	mov    %eax,0x18(%ecx)
41025c:	8b 06                	mov    (%esi),%eax
41025e:	89 44 24 40          	mov    %eax,0x40(%esp)
410262:	8b 40 18             	mov    0x18(%eax),%eax
410265:	89 06                	mov    %eax,(%esi)
410267:	8b 44 24 30          	mov    0x30(%esp),%eax
41026b:	e9 84 fe ff ff       	jmp    0x4100f4
410270:	8b 54 24 3c          	mov    0x3c(%esp),%edx
410274:	66 8b 00             	mov    (%eax),%ax
410277:	66 3b 02             	cmp    (%edx),%ax
41027a:	73 1b                	jae    0x410297
41027c:	8b 41 18             	mov    0x18(%ecx),%eax
41027f:	8b 54 24 38          	mov    0x38(%esp),%edx
410283:	89 42 1c             	mov    %eax,0x1c(%edx)
410286:	8b 06                	mov    (%esi),%eax
410288:	89 41 18             	mov    %eax,0x18(%ecx)
41028b:	89 0e                	mov    %ecx,(%esi)
41028d:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
410291:	0f 84 36 fc ff ff    	je     0x40fecd
410297:	8b 06                	mov    (%esi),%eax
410299:	8b 4c 24 68          	mov    0x68(%esp),%ecx
41029d:	89 41 1c             	mov    %eax,0x1c(%ecx)
4102a0:	8b 06                	mov    (%esi),%eax
4102a2:	89 44 24 68          	mov    %eax,0x68(%esp)
4102a6:	8b 40 1c             	mov    0x1c(%eax),%eax
4102a9:	89 06                	mov    %eax,(%esi)
4102ab:	8b 44 24 30          	mov    0x30(%esp),%eax