40abf3:	e8 57 2f 02 00       	call   0x42db4f
40abf8:	8b 45 fc             	mov    -0x4(%ebp),%eax
40abfb:	89 45 f4             	mov    %eax,-0xc(%ebp)
40abfe:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ac01:	50                   	push   %eax
40ac02:	8b 45 08             	mov    0x8(%ebp),%eax
40ac05:	ff 30                	push   (%eax)
40ac07:	ff 55 f4             	call   *-0xc(%ebp)
40ac0a:	59                   	pop    %ecx
40ac0b:	59                   	pop    %ecx
40ac0c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40ac10:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40ac14:	74 17                	je     0x40ac2d
40ac16:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
40ac1d:	8b 03                	mov    (%ebx),%eax
40ac1f:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
40ac22:	89 03                	mov    %eax,(%ebx)
40ac24:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40ac2b:	eb 09                	jmp    0x40ac36
40ac2d:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40ac30:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ac36:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ac39:	5b                   	pop    %ebx
40ac3a:	c9                   	leave
40ac3b:	c3                   	ret
40ac3c:	55                   	push   %ebp
40ac3d:	8b ec                	mov    %esp,%ebp
40ac3f:	51                   	push   %ecx
40ac40:	53                   	push   %ebx
40ac41:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac44:	83 c0 0c             	add    $0xc,%eax
40ac47:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ac4a:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
40ac51:	8b 03                	mov    (%ebx),%eax
40ac53:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ac59:	8b 45 08             	mov    0x8(%ebp),%eax
40ac5c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ac5f:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40ac62:	8b 63 fc             	mov    -0x4(%ebx),%esp
40ac65:	ff e0                	jmp    *%eax
40ac67:	5b                   	pop    %ebx
40ac68:	c9                   	leave
40ac69:	c2 08 00             	ret    $0x8
40ac6c:	55                   	push   %ebp
40ac6d:	8b ec                	mov    %esp,%ebp
40ac6f:	51                   	push   %ecx
40ac70:	51                   	push   %ecx
40ac71:	53                   	push   %ebx
40ac72:	56                   	push   %esi
40ac73:	57                   	push   %edi
40ac74:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
40ac7b:	89 75 f8             	mov    %esi,-0x8(%ebp)
40ac7e:	c7 45 fc 97 ac 40 00 	movl   $0x40ac97,-0x4(%ebp)
40ac85:	6a 00                	push   $0x0
40ac87:	ff 75 0c             	push   0xc(%ebp)
40ac8a:	ff 75 fc             	push   -0x4(%ebp)
40ac8d:	ff 75 08             	push   0x8(%ebp)
40ac90:	ff 15 d4 10 43 00    	call   *0x4310d4
40ac96:	90                   	nop
40ac97:	8b 45 0c             	mov    0xc(%ebp),%eax
40ac9a:	8b 40 04             	mov    0x4(%eax),%eax
40ac9d:	83 e0 fd             	and    $0xfffffffd,%eax
40aca0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40aca3:	89 41 04             	mov    %eax,0x4(%ecx)
40aca6:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
40acad:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40acb0:	89 3b                	mov    %edi,(%ebx)
40acb2:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
40acb9:	5f                   	pop    %edi
40acba:	5e                   	pop    %esi
40acbb:	5b                   	pop    %ebx
40acbc:	c9                   	leave
40acbd:	c2 08 00             	ret    $0x8
40acc0:	55                   	push   %ebp
40acc1:	8b ec                	mov    %esp,%ebp
40acc3:	56                   	push   %esi
40acc4:	fc                   	cld
40acc5:	8b 75 0c             	mov    0xc(%ebp),%esi
40acc8:	8b 4e 08             	mov    0x8(%esi),%ecx
40accb:	33 ce                	xor    %esi,%ecx
40accd:	e8 d5 ef ff ff       	call   0x409ca7
40acd2:	6a 00                	push   $0x0
40acd4:	56                   	push   %esi
40acd5:	ff 76 14             	push   0x14(%esi)
40acd8:	ff 76 0c             	push   0xc(%esi)
40acdb:	6a 00                	push   $0x0
40acdd:	ff 75 10             	push   0x10(%ebp)
40ace0:	ff 76 10             	push   0x10(%esi)
40ace3:	ff 75 08             	push   0x8(%ebp)
40ace6:	e8 5e 1a 00 00       	call   0x40c749
40aceb:	83 c4 20             	add    $0x20,%esp
40acee:	5e                   	pop    %esi
40acef:	5d                   	pop    %ebp
40acf0:	c3                   	ret
40acf1:	55                   	push   %ebp
40acf2:	8b ec                	mov    %esp,%ebp
40acf4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40acf7:	56                   	push   %esi
40acf8:	8b 75 08             	mov    0x8(%ebp),%esi
40acfb:	89 0e                	mov    %ecx,(%esi)
40acfd:	e8 98 10 00 00       	call   0x40bd9a
40ad02:	8b 48 24             	mov    0x24(%eax),%ecx
40ad05:	89 4e 04             	mov    %ecx,0x4(%esi)
40ad08:	e8 8d 10 00 00       	call   0x40bd9a
40ad0d:	89 70 24             	mov    %esi,0x24(%eax)
40ad10:	8b c6                	mov    %esi,%eax
40ad12:	5e                   	pop    %esi
40ad13:	5d                   	pop    %ebp
40ad14:	c3                   	ret
40ad15:	55                   	push   %ebp
40ad16:	8b ec                	mov    %esp,%ebp
40ad18:	56                   	push   %esi
40ad19:	e8 7c 10 00 00       	call   0x40bd9a
40ad1e:	8b 75 08             	mov    0x8(%ebp),%esi
40ad21:	3b 70 24             	cmp    0x24(%eax),%esi
40ad24:	75 0e                	jne    0x40ad34
40ad26:	8b 76 04             	mov    0x4(%esi),%esi
40ad29:	e8 6c 10 00 00       	call   0x40bd9a
40ad2e:	89 70 24             	mov    %esi,0x24(%eax)
40ad31:	5e                   	pop    %esi
40ad32:	5d                   	pop    %ebp
40ad33:	c3                   	ret
40ad34:	e8 61 10 00 00       	call   0x40bd9a
40ad39:	8b 48 24             	mov    0x24(%eax),%ecx
40ad3c:	83 c1 04             	add    $0x4,%ecx
40ad3f:	eb 07                	jmp    0x40ad48
40ad41:	3b f0                	cmp    %eax,%esi
40ad43:	74 0b                	je     0x40ad50
40ad45:	8d 48 04             	lea    0x4(%eax),%ecx
40ad48:	8b 01                	mov    (%ecx),%eax
40ad4a:	85 c0                	test   %eax,%eax
40ad4c:	74 09                	je     0x40ad57
40ad4e:	eb f1                	jmp    0x40ad41
40ad50:	8b 46 04             	mov    0x4(%esi),%eax
40ad53:	89 01                	mov    %eax,(%ecx)
40ad55:	eb da                	jmp    0x40ad31
40ad57:	e8 35 11 01 00       	call   0x41be91
40ad5c:	cc                   	int3
40ad5d:	55                   	push   %ebp
40ad5e:	8b ec                	mov    %esp,%ebp
40ad60:	51                   	push   %ecx
40ad61:	53                   	push   %ebx
40ad62:	fc                   	cld
40ad63:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad66:	8b 48 08             	mov    0x8(%eax),%ecx
40ad69:	33 4d 0c             	xor    0xc(%ebp),%ecx
40ad6c:	e8 36 ef ff ff       	call   0x409ca7
40ad71:	90                   	nop
40ad72:	8b 45 08             	mov    0x8(%ebp),%eax
40ad75:	8b 40 04             	mov    0x4(%eax),%eax
40ad78:	83 e0 66             	and    $0x66,%eax
40ad7b:	74 11                	je     0x40ad8e
40ad7d:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad80:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
40ad87:	33 c0                	xor    %eax,%eax
40ad89:	40                   	inc    %eax
40ad8a:	eb 6d                	jmp    0x40adf9
40ad8c:	eb 6b                	jmp    0x40adf9
40ad8e:	6a 01                	push   $0x1
40ad90:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad93:	ff 70 18             	push   0x18(%eax)
40ad96:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad99:	ff 70 14             	push   0x14(%eax)
40ad9c:	8b 45 0c             	mov    0xc(%ebp),%eax
40ad9f:	ff 70 0c             	push   0xc(%eax)
40ada2:	6a 00                	push   $0x0
40ada4:	ff 75 10             	push   0x10(%ebp)
40ada7:	8b 45 0c             	mov    0xc(%ebp),%eax
40adaa:	ff 70 10             	push   0x10(%eax)
40adad:	ff 75 08             	push   0x8(%ebp)
40adb0:	e8 94 19 00 00       	call   0x40c749
40adb5:	83 c4 20             	add    $0x20,%esp
40adb8:	8b 45 0c             	mov    0xc(%ebp),%eax
40adbb:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
40adbf:	75 0c                	jne    0x40adcd
40adc1:	ff 75 08             	push   0x8(%ebp)
40adc4:	ff 75 0c             	push   0xc(%ebp)
40adc7:	e8 a0 fe ff ff       	call   0x40ac6c
40adcc:	90                   	nop
40adcd:	6a 00                	push   $0x0
40adcf:	6a 00                	push   $0x0
40add1:	6a 00                	push   $0x0
40add3:	6a 00                	push   $0x0
40add5:	6a 00                	push   $0x0
40add7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40adda:	50                   	push   %eax
40addb:	68 23 01 00 00       	push   $0x123
40ade0:	e8 67 fd ff ff       	call   0x40ab4c
40ade5:	83 c4 1c             	add    $0x1c,%esp
40ade8:	8b 45 fc             	mov    -0x4(%ebp),%eax
40adeb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40adee:	8b 63 1c             	mov    0x1c(%ebx),%esp
40adf1:	8b 6b 20             	mov    0x20(%ebx),%ebp
40adf4:	ff e0                	jmp    *%eax
40adf6:	33 c0                	xor    %eax,%eax
40adf8:	40                   	inc    %eax
40adf9:	5b                   	pop    %ebx
40adfa:	c9                   	leave
40adfb:	c3                   	ret
40adfc:	55                   	push   %ebp
40adfd:	8b ec                	mov    %esp,%ebp
40adff:	83 ec 08             	sub    $0x8,%esp
40ae02:	53                   	push   %ebx
40ae03:	56                   	push   %esi
40ae04:	57                   	push   %edi
40ae05:	fc                   	cld
40ae06:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ae09:	33 c0                	xor    %eax,%eax
40ae0b:	50                   	push   %eax
40ae0c:	50                   	push   %eax
40ae0d:	50                   	push   %eax
40ae0e:	ff 75 fc             	push   -0x4(%ebp)
40ae11:	ff 75 14             	push   0x14(%ebp)
40ae14:	ff 75 10             	push   0x10(%ebp)
40ae17:	ff 75 0c             	push   0xc(%ebp)
40ae1a:	ff 75 08             	push   0x8(%ebp)
40ae1d:	e8 27 19 00 00       	call   0x40c749
40ae22:	83 c4 20             	add    $0x20,%esp
40ae25:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ae28:	5f                   	pop    %edi
40ae29:	5e                   	pop    %esi
40ae2a:	5b                   	pop    %ebx
40ae2b:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ae2e:	8b e5                	mov    %ebp,%esp
40ae30:	5d                   	pop    %ebp
40ae31:	c3                   	ret
40ae32:	cc                   	int3
40ae33:	cc                   	int3
40ae34:	cc                   	int3
40ae35:	cc                   	int3
40ae36:	cc                   	int3
40ae37:	cc                   	int3
40ae38:	cc                   	int3
40ae39:	cc                   	int3
40ae3a:	cc                   	int3
40ae3b:	cc                   	int3
40ae3c:	cc                   	int3
40ae3d:	cc                   	int3
40ae3e:	cc                   	int3
40ae3f:	cc                   	int3
40ae40:	57                   	push   %edi
40ae41:	56                   	push   %esi
40ae42:	8b 74 24 10          	mov    0x10(%esp),%esi
40ae46:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ae4a:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40ae4e:	8b c1                	mov    %ecx,%eax
40ae50:	8b d1                	mov    %ecx,%edx
40ae52:	03 c6                	add    %esi,%eax
40ae54:	3b fe                	cmp    %esi,%edi
40ae56:	76 08                	jbe    0x40ae60
40ae58:	3b f8                	cmp    %eax,%edi
40ae5a:	0f 82 94 02 00 00    	jb     0x40b0f4
40ae60:	83 f9 20             	cmp    $0x20,%ecx
40ae63:	0f 82 d2 04 00 00    	jb     0x40b33b
40ae69:	81 f9 80 00 00 00    	cmp    $0x80,%ecx
40ae6f:	73 13                	jae    0x40ae84
40ae71:	0f ba 25 10 d1 43 00 	btl    $0x1,0x43d110
40ae78:	01
40ae79:	0f 82 8e 04 00 00    	jb     0x40b30d
40ae7f:	e9 e3 01 00 00       	jmp    0x40b067
40ae84:	0f ba 25 d4 f5 43 00 	btl    $0x1,0x43f5d4
40ae8b:	01
40ae8c:	73 09                	jae    0x40ae97
40ae8e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40ae90:	8b 44 24 0c          	mov    0xc(%esp),%eax
40ae94:	5e                   	pop    %esi
40ae95:	5f                   	pop    %edi
40ae96:	c3                   	ret
40ae97:	8b c7                	mov    %edi,%eax
40ae99:	33 c6                	xor    %esi,%eax
40ae9b:	a9 0f 00 00 00       	test   $0xf,%eax
40aea0:	75 0e                	jne    0x40aeb0
40aea2:	0f ba 25 10 d1 43 00 	btl    $0x1,0x43d110
40aea9:	01
40aeaa:	0f 82 e0 03 00 00    	jb     0x40b290
40aeb0:	0f ba 25 d4 f5 43 00 	btl    $0x0,0x43f5d4
40aeb7:	00
40aeb8:	0f 83 a9 01 00 00    	jae    0x40b067
40aebe:	f7 c7 03 00 00 00    	test   $0x3,%edi
40aec4:	0f 85 9d 01 00 00    	jne    0x40b067
40aeca:	f7 c6 03 00 00 00    	test   $0x3,%esi
40aed0:	0f 85 ac 01 00 00    	jne    0x40b082
40aed6:	0f ba e7 02          	bt     $0x2,%edi
40aeda:	73 0d                	jae    0x40aee9
40aedc:	8b 06                	mov    (%esi),%eax
40aede:	83 e9 04             	sub    $0x4,%ecx
40aee1:	8d 76 04             	lea    0x4(%esi),%esi
40aee4:	89 07                	mov    %eax,(%edi)
40aee6:	8d 7f 04             	lea    0x4(%edi),%edi
40aee9:	0f ba e7 03          	bt     $0x3,%edi
40aeed:	73 11                	jae    0x40af00
40aeef:	f3 0f 7e 0e          	movq   (%esi),%xmm1
40aef3:	83 e9 08             	sub    $0x8,%ecx
40aef6:	8d 76 08             	lea    0x8(%esi),%esi
40aef9:	66 0f d6 0f          	movq   %xmm1,(%edi)
40aefd:	8d 7f 08             	lea    0x8(%edi),%edi
40af00:	f7 c6 07 00 00 00    	test   $0x7,%esi
40af06:	74 65                	je     0x40af6d
40af08:	0f ba e6 03          	bt     $0x3,%esi
40af0c:	0f 83 b4 00 00 00    	jae    0x40afc6
40af12:	66 0f 6f 4e f4       	movdqa -0xc(%esi),%xmm1
40af17:	8d 76 f4             	lea    -0xc(%esi),%esi
40af1a:	8b ff                	mov    %edi,%edi
40af1c:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
40af21:	83 e9 30             	sub    $0x30,%ecx
40af24:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0
40af29:	66 0f 6f 6e 30       	movdqa 0x30(%esi),%xmm5
40af2e:	8d 76 30             	lea    0x30(%esi),%esi
40af31:	83 f9 30             	cmp    $0x30,%ecx
40af34:	66 0f 6f d3          	movdqa %xmm3,%xmm2
40af38:	66 0f 3a 0f d9 0c    	palignr $0xc,%xmm1,%xmm3
40af3e:	66 0f 7f 1f          	movdqa %xmm3,(%edi)
40af42:	66 0f 6f e0          	movdqa %xmm0,%xmm4
40af46:	66 0f 3a 0f c2 0c    	palignr $0xc,%xmm2,%xmm0
40af4c:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
40af51:	66 0f 6f cd          	movdqa %xmm5,%xmm1
40af55:	66 0f 3a 0f ec 0c    	palignr $0xc,%xmm4,%xmm5
40af5b:	66 0f 7f 6f 20       	movdqa %xmm5,0x20(%edi)
40af60:	8d 7f 30             	lea    0x30(%edi),%edi
40af63:	73 b7                	jae    0x40af1c
40af65:	8d 76 0c             	lea    0xc(%esi),%esi
40af68:	e9 af 00 00 00       	jmp    0x40b01c
40af6d:	66 0f 6f 4e f8       	movdqa -0x8(%esi),%xmm1
40af72:	8d 76 f8             	lea    -0x8(%esi),%esi
40af75:	8d 49 00             	lea    0x0(%ecx),%ecx
40af78:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
40af7d:	83 e9 30             	sub    $0x30,%ecx
40af80:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0
40af85:	66 0f 6f 6e 30       	movdqa 0x30(%esi),%xmm5
40af8a:	8d 76 30             	lea    0x30(%esi),%esi
40af8d:	83 f9 30             	cmp    $0x30,%ecx
40af90:	66 0f 6f d3          	movdqa %xmm3,%xmm2
40af94:	66 0f 3a 0f d9 08    	palignr $0x8,%xmm1,%xmm3
40af9a:	66 0f 7f 1f          	movdqa %xmm3,(%edi)
40af9e:	66 0f 6f e0          	movdqa %xmm0,%xmm4
40afa2:	66 0f 3a 0f c2 08    	palignr $0x8,%xmm2,%xmm0
40afa8:	66 0f 7f 47 10       	movdqa %xmm0,0x10(%edi)
40afad:	66 0f 6f cd          	movdqa %xmm5,%xmm1
40afb1:	66 0f 3a 0f ec 08    	palignr $0x8,%xmm4,%xmm5
40afb7:	66 0f 7f 6f 20       	movdqa %xmm5,0x20(%edi)
40afbc:	8d 7f 30             	lea    0x30(%edi),%edi
40afbf:	73 b7                	jae    0x40af78
40afc1:	8d 76 08             	lea    0x8(%esi),%esi
40afc4:	eb 56                	jmp    0x40b01c
40afc6:	66 0f 6f 4e fc       	movdqa -0x4(%esi),%xmm1
40afcb:	8d 76 fc             	lea    -0x4(%esi),%esi
40afce:	8b ff                	mov    %edi,%edi
40afd0:	66 0f 6f 5e 10       	movdqa 0x10(%esi),%xmm3
40afd5:	83 e9 30             	sub    $0x30,%ecx
40afd8:	66 0f 6f 46 20       	movdqa 0x20(%esi),%xmm0