56edd7:	ff 74 24 18          	push   0x18(%esp)
56eddb:	e8 b0 0b 00 00       	call   0x56f990
56ede0:	83 c4 18             	add    $0x18,%esp
56ede3:	c3                   	ret
56ede4:	6a 00                	push   $0x0
56ede6:	ff 74 24 18          	push   0x18(%esp)
56edea:	51                   	push   %ecx
56edeb:	52                   	push   %edx
56edec:	50                   	push   %eax
56eded:	ff 74 24 18          	push   0x18(%esp)
56edf1:	e8 1a 00 00 00       	call   0x56ee10
56edf6:	83 c4 18             	add    $0x18,%esp
56edf9:	c3                   	ret
56edfa:	89 4c 24 10          	mov    %ecx,0x10(%esp)
56edfe:	e9 3d 0f 00 00       	jmp    0x56fd40
56ee03:	cc                   	int3
56ee04:	cc                   	int3
56ee05:	cc                   	int3
56ee06:	cc                   	int3
56ee07:	cc                   	int3
56ee08:	cc                   	int3
56ee09:	cc                   	int3
56ee0a:	cc                   	int3
56ee0b:	cc                   	int3
56ee0c:	cc                   	int3
56ee0d:	cc                   	int3
56ee0e:	cc                   	int3
56ee0f:	cc                   	int3
56ee10:	b8 c0 00 00 00       	mov    $0xc0,%eax
56ee15:	e8 d6 26 07 00       	call   0x5e14f0
56ee1a:	a1 d4 89 72 00       	mov    0x7289d4,%eax
56ee1f:	33 c4                	xor    %esp,%eax
56ee21:	89 84 24 bc 00 00 00 	mov    %eax,0xbc(%esp)
56ee28:	8b 8c 24 cc 00 00 00 	mov    0xcc(%esp),%ecx
56ee2f:	8b 84 24 c8 00 00 00 	mov    0xc8(%esp),%eax
56ee36:	8b 94 24 d8 00 00 00 	mov    0xd8(%esp),%edx
56ee3d:	53                   	push   %ebx
56ee3e:	8b 9c 24 c8 00 00 00 	mov    0xc8(%esp),%ebx
56ee45:	55                   	push   %ebp
56ee46:	8b ac 24 d8 00 00 00 	mov    0xd8(%esp),%ebp
56ee4d:	56                   	push   %esi
56ee4e:	57                   	push   %edi
56ee4f:	8b bc 24 e4 00 00 00 	mov    0xe4(%esp),%edi
56ee56:	33 f6                	xor    %esi,%esi
56ee58:	f6 41 10 04          	testb  $0x4,0x10(%ecx)
56ee5c:	89 5c 24 38          	mov    %ebx,0x38(%esp)
56ee60:	89 44 24 14          	mov    %eax,0x14(%esp)
56ee64:	89 4c 24 34          	mov    %ecx,0x34(%esp)
56ee68:	89 7c 24 24          	mov    %edi,0x24(%esp)
56ee6c:	89 54 24 3c          	mov    %edx,0x3c(%esp)
56ee70:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
56ee77:	00
56ee78:	74 13                	je     0x56ee8d
56ee7a:	52                   	push   %edx
56ee7b:	57                   	push   %edi
56ee7c:	55                   	push   %ebp
56ee7d:	51                   	push   %ecx
56ee7e:	50                   	push   %eax
56ee7f:	53                   	push   %ebx
56ee80:	e8 0b 05 00 00       	call   0x56f390
56ee85:	83 c4 18             	add    $0x18,%esp
56ee88:	e9 e2 04 00 00       	jmp    0x56f36f
56ee8d:	39 75 04             	cmp    %esi,0x4(%ebp)
56ee90:	0f 8e bf 04 00 00    	jle    0x56f355
56ee96:	8b 45 00             	mov    0x0(%ebp),%eax
56ee99:	f6 00 01             	testb  $0x1,(%eax)
56ee9c:	0f 84 b3 04 00 00    	je     0x56f355
56eea2:	51                   	push   %ecx
56eea3:	e8 c8 44 f4 ff       	call   0x4b3370
56eea8:	83 c4 04             	add    $0x4,%esp
56eeab:	89 44 24 1c          	mov    %eax,0x1c(%esp)
56eeaf:	85 c0                	test   %eax,%eax
56eeb1:	75 3c                	jne    0x56eeef
56eeb3:	83 7d 04 01          	cmpl   $0x1,0x4(%ebp)
56eeb7:	75 24                	jne    0x56eedd
56eeb9:	8b 45 00             	mov    0x0(%ebp),%eax
56eebc:	83 38 01             	cmpl   $0x1,(%eax)
56eebf:	75 1c                	jne    0x56eedd
56eec1:	39 75 0c             	cmp    %esi,0xc(%ebp)
56eec4:	75 17                	jne    0x56eedd
56eec6:	6a 00                	push   $0x0
56eec8:	53                   	push   %ebx
56eec9:	be 01 00 00 00       	mov    $0x1,%esi
56eece:	e8 1d 46 f4 ff       	call   0x4b34f0
56eed3:	83 c4 08             	add    $0x8,%esp
56eed6:	8b c6                	mov    %esi,%eax
56eed8:	e9 92 04 00 00       	jmp    0x56f36f
56eedd:	6a 01                	push   $0x1
56eedf:	53                   	push   %ebx
56eee0:	e8 0b 46 f4 ff       	call   0x4b34f0
56eee5:	8b f0                	mov    %eax,%esi
56eee7:	83 c4 08             	add    $0x8,%esp
56eeea:	e9 80 04 00 00       	jmp    0x56f36f
56eeef:	57                   	push   %edi
56eef0:	e8 ab 8f f6 ff       	call   0x4d7ea0
56eef5:	57                   	push   %edi
56eef6:	e8 c5 8e f6 ff       	call   0x4d7dc0
56eefb:	57                   	push   %edi
56eefc:	89 44 24 24          	mov    %eax,0x24(%esp)
56ef00:	e8 bb 8e f6 ff       	call   0x4d7dc0
56ef05:	8b d8                	mov    %eax,%ebx
56ef07:	57                   	push   %edi
56ef08:	89 5c 24 58          	mov    %ebx,0x58(%esp)
56ef0c:	e8 af 8e f6 ff       	call   0x4d7dc0
56ef11:	83 c4 10             	add    $0x10,%esp
56ef14:	89 44 24 4c          	mov    %eax,0x4c(%esp)
56ef18:	39 74 24 18          	cmp    %esi,0x18(%esp)
56ef1c:	0f 84 10 04 00 00    	je     0x56f332
56ef22:	85 db                	test   %ebx,%ebx
56ef24:	0f 84 08 04 00 00    	je     0x56f332
56ef2a:	85 c0                	test   %eax,%eax
56ef2c:	0f 84 00 04 00 00    	je     0x56f332
56ef32:	8b 44 24 3c          	mov    0x3c(%esp),%eax
56ef36:	85 c0                	test   %eax,%eax
56ef38:	74 08                	je     0x56ef42
56ef3a:	8b f0                	mov    %eax,%esi
56ef3c:	89 74 24 10          	mov    %esi,0x10(%esp)
56ef40:	eb 26                	jmp    0x56ef68
56ef42:	e8 39 1a 00 00       	call   0x570980
56ef47:	8b f0                	mov    %eax,%esi
56ef49:	89 74 24 10          	mov    %esi,0x10(%esp)
56ef4d:	85 f6                	test   %esi,%esi
56ef4f:	0f 84 f1 03 00 00    	je     0x56f346
56ef55:	57                   	push   %edi
56ef56:	55                   	push   %ebp
56ef57:	56                   	push   %esi
56ef58:	e8 83 1a 00 00       	call   0x5709e0
56ef5d:	83 c4 0c             	add    $0xc,%esp
56ef60:	85 c0                	test   %eax,%eax
56ef62:	0f 84 d1 03 00 00    	je     0x56f339
56ef68:	8b 44 24 14          	mov    0x14(%esp),%eax
56ef6c:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
56ef70:	75 18                	jne    0x56ef8a
56ef72:	55                   	push   %ebp
56ef73:	50                   	push   %eax
56ef74:	e8 d7 45 f4 ff       	call   0x4b3550
56ef79:	83 c4 08             	add    $0x8,%esp
56ef7c:	85 c0                	test   %eax,%eax
56ef7e:	8b 44 24 14          	mov    0x14(%esp),%eax
56ef82:	79 06                	jns    0x56ef8a
56ef84:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
56ef88:	eb 1d                	jmp    0x56efa7
56ef8a:	57                   	push   %edi
56ef8b:	55                   	push   %ebp
56ef8c:	50                   	push   %eax
56ef8d:	ff 74 24 58          	push   0x58(%esp)
56ef91:	e8 ba fd ff ff       	call   0x56ed50
56ef96:	83 c4 10             	add    $0x10,%esp
56ef99:	85 c0                	test   %eax,%eax
56ef9b:	0f 84 91 03 00 00    	je     0x56f332
56efa1:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
56efa5:	8b c1                	mov    %ecx,%eax
56efa7:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
56efab:	75 1b                	jne    0x56efc8
56efad:	6a 00                	push   $0x0
56efaf:	ff 74 24 3c          	push   0x3c(%esp)
56efb3:	e8 38 45 f4 ff       	call   0x4b34f0
56efb8:	83 c4 08             	add    $0x8,%esp
56efbb:	c7 44 24 30 01 00 00 	movl   $0x1,0x30(%esp)
56efc2:	00
56efc3:	e9 6a 03 00 00       	jmp    0x56f332
56efc8:	57                   	push   %edi
56efc9:	56                   	push   %esi
56efca:	8d 56 04             	lea    0x4(%esi),%edx
56efcd:	52                   	push   %edx
56efce:	50                   	push   %eax
56efcf:	51                   	push   %ecx
56efd0:	e8 4b 1f 00 00       	call   0x570f20
56efd5:	83 c4 14             	add    $0x14,%esp
56efd8:	85 c0                	test   %eax,%eax
56efda:	0f 84 52 03 00 00    	je     0x56f332
56efe0:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56efe4:	3d 9f 02 00 00       	cmp    $0x29f,%eax
56efe9:	7e 0a                	jle    0x56eff5
56efeb:	c7 44 24 20 06 00 00 	movl   $0x6,0x20(%esp)
56eff2:	00
56eff3:	eb 38                	jmp    0x56f02d
56eff5:	3d ef 00 00 00       	cmp    $0xef,%eax
56effa:	7e 0a                	jle    0x56f006
56effc:	c7 44 24 20 05 00 00 	movl   $0x5,0x20(%esp)
56f003:	00
56f004:	eb 27                	jmp    0x56f02d
56f006:	83 f8 4f             	cmp    $0x4f,%eax
56f009:	7e 0a                	jle    0x56f015
56f00b:	c7 44 24 20 04 00 00 	movl   $0x4,0x20(%esp)
56f012:	00
56f013:	eb 18                	jmp    0x56f02d
56f015:	33 c9                	xor    %ecx,%ecx
56f017:	83 f8 17             	cmp    $0x17,%eax
56f01a:	0f 9f c1             	setg   %cl
56f01d:	8d 0c 4d 01 00 00 00 	lea    0x1(,%ecx,2),%ecx
56f024:	89 4c 24 20          	mov    %ecx,0x20(%esp)
56f028:	83 f9 01             	cmp    $0x1,%ecx
56f02b:	7e 75                	jle    0x56f0a2
56f02d:	8b 44 24 4c          	mov    0x4c(%esp),%eax
56f031:	57                   	push   %edi
56f032:	56                   	push   %esi
56f033:	50                   	push   %eax
56f034:	50                   	push   %eax
56f035:	ff 74 24 28          	push   0x28(%esp)
56f039:	e8 e2 1e 00 00       	call   0x570f20
56f03e:	83 c4 14             	add    $0x14,%esp
56f041:	85 c0                	test   %eax,%eax
56f043:	0f 84 e9 02 00 00    	je     0x56f332
56f049:	8b 4c 24 20          	mov    0x20(%esp),%ecx
56f04d:	b8 01 00 00 00       	mov    $0x1,%eax
56f052:	be 01 00 00 00       	mov    $0x1,%esi
56f057:	8d 49 ff             	lea    -0x1(%ecx),%ecx
56f05a:	d3 e0                	shl    %cl,%eax
56f05c:	89 44 24 28          	mov    %eax,0x28(%esp)
56f060:	3b c6                	cmp    %esi,%eax
56f062:	7e 3a                	jle    0x56f09e
56f064:	57                   	push   %edi
56f065:	e8 56 8d f6 ff       	call   0x4d7dc0
56f06a:	83 c4 04             	add    $0x4,%esp
56f06d:	89 44 b4 4c          	mov    %eax,0x4c(%esp,%esi,4)
56f071:	85 c0                	test   %eax,%eax
56f073:	0f 84 b5 02 00 00    	je     0x56f32e
56f079:	57                   	push   %edi
56f07a:	ff 74 24 14          	push   0x14(%esp)
56f07e:	ff 74 24 20          	push   0x20(%esp)
56f082:	ff 74 b4 54          	push   0x54(%esp,%esi,4)
56f086:	50                   	push   %eax
56f087:	e8 94 1e 00 00       	call   0x570f20
56f08c:	83 c4 14             	add    $0x14,%esp
56f08f:	85 c0                	test   %eax,%eax
56f091:	0f 84 97 02 00 00    	je     0x56f32e
56f097:	46                   	inc    %esi
56f098:	3b 74 24 28          	cmp    0x28(%esp),%esi
56f09c:	7c c6                	jl     0x56f064
56f09e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
56f0a2:	8b 75 04             	mov    0x4(%ebp),%esi
56f0a5:	8d 48 ff             	lea    -0x1(%eax),%ecx
56f0a8:	8b 45 00             	mov    0x0(%ebp),%eax
56f0ab:	c7 44 24 2c 01 00 00 	movl   $0x1,0x2c(%esp)
56f0b2:	00
56f0b3:	89 4c 24 18          	mov    %ecx,0x18(%esp)
56f0b7:	f7 44 b0 fc 00 00 00 	testl  $0x80000000,-0x4(%eax,%esi,4)
56f0be:	80
56f0bf:	0f 84 20 01 00 00    	je     0x56f1e5
56f0c5:	3b 73 08             	cmp    0x8(%ebx),%esi
56f0c8:	7f 04                	jg     0x56f0ce
56f0ca:	8b c3                	mov    %ebx,%eax
56f0cc:	eb 0a                	jmp    0x56f0d8
56f0ce:	56                   	push   %esi
56f0cf:	53                   	push   %ebx
56f0d0:	e8 cb 45 f4 ff       	call   0x4b36a0
56f0d5:	83 c4 08             	add    $0x8,%esp
56f0d8:	85 c0                	test   %eax,%eax
56f0da:	0f 84 4e 02 00 00    	je     0x56f32e
56f0e0:	8b 45 00             	mov    0x0(%ebp),%eax
56f0e3:	ba 01 00 00 00       	mov    $0x1,%edx
56f0e8:	8b 08                	mov    (%eax),%ecx
56f0ea:	8b 03                	mov    (%ebx),%eax
56f0ec:	f7 d9                	neg    %ecx
56f0ee:	89 08                	mov    %ecx,(%eax)
56f0f0:	8d 4e ff             	lea    -0x1(%esi),%ecx
56f0f3:	3b f2                	cmp    %edx,%esi
56f0f5:	0f 8e b7 00 00 00    	jle    0x56f1b2
56f0fb:	83 f9 08             	cmp    $0x8,%ecx
56f0fe:	0f 82 91 00 00 00    	jb     0x56f195
56f104:	8b 3b                	mov    (%ebx),%edi
56f106:	8d 47 04             	lea    0x4(%edi),%eax
56f109:	89 44 24 1c          	mov    %eax,0x1c(%esp)
56f10d:	8d 3c 8f             	lea    (%edi,%ecx,4),%edi
56f110:	8b 45 00             	mov    0x0(%ebp),%eax
56f113:	89 7c 24 14          	mov    %edi,0x14(%esp)
56f117:	8d 78 04             	lea    0x4(%eax),%edi
56f11a:	8d 04 88             	lea    (%eax,%ecx,4),%eax
56f11d:	89 7c 24 40          	mov    %edi,0x40(%esp)
56f121:	39 44 24 1c          	cmp    %eax,0x1c(%esp)
56f125:	8b 7c 24 24          	mov    0x24(%esp),%edi
56f129:	8b 44 24 14          	mov    0x14(%esp),%eax
56f12d:	77 06                	ja     0x56f135
56f12f:	3b 44 24 40          	cmp    0x40(%esp),%eax
56f133:	73 60                	jae    0x56f195
56f135:	39 5c 24 1c          	cmp    %ebx,0x1c(%esp)
56f139:	77 04                	ja     0x56f13f
56f13b:	3b c3                	cmp    %ebx,%eax
56f13d:	73 56                	jae    0x56f195
56f13f:	39 6c 24 1c          	cmp    %ebp,0x1c(%esp)
56f143:	77 04                	ja     0x56f149
56f145:	3b c5                	cmp    %ebp,%eax
56f147:	73 4c                	jae    0x56f195
56f149:	81 e1 07 00 00 80    	and    $0x80000007,%ecx
56f14f:	79 05                	jns    0x56f156
56f151:	49                   	dec    %ecx
56f152:	83 c9 f8             	or     $0xfffffff8,%ecx
56f155:	41                   	inc    %ecx
56f156:	0f 10 0d 60 0f 6b 00 	movups 0x6b0f60,%xmm1
56f15d:	8b 3b                	mov    (%ebx),%edi
56f15f:	8b c6                	mov    %esi,%eax
56f161:	2b c1                	sub    %ecx,%eax
56f163:	8b 4d 00             	mov    0x0(%ebp),%ecx
56f166:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
56f16d:	00 00 00
56f170:	0f 10 04 91          	movups (%ecx,%edx,4),%xmm0
56f174:	66 0f df c1          	pandn  %xmm1,%xmm0
56f178:	0f 11 04 97          	movups %xmm0,(%edi,%edx,4)
56f17c:	0f 10 44 91 10       	movups 0x10(%ecx,%edx,4),%xmm0
56f181:	66 0f df c1          	pandn  %xmm1,%xmm0
56f185:	0f 11 44 97 10       	movups %xmm0,0x10(%edi,%edx,4)
56f18a:	83 c2 08             	add    $0x8,%edx
56f18d:	3b d0                	cmp    %eax,%edx
56f18f:	7c df                	jl     0x56f170
56f191:	8b 7c 24 24          	mov    0x24(%esp),%edi
56f195:	3b d6                	cmp    %esi,%edx
56f197:	7d 19                	jge    0x56f1b2
56f199:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
56f1a0:	8b 45 00             	mov    0x0(%ebp),%eax
56f1a3:	8b 0c 90             	mov    (%eax,%edx,4),%ecx
56f1a6:	8b 03                	mov    (%ebx),%eax
56f1a8:	f7 d1                	not    %ecx
56f1aa:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
56f1ad:	42                   	inc    %edx
56f1ae:	3b d6                	cmp    %esi,%edx
56f1b0:	7c ee                	jl     0x56f1a0
56f1b2:	89 73 04             	mov    %esi,0x4(%ebx)
56f1b5:	85 f6                	test   %esi,%esi
56f1b7:	7e 19                	jle    0x56f1d2
56f1b9:	8b 03                	mov    (%ebx),%eax
56f1bb:	8d 4e ff             	lea    -0x1(%esi),%ecx
56f1be:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
56f1c1:	8b 01                	mov    (%ecx),%eax
56f1c3:	8d 49 fc             	lea    -0x4(%ecx),%ecx
56f1c6:	85 c0                	test   %eax,%eax
56f1c8:	75 05                	jne    0x56f1cf
56f1ca:	4e                   	dec    %esi
56f1cb:	85 f6                	test   %esi,%esi
56f1cd:	7f f2                	jg     0x56f1c1
56f1cf:	89 73 04             	mov    %esi,0x4(%ebx)
56f1d2:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
56f1d6:	8b 74 24 10          	mov    0x10(%esp),%esi
56f1da:	75 2a                	jne    0x56f206
56f1dc:	c7 43 0c 00 00 00 00 	movl   $0x0,0xc(%ebx)
56f1e3:	eb 21                	jmp    0x56f206
56f1e5:	8b 74 24 10          	mov    0x10(%esp),%esi
56f1e9:	57                   	push   %edi
56f1ea:	56                   	push   %esi
56f1eb:	8d 46 04             	lea    0x4(%esi),%eax
56f1ee:	50                   	push   %eax
56f1ef:	e8 ac 43 f4 ff       	call   0x4b35a0
56f1f4:	50                   	push   %eax
56f1f5:	53                   	push   %ebx
56f1f6:	e8 25 1d 00 00       	call   0x570f20
56f1fb:	83 c4 14             	add    $0x14,%esp
56f1fe:	85 c0                	test   %eax,%eax
56f200:	0f 84 2c 01 00 00    	je     0x56f332
56f206:	8b 6c 24 18          	mov    0x18(%esp),%ebp
56f20a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)