40fe17:	3b c1                	cmp    %ecx,%eax
40fe19:	0f 42 c8             	cmovb  %eax,%ecx
40fe1c:	8d 0c 4f             	lea    (%edi,%ecx,2),%ecx
40fe1f:	90                   	nop
40fe20:	0f b7 01             	movzwl (%ecx),%eax
40fe23:	66 3b c2             	cmp    %dx,%ax
40fe26:	73 07                	jae    0x40fe2f
40fe28:	80 7c 04 18 00       	cmpb   $0x0,0x18(%esp,%eax,1)
40fe2d:	75 7c                	jne    0x40feab
40fe2f:	3b cf                	cmp    %edi,%ecx
40fe31:	0f 84 8f 00 00 00    	je     0x40fec6
40fe37:	83 e9 02             	sub    $0x2,%ecx
40fe3a:	eb e4                	jmp    0x40fe20
40fe3c:	8d 46 ff             	lea    -0x1(%esi),%eax
40fe3f:	83 c9 ff             	or     $0xffffffff,%ecx
40fe42:	3b c1                	cmp    %ecx,%eax
40fe44:	0f 42 c8             	cmovb  %eax,%ecx
40fe47:	8d 14 4f             	lea    (%edi,%ecx,2),%edx
40fe4a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
40fe50:	8b 44 24 10          	mov    0x10(%esp),%eax
40fe54:	8b cb                	mov    %ebx,%ecx
40fe56:	85 db                	test   %ebx,%ebx
40fe58:	74 13                	je     0x40fe6d
40fe5a:	0f b7 32             	movzwl (%edx),%esi
40fe5d:	0f 1f 00             	nopl   (%eax)
40fe60:	66 39 30             	cmp    %si,(%eax)
40fe63:	74 11                	je     0x40fe76
40fe65:	83 c0 02             	add    $0x2,%eax
40fe68:	83 e9 01             	sub    $0x1,%ecx
40fe6b:	75 f3                	jne    0x40fe60
40fe6d:	3b d7                	cmp    %edi,%edx
40fe6f:	74 20                	je     0x40fe91
40fe71:	83 ea 02             	sub    $0x2,%edx
40fe74:	eb da                	jmp    0x40fe50
40fe76:	2b d7                	sub    %edi,%edx
40fe78:	d1 fa                	sar    $1,%edx
40fe7a:	8b c2                	mov    %edx,%eax
40fe7c:	5f                   	pop    %edi
40fe7d:	5e                   	pop    %esi
40fe7e:	5b                   	pop    %ebx
40fe7f:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40fe86:	33 cc                	xor    %esp,%ecx
40fe88:	e8 1d 9d 00 00       	call   0x419baa
40fe8d:	8b e5                	mov    %ebp,%esp
40fe8f:	5d                   	pop    %ebp
40fe90:	c3                   	ret
40fe91:	83 ca ff             	or     $0xffffffff,%edx
40fe94:	8b c2                	mov    %edx,%eax
40fe96:	5f                   	pop    %edi
40fe97:	5e                   	pop    %esi
40fe98:	5b                   	pop    %ebx
40fe99:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40fea0:	33 cc                	xor    %esp,%ecx
40fea2:	e8 03 9d 00 00       	call   0x419baa
40fea7:	8b e5                	mov    %ebp,%esp
40fea9:	5d                   	pop    %ebp
40feaa:	c3                   	ret
40feab:	2b cf                	sub    %edi,%ecx
40fead:	d1 f9                	sar    $1,%ecx
40feaf:	8b c1                	mov    %ecx,%eax
40feb1:	5f                   	pop    %edi
40feb2:	5e                   	pop    %esi
40feb3:	5b                   	pop    %ebx
40feb4:	8b 8c 24 10 01 00 00 	mov    0x110(%esp),%ecx
40febb:	33 cc                	xor    %esp,%ecx
40febd:	e8 e8 9c 00 00       	call   0x419baa
40fec2:	8b e5                	mov    %ebp,%esp
40fec4:	5d                   	pop    %ebp
40fec5:	c3                   	ret
40fec6:	8b 8c 24 1c 01 00 00 	mov    0x11c(%esp),%ecx
40fecd:	83 c8 ff             	or     $0xffffffff,%eax
40fed0:	5f                   	pop    %edi
40fed1:	5e                   	pop    %esi
40fed2:	5b                   	pop    %ebx
40fed3:	33 cc                	xor    %esp,%ecx
40fed5:	e8 d0 9c 00 00       	call   0x419baa
40feda:	8b e5                	mov    %ebp,%esp
40fedc:	5d                   	pop    %ebp
40fedd:	c3                   	ret
40fede:	cc                   	int3
40fedf:	cc                   	int3
40fee0:	55                   	push   %ebp
40fee1:	8b ec                	mov    %esp,%ebp
40fee3:	83 ec 14             	sub    $0x14,%esp
40fee6:	53                   	push   %ebx
40fee7:	8b 5d 10             	mov    0x10(%ebp),%ebx
40feea:	56                   	push   %esi
40feeb:	8b f1                	mov    %ecx,%esi
40feed:	57                   	push   %edi
40feee:	8b 7d 0c             	mov    0xc(%ebp),%edi
40fef1:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40fef7:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
40fefe:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
40ff05:	8b 57 10             	mov    0x10(%edi),%edx
40ff08:	8b 4b 10             	mov    0x10(%ebx),%ecx
40ff0b:	89 55 f4             	mov    %edx,-0xc(%ebp)
40ff0e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ff11:	8d 04 11             	lea    (%ecx,%edx,1),%eax
40ff14:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ff17:	8b 47 14             	mov    0x14(%edi),%eax
40ff1a:	2b c2                	sub    %edx,%eax
40ff1c:	3b c8                	cmp    %eax,%ecx
40ff1e:	8b 43 14             	mov    0x14(%ebx),%eax
40ff21:	77 60                	ja     0x40ff83
40ff23:	3b 47 14             	cmp    0x14(%edi),%eax
40ff26:	77 5b                	ja     0x40ff83
40ff28:	0f 10 07             	movups (%edi),%xmm0
40ff2b:	33 c0                	xor    %eax,%eax
40ff2d:	0f 11 06             	movups %xmm0,(%esi)
40ff30:	f3 0f 7e 47 10       	movq   0x10(%edi),%xmm0
40ff35:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40ff3a:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
40ff41:	c7 47 14 07 00 00 00 	movl   $0x7,0x14(%edi)
40ff48:	66 89 07             	mov    %ax,(%edi)
40ff4b:	8b fe                	mov    %esi,%edi
40ff4d:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40ff51:	72 02                	jb     0x40ff55
40ff53:	8b 3e                	mov    (%esi),%edi
40ff55:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
40ff59:	72 02                	jb     0x40ff5d
40ff5b:	8b 1b                	mov    (%ebx),%ebx
40ff5d:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40ff64:	50                   	push   %eax
40ff65:	8d 04 57             	lea    (%edi,%edx,2),%eax
40ff68:	53                   	push   %ebx
40ff69:	50                   	push   %eax
40ff6a:	e8 11 b7 00 00       	call   0x41b680
40ff6f:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ff72:	83 c4 0c             	add    $0xc,%esp
40ff75:	89 46 10             	mov    %eax,0x10(%esi)
40ff78:	8b c6                	mov    %esi,%eax
40ff7a:	5f                   	pop    %edi
40ff7b:	5e                   	pop    %esi
40ff7c:	5b                   	pop    %ebx
40ff7d:	8b e5                	mov    %ebp,%esp
40ff7f:	5d                   	pop    %ebp
40ff80:	c2 0c 00             	ret    $0xc
40ff83:	2b c1                	sub    %ecx,%eax
40ff85:	3b d0                	cmp    %eax,%edx
40ff87:	77 65                	ja     0x40ffee
40ff89:	0f 10 03             	movups (%ebx),%xmm0
40ff8c:	33 c0                	xor    %eax,%eax
40ff8e:	03 d2                	add    %edx,%edx
40ff90:	89 55 f8             	mov    %edx,-0x8(%ebp)
40ff93:	0f 11 06             	movups %xmm0,(%esi)
40ff96:	f3 0f 7e 43 10       	movq   0x10(%ebx),%xmm0
40ff9b:	66 0f d6 46 10       	movq   %xmm0,0x10(%esi)
40ffa0:	66 89 03             	mov    %ax,(%ebx)
40ffa3:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
40ffaa:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
40ffb1:	c7 43 14 07 00 00 00 	movl   $0x7,0x14(%ebx)
40ffb8:	8b 1e                	mov    (%esi),%ebx
40ffba:	50                   	push   %eax
40ffbb:	53                   	push   %ebx
40ffbc:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
40ffbf:	50                   	push   %eax
40ffc0:	e8 bb b6 00 00       	call   0x41b680
40ffc5:	83 c4 0c             	add    $0xc,%esp
40ffc8:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40ffcc:	72 02                	jb     0x40ffd0
40ffce:	8b 3f                	mov    (%edi),%edi
40ffd0:	ff 75 f8             	push   -0x8(%ebp)
40ffd3:	57                   	push   %edi
40ffd4:	53                   	push   %ebx
40ffd5:	e8 a6 b6 00 00       	call   0x41b680
40ffda:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ffdd:	83 c4 0c             	add    $0xc,%esp
40ffe0:	89 46 10             	mov    %eax,0x10(%esi)
40ffe3:	8b c6                	mov    %esi,%eax
40ffe5:	5f                   	pop    %edi
40ffe6:	5e                   	pop    %esi
40ffe7:	5b                   	pop    %ebx
40ffe8:	8b e5                	mov    %ebp,%esp
40ffea:	5d                   	pop    %ebp
40ffeb:	c2 0c 00             	ret    $0xc
40ffee:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40fff3:	2b c2                	sub    %edx,%eax
40fff5:	3b c1                	cmp    %ecx,%eax
40fff7:	0f 82 91 00 00 00    	jb     0x41008e
40fffd:	8b 45 fc             	mov    -0x4(%ebp),%eax
410000:	83 c8 07             	or     $0x7,%eax
410003:	3d fe ff ff 7f       	cmp    $0x7ffffffe,%eax
410008:	76 07                	jbe    0x410011
41000a:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
41000f:	eb 0a                	jmp    0x41001b
410011:	b9 0a 00 00 00       	mov    $0xa,%ecx
410016:	3b c1                	cmp    %ecx,%eax
410018:	0f 42 c1             	cmovb  %ecx,%eax
41001b:	33 c9                	xor    %ecx,%ecx
41001d:	89 45 f8             	mov    %eax,-0x8(%ebp)
410020:	83 c0 01             	add    $0x1,%eax
410023:	0f 92 c1             	setb   %cl
410026:	f7 d9                	neg    %ecx
410028:	0b c8                	or     %eax,%ecx
41002a:	51                   	push   %ecx
41002b:	8b ce                	mov    %esi,%ecx
41002d:	e8 7e 30 ff ff       	call   0x4030b0
410032:	8b c8                	mov    %eax,%ecx
410034:	8b 45 fc             	mov    -0x4(%ebp),%eax
410037:	89 46 10             	mov    %eax,0x10(%esi)
41003a:	8b 45 f8             	mov    -0x8(%ebp),%eax
41003d:	89 0e                	mov    %ecx,(%esi)
41003f:	89 46 14             	mov    %eax,0x14(%esi)
410042:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
410046:	89 4d ec             	mov    %ecx,-0x14(%ebp)
410049:	72 02                	jb     0x41004d
41004b:	8b 3f                	mov    (%edi),%edi
41004d:	8b 45 f4             	mov    -0xc(%ebp),%eax
410050:	03 c0                	add    %eax,%eax
410052:	50                   	push   %eax
410053:	57                   	push   %edi
410054:	51                   	push   %ecx
410055:	89 45 f4             	mov    %eax,-0xc(%ebp)
410058:	e8 23 b6 00 00       	call   0x41b680
41005d:	83 c4 0c             	add    $0xc,%esp
410060:	83 7b 14 08          	cmpl   $0x8,0x14(%ebx)
410064:	72 02                	jb     0x410068
410066:	8b 1b                	mov    (%ebx),%ebx
410068:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41006b:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
410072:	51                   	push   %ecx
410073:	8b 4d f4             	mov    -0xc(%ebp),%ecx
410076:	03 4d ec             	add    -0x14(%ebp),%ecx
410079:	53                   	push   %ebx
41007a:	51                   	push   %ecx
41007b:	e8 00 b6 00 00       	call   0x41b680
410080:	83 c4 0c             	add    $0xc,%esp
410083:	8b c6                	mov    %esi,%eax
410085:	5f                   	pop    %edi
410086:	5e                   	pop    %esi
410087:	5b                   	pop    %ebx
410088:	8b e5                	mov    %ebp,%esp
41008a:	5d                   	pop    %ebp
41008b:	c2 0c 00             	ret    $0xc
41008e:	e8 cd 12 ff ff       	call   0x401360
410093:	cc                   	int3
410094:	cc                   	int3
410095:	cc                   	int3
410096:	cc                   	int3
410097:	cc                   	int3
410098:	cc                   	int3
410099:	cc                   	int3
41009a:	cc                   	int3
41009b:	cc                   	int3
41009c:	cc                   	int3
41009d:	cc                   	int3
41009e:	cc                   	int3
41009f:	cc                   	int3
4100a0:	55                   	push   %ebp
4100a1:	8b ec                	mov    %esp,%ebp
4100a3:	83 ec 14             	sub    $0x14,%esp
4100a6:	8b 55 10             	mov    0x10(%ebp),%edx
4100a9:	53                   	push   %ebx
4100aa:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4100ad:	56                   	push   %esi
4100ae:	57                   	push   %edi
4100af:	8b f9                	mov    %ecx,%edi
4100b1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4100b4:	89 55 f0             	mov    %edx,-0x10(%ebp)
4100b7:	8b 4f 14             	mov    0x14(%edi),%ecx
4100ba:	8b c1                	mov    %ecx,%eax
4100bc:	8b 77 10             	mov    0x10(%edi),%esi
4100bf:	2b c6                	sub    %esi,%eax
4100c1:	89 75 ec             	mov    %esi,-0x14(%ebp)
4100c4:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4100c7:	3b d0                	cmp    %eax,%edx
4100c9:	0f 87 8c 00 00 00    	ja     0x41015b
4100cf:	83 7d f4 08          	cmpl   $0x8,-0xc(%ebp)
4100d3:	8d 04 32             	lea    (%edx,%esi,1),%eax
4100d6:	89 47 10             	mov    %eax,0x10(%edi)
4100d9:	8b cf                	mov    %edi,%ecx
4100db:	89 7d f8             	mov    %edi,-0x8(%ebp)
4100de:	72 05                	jb     0x4100e5
4100e0:	8b 0f                	mov    (%edi),%ecx
4100e2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4100e5:	8d 04 12             	lea    (%edx,%edx,1),%eax
4100e8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4100eb:	03 c3                	add    %ebx,%eax
4100ed:	3b c1                	cmp    %ecx,%eax
4100ef:	76 18                	jbe    0x410109
4100f1:	8d 04 71             	lea    (%ecx,%esi,2),%eax
4100f4:	3b d8                	cmp    %eax,%ebx
4100f6:	77 11                	ja     0x410109
4100f8:	3b cb                	cmp    %ebx,%ecx
4100fa:	77 04                	ja     0x410100
4100fc:	33 db                	xor    %ebx,%ebx
4100fe:	eb 0b                	jmp    0x41010b
410100:	8b d9                	mov    %ecx,%ebx
410102:	2b 5d fc             	sub    -0x4(%ebp),%ebx
410105:	d1 fb                	sar    $1,%ebx
410107:	eb 02                	jmp    0x41010b
410109:	8b da                	mov    %edx,%ebx
41010b:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
410112:	50                   	push   %eax
410113:	8b 45 f4             	mov    -0xc(%ebp),%eax
410116:	51                   	push   %ecx
410117:	03 c1                	add    %ecx,%eax
410119:	50                   	push   %eax
41011a:	e8 61 b5 00 00       	call   0x41b680
41011f:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
410122:	56                   	push   %esi
410123:	ff 75 fc             	push   -0x4(%ebp)
410126:	ff 75 f8             	push   -0x8(%ebp)
410129:	e8 52 b5 00 00       	call   0x41b680
41012e:	8b 45 f0             	mov    -0x10(%ebp),%eax
410131:	8b c8                	mov    %eax,%ecx
410133:	2b cb                	sub    %ebx,%ecx
410135:	03 c9                	add    %ecx,%ecx
410137:	51                   	push   %ecx
410138:	8d 0c 18             	lea    (%eax,%ebx,1),%ecx
41013b:	8b 45 fc             	mov    -0x4(%ebp),%eax
41013e:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
410141:	51                   	push   %ecx
410142:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410145:	03 ce                	add    %esi,%ecx
410147:	51                   	push   %ecx
410148:	e8 33 b5 00 00       	call   0x41b680
41014d:	83 c4 24             	add    $0x24,%esp
410150:	8b c7                	mov    %edi,%eax
410152:	5f                   	pop    %edi
410153:	5e                   	pop    %esi
410154:	5b                   	pop    %ebx
410155:	8b e5                	mov    %ebp,%esp
410157:	5d                   	pop    %ebp
410158:	c2 0c 00             	ret    $0xc
41015b:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
410160:	2b c6                	sub    %esi,%eax
410162:	3b c2                	cmp    %edx,%eax
410164:	0f 82 f4 00 00 00    	jb     0x41025e
41016a:	8d 04 16             	lea    (%esi,%edx,1),%eax
41016d:	8b f0                	mov    %eax,%esi
41016f:	89 45 f8             	mov    %eax,-0x8(%ebp)
410172:	83 ce 07             	or     $0x7,%esi
410175:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
41017b:	76 07                	jbe    0x410184
41017d:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
410182:	eb 1e                	jmp    0x4101a2
410184:	8b d1                	mov    %ecx,%edx
410186:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
41018b:	d1 ea                	shr    $1,%edx
41018d:	2b c2                	sub    %edx,%eax
41018f:	3b c8                	cmp    %eax,%ecx
410191:	76 07                	jbe    0x41019a
410193:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
410198:	eb 08                	jmp    0x4101a2
41019a:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
41019d:	3b f0                	cmp    %eax,%esi
41019f:	0f 42 f0             	cmovb  %eax,%esi
4101a2:	33 c9                	xor    %ecx,%ecx
4101a4:	8b c6                	mov    %esi,%eax