408ea0:	8b 44 24 0c          	mov    0xc(%esp),%eax
408ea4:	5e                   	pop    %esi
408ea5:	5f                   	pop    %edi
408ea6:	c3                   	ret
408ea7:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
408eae:	8b ff                	mov    %edi,%edi
408eb0:	ba 10 00 00 00       	mov    $0x10,%edx
408eb5:	2b d0                	sub    %eax,%edx
408eb7:	2b ca                	sub    %edx,%ecx
408eb9:	51                   	push   %ecx
408eba:	8b c2                	mov    %edx,%eax
408ebc:	8b c8                	mov    %eax,%ecx
408ebe:	83 e1 03             	and    $0x3,%ecx
408ec1:	74 09                	je     0x408ecc
408ec3:	8a 16                	mov    (%esi),%dl
408ec5:	88 17                	mov    %dl,(%edi)
408ec7:	46                   	inc    %esi
408ec8:	47                   	inc    %edi
408ec9:	49                   	dec    %ecx
408eca:	75 f7                	jne    0x408ec3
408ecc:	c1 e8 02             	shr    $0x2,%eax
408ecf:	74 0d                	je     0x408ede
408ed1:	8b 16                	mov    (%esi),%edx
408ed3:	89 17                	mov    %edx,(%edi)
408ed5:	8d 76 04             	lea    0x4(%esi),%esi
408ed8:	8d 7f 04             	lea    0x4(%edi),%edi
408edb:	48                   	dec    %eax
408edc:	75 f3                	jne    0x408ed1
408ede:	59                   	pop    %ecx
408edf:	e9 e9 fe ff ff       	jmp    0x408dcd
408ee4:	cc                   	int3
408ee5:	cc                   	int3
408ee6:	cc                   	int3
408ee7:	cc                   	int3
408ee8:	cc                   	int3
408ee9:	cc                   	int3
408eea:	cc                   	int3
408eeb:	cc                   	int3
408eec:	cc                   	int3
408eed:	cc                   	int3
408eee:	cc                   	int3
408eef:	cc                   	int3
408ef0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
408ef4:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
408ef9:	8b d7                	mov    %edi,%edx
408efb:	8b 7c 24 04          	mov    0x4(%esp),%edi
408eff:	85 c9                	test   %ecx,%ecx
408f01:	0f 84 3c 01 00 00    	je     0x409043
408f07:	69 c0 01 01 01 01    	imul   $0x1010101,%eax,%eax
408f0d:	83 f9 20             	cmp    $0x20,%ecx
408f10:	0f 86 df 00 00 00    	jbe    0x408ff5
408f16:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
408f1c:	0f 82 8b 00 00 00    	jb     0x408fad
408f22:	0f ba 25 68 45 43 00 	btl    $0x1,0x434568
408f29:	01
408f2a:	73 09                	jae    0x408f35
408f2c:	f3 aa                	rep stos %al,%es:(%edi)
408f2e:	8b 44 24 04          	mov    0x4(%esp),%eax
408f32:	8b fa                	mov    %edx,%edi
408f34:	c3                   	ret
408f35:	0f ba 25 30 30 43 00 	btl    $0x1,0x433030
408f3c:	01
408f3d:	0f 83 b2 00 00 00    	jae    0x408ff5
408f43:	66 0f 6e c0          	movd   %eax,%xmm0
408f47:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
408f4c:	03 cf                	add    %edi,%ecx
408f4e:	0f 11 07             	movups %xmm0,(%edi)
408f51:	83 c7 10             	add    $0x10,%edi
408f54:	83 e7 f0             	and    $0xfffffff0,%edi
408f57:	2b cf                	sub    %edi,%ecx
408f59:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
408f5f:	76 4c                	jbe    0x408fad
408f61:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
408f68:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
408f6f:	90                   	nop
408f70:	66 0f 7f 07          	movdqa %xmm0,(%edi)
408f74:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
408f79:	66 0f 7f 47 20       	movdqa %xmm0,0x20(%edi)
408f7e:	66 0f 7f 47 30       	movdqa %xmm0,0x30(%edi)
408f83:	66 0f 7f 47 40       	movdqa %xmm0,0x40(%edi)
408f88:	66 0f 7f 47 50       	movdqa %xmm0,0x50(%edi)
408f8d:	66 0f 7f 47 60       	movdqa %xmm0,0x60(%edi)
408f92:	66 0f 7f 47 70       	movdqa %xmm0,0x70(%edi)
408f97:	8d bf 80 00 00 00    	lea    0x80(%edi),%edi
408f9d:	81 e9 80 00 00 00    	sub    $0x80,%ecx
408fa3:	f7 c1 00 ff ff ff    	test   $0xffffff00,%ecx
408fa9:	75 c5                	jne    0x408f70
408fab:	eb 13                	jmp    0x408fc0
408fad:	0f ba 25 30 30 43 00 	btl    $0x1,0x433030
408fb4:	01
408fb5:	73 3e                	jae    0x408ff5
408fb7:	66 0f 6e c0          	movd   %eax,%xmm0
408fbb:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
408fc0:	83 f9 20             	cmp    $0x20,%ecx
408fc3:	72 1c                	jb     0x408fe1
408fc5:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
408fc9:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
408fce:	83 c7 20             	add    $0x20,%edi
408fd1:	83 e9 20             	sub    $0x20,%ecx
408fd4:	83 f9 20             	cmp    $0x20,%ecx
408fd7:	73 ec                	jae    0x408fc5
408fd9:	f7 c1 1f 00 00 00    	test   $0x1f,%ecx
408fdf:	74 62                	je     0x409043
408fe1:	8d 7c 0f e0          	lea    -0x20(%edi,%ecx,1),%edi
408fe5:	f3 0f 7f 07          	movdqu %xmm0,(%edi)
408fe9:	f3 0f 7f 47 10       	movdqu %xmm0,0x10(%edi)
408fee:	8b 44 24 04          	mov    0x4(%esp),%eax
408ff2:	8b fa                	mov    %edx,%edi
408ff4:	c3                   	ret
408ff5:	f7 c1 03 00 00 00    	test   $0x3,%ecx
408ffb:	74 0e                	je     0x40900b
408ffd:	88 07                	mov    %al,(%edi)
408fff:	47                   	inc    %edi
409000:	83 e9 01             	sub    $0x1,%ecx
409003:	f7 c1 03 00 00 00    	test   $0x3,%ecx
409009:	75 f2                	jne    0x408ffd
40900b:	f7 c1 04 00 00 00    	test   $0x4,%ecx
409011:	74 08                	je     0x40901b
409013:	89 07                	mov    %eax,(%edi)
409015:	83 c7 04             	add    $0x4,%edi
409018:	83 e9 04             	sub    $0x4,%ecx
40901b:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
409021:	74 20                	je     0x409043
409023:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40902a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
409030:	89 07                	mov    %eax,(%edi)
409032:	89 47 04             	mov    %eax,0x4(%edi)
409035:	83 c7 08             	add    $0x8,%edi
409038:	83 e9 08             	sub    $0x8,%ecx
40903b:	f7 c1 f8 ff ff ff    	test   $0xfffffff8,%ecx
409041:	75 ed                	jne    0x409030
409043:	8b 44 24 04          	mov    0x4(%esp),%eax
409047:	8b fa                	mov    %edx,%edi
409049:	c3                   	ret
40904a:	e8 ed 11 00 00       	call   0x40a23c
40904f:	8b c8                	mov    %eax,%ecx
409051:	33 c0                	xor    %eax,%eax
409053:	85 c9                	test   %ecx,%ecx
409055:	74 06                	je     0x40905d
409057:	39 41 18             	cmp    %eax,0x18(%ecx)
40905a:	0f 9f c0             	setg   %al
40905d:	c3                   	ret
40905e:	cc                   	int3
40905f:	cc                   	int3
409060:	55                   	push   %ebp
409061:	8b ec                	mov    %esp,%ebp
409063:	53                   	push   %ebx
409064:	8b 5d 10             	mov    0x10(%ebp),%ebx
409067:	8b c3                	mov    %ebx,%eax
409069:	56                   	push   %esi
40906a:	83 e8 00             	sub    $0x0,%eax
40906d:	0f 84 71 0e 00 00    	je     0x409ee4
409073:	83 e8 01             	sub    $0x1,%eax
409076:	0f 84 5a 0e 00 00    	je     0x409ed6
40907c:	83 e8 01             	sub    $0x1,%eax
40907f:	0f 84 37 0e 00 00    	je     0x409ebc
409085:	83 e8 01             	sub    $0x1,%eax
409088:	0f 84 02 0e 00 00    	je     0x409e90
40908e:	8b 55 0c             	mov    0xc(%ebp),%edx
409091:	83 e8 01             	sub    $0x1,%eax
409094:	0f 84 a3 0d 00 00    	je     0x409e3d
40909a:	8b 75 08             	mov    0x8(%ebp),%esi
40909d:	57                   	push   %edi
40909e:	83 fb 20             	cmp    $0x20,%ebx
4090a1:	0f 82 f7 02 00 00    	jb     0x40939e
4090a7:	8b 06                	mov    (%esi),%eax
4090a9:	3b 02                	cmp    (%edx),%eax
4090ab:	74 54                	je     0x409101
4090ad:	0f b6 f8             	movzbl %al,%edi
4090b0:	0f b6 02             	movzbl (%edx),%eax
4090b3:	2b f8                	sub    %eax,%edi
4090b5:	75 18                	jne    0x4090cf
4090b7:	0f b6 7e 01          	movzbl 0x1(%esi),%edi
4090bb:	0f b6 42 01          	movzbl 0x1(%edx),%eax
4090bf:	2b f8                	sub    %eax,%edi
4090c1:	75 0c                	jne    0x4090cf
4090c3:	0f b6 7e 02          	movzbl 0x2(%esi),%edi
4090c7:	0f b6 42 02          	movzbl 0x2(%edx),%eax
4090cb:	2b f8                	sub    %eax,%edi
4090cd:	74 10                	je     0x4090df
4090cf:	33 c9                	xor    %ecx,%ecx
4090d1:	85 ff                	test   %edi,%edi
4090d3:	0f 9f c1             	setg   %cl
4090d6:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
4090dd:	eb 1a                	jmp    0x4090f9
4090df:	0f b6 4e 03          	movzbl 0x3(%esi),%ecx
4090e3:	0f b6 42 03          	movzbl 0x3(%edx),%eax
4090e7:	2b c8                	sub    %eax,%ecx
4090e9:	74 0e                	je     0x4090f9
4090eb:	33 c0                	xor    %eax,%eax
4090ed:	85 c9                	test   %ecx,%ecx
4090ef:	0f 9f c0             	setg   %al
4090f2:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
4090f9:	85 c9                	test   %ecx,%ecx
4090fb:	0f 85 2e 05 00 00    	jne    0x40962f
409101:	8b 46 04             	mov    0x4(%esi),%eax
409104:	3b 42 04             	cmp    0x4(%edx),%eax
409107:	74 55                	je     0x40915e
409109:	0f b6 f8             	movzbl %al,%edi
40910c:	0f b6 42 04          	movzbl 0x4(%edx),%eax
409110:	2b f8                	sub    %eax,%edi
409112:	75 18                	jne    0x40912c
409114:	0f b6 7e 05          	movzbl 0x5(%esi),%edi
409118:	0f b6 42 05          	movzbl 0x5(%edx),%eax
40911c:	2b f8                	sub    %eax,%edi
40911e:	75 0c                	jne    0x40912c
409120:	0f b6 7e 06          	movzbl 0x6(%esi),%edi
409124:	0f b6 42 06          	movzbl 0x6(%edx),%eax
409128:	2b f8                	sub    %eax,%edi
40912a:	74 10                	je     0x40913c
40912c:	33 c9                	xor    %ecx,%ecx
40912e:	85 ff                	test   %edi,%edi
409130:	0f 9f c1             	setg   %cl
409133:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
40913a:	eb 1a                	jmp    0x409156
40913c:	0f b6 4e 07          	movzbl 0x7(%esi),%ecx
409140:	0f b6 42 07          	movzbl 0x7(%edx),%eax
409144:	2b c8                	sub    %eax,%ecx
409146:	74 0e                	je     0x409156
409148:	33 c0                	xor    %eax,%eax
40914a:	85 c9                	test   %ecx,%ecx
40914c:	0f 9f c0             	setg   %al
40914f:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
409156:	85 c9                	test   %ecx,%ecx
409158:	0f 85 d1 04 00 00    	jne    0x40962f
40915e:	8b 46 08             	mov    0x8(%esi),%eax
409161:	3b 42 08             	cmp    0x8(%edx),%eax
409164:	74 55                	je     0x4091bb
409166:	0f b6 f8             	movzbl %al,%edi
409169:	0f b6 42 08          	movzbl 0x8(%edx),%eax
40916d:	2b f8                	sub    %eax,%edi
40916f:	75 18                	jne    0x409189
409171:	0f b6 7e 09          	movzbl 0x9(%esi),%edi
409175:	0f b6 42 09          	movzbl 0x9(%edx),%eax
409179:	2b f8                	sub    %eax,%edi
40917b:	75 0c                	jne    0x409189
40917d:	0f b6 7e 0a          	movzbl 0xa(%esi),%edi
409181:	0f b6 42 0a          	movzbl 0xa(%edx),%eax
409185:	2b f8                	sub    %eax,%edi
409187:	74 10                	je     0x409199
409189:	33 c9                	xor    %ecx,%ecx
40918b:	85 ff                	test   %edi,%edi
40918d:	0f 9f c1             	setg   %cl
409190:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
409197:	eb 1a                	jmp    0x4091b3
409199:	0f b6 4e 0b          	movzbl 0xb(%esi),%ecx
40919d:	0f b6 42 0b          	movzbl 0xb(%edx),%eax
4091a1:	2b c8                	sub    %eax,%ecx
4091a3:	74 0e                	je     0x4091b3
4091a5:	33 c0                	xor    %eax,%eax
4091a7:	85 c9                	test   %ecx,%ecx
4091a9:	0f 9f c0             	setg   %al
4091ac:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
4091b3:	85 c9                	test   %ecx,%ecx
4091b5:	0f 85 74 04 00 00    	jne    0x40962f
4091bb:	8b 46 0c             	mov    0xc(%esi),%eax
4091be:	3b 42 0c             	cmp    0xc(%edx),%eax
4091c1:	74 55                	je     0x409218
4091c3:	0f b6 f8             	movzbl %al,%edi
4091c6:	0f b6 42 0c          	movzbl 0xc(%edx),%eax
4091ca:	2b f8                	sub    %eax,%edi
4091cc:	75 18                	jne    0x4091e6
4091ce:	0f b6 7e 0d          	movzbl 0xd(%esi),%edi
4091d2:	0f b6 42 0d          	movzbl 0xd(%edx),%eax
4091d6:	2b f8                	sub    %eax,%edi
4091d8:	75 0c                	jne    0x4091e6
4091da:	0f b6 7e 0e          	movzbl 0xe(%esi),%edi
4091de:	0f b6 42 0e          	movzbl 0xe(%edx),%eax
4091e2:	2b f8                	sub    %eax,%edi
4091e4:	74 10                	je     0x4091f6
4091e6:	33 c9                	xor    %ecx,%ecx
4091e8:	85 ff                	test   %edi,%edi
4091ea:	0f 9f c1             	setg   %cl
4091ed:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
4091f4:	eb 1a                	jmp    0x409210
4091f6:	0f b6 4e 0f          	movzbl 0xf(%esi),%ecx
4091fa:	0f b6 42 0f          	movzbl 0xf(%edx),%eax
4091fe:	2b c8                	sub    %eax,%ecx
409200:	74 0e                	je     0x409210
409202:	33 c0                	xor    %eax,%eax
409204:	85 c9                	test   %ecx,%ecx
409206:	0f 9f c0             	setg   %al
409209:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
409210:	85 c9                	test   %ecx,%ecx
409212:	0f 85 17 04 00 00    	jne    0x40962f
409218:	8b 46 10             	mov    0x10(%esi),%eax
40921b:	3b 42 10             	cmp    0x10(%edx),%eax
40921e:	74 56                	je     0x409276
409220:	0f b6 42 10          	movzbl 0x10(%edx),%eax
409224:	0f b6 7e 10          	movzbl 0x10(%esi),%edi
409228:	2b f8                	sub    %eax,%edi
40922a:	75 18                	jne    0x409244
40922c:	0f b6 7e 11          	movzbl 0x11(%esi),%edi
409230:	0f b6 42 11          	movzbl 0x11(%edx),%eax
409234:	2b f8                	sub    %eax,%edi
409236:	75 0c                	jne    0x409244
409238:	0f b6 7e 12          	movzbl 0x12(%esi),%edi
40923c:	0f b6 42 12          	movzbl 0x12(%edx),%eax
409240:	2b f8                	sub    %eax,%edi
409242:	74 10                	je     0x409254
409244:	33 c9                	xor    %ecx,%ecx
409246:	85 ff                	test   %edi,%edi
409248:	0f 9f c1             	setg   %cl
40924b:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
409252:	eb 1a                	jmp    0x40926e
409254:	0f b6 4e 13          	movzbl 0x13(%esi),%ecx
409258:	0f b6 42 13          	movzbl 0x13(%edx),%eax
40925c:	2b c8                	sub    %eax,%ecx
40925e:	74 0e                	je     0x40926e
409260:	33 c0                	xor    %eax,%eax
409262:	85 c9                	test   %ecx,%ecx
409264:	0f 9f c0             	setg   %al
409267:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
40926e:	85 c9                	test   %ecx,%ecx
409270:	0f 85 b9 03 00 00    	jne    0x40962f
409276:	8b 46 14             	mov    0x14(%esi),%eax
409279:	3b 42 14             	cmp    0x14(%edx),%eax
40927c:	74 55                	je     0x4092d3
40927e:	0f b6 f8             	movzbl %al,%edi
409281:	0f b6 42 14          	movzbl 0x14(%edx),%eax
409285:	2b f8                	sub    %eax,%edi
409287:	75 18                	jne    0x4092a1
409289:	0f b6 7e 15          	movzbl 0x15(%esi),%edi
40928d:	0f b6 42 15          	movzbl 0x15(%edx),%eax
409291:	2b f8                	sub    %eax,%edi
409293:	75 0c                	jne    0x4092a1
409295:	0f b6 7e 16          	movzbl 0x16(%esi),%edi
409299:	0f b6 42 16          	movzbl 0x16(%edx),%eax
40929d:	2b f8                	sub    %eax,%edi
40929f:	74 10                	je     0x4092b1
4092a1:	33 c9                	xor    %ecx,%ecx
4092a3:	85 ff                	test   %edi,%edi
4092a5:	0f 9f c1             	setg   %cl
4092a8:	8d 0c 4d ff ff ff ff 	lea    -0x1(,%ecx,2),%ecx
4092af:	eb 1a                	jmp    0x4092cb
4092b1:	0f b6 4e 17          	movzbl 0x17(%esi),%ecx
4092b5:	0f b6 42 17          	movzbl 0x17(%edx),%eax
4092b9:	2b c8                	sub    %eax,%ecx
4092bb:	74 0e                	je     0x4092cb
4092bd:	33 c0                	xor    %eax,%eax
4092bf:	85 c9                	test   %ecx,%ecx
4092c1:	0f 9f c0             	setg   %al
4092c4:	8d 0c 45 ff ff ff ff 	lea    -0x1(,%eax,2),%ecx
4092cb:	85 c9                	test   %ecx,%ecx
4092cd:	0f 85 5c 03 00 00    	jne    0x40962f
4092d3:	8b 46 18             	mov    0x18(%esi),%eax
4092d6:	3b 42 18             	cmp    0x18(%edx),%eax
4092d9:	74 55                	je     0x409330
4092db:	0f b6 f8             	movzbl %al,%edi
4092de:	0f b6 42 18          	movzbl 0x18(%edx),%eax