	.cpu arm9
	.fpu softvfp
	.code	16
	.file	"sdcore2.c"
	.section	.rodata.destagger,"a",%progbits
	.type	destagger, %object
	.size	destagger, 256
destagger:
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	0
	.byte	1
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.byte	2
	.byte	3
	.section	.rodata.crc16tbl,"a",%progbits
	.align	1
	.type	crc16tbl, %object
	.size	crc16tbl, 512
crc16tbl:
	.short	0
	.short	4129
	.short	8258
	.short	12387
	.short	16516
	.short	20645
	.short	24774
	.short	28903
	.short	-32504
	.short	-28375
	.short	-24246
	.short	-20117
	.short	-15988
	.short	-11859
	.short	-7730
	.short	-3601
	.short	4657
	.short	528
	.short	12915
	.short	8786
	.short	21173
	.short	17044
	.short	29431
	.short	25302
	.short	-27847
	.short	-31976
	.short	-19589
	.short	-23718
	.short	-11331
	.short	-15460
	.short	-3073
	.short	-7202
	.short	9314
	.short	13379
	.short	1056
	.short	5121
	.short	25830
	.short	29895
	.short	17572
	.short	21637
	.short	-23190
	.short	-19125
	.short	-31448
	.short	-27383
	.short	-6674
	.short	-2609
	.short	-14932
	.short	-10867
	.short	13907
	.short	9842
	.short	5649
	.short	1584
	.short	30423
	.short	26358
	.short	22165
	.short	18100
	.short	-18597
	.short	-22662
	.short	-26855
	.short	-30920
	.short	-2081
	.short	-6146
	.short	-10339
	.short	-14404
	.short	18628
	.short	22757
	.short	26758
	.short	30887
	.short	2112
	.short	6241
	.short	10242
	.short	14371
	.short	-13876
	.short	-9747
	.short	-5746
	.short	-1617
	.short	-30392
	.short	-26263
	.short	-22262
	.short	-18133
	.short	23285
	.short	19156
	.short	31415
	.short	27286
	.short	6769
	.short	2640
	.short	14899
	.short	10770
	.short	-9219
	.short	-13348
	.short	-1089
	.short	-5218
	.short	-25735
	.short	-29864
	.short	-17605
	.short	-21734
	.short	27814
	.short	31879
	.short	19684
	.short	23749
	.short	11298
	.short	15363
	.short	3168
	.short	7233
	.short	-4690
	.short	-625
	.short	-12820
	.short	-8755
	.short	-21206
	.short	-17141
	.short	-29336
	.short	-25271
	.short	32407
	.short	28342
	.short	24277
	.short	20212
	.short	15891
	.short	11826
	.short	7761
	.short	3696
	.short	-97
	.short	-4162
	.short	-8227
	.short	-12292
	.short	-16613
	.short	-20678
	.short	-24743
	.short	-28808
	.short	-28280
	.short	-32343
	.short	-20022
	.short	-24085
	.short	-12020
	.short	-16083
	.short	-3762
	.short	-7825
	.short	4224
	.short	161
	.short	12482
	.short	8419
	.short	20484
	.short	16421
	.short	28742
	.short	24679
	.short	-31815
	.short	-27752
	.short	-23557
	.short	-19494
	.short	-15555
	.short	-11492
	.short	-7297
	.short	-3234
	.short	689
	.short	4752
	.short	8947
	.short	13010
	.short	16949
	.short	21012
	.short	25207
	.short	29270
	.short	-18966
	.short	-23093
	.short	-27224
	.short	-31351
	.short	-2706
	.short	-6833
	.short	-10964
	.short	-15091
	.short	13538
	.short	9411
	.short	5280
	.short	1153
	.short	29798
	.short	25671
	.short	21540
	.short	17413
	.short	-22565
	.short	-18438
	.short	-30823
	.short	-26696
	.short	-6305
	.short	-2178
	.short	-14563
	.short	-10436
	.short	9939
	.short	14066
	.short	1681
	.short	5808
	.short	26199
	.short	30326
	.short	17941
	.short	22068
	.short	-9908
	.short	-13971
	.short	-1778
	.short	-5841
	.short	-26168
	.short	-30231
	.short	-18038
	.short	-22101
	.short	22596
	.short	18533
	.short	30726
	.short	26663
	.short	6336
	.short	2273
	.short	14466
	.short	10403
	.short	-13443
	.short	-9380
	.short	-5313
	.short	-1250
	.short	-29703
	.short	-25640
	.short	-21573
	.short	-17510
	.short	19061
	.short	23124
	.short	27191
	.short	31254
	.short	2801
	.short	6864
	.short	10931
	.short	14994
	.short	-722
	.short	-4849
	.short	-8852
	.short	-12979
	.short	-16982
	.short	-21109
	.short	-25112
	.short	-29239
	.short	31782
	.short	27655
	.short	23652
	.short	19525
	.short	15522
	.short	11395
	.short	7392
	.short	3265
	.short	-4321
	.short	-194
	.short	-12451
	.short	-8324
	.short	-20581
	.short	-16454
	.short	-28711
	.short	-24584
	.short	28183
	.short	32310
	.short	20053
	.short	24180
	.short	11923
	.short	16050
	.short	3793
	.short	7920
	.section	.text.sd_initcrc,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sd_initcrc, %function
sd_initcrc:
	push	{r4, lr}
	mov	r2, r0
	mov	r4, r0
	add	r2, r2, #144
	add	r4, r4, #152
	mov	r1, #3
.L5:
	mov	r3, #0
	strh	r3, [r2]
	stmia	r4!, {r3}
	add	r2, r2, #2
	sub	r1, r1, #1
	bpl	.L5
	mov	r2, r0
	add	r2, r2, #140
	mov	r3, #6
	str	r3, [r2]
	@ sp needed for prologue
	pop	{r4}
	pop	{r0}
	bx	r0
	.size	sd_initcrc, .-sd_initcrc
	.section	.text.sd_1bit_feedcrc,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sd_1bit_feedcrc, %function
sd_1bit_feedcrc:
	push	{r4, lr}
	add	r0, r0, #144
	ldrh	r3, [r0]
	ldr	r4, .L10
	lsl	r3, r3, #16
	lsr	r2, r3, #8
	lsr	r3, r3, #24
	eor	r3, r3, r1
	lsl	r3, r3, #1
	ldrh	r3, [r3, r4]
	@ sp needed for prologue
	eor	r2, r2, r3
	strh	r2, [r0]
	pop	{r4}
	pop	{r0}
	bx	r0
.L11:
	.align	2
.L10:
	.word	crc16tbl
	.size	sd_1bit_feedcrc, .-sd_1bit_feedcrc
	.section	.text.sd_4bit_feedcrc,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sd_4bit_feedcrc, %function
sd_4bit_feedcrc:
	push	{r4, r5, r6, r7, lr}
	mov	r2, r0
	add	r2, r2, #140
	ldr	r3, [r2]
	sub	sp, sp, #28
	str	r3, [sp, #16]
	mov	ip, r0
	ldr	r0, [sp, #16]
	mov	r3, #7
	str	r2, [sp, #20]
	add	r2, r2, #12
	and	r0, r0, r3
	ldr	r4, [r2]
	str	r2, [sp, #12]
	mov	r3, ip
	add	r2, r2, #8
	add	r3, r3, #156
	ldr	r6, [r2]
	str	r2, [sp, #4]
	ldr	r2, .L18
	ldr	r5, [r3]
	str	r3, [sp, #8]
	add	r3, r3, #8
	ldr	r7, [r3]
	str	r3, [sp]
	ldrb	r3, [r2, r1]
	lsr	r1, r1, #1
	lsl	r3, r3, r0
	orr	r4, r4, r3
	ldrb	r3, [r2, r1]
	lsr	r1, r1, #1
	lsl	r3, r3, r0
	orr	r5, r5, r3
	ldrb	r3, [r2, r1]
	lsr	r1, r1, #1
	lsl	r3, r3, r0
	orr	r6, r6, r3
	ldrb	r3, [r2, r1]
	lsl	r3, r3, r0
	orr	r7, r7, r3
	cmp	r0, #0
	bne	.L13
	mov	r1, ip
	add	r1, r1, #144
	ldrh	r3, [r1]
	ldr	r0, .L18+4
	lsl	r3, r3, #16
	lsr	r2, r3, #8
	lsr	r3, r3, #24
	eor	r3, r3, r4
	lsl	r3, r3, #1
	ldrh	r3, [r3, r0]
	mov	r4, #0
	eor	r2, r2, r3
	strh	r2, [r1]
	add	r1, r1, #2
	ldrh	r3, [r1]
	lsl	r3, r3, #16
	lsr	r2, r3, #8
	lsr	r3, r3, #24
	eor	r3, r3, r5
	lsl	r3, r3, #1
	ldrh	r3, [r3, r0]
	mov	r5, #0
	eor	r2, r2, r3
	strh	r2, [r1]
	add	r1, r1, #2
	ldrh	r3, [r1]
	lsl	r3, r3, #16
	lsr	r2, r3, #8
	lsr	r3, r3, #24
	eor	r3, r3, r6
	lsl	r3, r3, #1
	ldrh	r3, [r3, r0]
	mov	r6, #0
	eor	r2, r2, r3
	strh	r2, [r1]
	add	r1, r1, #2
	ldrh	r3, [r1]
	lsl	r3, r3, #16
	lsr	r2, r3, #8
	lsr	r3, r3, #24
	eor	r3, r3, r7
	lsl	r3, r3, #1
	ldrh	r3, [r3, r0]
	mov	r7, #0
	eor	r2, r2, r3
	strh	r2, [r1]
.L13:
	ldr	r3, [sp, #16]
	ldr	r2, [sp, #20]
	sub	r3, r3, #2
	str	r3, [r2]
	ldr	r3, [sp, #12]
	ldr	r2, [sp, #8]
	str	r4, [r3]
	str	r5, [r2]
	ldr	r3, [sp, #4]
	ldr	r2, [sp]
	add	sp, sp, #28
	str	r6, [r3]
	@ sp needed for prologue
	str	r7, [r2]
	pop	{r4, r5, r6, r7}
	pop	{r0}
	bx	r0
.L19:
	.align	2
.L18:
	.word	destagger
	.word	crc16tbl
	.size	sd_4bit_feedcrc, .-sd_4bit_feedcrc
	.section	.rodata.restaggertbl.0,"a",%progbits
	.type	restaggertbl.0, %object
	.size	restaggertbl.0, 4
restaggertbl.0:
	.byte	0
	.byte	1
	.byte	16
	.byte	17
	.section	.rodata.restaggertbl_lsl1.1,"a",%progbits
	.type	restaggertbl_lsl1.1, %object
	.size	restaggertbl_lsl1.1, 4
restaggertbl_lsl1.1:
	.byte	0
	.byte	2
	.byte	32
	.byte	34
	.section	.rodata.restaggertbl_lsl2.2,"a",%progbits
	.type	restaggertbl_lsl2.2, %object
	.size	restaggertbl_lsl2.2, 4
restaggertbl_lsl2.2:
	.byte	0
	.byte	4
	.byte	64
	.byte	68
	.section	.rodata.restaggertbl_lsl3.3,"a",%progbits
	.type	restaggertbl_lsl3.3, %object
	.size	restaggertbl_lsl3.3, 4
restaggertbl_lsl3.3:
	.byte	0
	.byte	8
	.byte	-128
	.byte	-120
	.section	.text.sd_4bit_getcrc,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sd_4bit_getcrc, %function
sd_4bit_getcrc:
	push	{r4, r5, lr}
	mov	r1, r0
	mov	r4, r1
	add	r4, r4, #144
	ldrh	r2, [r4]
	ldr	r0, .L21
	lsl	r3, r2, #16
	lsl	r2, r2, #2
	strh	r2, [r4]
	add	r4, r4, #2
	ldrh	r2, [r4]
	lsr	r3, r3, #30
	ldrb	r0, [r0, r3]
	ldr	r5, .L21+4
	lsl	r3, r2, #16
	lsl	r2, r2, #2
	strh	r2, [r4]
	lsr	r3, r3, #30
	add	r4, r4, #2
	ldrh	r2, [r4]
	ldrb	r3, [r5, r3]
	ldr	r5, .L21+8
	orr	r0, r0, r3
	lsl	r3, r2, #16
	lsl	r2, r2, #2
	strh	r2, [r4]
	add	r1, r1, #150
	lsr	r3, r3, #30
	ldrb	r3, [r5, r3]
	ldrh	r2, [r1]
	orr	r0, r0, r3
	ldr	r4, .L21+12
	lsl	r3, r2, #16
	lsr	r3, r3, #30
	ldrb	r3, [r4, r3]
	lsl	r2, r2, #2
	orr	r0, r0, r3
	strh	r2, [r1]
	@ sp needed for prologue
	pop	{r4, r5}
	pop	{r1}
	bx	r1
.L22:
	.align	2
.L21:
	.word	restaggertbl.0
	.word	restaggertbl_lsl1.1
	.word	restaggertbl_lsl2.2
	.word	restaggertbl_lsl3.3
	.size	sd_4bit_getcrc, .-sd_4bit_getcrc
	.section	.text.sd_1bit_getcrc,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sd_1bit_getcrc, %function
sd_1bit_getcrc:
	mov	r1, r0
	add	r1, r1, #144
	ldrh	r3, [r1]
	mov	r2, #255
	lsl	r0, r3, #16
	and	r3, r3, r2
	lsr	r0, r0, #24
	lsl	r3, r3, #8
	@ lr needed for prologue
	strh	r3, [r1]
	@ sp needed for prologue
	bx	lr
	.size	sd_1bit_getcrc, .-sd_1bit_getcrc
	.section	.text.sdsize,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sdsize, %function
sdsize:
	push	{r4, r5, r6, r7, lr}
	mov	r5, r0
	add	r5, r5, #188
	mov	ip, r0
	ldr	r0, [r5]
	cmp	r0, #0
	bne	.L24
	mov	r2, ip
	ldr	r3, [r2, #76]
	mov	r4, #192
	ldr	r6, [r2, #108]
	ldr	r7, [r2, #112]
	tst	r3, r4
	beq	.L26
	lsl	r3, r6, #8
	mov	r1, r7
	orr	r1, r1, r3
	mov	r2, #128
	lsl	r3, r1, #10
	lsl	r2, r2, #3
	add	r3, r3, r2
	b	.L28
.L26:
	mov	r4, ip
	ldr	r3, [r4, #96]
	mov	r2, #15
	and	r3, r3, r2
	sub	r3, r3, #9
	mov	r0, #1
	lsl	r0, r0, r3
	mov	r3, ip
	ldr	r1, [r4, #100]
	ldr	r2, [r3, #104]
	mov	r3, #192
	mov	r4, #3
	and	r3, r3, r6
	and	r1, r1, r4
	lsr	r3, r3, #6
	lsl	r2, r2, #2
	orr	r2, r2, r3
	lsl	r1, r1, #10
	orr	r1, r1, r2
	mov	r2, r7
	and	r2, r2, r4
	mov	r4, ip
	ldr	r3, [r4, #116]
	lsl	r2, r2, #1
	lsl	r3, r3, #24
	lsr	r3, r3, #31
	orr	r2, r2, r3
	add	r2, r2, #2
	add	r3, r1, #1
	lsl	r3, r3, r2
	mul	r3, r0
.L28:
	str	r3, [r5]
	ldr	r0, [r5]
.L24:
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
	.size	sdsize, .-sdsize
	.section	.text.tend_ssp,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	tend_ssp, %function
tend_ssp:
	push	{r4, r5, r6, r7, lr}
	mov	r4, r0
	ldr	r0, [r0]
	sub	sp, sp, #12
	ldrb	r3, [r0, #2]
	mov	r5, r1
	lsl	r3, r3, #24
	lsr	r3, r3, #24
	mov	r1, #8
	mov	r6, r2
	str	r3, [sp, #4]
	tst	r3, r1
	beq	.L30
	ldr	r2, [r4, #4]
	mov	r3, #4
	mov	r7, r2
	and	r7, r3
	beq	.L31
	ldrb	r3, [r0]
	lsl	r3, r3, #24
	lsr	r1, r3, #24
	cmp	r5, #0
	beq	.L30
	ldr	r3, [r5]
	mov	r2, r4
	stmia	r3!, {r1}
	str	r3, [r5]
	add	r2, r2, #168
	mov	r3, #0
	str	r3, [r2]
	b	.L30
.L31:
	tst	r2, r1
	beq	.L30
	ldr	r3, [r5]
	ldr	r3, [r3]
	strb	r3, [r0]
	ldr	r3, [r5]
	add	r3, r3, #4
	str	r3, [r5]
	mov	r3, r4
	add	r3, r3, #168
	str	r7, [r3]
.L30:
	ldr	r2, [sp, #4]
	mov	r5, #16
	tst	r2, r5
	beq	.L37
	ldr	r2, [r4, #4]
	mov	r3, #1
	mov	r1, r2
	and	r1, r3
	beq	.L38
	ldr	r3, [r4]
	ldrb	r3, [r3, #1]
	lsl	r3, r3, #24
	lsr	r1, r3, #24
	cmp	r6, #0
	beq	.L37
	ldr	r3, [r6]
	mov	r2, r4
	strb	r1, [r3]
	ldr	r3, [r6]
	add	r2, r2, #168
	add	r3, r3, #1
	str	r3, [r6]
	mov	r3, #0
	str	r3, [r2]
	b	.L37
.L38:
	lsl	r3, r2, #30
	bpl	.L37
	mov	r3, r4
	add	r3, r3, #168
	str	r1, [r3]
	cmp	r6, #0
	beq	.L44
	ldr	r3, [r6]
	ldrb	r1, [r3]
	add	r3, r3, #1
	str	r3, [r6]
	ldr	r3, [r4]
	strb	r1, [r3, #1]
	ldr	r3, [r4, #4]
	tst	r3, r5
	bne	.L37
	lsl	r2, r3, #26
	bpl	.L46
	mov	r0, r4
	bl	sd_4bit_feedcrc
	b	.L37
.L46:
	mov	r0, r4
	bl	sd_1bit_feedcrc
	b	.L37
.L44:
	mov	r0, #0
	tst	r2, r5
	bne	.L50
	lsl	r3, r2, #26
	bpl	.L51
	mov	r0, r4
	bl	sd_4bit_getcrc
	b	.L50
.L51:
	mov	r0, r4
	bl	sd_1bit_getcrc
.L50:
	ldr	r3, [r4]
	strb	r0, [r3, #1]
.L37:
	ldr	r0, [sp, #4]
	add	sp, sp, #12
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
	.size	tend_ssp, .-tend_ssp
	.section	.text.error,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	error, %function
error:
	push	{r4, r5, r6, r7, lr}
	mov	r3, #63
	and	r1, r1, r3
	ldr	r3, [r0]
	cmp	r1, r3
	bne	.L71
	mov	r1, #0
	mov	r4, r0
	mov	r6, #0
.L64:
	ldrb	r2, [r4]
	mov	r5, #0
.L63:
	lsl	r1, r1, #1
	mov	r3, r2
	eor	r3, r3, r1
	lsl	r7, r3, #24
	bpl	.L62
	mov	r3, #9
	eor	r1, r1, r3
.L62:
	lsl	r3, r2, #25
	lsr	r2, r3, #24
	add	r3, r5, #1
	lsl	r3, r3, #24
	lsr	r5, r3, #24
	cmp	r5, #7
	bls	.L63
	mov	r3, #127
	add	r6, r6, #1
	and	r1, r1, r3
	add	r4, r4, #4
	cmp	r6, #5
	bcc	.L64
	mov	r2, #1
	lsl	r3, r1, #1
	orr	r3, r3, r2
	ldr	r2, [r0, #20]
	cmp	r3, r2
	beq	.L66
.L71:
	mov	r0, #1
	b	.L54
.L66:
	ldr	r2, [r0, #4]
	ldr	r3, [r0, #8]
	lsl	r2, r2, #24
	lsl	r3, r3, #16
	orr	r2, r2, r3
	ldr	r3, [r0, #12]
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [r0, #16]
	orr	r2, r2, r3
	ldr	r3, .L72
	mov	r0, r2
	and	r0, r0, r3
.L54:
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L73:
	.align	2
.L72:
	.word	-34013176
	.size	error, .-error
	.section	.text.sdcmd2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sdcmd2, %function
sdcmd2:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #108
	mov	r4, r0
	mov	r7, r2
	mov	r2, r3
	mov	r3, #0
	lsl	r1, r1, #16
	str	r3, [sp, #12]
	mov	r3, r4
	lsr	r0, r1, #16
	add	r3, r3, #176
	lsr	r1, r1, #24
	str	r1, [sp, #24]
	ldr	r3, [r3]
	mov	r1, sp
	add	r1, r1, #32
	str	r0, [sp, #28]
	str	r1, [sp, #20]
	cmp	r3, #2
	bne	.L75
	mov	r0, #1
	str	r0, [sp, #12]
.L75:
	ldr	r0, [sp, #12]
	mov	r1, #0
	str	r1, [sp, #8]
	cmp	r0, #0
	bne	.L77
	cmp	r3, #3
	bne	.L76
.L77:
	mov	r1, #1
	str	r1, [sp, #8]
.L76:
	cmp	r2, #0
	bne	.L78
	ldr	r2, [sp, #20]
.L78:
	mov	r0, r4
	mov	r6, r2
	bl	activate
	cmp	r0, #0
	beq	.LCB704
	b	.L216	@long jump
.LCB704:
	ldr	r2, [r4, #4]
	lsr	r1, r7, #8
	mov	r3, #128
	mov	ip, r1
	lsl	r3, r3, #1
	mov	r1, r2
	lsr	r0, r7, #24
	lsr	r5, r7, #16
	and	r1, r3
	str	r1, [sp, #16]
	bne	.L80
	ldr	r2, [r4]
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [sp, #28]
	lsl	r3, r0, #16
	lsl	r1, r2, #24
	orr	r1, r1, r3
	mov	r2, #255
	mov	r3, r5
	and	r3, r3, r2
	lsl	r3, r3, #8
	orr	r1, r1, r3
	mov	r3, ip
	and	r3, r3, r2
	orr	r1, r1, r3
	ldr	r3, [sp, #12]
	cmp	r3, #0
	beq	.L81
	ldr	r3, [r4]
	str	r1, [r3, #8]
	b	.L82
.L81:
	ldr	r3, [sp, #8]
	ldr	r2, [r4]
	lsr	r0, r1, #16
	cmp	r3, #0
	beq	.L83
	strh	r0, [r2, #8]
	strh	r1, [r2, #8]
	b	.L82
.L83:
	lsr	r3, r1, #24
	strb	r3, [r2, #8]
	ldr	r3, [r4]
	strb	r0, [r3, #8]
	ldr	r2, [r4]
	lsr	r3, r1, #8
	strb	r3, [r2, #8]
	ldr	r3, [r4]
	strb	r1, [r3, #8]
.L82:
	ldr	r3, [r4]
	strb	r7, [r3, #8]
	b	.L85
.L80:
	ldr	r2, [sp, #20]
	ldr	r1, [sp, #28]
	mov	r3, ip
	str	r1, [r2]
	str	r0, [r2, #4]
	str	r7, [r2, #16]
	str	r5, [r2, #8]
	str	r3, [r2, #12]
	mov	r1, #0
	mov	r0, r2
	mov	r7, #0
.L94:
	ldrb	r2, [r0]
	mov	r5, #0
.L93:
	lsl	r1, r1, #1
	mov	r3, r2
	eor	r3, r3, r1
	lsl	r3, r3, #24
	bpl	.L92
	mov	r3, #9
	eor	r1, r1, r3
.L92:
	lsl	r3, r2, #25
	lsr	r2, r3, #24
	add	r3, r5, #1
	lsl	r3, r3, #24
	lsr	r5, r3, #24
	cmp	r5, #7
	bls	.L93
	mov	r3, #127
	add	r7, r7, #1
	and	r1, r1, r3
	add	r0, r0, #4
	cmp	r7, #5
	bcc	.L94
	lsl	r3, r1, #1
	mov	r2, #1
	ldr	r0, [sp, #20]
	orr	r3, r3, r2
	str	r3, [r0, #20]
	mov	r7, #0
.L108:
	ldr	r1, [sp, #20]
	ldr	r3, .L218
	ldmia	r1!, {r5}
	str	r1, [sp, #20]
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	cmp	r2, r3
	bhi	.L85
	add	r3, r2, #1
	str	r3, [r1]
	mov	r0, #7
.L107:
	mov	r3, #128
	and	r3, r3, r5
	mov	r2, #143
	lsr	r3, r3, #3
	orr	r3, r3, r2
	ldr	r2, [r4]
	lsl	r5, r5, #1
	strb	r3, [r2]
	ldr	r1, [r4]
	ldrb	r2, [r1]
	ldrb	r2, [r1]
	mov	r2, #32
	orr	r3, r3, r2
	strb	r3, [r1]
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
	sub	r0, r0, #1
	bpl	.L107
	add	r7, r7, #1
	cmp	r7, #5
	bls	.L108
.L85:
	ldr	r2, [sp, #24]
	cmp	r2, #1
	bne	.LCB880
	b	.L110	@long jump
.LCB880:
	cmp	r2, #7
	bne	.LCB882
	b	.L113	@long jump
.LCB882:
	cmp	r2, #3
	bne	.L115
	mov	r3, #17
	mov	ip, r3
	b	.L217
.L115:
	mov	r0, #6
	mov	ip, r0
.L217:
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L218
	cmp	r2, r3
	bls	.LCB901
	b	.L110	@long jump
.LCB901:
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r0, [sp, #28]
	mov	r3, #146
	lsl	r3, r3, #2
	cmp	r0, r3
	bne	.L123
	ldr	r0, .L218+4
	add	r3, r2, r0
	str	r3, [r1]
.L123:
	ldr	r2, [r4]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [sp, #16]
	cmp	r2, #0
	beq	.L124
	ldr	r3, [r4]
	ldrb	r3, [r3]
.L124:
	ldr	r2, [r4]
	ldrb	r3, [r2]
	lsl	r0, r3, #27
	bpl	.L118
	mov	r3, #1
	neg	r3, r3
	strb	r3, [r2]
	ldr	r1, [sp, #16]
	cmp	r1, #0
	beq	.L217
	ldr	r3, [r4]
	ldrb	r3, [r3]
	b	.L217
.L118:
	ldr	r2, [sp, #8]
	mov	r3, #0
	str	r1, [sp, #4]
	str	r3, [r1]
	cmp	r2, #0
	beq	.L128
	ldr	r3, [sp, #12]
	cmp	r3, #0
	bne	.L128
	mov	r0, #5
	b	.L129
.L128:
	mov	r0, #4
.L129:
	ldr	r1, [sp, #16]
	cmp	r1, #0
	beq	.L130
	mov	r2, ip
	mov	r7, #0
	cmp	r2, #0
	bls	.L139
.L138:
	mov	r5, #0
	mov	r0, #7
.L137:
	ldr	r2, [r4]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r4]
	lsl	r5, r5, #1
	ldrb	r2, [r3]
	mov	r2, #1
	ldrb	r1, [r3]
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r4]
	lsl	r1, r1, #27
	lsr	r1, r1, #31
	ldrb	r2, [r3]
	orr	r5, r5, r1
	ldrb	r3, [r3]
	sub	r0, r0, #1
	bpl	.L137
	add	r7, r7, #1
	stmia	r6!, {r5}
	cmp	r7, ip
	bcc	.L138
	b	.L139
.L130:
	mov	r3, ip
	cmp	r3, #0
	beq	.L139
.L146:
	ldr	r1, [sp, #12]
	cmp	r1, #0
	beq	.L142
	mov	r2, ip
	cmp	r2, #3
	bls	.L142
	ldr	r3, [r4]
	mov	r2, #255
	ldr	r1, [r3, #8]
	lsr	r3, r1, #24
	stmia	r6!, {r3}
	lsr	r3, r1, #16
	and	r3, r3, r2
	stmia	r6!, {r3}
	lsr	r3, r1, #8
	and	r3, r3, r2
	stmia	r6!, {r3}
	and	r1, r1, r2
	stmia	r6!, {r1}
	mov	r3, #4
	b	.L212
.L142:
	ldr	r1, [sp, #8]
	cmp	r1, #0
	beq	.L144
	mov	r2, ip
	cmp	r2, #1
	bls	.L144
	ldr	r3, [r4]
	ldrh	r3, [r3, #8]
	lsl	r3, r3, #16
	lsl	r2, r3, #8
	lsr	r3, r3, #24
	stmia	r6!, {r3}
	lsr	r2, r2, #24
	stmia	r6!, {r2}
	mov	r3, #2
.L212:
	neg	r3, r3
	add	ip, ip, r3
	b	.L140
.L144:
	ldr	r3, [r4]
	mov	r1, #1
	ldrb	r3, [r3, r0]
	neg	r1, r1
	lsl	r3, r3, #24
	lsr	r3, r3, #24
	stmia	r6!, {r3}
	add	ip, ip, r1
.L140:
	mov	r2, ip
	cmp	r2, #0
	bne	.L146
.L139:
	ldr	r3, [sp, #24]
	cmp	r3, #4
	bne	.L113
	mov	r0, #0
.L156:
	ldr	r1, [sp, #4]
	ldr	r3, .L218
	ldr	r2, [r1]
	cmp	r2, r3
	bhi	.L110
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r2, [r4]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [sp, #16]
	cmp	r2, #0
	beq	.L154
	ldr	r3, [r4]
	ldrb	r3, [r3]
.L154:
	ldr	r1, [r4]
	mov	r3, #1
	ldrb	r2, [r1]
	lsl	r0, r0, #1
	and	r3, r3, r2
	orr	r0, r0, r3
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r1]
	ldr	r3, [sp, #16]
	cmp	r3, #0
	beq	.L148
	ldr	r3, [r4]
	ldrb	r3, [r3]
.L148:
	mov	r3, #7
	and	r3, r3, r0
	cmp	r3, #7
	bne	.L156
	b	.L157
.L113:
	ldr	r0, [sp, #24]
	cmp	r0, #6
	bne	.L157
	ldr	r3, [r4, #4]
	mov	r2, #3
	bic	r3, r3, r2
	b	.L215
.L157:
	ldr	r1, [sp, #24]
	cmp	r1, #5
	bne	.L158
	ldr	r3, [r4, #4]
	mov	r2, #2
	orr	r3, r3, r2
	str	r3, [r4, #4]
	mov	r0, #33
	ldr	r3, [r4]
	neg	r0, r0
	strb	r0, [r3]
	ldr	r2, [sp, #16]
	cmp	r2, #0
	beq	.L160
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
.L160:
	ldr	r3, [r4]
	mov	r1, #1
	neg	r1, r1
	strb	r1, [r3]
	ldr	r3, [sp, #16]
	cmp	r3, #0
	beq	.L162
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
.L162:
	ldr	r3, [r4]
	strb	r0, [r3]
	ldr	r0, [sp, #16]
	cmp	r0, #0
	beq	.L164
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
.L164:
	ldr	r3, [r4]
	strb	r1, [r3]
	ldr	r1, [sp, #16]
	cmp	r1, #0
	beq	.L166
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
.L166:
	ldr	r3, [r4, #4]
	ldr	r2, [r4]
	lsl	r0, r3, #26
	bpl	.L167
	mov	r3, #16
	b	.L213
.L167:
	mov	r3, #30
.L213:
	strb	r3, [r2]
	ldr	r1, [sp, #16]
	cmp	r1, #0
	beq	.L170
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
.L170:
	ldr	r3, [r4, #4]
	ldr	r2, [r4]
	lsl	r0, r3, #26
	bpl	.L171
	mov	r3, #48
	b	.L214
.L171:
	mov	r3, #62
.L214:
	strb	r3, [r2]
	ldr	r1, [sp, #16]
	cmp	r1, #0
	beq	.L110
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
	b	.L110
.L158:
	ldr	r2, [sp, #24]
	cmp	r2, #0
	beq	.L176
	cmp	r2, #7
	bne	.L110
.L176:
	ldr	r3, [r4, #4]
	mov	r2, #1
	orr	r3, r3, r2
.L215:
	str	r3, [r4, #4]
.L110:
	ldr	r2, [r4, #4]
	mov	r3, #3
	tst	r2, r3
	bne	.L177
	ldr	r3, [sp, #16]
	cmp	r3, #0
	beq	.L178
	mov	r7, #7
.L182:
	ldr	r2, [r4]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #1
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r4]
	ldrb	r2, [r3]
	ldrb	r3, [r3]
	sub	r7, r7, #1
	bpl	.L182
	b	.L177
.L178:
	ldr	r3, [r4]
	mov	r2, #1
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r4]
	strb	r2, [r3, #8]
.L177:
	mov	r0, r4
	add	r0, r0, #168
	ldr	r4, [r0]
	ldr	r3, .L218
	cmp	r4, r3
	bls	.L185
.L216:
	mov	r0, #1
	b	.L74
.L185:
	add	r3, r4, #1
	str	r3, [r0]
	mov	r0, #0
.L74:
	add	sp, sp, #108
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L219:
	.align	2
.L218:
	.word	1000000
	.word	100001
	.size	sdcmd2, .-sdcmd2
	.section	.text.stop2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	stop2, %function
stop2:
	push	{r4, r5, r6, r7, lr}
	mov	r7, r0
	add	r7, r7, #172
	ldr	r3, [r7]
	sub	sp, sp, #36
	mov	r4, r0
	cmp	r3, #0
	beq	.L221
	ldr	r3, [r0, #28]
	cmp	r3, #0
	beq	.L222
	ldr	r0, [r0, #12]
	mov	r1, #0
	bl	.L234
.L222:
	ldr	r2, [r4, #4]
	mov	r3, #2
	add	r6, sp, #8
	and	r2, r3
	beq	.L223
	mov	r3, r6
	mov	r5, #0
	mov	r0, r4
	ldr	r1, .L232
	mov	r2, #0
	str	r5, [sp]
	bl	sdcmd2
	ldr	r3, [r4]
	mov	r6, r0
	strb	r5, [r3, #12]
	ldr	r3, [r4, #28]
	cmp	r3, #0
	beq	.L224
	ldr	r0, [r4, #12]
	mov	r1, #5
	bl	.L234
.L224:
	ldr	r3, [r4]
	mov	r2, #1
	neg	r2, r2
	strb	r2, [r3]
	mov	r3, r4
	add	r3, r3, #168
	str	r5, [r3]
	b	.L226
.L223:
	str	r2, [sp]
	mov	r3, r6
	mov	r0, r4
	ldr	r1, .L232
	mov	r2, #0
	bl	sdcmd2
	mov	r6, r0
.L226:
	mov	r3, #0
	str	r3, [r7]
	cmp	r6, #0
	bne	.L228
	add	r0, sp, #8
	ldr	r1, .L232
	bl	error
	cmp	r0, #0
	bne	.L228
	mov	r0, r4
	add	r0, r0, #168
	ldr	r2, [r0]
	ldr	r3, .L232+4
	cmp	r2, r3
	bhi	.L228
	add	r3, r2, #1
	str	r3, [r0]
	b	.L221
.L228:
	mov	r0, #1
	b	.L220
.L221:
	mov	r0, #0
.L220:
	add	sp, sp, #36
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L233:
	.align	2
.L232:
	.word	1612
	.word	1000000
.L234:
	bx	r3
	.size	stop2, .-stop2
	.section	.text.activate,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	activate, %function
activate:
	push	{r4, r5, r6, lr}
	ldr	r3, [r0, #4]
	mov	r2, #192
	lsl	r2, r2, #3
	and	r3, r3, r2
	mov	r2, #128
	lsl	r2, r2, #2
	mov	r4, r0
	cmp	r3, r2
	bne	.L236
	mov	r0, #0
	b	.L235
.L236:
	ldr	r0, .L250
	mov	r5, #0
	mov	ip, r0
.L242:
	ldmia	r0!, {r1}
	mov	r6, ip
	cmp	r1, #0
	beq	.L238
	ldr	r2, [r1]
	ldr	r3, [r4]
	cmp	r2, r3
	bne	.L239
	ldr	r3, [r1, #4]
	lsl	r1, r3, #22
	bmi	.L238
.L239:
	add	r5, r5, #1
	cmp	r5, #255
	bls	.L242
.L238:
	lsl	r3, r5, #2
	add	r5, r3, r6
	ldr	r0, [r5]
	cmp	r0, #0
	beq	.L243
	bl	stop2
	ldr	r3, [r5]
	ldr	r1, .L250+4
	ldr	r2, [r3, #4]
	and	r2, r2, r1
	str	r2, [r3, #4]
.L243:
	ldr	r3, [r4, #64]
	ldr	r2, [r4]
	strh	r3, [r2, #2]
	ldr	r3, [r4, #4]
	lsl	r1, r3, #24
	bpl	.L244
	mov	r3, #56
	b	.L249
.L244:
	mov	r3, #24
.L249:
	strb	r3, [r2, #1]
	ldr	r3, [r4, #4]
	mov	r2, #128
	lsl	r2, r2, #2
	orr	r3, r3, r2
	mov	r2, #128
	lsl	r2, r2, #3
	str	r3, [r4, #4]
	and	r3, r3, r2
	neg	r3, r3
	lsr	r0, r3, #31
.L235:
	@ sp needed for prologue
	pop	{r4, r5, r6}
	pop	{r1}
	bx	r1
.L251:
	.align	2
.L250:
	.word	sdcores
	.word	-513
	.size	activate, .-activate
	.section	.text.sdcmd,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sdcmd, %function
sdcmd:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #116
	mov	r4, r0
	str	r3, [sp, #24]
	mov	r3, r4
	add	r3, r3, #176
	lsl	r1, r1, #16
	ldr	r3, [r3]
	lsr	r0, r1, #16
	mov	r5, r2
	lsr	r1, r1, #24
	add	r2, sp, #40
	str	r0, [sp, #28]
	str	r1, [sp, #20]
	str	r2, [sp, #36]
	cmp	r3, #0
	beq	.L253
	ldr	r3, [sp, #136]
	mov	r0, r4
	str	r3, [sp]
	ldr	r1, [sp, #28]
	mov	r2, r5
	ldr	r3, [sp, #24]
	bl	sdcmd2
	b	.L252
.L253:
	ldr	r0, [sp, #24]
	cmp	r0, #0
	bne	.L254
	add	r2, sp, #40
	str	r2, [sp, #24]
.L254:
	ldr	r3, [sp, #24]
	ldr	r6, [r4]
	str	r3, [sp, #32]
.L347:
	ldrb	r3, [r6, #2]
	lsl	r3, r3, #24
	lsr	r0, r3, #24
	mov	r3, #7
	and	r3, r3, r0
	cmp	r3, #1
	beq	.L256
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L256
	add	r3, r2, #1
	str	r3, [r1]
	b	.L347
.L256:
	mov	r3, #231
	mov	r1, r0
	and	r1, r1, r3
	ldr	r3, [sp, #20]
	lsl	r2, r3, #5
	mov	r3, #1
	orr	r2, r2, r3
	cmp	r1, r2
	beq	.L262
	ldr	r3, [r4]
	strb	r2, [r3, #2]
.L262:
	ldr	r1, [sp, #36]
	lsr	r3, r5, #24
	ldr	r2, [sp, #28]
	str	r3, [r1, #4]
	lsr	r3, r5, #16
	str	r3, [r1, #8]
	str	r5, [r1, #16]
	lsr	r3, r5, #8
	mov	r5, #0
	str	r2, [r1]
	str	r3, [r1, #12]
	mov	r6, r1
	mov	ip, r5
.L271:
	ldrb	r2, [r6]
	mov	r7, #0
.L270:
	lsl	r5, r5, #1
	mov	r3, r2
	eor	r3, r3, r5
	str	r3, [sp, #12]
	lsl	r3, r3, #24
	bpl	.L269
	mov	r3, #9
	eor	r5, r5, r3
.L269:
	lsl	r3, r2, #25
	lsr	r2, r3, #24
	add	r3, r7, #1
	lsl	r3, r3, #24
	lsr	r7, r3, #24
	cmp	r7, #7
	bls	.L270
	mov	r2, #1
	mov	r3, #127
	add	ip, ip, r2
	and	r5, r5, r3
	mov	r3, ip
	add	r6, r6, #4
	cmp	r3, #5
	bcc	.L271
	lsl	r3, r5, #1
	orr	r3, r3, r2
	str	r3, [r1, #20]
	ldr	r3, [r4, #4]
	mov	r2, #8
	orr	r3, r3, r2
	add	r2, sp, #40
	str	r3, [r4, #4]
	sub	r3, r1, r2
.L348:
	asr	r3, r3, #2
	cmp	r3, #6
	beq	.L275
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L275
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r2, [sp, #136]
	mov	r0, r4
	add	r1, sp, #36
	bl	tend_ssp
	ldr	r3, [sp, #36]
	add	r2, sp, #40
	sub	r3, r3, r2
	b	.L348
.L275:
	ldr	r3, [r4, #4]
	mov	r2, #8
	bic	r3, r3, r2
	str	r3, [r4, #4]
	mov	r2, #7
	mov	r3, r0
	and	r3, r3, r2
	cmp	r3, #1
	beq	.L281
	ldr	r3, [r4]
	strb	r2, [r3, #2]
	b	.L351
.L281:
	ldr	r3, [sp, #20]
	cmp	r3, #1
	bne	.LCB1756
	b	.L283	@long jump
.LCB1756:
	cmp	r3, #3
	bne	.L285
	mov	r7, #17
	b	.L284
.L285:
	mov	r7, #6
.L284:
	mov	r3, #7
	and	r3, r3, r0
	sub	r3, r3, #2
	cmp	r3, #1
	bls	.L288
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L288
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r0, [sp, #28]
	mov	r3, #146
	lsl	r3, r3, #2
	cmp	r0, r3
	bne	.L293
	ldr	r0, .L352+4
	add	r3, r2, r0
	str	r3, [r1]
.L293:
	mov	r0, r4
	mov	r1, #0
	ldr	r2, [sp, #136]
	bl	tend_ssp
	b	.L284
.L288:
	ldr	r2, [r4, #4]
	mov	r3, #3
	tst	r2, r3
	beq	.L295
.L296:
	mov	r5, r4
	add	r5, r5, #168
	ldr	r2, [r5]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L297
	add	r3, r2, #1
	str	r3, [r5]
	mov	r0, r4
	mov	r1, #0
	ldr	r2, [sp, #136]
	bl	tend_ssp
	mov	r3, #24
	tst	r0, r3
	beq	.L296
.L297:
	mov	r3, #7
	and	r3, r3, r0
	mov	r6, #0
	cmp	r3, #3
	beq	.L295
.L311:
	ldr	r2, [r5]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L304
	add	r3, r2, #1
	str	r3, [r5]
	cmp	r6, #2
	bhi	.L346
	ldr	r2, [sp, #136]
	mov	r0, r4
	mov	r1, #0
	bl	tend_ssp
	lsl	r2, r0, #27
	bpl	.L303
	add	r6, r6, #1
.L303:
	mov	r3, #7
	and	r3, r3, r0
	cmp	r3, #3
	bne	.L311
.L304:
	cmp	r6, #2
	bls	.L295
.L346:
	ldr	r2, [r4]
	mov	r3, #7
	strb	r3, [r2, #2]
	b	.L351
.L295:
	ldr	r2, [r4, #4]
	mov	r3, #3
	bic	r2, r2, r3
	ldr	r3, [sp, #20]
	str	r2, [r4, #4]
	cmp	r3, #0
	bne	.L313
	mov	r3, #1
	orr	r3, r3, r2
	str	r3, [r4, #4]
.L313:
	ldr	r3, [r4, #4]
	mov	r2, #4
	orr	r3, r3, r2
	str	r3, [r4, #4]
	ldr	r0, [sp, #24]
	ldr	r3, [sp, #32]
	sub	r3, r3, r0
.L349:
	asr	r3, r3, #2
	cmp	r3, r7
	beq	.L315
	mov	r1, r4
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L352
	cmp	r2, r3
	bhi	.L315
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r2, [sp, #136]
	mov	r0, r4
	add	r1, sp, #32
	bl	tend_ssp
	lsl	r2, r0, #27
	bpl	.L314
	ldr	r3, [sp, #32]
	ldr	r0, [sp, #24]
	cmp	r0, r3
	beq	.L338
.L314:
	ldr	r3, [sp, #32]
	ldr	r2, [sp, #24]
	sub	r3, r3, r2
	b	.L349
.L315:
	ldr	r2, [r4, #4]
	mov	r3, #4
	bic	r2, r2, r3
	ldr	r3, [sp, #20]
	str	r2, [r4, #4]
	cmp	r3, #6
	bne	.L322
	mov	r3, #3
	bic	r2, r2, r3
	mov	r3, r2
	b	.L350
.L322:
	ldr	r0, [sp, #20]
	cmp	r0, #5
	bne	.L283
	mov	r3, #2
	orr	r3, r3, r2
.L350:
	str	r3, [r4, #4]
.L283:
	mov	r0, r4
	add	r0, r0, #168
	ldr	r1, [r0]
	ldr	r3, .L352
	cmp	r1, r3
	bls	.L325
	b	.L351
.L338:
	ldr	r2, [r4]
	mov	r3, #7
	strb	r3, [r2, #2]
	ldr	r3, [r4, #4]
	mov	r2, #5
	bic	r3, r3, r2
	str	r3, [r4, #4]
.L351:
	mov	r0, #1
	b	.L252
.L325:
	add	r3, r1, #1
	str	r3, [r0]
	mov	r0, #0
.L252:
	add	sp, sp, #116
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L353:
	.align	2
.L352:
	.word	1000000
	.word	1001
	.size	sdcmd, .-sdcmd
	.section	.text.datssp_stream2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	datssp_stream2, %function
datssp_stream2:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #20
	mov	r6, r0
	str	r1, [sp, #12]
	mov	r4, r2
.L361:
	ldr	r0, [sp, #12]
	ldr	r7, [r6, #16]
	ldr	r5, [r0]
	cmp	r7, #0
	beq	.L355
	ldr	r3, [r6, #4]
	lsl	r1, r3, #31
	bpl	.L355
	ldr	r0, [r6, #12]
	mov	r1, r5
	mov	r2, r4
	bl	.L444
	cmp	r0, #0
	beq	.LCB2024
	b	.L354	@long jump
.LCB2024:
	cmp	r5, #0
	bne	.LCB2026
	b	.L354	@long jump
.LCB2026:
	ldr	r2, [sp, #12]
	ldr	r3, [r2]
	add	r3, r3, r4
	str	r3, [r2]
	b	.L354
.L355:
	mov	r3, #128
	lsl	r3, r3, #2
	cmp	r4, r3
	bls	.L414
.L363:
	mov	r7, #128
	lsl	r7, r7, #2
	mov	r0, r6
	ldr	r1, [sp, #12]
	mov	r2, r7
	bl	datssp_stream2
	ldr	r3, [r6, #28]
	cmp	r3, #0
	beq	.L362
	ldr	r0, [r6, #12]
	mov	r1, #1
	bl	.L445
.L362:
	ldr	r3, .L442
	ldr	r0, [sp, #12]
	add	r4, r4, r3
	ldr	r5, [r0]
	cmp	r4, r7
	bhi	.L363
.L414:
	mov	r3, r6
	add	r3, r3, #176
	ldr	r3, [r3]
	mov	r1, #0
	str	r1, [sp, #8]
	cmp	r3, #2
	bne	.L364
	mov	r2, #1
	str	r2, [sp, #8]
.L364:
	ldr	r1, [sp, #8]
	mov	r0, #0
	str	r0, [sp, #4]
	cmp	r1, #0
	bne	.L366
	cmp	r3, #3
	bne	.L367
.L366:
	ldr	r3, [sp, #8]
	mov	r2, #1
	str	r2, [sp, #4]
	cmp	r3, #0
	bne	.L367
	mov	r0, #5
	mov	ip, r0
	b	.L368
.L367:
	mov	r1, #4
	mov	ip, r1
.L368:
	ldr	r2, [r6, #4]
	mov	r3, #1
	mov	r1, r5
	and	r1, r1, r3
	tst	r2, r3
	beq	.L369
	cmp	r1, #0
	bne	.L435
.L437:
	cmp	r4, #1
	bne	.L416
.L435:
	ldr	r3, [r6]
	mov	r2, ip
	ldrb	r3, [r3, r2]
	sub	r4, r4, #1
	strb	r3, [r5]
	add	r5, r5, #1
	lsl	r3, r5, #31
	bmi	.L435
	b	.L437
.L416:
	lsl	r0, r5, #30
	bpl	.L374
	cmp	r4, #1
	bls	.L374
	ldr	r1, [sp, #4]
	ldr	r2, [r6]
	sub	r0, r4, #2
	add	r7, r5, #2
	cmp	r1, #0
	beq	.L375
	ldrh	r3, [r2, #4]
	strh	r3, [r5]
	b	.L376
.L375:
	mov	r4, ip
	ldrb	r3, [r2, r4]
	lsl	r3, r3, #24
	lsr	r1, r3, #24
	ldrb	r3, [r2, r4]
	lsl	r3, r3, #24
	lsr	r3, r3, #16
	orr	r1, r1, r3
	strh	r1, [r5]
.L376:
	mov	r4, r0
	mov	r5, r7
.L374:
	ldr	r0, [sp, #8]
	cmp	r0, #0
	beq	.L377
.L438:
	cmp	r4, #3
	bls	.L390
	ldr	r3, [r6]
	sub	r4, r4, #4
	ldr	r3, [r3, #4]
	stmia	r5!, {r3}
	b	.L438
.L377:
	ldr	r1, [sp, #4]
	cmp	r1, #0
	beq	.L382
.L439:
	cmp	r4, #3
	bls	.L390
	ldr	r3, [r6]
	sub	r4, r4, #4
	ldrh	r2, [r3, #4]
	ldrh	r3, [r3, #4]
	lsl	r2, r2, #16
	lsr	r1, r2, #16
	lsl	r3, r3, #16
	orr	r1, r1, r3
	stmia	r5!, {r1}
	b	.L439
.L382:
	cmp	r4, #3
	bls	.L390
	ldr	r2, [r6]
	mov	r0, ip
	ldrb	r3, [r2, r0]
	sub	r4, r4, #4
	lsl	r3, r3, #24
	lsr	r1, r3, #24
	ldrb	r3, [r2, r0]
	lsl	r3, r3, #24
	lsr	r3, r3, #16
	orr	r1, r1, r3
	ldrb	r3, [r2, r0]
	lsl	r3, r3, #24
	lsr	r3, r3, #8
	orr	r1, r1, r3
	ldrb	r3, [r2, r0]
	lsl	r3, r3, #24
	orr	r1, r1, r3
	stmia	r5!, {r1}
	b	.L382
.L369:
	cmp	r1, #0
	bne	.L436
.L440:
	cmp	r4, #1
	bne	.L424
.L436:
	ldrb	r3, [r5]
	ldr	r2, [r6]
	add	r5, r5, #1
	strb	r3, [r2, #4]
	sub	r4, r4, #1
	lsl	r1, r5, #31
	bmi	.L436
	b	.L440
.L424:
	lsl	r2, r5, #30
	bpl	.L395
	cmp	r4, #1
	bls	.L395
	sub	r0, r4, #2
	ldr	r4, [sp, #4]
	ldr	r2, [r6]
	ldrh	r3, [r5]
	add	r7, r5, #2
	cmp	r4, #0
	beq	.L396
	strh	r3, [r2, #4]
	b	.L397
.L396:
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	strb	r1, [r2, #4]
	ldr	r2, [r6]
	lsr	r3, r3, #24
	strb	r3, [r2, #4]
.L397:
	mov	r4, r0
	mov	r5, r7
.L395:
	ldr	r0, [sp, #8]
	cmp	r0, #0
	beq	.L398
.L441:
	cmp	r4, #3
	bls	.L390
	ldr	r2, [r6]
	ldmia	r5!, {r3}
	sub	r4, r4, #4
	str	r3, [r2, #4]
	b	.L441
.L398:
	ldr	r1, [sp, #4]
	cmp	r1, #0
	beq	.L403
	cmp	r4, #3
	bls	.L390
	ldr	r2, [r6]
.L406:
	ldmia	r5!, {r1}
	sub	r4, r4, #4
	lsr	r3, r1, #16
	strh	r1, [r2, #4]
	strh	r3, [r2, #4]
	cmp	r4, #3
	bhi	.L406
	b	.L390
.L403:
	cmp	r4, #3
	bls	.L390
	ldmia	r5!, {r1}
	ldr	r3, [r6]
	sub	r4, r4, #4
	strb	r1, [r3, #4]
	ldr	r2, [r6]
	lsr	r3, r1, #8
	strb	r3, [r2, #4]
	ldr	r2, [r6]
	lsr	r3, r1, #16
	strb	r3, [r2, #4]
	ldr	r2, [r6]
	lsr	r3, r1, #24
	strb	r3, [r2, #4]
	b	.L403
.L390:
	ldr	r2, [sp, #12]
	str	r5, [r2]
	cmp	r4, #0
	beq	.LCB2365
	b	.L361	@long jump
.LCB2365:
	mov	r0, #0
.L354:
	add	sp, sp, #20
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L443:
	.align	2
.L442:
	.word	-512
.L445:
	bx	r3
.L444:
	bx	r7
	.size	datssp_stream2, .-datssp_stream2
	.section	.text.datssp_stream,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	datssp_stream, %function
datssp_stream:
	push	{r4, r5, r6, r7, lr}
	ldr	r3, [r0, #4]
	sub	sp, sp, #4
	mov	r6, r0
	mov	r7, r1
	mov	r4, r2
	mov	r5, #0
	lsl	r2, r3, #31
	bpl	.L447
	ldr	r3, [r0, #16]
	cmp	r3, #0
	beq	.L447
	cmp	r1, #0
	beq	.L448
	ldr	r5, [r1]
	b	.L449
.L448:
	mov	r5, #0
.L449:
	ldr	r0, [r6, #12]
	mov	r1, r5
	mov	r2, r4
	bl	.L504
	cmp	r0, #0
	bne	.L446
	cmp	r5, #0
	beq	.L446
	ldr	r3, [r7]
	add	r3, r3, r4
	str	r3, [r7]
	b	.L446
.L447:
	mov	r3, r6
	add	r3, r3, #176
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L500
	mov	r0, r6
	mov	r1, r7
	mov	r2, r4
	bl	datssp_stream2
	b	.L446
.L500:
	cmp	r4, #0
	beq	.L461
	mov	r1, r6
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L502
	cmp	r2, r3
	bls	.L455
	mov	r0, #1
	b	.L446
.L455:
	add	r3, r2, #1
	str	r3, [r1]
	mov	r0, r6
	mov	r1, #0
	mov	r2, r7
	bl	tend_ssp
	lsl	r3, r0, #27
	bpl	.L500
	mov	r3, r5
	sub	r4, r4, #1
	add	r5, r5, #1
	cmp	r3, #7
	bls	.L500
	ldr	r3, [r6, #4]
	lsl	r2, r3, #31
	bpl	.L463
.L461:
	cmp	r7, #0
	beq	.L465
	ldr	r5, [r7]
.L498:
	cmp	r4, #0
	beq	.L494
	ldr	r3, [r6]
	sub	r4, r4, #1
	ldrb	r3, [r3, #1]
	strb	r3, [r5]
	add	r5, r5, #1
	b	.L498
.L465:
	sub	r4, r4, #1
	bcc	.L481
	ldr	r0, [r6]
.L472:
	ldrb	r3, [r0, #1]
	sub	r4, r4, #1
	bcs	.L472
	b	.L481
.L463:
	cmp	r7, #0
	beq	.L473
	ldr	r5, [r7]
.L501:
	cmp	r4, #0
	beq	.L494
	ldrb	r1, [r5]
	ldr	r3, [r6]
	sub	r4, r4, #1
	strb	r1, [r3, #1]
	ldr	r3, [r6, #4]
	add	r5, r5, #1
	lsl	r2, r3, #27
	bmi	.L501
	lsl	r2, r3, #26
	bpl	.L477
	mov	r0, r6
	bl	sd_4bit_feedcrc
	b	.L501
.L477:
	mov	r0, r6
	bl	sd_1bit_feedcrc
	b	.L501
.L494:
	str	r5, [r7]
	b	.L481
.L473:
	sub	r4, r4, #1
	bcc	.L481
.L488:
	ldr	r3, [r6, #4]
	ldr	r5, [r6]
	mov	r0, #0
	lsl	r2, r3, #27
	bmi	.L484
	lsl	r2, r3, #26
	bpl	.L485
	mov	r0, r6
	bl	sd_4bit_getcrc
	b	.L484
.L485:
	mov	r0, r6
	bl	sd_1bit_getcrc
.L484:
	strb	r0, [r5, #1]
	sub	r4, r4, #1
	bcs	.L488
.L481:
	mov	r0, #0
.L446:
	add	sp, sp, #4
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L503:
	.align	2
.L502:
	.word	1000000
.L504:
	bx	r3
	.size	datssp_stream, .-datssp_stream
	.section	.text.stop,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	stop, %function
stop:
	push	{r4, r5, r6, lr}
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	sub	sp, sp, #32
	mov	r5, r0
	cmp	r3, #0
	beq	.L506
	bl	stop2
	b	.L505
.L506:
	mov	r6, r0
	add	r6, r6, #172
	ldr	r3, [r6]
	cmp	r3, #0
	beq	.L507
	ldr	r2, [r0, #4]
	mov	r3, #2
	ldr	r0, [r0]
	and	r2, r3
	beq	.L508
.L524:
	ldrb	r2, [r0, #2]
	mov	r3, #7
	and	r3, r3, r2
	cmp	r3, #5
	beq	.L510
	mov	r1, r5
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L525
	cmp	r2, r3
	bhi	.L510
	add	r3, r2, #1
	str	r3, [r1]
	b	.L524
.L510:
	ldr	r2, [r5]
	mov	r3, #63
	neg	r3, r3
	strb	r3, [r2, #2]
	ldr	r3, [r5, #4]
	mov	r2, #2
	bic	r3, r3, r2
	mov	r4, #1
	orr	r3, r3, r4
	str	r3, [r5, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r2, #0
	add	r3, sp, #8
	mov	r0, r5
	ldr	r1, .L525+4
	bl	sdcmd
	ldr	r3, [r5, #4]
	ldr	r2, [r5]
	bic	r3, r3, r4
	str	r3, [r5, #4]
	mov	r3, #124
	neg	r3, r3
	strb	r3, [r2, #2]
	b	.L516
.L508:
	mov	r3, #63
	neg	r3, r3
	strb	r3, [r0, #2]
	ldr	r1, .L525+4
	str	r2, [sp]
	mov	r0, r5
	mov	r2, #0
	add	r3, sp, #8
	bl	sdcmd
.L516:
	mov	r3, #0
	str	r3, [r6]
	cmp	r0, #0
	bne	.L518
	add	r0, sp, #8
	ldr	r1, .L525+4
	bl	error
	cmp	r0, #0
	bne	.L518
	mov	r0, r5
	add	r0, r0, #168
	ldr	r1, [r0]
	ldr	r3, .L525
	cmp	r1, r3
	bhi	.L518
	add	r3, r1, #1
	str	r3, [r0]
	b	.L507
.L518:
	mov	r0, #1
	b	.L505
.L507:
	mov	r0, #0
.L505:
	add	sp, sp, #32
	@ sp needed for prologue
	pop	{r4, r5, r6}
	pop	{r1}
	bx	r1
.L526:
	.align	2
.L525:
	.word	1000000
	.word	1612
	.size	stop, .-stop
	.section	.text.do_read2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	do_read2, %function
do_read2:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #36
	mov	r4, r0
	mov	r7, r1
	str	r2, [sp, #24]
	str	r3, [sp, #20]
	cmp	r3, #0
	bne	.LCB2762
	b	.L548	@long jump
.LCB2762:
	bl	activate
	cmp	r0, #0
	bne	.L556
	ldr	r1, [sp, #24]
	mov	r0, r4
	ldr	r3, [r1]
	ldr	r6, [r1, #4]
	str	r3, [sp, #28]
	bl	sdsize
	str	r0, [sp, #16]
	cmp	r7, r0
	bcs	.L548
	mov	r2, r4
	add	r2, r2, #172
	str	r2, [sp, #12]
	ldr	r2, [r2]
	cmp	r2, #0
	beq	.L531
	ldr	r3, [r4, #4]
	lsl	r1, r3, #30
	bmi	.L532
	cmp	r2, r7
	bne	.L532
	ldr	r2, [r4, #28]
	cmp	r2, #0
	beq	.L534
	ldr	r3, [r4, #16]
	cmp	r3, #0
	bne	.L534
	ldr	r0, [r4, #12]
	mov	r1, #3
	bl	.L560
	b	.L534
.L532:
	mov	r0, r4
	bl	stop2
.L531:
	ldr	r2, [r4, #4]
	mov	r3, #64
	and	r3, r2
	beq	.L535
	ldr	r1, .L558
	mov	r3, #0
	mov	r0, r4
	mov	r2, r7
	str	r3, [sp]
	b	.L555
.L535:
	ldr	r1, .L558
	str	r3, [sp]
	lsl	r2, r7, #9
	mov	r0, r4
	mov	r3, #0
.L555:
	bl	sdcmd2
.L537:
	mov	r0, r4
	add	r0, r0, #168
	ldr	r2, [r0]
	ldr	r3, .L558+4
	cmp	r2, r3
	bls	.L541
.L556:
	mov	r0, #1
	b	.L527
.L541:
	add	r3, r2, #1
	str	r3, [r0]
	ldr	r2, [r4]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [r4]
	mov	r3, #1
	neg	r3, r3
	ldrb	r1, [r2]
	strb	r3, [r2]
	mov	r3, #15
	and	r3, r1
	bne	.L537
	str	r3, [r0]
.L534:
	ldr	r5, [r4, #20]
	cmp	r5, #0
	beq	.L545
	ldr	r3, [r4, #16]
	cmp	r3, #0
	beq	.L545
	ldr	r0, [r4, #12]
	ldr	r1, [sp, #28]
	lsl	r2, r6, #9
	bl	.L561
.L545:
	ldr	r3, [r4]
	mov	r2, #33
	neg	r2, r2
	strb	r2, [r3]
	ldr	r2, [sp, #12]
	add	r3, r7, r6
	str	r3, [r2]
.L546:
.L557:
	ldr	r1, [sp, #12]
	ldr	r2, [sp, #16]
	ldr	r3, [r1]
	cmp	r3, r2
	bls	.L547
	sub	r3, r3, r2
	sub	r6, r6, r3
	str	r2, [r1]
.L547:
	lsl	r2, r6, #9
	mov	r0, r4
	add	r1, sp, #28
	bl	datssp_stream2
	ldr	r3, [sp, #20]
	sub	r3, r3, #1
	str	r3, [sp, #20]
	cmp	r3, #0
	beq	.L548
	ldr	r1, [sp, #24]
	ldr	r2, [sp, #12]
	add	r1, r1, #8
	ldr	r6, [r1, #4]
	ldr	r3, [r2]
	str	r1, [sp, #24]
	ldr	r5, [r4, #20]
	ldr	r1, [r1]
	add	r3, r3, r6
	str	r1, [sp, #28]
	str	r3, [r2]
	cmp	r5, #0
	beq	.L557
	ldr	r3, [r4, #16]
	cmp	r3, #0
	beq	.L557
	ldr	r0, [r4, #12]
	lsl	r2, r6, #9
	bl	.L561
	b	.L557
.L548:
	mov	r0, #0
.L527:
	add	sp, sp, #36
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L559:
	.align	2
.L558:
	.word	1874
	.word	1000000
.L560:
	bx	r2
.L561:
	bx	r5
	.size	do_read2, .-do_read2
	.section	.text.do_read,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	do_read, %function
do_read:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #60
	mov	r4, r0
	str	r1, [sp, #24]
	str	r2, [sp, #20]
	str	r3, [sp, #16]
	cmp	r3, #0
	bne	.LCB2959
	b	.L587	@long jump
.LCB2959:
	ldr	r1, [sp, #20]
	ldr	r2, [r1]
	ldr	r5, [r1, #4]
	str	r2, [sp, #12]
	str	r2, [sp, #28]
	bl	sdsize
	ldr	r3, [sp, #24]
	mov	r7, r0
	cmp	r3, r7
	bcc	.LCB2969
	b	.L587	@long jump
.LCB2969:
	mov	r1, r4
	add	r1, r1, #172
	ldr	r2, [r1]
	str	r1, [sp, #8]
	cmp	r2, #0
	beq	.L565
	ldr	r3, [r4, #4]
	lsl	r1, r3, #30
	bmi	.L566
	ldr	r3, [sp, #24]
	cmp	r2, r3
	beq	.L567
.L566:
	mov	r0, r4
	bl	stop
.L565:
	ldr	r3, [r4, #4]
	add	r6, sp, #32
	add	r1, sp, #28
	lsl	r2, r3, #25
	bpl	.L568
	ldr	r2, [sp, #24]
	str	r1, [sp]
	mov	r0, r4
	mov	r1, #82
	b	.L586
.L568:
	ldr	r3, [sp, #24]
	str	r1, [sp]
	lsl	r2, r3, #9
	mov	r0, r4
	mov	r1, #82
.L586:
	mov	r3, r6
	bl	sdcmd
	cmp	r0, #0
	bne	.L571
	add	r0, sp, #32
	mov	r1, #82
	bl	error
	cmp	r0, #0
	beq	.L567
.L571:
	mov	r0, #1
	b	.L562
.L567:
	ldr	r6, [r4, #20]
	cmp	r6, #0
	beq	.L572
	ldr	r3, [r4, #16]
	cmp	r3, #0
	beq	.L572
	ldr	r1, [sp, #28]
	ldr	r3, [sp, #12]
	lsl	r2, r5, #9
	sub	r3, r1, r3
	ldr	r0, [r4, #12]
	sub	r2, r2, r3
	bl	.L589
.L572:
	ldr	r1, [sp, #12]
	ldr	r3, [sp, #28]
	mov	r2, #128
	sub	r3, r3, r1
	lsl	r2, r2, #2
	sub	r2, r2, r3
	add	r1, sp, #28
	mov	r0, r4
	bl	datssp_stream
	mov	r1, #0
	mov	r2, #6
	mov	r0, r4
	bl	datssp_stream
	ldr	r2, [sp, #24]
	ldr	r3, [sp, #8]
	add	r1, r2, r5
	str	r1, [r3]
	cmp	r1, r7
	bls	.L573
	sub	r3, r1, r7
	ldr	r1, [sp, #8]
	sub	r5, r5, r3
	str	r7, [r1]
.L573:
	sub	r5, r5, #1
.L574:
.L588:
	sub	r5, r5, #1
	bcc	.L582
.L577:
	ldr	r2, [r4]
	mov	r3, #2
	strb	r3, [r2, #2]
	mov	r1, #0
	mov	r2, #2
	mov	r0, r4
	bl	datssp_stream
	mov	r2, #128
	add	r1, sp, #28
	lsl	r2, r2, #2
	mov	r0, r4
	bl	datssp_stream
	mov	r0, r4
	mov	r1, #0
	mov	r2, #6
	bl	datssp_stream
	sub	r5, r5, #1
	bcs	.L577
.L582:
	ldr	r2, [sp, #16]
	sub	r2, r2, #1
	str	r2, [sp, #16]
	cmp	r2, #0
	beq	.L578
	ldr	r3, [sp, #20]
	ldr	r1, [sp, #8]
	add	r3, r3, #8
	ldr	r5, [r3, #4]
	str	r3, [sp, #20]
	ldr	r3, [r3]
	str	r3, [sp, #28]
	ldr	r3, [r1]
	add	r3, r3, r5
	str	r3, [r1]
	cmp	r3, r7
	bls	.L579
	sub	r3, r3, r7
	sub	r5, r5, r3
	str	r7, [r1]
.L579:
	ldr	r6, [r4, #20]
	cmp	r6, #0
	beq	.L588
	ldr	r3, [r4, #16]
	cmp	r3, #0
	beq	.L588
	cmp	r5, #0
	beq	.L588
	ldr	r0, [r4, #12]
	ldr	r1, [sp, #28]
	lsl	r2, r5, #9
	bl	.L589
	b	.L588
.L578:
	ldr	r2, [r4]
	mov	r3, #2
	strb	r3, [r2, #2]
	mov	r0, r4
	mov	r1, #0
	mov	r2, #2
	bl	datssp_stream
.L587:
	mov	r0, #0
.L562:
	add	sp, sp, #60
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L589:
	bx	r6
	.size	do_read, .-do_read
	.section	.text.do_write2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	do_write2, %function
do_write2:
	push	{r4, r5, r6, r7, lr}
	mov	r6, r3
	ldr	r3, [r0, #36]
	sub	sp, sp, #52
	mov	r5, r0
	mov	r7, r1
	str	r2, [sp, #16]
	cmp	r3, #0
	beq	.LCB3171
	b	.L620	@long jump
.LCB3171:
	cmp	r6, #0
	bne	.LCB3173
	b	.L614	@long jump
.LCB3173:
	bl	activate
	cmp	r0, #0
	beq	.LCB3176
	b	.L620	@long jump
.LCB3176:
	mov	r0, r5
	bl	sdsize
	str	r0, [sp, #12]
	cmp	r7, r0
	bcc	.LCB3181
	b	.L614	@long jump
.LCB3181:
	ldr	r3, [r5, #32]
	cmp	r3, #0
	beq	.L595
	mov	r0, r5
	bl	.L623
	cmp	r0, #0
	bne	.L595
	mov	r3, r5
	add	r3, r3, #172
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L620
	mov	r0, r5
	bl	stop2
	b	.L620
.L595:
	mov	r0, r5
	add	r0, r0, #172
	ldr	r2, [r0]
	str	r0, [sp, #8]
	cmp	r2, #0
	beq	.L599
	ldr	r3, [r5, #4]
	lsl	r1, r3, #30
	bpl	.L600
	cmp	r2, r7
	beq	.L601
.L600:
	mov	r0, r5
	bl	stop2
.L599:
	ldr	r3, [r5, #8]
	cmp	r3, #0
	beq	.L602
	mov	r4, #0
	ldr	r2, [r5, #68]
	ldr	r1, .L621
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r2, [r5, #8]
	mov	r0, r5
	ldr	r1, .L621+4
	mov	r3, #0
	str	r4, [sp]
	bl	sdcmd2
	str	r4, [r5, #8]
.L602:
	ldr	r2, [r5, #4]
	mov	r3, #64
	add	r4, sp, #24
	and	r3, r2
	beq	.L603
	ldr	r1, .L621+8
	mov	r3, #0
	mov	r0, r5
	mov	r2, r7
	str	r3, [sp]
	b	.L619
.L603:
	ldr	r1, .L621+8
	lsl	r2, r7, #9
	str	r3, [sp]
	mov	r0, r5
.L619:
	mov	r3, r4
	bl	sdcmd2
	cmp	r0, #0
	bne	.L620
	add	r0, sp, #24
	ldr	r1, .L621+8
	bl	error
	cmp	r0, #0
	bne	.L620
	ldr	r2, [sp, #8]
	ldr	r3, [r5]
	str	r7, [r2]
	ldrb	r3, [r3, #1]
.L601:
	sub	r6, r6, #1
	bcc	.L617
.L610:
	ldr	r0, [sp, #16]
	mov	r1, r5
	ldr	r3, [r0]
	add	r1, r1, #172
	ldr	r2, [r0, #4]
	str	r3, [sp, #20]
	ldr	r3, [r1]
	ldr	r0, [sp, #12]
	add	r3, r3, r2
	str	r3, [r1]
	cmp	r3, r0
	bls	.L609
	sub	r3, r3, r0
	sub	r2, r2, r3
	str	r0, [r1]
.L609:
	add	r1, sp, #20
	lsl	r2, r2, #9
	mov	r0, r5
	bl	datssp_stream2
	ldr	r1, [sp, #16]
	add	r1, r1, #8
	str	r1, [sp, #16]
	sub	r6, r6, #1
	bcs	.L610
.L617:
	ldr	r3, [r5, #60]
	cmp	r3, #0
	bne	.L611
	mov	r0, r5
	bl	stop2
	cmp	r0, #0
	bne	.L590
.L611:
	ldr	r3, [r5, #28]
	cmp	r3, #0
	beq	.L613
	ldr	r0, [r5, #12]
	mov	r1, #2
	bl	.L623
.L613:
	ldr	r3, [r5]
	ldrb	r2, [r3, #1]
	mov	r3, #68
	tst	r3, r2
	beq	.L614
	mov	r2, r5
	ldr	r3, .L621+12
	add	r2, r2, #168
	str	r3, [r2]
.L620:
	mov	r0, #1
	b	.L590
.L614:
	mov	r0, #0
.L590:
	add	sp, sp, #52
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L622:
	.align	2
.L621:
	.word	631
	.word	599
	.word	1369
	.word	1000001
.L623:
	bx	r3
	.size	do_write2, .-do_write2
	.section	.text.do_write,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	do_write, %function
do_write:
	push	{r4, r5, r6, r7, lr}
	mov	r6, r3
	ldr	r3, [r0, #36]
	sub	sp, sp, #52
	mov	r5, r0
	mov	r7, r1
	str	r2, [sp, #16]
	cmp	r3, #0
	bne	.L637
	cmp	r6, #0
	beq	.L645
	bl	sdsize
	str	r0, [sp, #12]
	cmp	r7, r0
	bcs	.L645
	ldr	r2, [r5, #4]
	mov	r1, r5
	mov	r3, #16
	add	r1, r1, #172
	bic	r2, r2, r3
	ldr	r3, [r1]
	str	r2, [r5, #4]
	str	r1, [sp, #8]
	cmp	r3, #0
	beq	.L630
	lsl	r1, r2, #30
	bpl	.L631
	cmp	r3, r7
	beq	.L632
.L631:
	mov	r0, r5
	bl	stop
.L630:
	ldr	r3, [r5, #8]
	cmp	r3, #0
	beq	.L633
	mov	r4, #0
	ldr	r2, [r5, #68]
	ldr	r1, .L651
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [r5, #8]
	mov	r0, r5
	ldr	r1, .L651+4
	mov	r3, #0
	str	r4, [sp]
	bl	sdcmd
	str	r4, [r5, #8]
.L633:
	ldr	r2, [r5, #4]
	mov	r3, #64
	add	r4, sp, #24
	and	r3, r2
	beq	.L634
	ldr	r1, .L651+8
	mov	r3, #0
	mov	r0, r5
	mov	r2, r7
	str	r3, [sp]
	b	.L650
.L634:
	ldr	r1, .L651+8
	lsl	r2, r7, #9
	str	r3, [sp]
	mov	r0, r5
.L650:
	mov	r3, r4
	bl	sdcmd
	cmp	r0, #0
	bne	.L637
	add	r0, sp, #24
	ldr	r1, .L651+8
	bl	error
	cmp	r0, #0
	beq	.L636
.L637:
	mov	r0, #1
	b	.L624
.L636:
	ldr	r2, [sp, #8]
	str	r7, [r2]
.L632:
	sub	r6, r6, #1
	bcc	.L647
.L644:
	ldr	r1, [sp, #16]
	mov	r2, r5
	ldr	r3, [r1]
	add	r2, r2, #172
	ldr	r4, [r1, #4]
	str	r3, [sp, #20]
	ldr	r3, [r2]
	ldr	r1, [sp, #12]
	add	r3, r3, r4
	str	r3, [r2]
	cmp	r3, r1
	bls	.L640
	sub	r3, r3, r1
	sub	r4, r4, r3
	str	r1, [r2]
.L640:
	sub	r4, r4, #1
	bcc	.L649
.L643:
	mov	r2, #128
	add	r1, sp, #20
	lsl	r2, r2, #2
	mov	r0, r5
	bl	datssp_stream
	mov	r2, #8
	mov	r0, r5
	mov	r1, #0
	bl	datssp_stream
	ldr	r2, [r5]
	mov	r3, #90
	neg	r3, r3
	strb	r3, [r2, #2]
	sub	r4, r4, #1
	bcs	.L643
.L649:
	ldr	r2, [sp, #16]
	add	r2, r2, #8
	str	r2, [sp, #16]
	sub	r6, r6, #1
	bcs	.L644
.L647:
	ldr	r3, [r5, #60]
	cmp	r3, #0
	bne	.L645
	mov	r0, r5
	bl	stop
.L645:
	mov	r0, #0
.L624:
	add	sp, sp, #52
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L652:
	.align	2
.L651:
	.word	631
	.word	599
	.word	1369
	.size	do_write, .-do_write
	.section	.text.version,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	version, %function
version:
	push	{r4, lr}
	mov	ip, r0
	mov	r0, #0
.L659:
	ldr	r2, .L668
	lsl	r3, r0, #2
	ldr	r1, [r3, r2]
	cmp	r1, #0
	beq	.L655
	mov	r4, ip
	ldr	r2, [r1]
	ldr	r3, [r4]
	cmp	r2, r3
	beq	.L667
	add	r0, r0, #1
	cmp	r0, #255
	bls	.L659
.L655:
	mov	r3, ip
	ldr	r2, [r3]
	mov	r4, ip
	ldrb	r3, [r2, #3]
	lsl	r3, r3, #24
	lsr	r1, r3, #24
	mov	r3, #64
	eor	r3, r3, r1
	strb	r3, [r2, #3]
	ldr	r3, [r4]
	mov	r4, #64
	ldrb	r2, [r3, #3]
	strb	r1, [r3, #3]
	mov	r3, r4
	and	r1, r1, r4
	and	r3, r3, r2
	cmp	r1, r3
	beq	.L660
	mov	r0, #0
	b	.L653
.L660:
	cmp	r1, #0
	beq	.L661
	mov	r0, #1
	b	.L653
.L661:
	mov	r2, ip
	ldr	r0, [r2]
	ldr	r1, [r0, #12]
	ldrh	r3, [r0, #12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	tst	r1, r4
	beq	.L663
	tst	r3, r4
	beq	.L663
	mov	r0, #2
	b	.L653
.L663:
	ldrb	r3, [r0, #12]
	lsl	r4, r3, #25
	bpl	.L664
	mov	r0, #3
	b	.L653
.L667:
	mov	r3, r1
	add	r3, r3, #176
	ldr	r0, [r3]
	b	.L653
.L664:
	mov	r0, #4
.L653:
	@ sp needed for prologue
	pop	{r4}
	pop	{r1}
	bx	r1
.L669:
	.align	2
.L668:
	.word	sdcores
	.size	version, .-version
	.section	.text.sdlockctl2,"ax",%progbits
	.align	2
	.code	16
	.thumb_func
	.type	sdlockctl2, %function
sdlockctl2:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #76
	mov	r5, r2
	mov	r2, sp
	add	r2, r2, #48
	str	r3, [sp, #16]
	str	r2, [sp, #12]
	ldr	r3, [r0, #96]
	ldr	r2, [r0, #92]
	lsr	r3, r3, #4
	lsl	r2, r2, #4
	orr	r2, r2, r3
	mov	r6, r0
	str	r1, [sp, #20]
	lsl	r3, r2, #24
	bmi	.LCB3683
	b	.L754	@long jump
.LCB3683:
	cmp	r5, #0
	bne	.L672
	ldr	r2, [sp, #20]
	cmp	r2, #8
	beq	.LCB3688
	b	.L754	@long jump
.LCB3688:
.L672:
	mov	r0, r6
	bl	stop2
	ldr	r3, [r6, #4]
	mov	r7, #32
	tst	r3, r7
	beq	.L673
	mov	r4, #0
	ldr	r2, [r6, #68]
	ldr	r1, .L755
	mov	r3, #0
	mov	r0, r6
	str	r4, [sp]
	bl	sdcmd2
	ldr	r1, .L755+4
	mov	r2, #0
	mov	r3, #0
	mov	r0, r6
	str	r4, [sp]
	bl	sdcmd2
	ldr	r3, [r6, #4]
	mov	r2, r5
	bic	r3, r3, r7
	str	r3, [r6, #4]
	ldr	r1, [sp, #20]
	ldr	r3, [sp, #16]
	mov	r0, r6
	bl	sdlockctl2
	ldr	r2, [r6, #68]
	mov	r5, r0
	ldr	r1, .L755
	mov	r3, #0
	mov	r0, r6
	str	r4, [sp]
	bl	sdcmd2
	mov	r3, #0
	mov	r0, r6
	ldr	r1, .L755+4
	mov	r2, #2
	str	r4, [sp]
	bl	sdcmd2
	ldr	r3, [r6, #4]
	mov	r0, r5
	orr	r3, r3, r7
	str	r3, [r6, #4]
	b	.L670
.L673:
	mov	r3, sp
	ldrb	r2, [r3, #20]
	ldr	r3, [sp, #12]
	strb	r2, [r3]
	ldr	r3, [sp, #20]
	cmp	r3, #8
	beq	.L733
	ldr	r2, [sp, #12]
	mov	r3, #16
	strb	r3, [r2, #1]
	mov	r4, #0
.L679:
	ldr	r3, [sp, #12]
	add	r2, r4, r3
	ldrb	r3, [r5, r4]
	add	r4, r4, #1
	strb	r3, [r2, #2]
	cmp	r4, #15
	ble	.L679
	ldr	r2, [sp, #20]
	cmp	r2, #8
	bne	.L680
.L733:
	mov	r3, #1
	str	r3, [sp, #8]
	b	.L681
.L680:
	mov	r2, #18
	str	r2, [sp, #8]
.L681:
	mov	r3, #0
	mov	r1, #148
	str	r3, [sp]
	mov	r0, r6
	lsl	r1, r1, #2
	ldr	r2, [sp, #8]
	add	r3, sp, #24
	bl	sdcmd2
	mov	r4, r0
	cmp	r0, #0
	beq	.LCB3788
	b	.L754	@long jump
.LCB3788:
	mov	r1, #148
	add	r0, sp, #24
	lsl	r1, r1, #2
	bl	error
	cmp	r0, #0
	beq	.LCB3794
	b	.L754	@long jump
.LCB3794:
	mov	r0, r6
	ldr	r1, .L755+8
	mov	r2, #0
	add	r3, sp, #24
	str	r4, [sp]
	bl	sdcmd2
	cmp	r0, #0
	beq	.LCB3802
	b	.L754	@long jump
.LCB3802:
	add	r0, sp, #24
	ldr	r1, .L755+8
	bl	error
	cmp	r0, #0
	beq	.LCB3807
	b	.L754	@long jump
.LCB3807:
	ldr	r3, [sp, #8]
	mov	r4, #0
	cmp	r3, #0
	ble	.L737
.L693:
	ldr	r2, [sp, #12]
	mov	r0, r6
	ldrb	r5, [r2]
	add	r2, r2, #1
	mov	r1, r5
	str	r2, [sp, #12]
	bl	sd_1bit_feedcrc
	mov	r7, #7
.L692:
	lsl	r3, r5, #24
	mov	r2, #30
	lsr	r3, r3, #31
	orr	r3, r3, r2
	ldr	r2, [r6]
	lsl	r5, r5, #1
	strb	r3, [r2]
	ldr	r1, [r6]
	ldrb	r2, [r1]
	ldrb	r2, [r1]
	mov	r2, #32
	orr	r3, r3, r2
	strb	r3, [r1]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r7, r7, #1
	bpl	.L692
	ldr	r3, [sp, #8]
	add	r4, r4, #1
	cmp	r4, r3
	blt	.L693
.L737:
	mov	r4, #0
.L701:
	mov	r0, r6
	bl	sd_1bit_getcrc
	mov	r7, #7
.L700:
	lsl	r3, r0, #24
	mov	r2, #30
	lsr	r3, r3, #31
	orr	r3, r3, r2
	ldr	r2, [r6]
	lsl	r0, r0, #1
	strb	r3, [r2]
	ldr	r1, [r6]
	ldrb	r2, [r1]
	ldrb	r2, [r1]
	mov	r2, #32
	orr	r3, r3, r2
	strb	r3, [r1]
	ldr	r2, [r6]
	ldrb	r3, [r2]
	sub	r7, r7, #1
	bpl	.L700
	add	r4, r4, #1
	cmp	r4, #1
	ble	.L701
	mov	r3, #31
	strb	r3, [r2]
	ldr	r2, [r6]
	mov	r0, #0
	ldrb	r3, [r2]
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	mov	r4, #6
.L705:
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [r6]
	lsl	r0, r0, #1
	ldrb	r3, [r2]
	ldrb	r1, [r2]
	mov	r3, #1
	and	r3, r3, r1
	orr	r0, r0, r3
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r4, r4, #1
	bpl	.L705
	mov	r3, #15
	and	r3, r3, r0
	cmp	r3, #5
	bne	.L754
	mov	r0, #0
.L713:
	mov	r1, r6
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L755+12
	cmp	r2, r3
	bhi	.L708
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [r6]
	lsl	r0, r0, #1
	ldrb	r3, [r2]
	ldrb	r1, [r2]
	mov	r3, #1
	and	r3, r3, r1
	orr	r0, r0, r3
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	mov	r3, #7
	and	r3, r3, r0
	cmp	r3, #7
	bne	.L713
.L708:
	mov	r4, #7
.L717:
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r6]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #65
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r4, r4, #1
	bpl	.L717
	ldr	r3, [r6, #4]
	mov	r2, #2
	bic	r3, r3, r2
	str	r3, [r6, #4]
	mov	r1, #148
	mov	r3, #0
	mov	r2, #128
	str	r3, [sp]
	mov	r0, r6
	lsl	r1, r1, #2
	lsl	r2, r2, #2
	add	r3, sp, #24
	bl	sdcmd2
	mov	r4, r0
	cmp	r0, #0
	bne	.L754
	mov	r1, #148
	add	r0, sp, #24
	lsl	r1, r1, #2
	bl	error
	cmp	r0, #0
	bne	.L754
	ldr	r2, [r6, #68]
	mov	r0, r6
	ldr	r1, .L755+16
	add	r3, sp, #24
	str	r4, [sp]
	bl	sdcmd2
	cmp	r0, #0
	bne	.L754
	add	r0, sp, #24
	ldr	r1, .L755+16
	bl	error
	cmp	r0, #0
	bne	.L754
	ldr	r2, [sp, #20]
	cmp	r2, #8
	beq	.L723
	cmp	r2, #0
	beq	.L723
	cmp	r2, #2
	bne	.L722
.L723:
	ldr	r3, [sp, #28]
	lsl	r2, r3, #30
	bpl	.L722
.L754:
	mov	r0, #1
	b	.L670
.L722:
	ldr	r3, [sp, #16]
	cmp	r3, #0
	beq	.L724
	ldr	r2, [sp, #16]
	mov	r3, #0
	strb	r3, [r2]
	mov	r4, #1
.L728:
	add	r3, sp, #48
	ldrb	r1, [r3, r4]
	ldr	r3, [sp, #16]
	mov	r0, r6
	strb	r1, [r3, r4]
	lsl	r1, r1, #24
	lsr	r1, r1, #24
	add	r4, r4, #1
	bl	sd_1bit_feedcrc
	cmp	r4, #17
	ble	.L728
	mov	r0, r6
	bl	sd_1bit_getcrc
	ldr	r2, [sp, #16]
	strb	r0, [r2, #18]
	mov	r0, r6
	bl	sd_1bit_getcrc
	ldr	r3, [sp, #16]
	strb	r0, [r3, #19]
.L724:
	mov	r4, #7
.L732:
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r6]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #65
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r4, r4, #1
	bpl	.L732
	mov	r0, #0
.L670:
	add	sp, sp, #76
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L756:
	.align	2
.L755:
	.word	631
	.word	582
	.word	1386
	.word	1000000
	.word	589
	.size	sdlockctl2, .-sdlockctl2
	.section	.text.sdlockctl,"ax",%progbits
	.align	2
	.global	sdlockctl
	.code	16
	.thumb_func
	.type	sdlockctl, %function
sdlockctl:
	push	{r4, r5, r6, r7, lr}
	sub	sp, sp, #76
	str	r2, [sp, #16]
	str	r3, [sp, #12]
	ldr	r2, [r0, #92]
	ldr	r3, [r0, #96]
	lsl	r2, r2, #4
	lsr	r3, r3, #4
	orr	r2, r2, r3
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	mov	r5, r1
	add	r1, sp, #48
	mov	r6, r0
	str	r1, [sp, #20]
	cmp	r3, #0
	beq	.L758
	mov	r1, r5
	ldr	r2, [sp, #16]
	ldr	r3, [sp, #12]
	bl	sdlockctl2
	b	.L757
.L758:
	lsl	r3, r2, #24
	bmi	.LCB4162
	b	.L805	@long jump
.LCB4162:
	ldr	r1, [sp, #16]
	cmp	r1, #0
	bne	.L760
	cmp	r5, #8
	beq	.LCB4167
	b	.L805	@long jump
.LCB4167:
.L760:
	mov	r0, r6
	bl	stop
	mov	r7, r0
	cmp	r0, #0
	beq	.LCB4173
	b	.L805	@long jump
.LCB4173:
	ldr	r3, [r6, #4]
	mov	r2, #32
	tst	r3, r2
	beq	.L762
	ldr	r3, [r6]
	ldr	r2, [r6, #68]
	ldrb	r4, [r3, #3]
	ldr	r1, .L806
	str	r0, [sp]
	mov	r3, #0
	mov	r0, r6
	bl	sdcmd
	ldr	r1, .L806+4
	mov	r2, #0
	mov	r3, #0
	mov	r0, r6
	str	r7, [sp]
	bl	sdcmd
	ldr	r3, [r6]
	mov	r1, #32
	strb	r1, [r3, #3]
	ldr	r3, [r6, #4]
	mov	r2, #32
	bic	r3, r3, r2
	mov	r1, r5
	str	r3, [r6, #4]
	ldr	r2, [sp, #16]
	ldr	r3, [sp, #12]
	mov	r0, r6
	bl	sdlockctl
	ldr	r2, [r6, #68]
	mov	r5, r0
	ldr	r1, .L806
	mov	r3, #0
	mov	r0, r6
	str	r7, [sp]
	bl	sdcmd
	ldr	r1, .L806+4
	mov	r3, #0
	mov	r0, r6
	mov	r2, #2
	str	r7, [sp]
	bl	sdcmd
	ldr	r3, [r6, #4]
	mov	r1, #32
	orr	r3, r3, r1
	str	r3, [r6, #4]
	lsl	r4, r4, #24
	ldr	r3, [r6]
	lsr	r4, r4, #24
	mov	r0, r5
	strb	r4, [r3, #3]
	b	.L757
.L762:
	add	r2, sp, #48
	strb	r5, [r2]
	cmp	r5, #8
	beq	.L795
	mov	r1, #49
	mov	r3, #16
	add	r1, r1, sp
	strb	r3, [r1]
	mov	r4, #0
.L768:
	ldr	r1, [sp, #16]
	add	r3, sp, #48
	add	r2, r4, r3
	ldrb	r3, [r1, r4]
	add	r4, r4, #1
	strb	r3, [r2, #2]
	cmp	r4, #15
	ble	.L768
	cmp	r5, #8
	bne	.L769
.L795:
	mov	r2, #1
	str	r2, [sp, #8]
	b	.L770
.L769:
	mov	r3, #18
	str	r3, [sp, #8]
.L770:
	mov	r3, #0
	add	r7, sp, #24
	mov	r1, #148
	str	r3, [sp]
	mov	r0, r6
	lsl	r1, r1, #2
	ldr	r2, [sp, #8]
	mov	r3, r7
	bl	sdcmd
	mov	r4, r0
	cmp	r0, #0
	bne	.L805
	mov	r1, #148
	mov	r0, r7
	lsl	r1, r1, #2
	bl	error
	cmp	r0, #0
	bne	.L805
	mov	r0, r6
	ldr	r1, .L806+8
	mov	r2, #0
	mov	r3, r7
	str	r4, [sp]
	bl	sdcmd
	cmp	r0, #0
	bne	.L805
	mov	r0, r7
	ldr	r1, .L806+8
	bl	error
	cmp	r0, #0
	bne	.L805
	ldr	r3, [sp, #20]
	add	r4, sp, #48
	ldr	r1, [sp, #8]
	sub	r3, r3, r4
	cmp	r3, r1
	beq	.L799
.L781:
	mov	r1, r6
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L806+12
	cmp	r2, r3
	bhi	.L805
	add	r3, r2, #1
	str	r3, [r1]
	add	r2, sp, #20
	mov	r0, r6
	mov	r1, #0
	bl	tend_ssp
	ldr	r3, [sp, #20]
	ldr	r2, [sp, #8]
	sub	r3, r3, r4
	cmp	r3, r2
	bne	.L781
.L799:
	ldr	r3, [r6, #4]
	lsl	r1, r3, #26
	bpl	.L782
	mov	r0, r6
	mov	r1, #0
	mov	r2, #8
	b	.L804
.L782:
	mov	r0, r6
	mov	r1, #0
	mov	r2, #2
.L804:
	bl	datssp_stream
	ldr	r2, [r6]
	mov	r3, #122
	neg	r3, r3
	strb	r3, [r2, #2]
	ldr	r3, [r6, #4]
	mov	r2, #2
	bic	r3, r3, r2
	str	r3, [r6, #4]
	mov	r1, #148
	mov	r3, #0
	mov	r2, #128
	str	r3, [sp]
	mov	r0, r6
	lsl	r1, r1, #2
	lsl	r2, r2, #2
	mov	r3, r7
	bl	sdcmd
	mov	r4, r0
	cmp	r0, #0
	bne	.L805
	mov	r1, #148
	mov	r0, r7
	lsl	r1, r1, #2
	bl	error
	cmp	r0, #0
	bne	.L805
	ldr	r2, [r6, #68]
	mov	r0, r6
	ldr	r1, .L806+16
	mov	r3, r7
	str	r4, [sp]
	bl	sdcmd
	cmp	r0, #0
	bne	.L805
	mov	r0, r7
	ldr	r1, .L806+16
	bl	error
	cmp	r0, #0
	bne	.L805
	cmp	r5, #8
	beq	.L789
	cmp	r5, #0
	beq	.L789
	cmp	r5, #2
	bne	.L788
.L789:
	ldr	r3, [sp, #28]
	lsl	r2, r3, #30
	bpl	.L788
.L805:
	mov	r0, #1
	b	.L757
.L788:
	ldr	r3, [sp, #12]
	cmp	r3, #0
	beq	.L790
	ldr	r1, [sp, #12]
	mov	r3, #0
	strb	r3, [r1]
	mov	r4, #1
.L794:
	add	r3, sp, #48
	ldrb	r1, [r3, r4]
	ldr	r2, [sp, #12]
	mov	r0, r6
	strb	r1, [r2, r4]
	lsl	r1, r1, #24
	lsr	r1, r1, #24
	add	r4, r4, #1
	bl	sd_1bit_feedcrc
	cmp	r4, #17
	ble	.L794
	mov	r0, r6
	bl	sd_1bit_getcrc
	ldr	r3, [sp, #12]
	strb	r0, [r3, #18]
	mov	r0, r6
	bl	sd_1bit_getcrc
	ldr	r1, [sp, #12]
	strb	r0, [r1, #19]
.L790:
	mov	r0, #0
.L757:
	add	sp, sp, #76
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L807:
	.align	2
.L806:
	.word	631
	.word	582
	.word	1386
	.word	1000000
	.word	589
	.size	sdlockctl, .-sdlockctl
	.section	.text.sdreset,"ax",%progbits
	.align	2
	.global	sdreset
	.code	16
	.thumb_func
	.type	sdreset, %function
sdreset:
	push	{r4, r5, r6, r7, lr}
	mov	r2, r0
	mov	r4, #0
	add	r2, r2, #168
	mov	r5, r0
	sub	sp, sp, #236
	str	r4, [r2]
	str	r2, [sp, #20]
	mov	r7, r5
	bl	sd_initcrc
	mov	r3, r5
	add	r3, r3, #172
	add	r7, r7, #188
	str	r4, [r3]
	str	r4, [r5, #36]
	str	r4, [r5, #48]
	str	r4, [r7]
	mov	r0, r5
	str	r3, [sp, #16]
	bl	version
	mov	r6, r5
	add	r6, r6, #176
	str	r0, [r6]
	cmp	r0, #1
	bhi	.LCB4488
	b	.L810	@long jump
.LCB4488:
	ldr	r2, [sp, #20]
	mov	r0, r5
	str	r4, [r2]
	bl	sd_initcrc
	ldr	r3, [sp, #16]
	str	r4, [r5, #36]
	str	r4, [r3]
	ldr	r3, [r6]
	str	r4, [r5, #48]
	str	r4, [r7]
	cmp	r3, #0
	bne	.L812
	mov	r0, r5
	bl	version
	str	r0, [r6]
.L812:
	ldr	r3, [r6]
	cmp	r3, #0
	bne	.L813
	b	.L936
.L957:
	str	r5, [r0]
	b	.L816
.L813:
	ldr	r2, [r5, #4]
	mov	r3, #128
	lsl	r3, r3, #3
	and	r2, r2, r3
	str	r2, [r5, #4]
	mov	r6, #0
	mov	r4, #0
.L823:
	ldr	r2, .L971
	lsl	r3, r4, #2
	add	r0, r3, r2
	ldr	r1, [r0]
	cmp	r1, #0
	bne	.L818
	str	r5, [r0]
	cmp	r6, #0
	beq	.L816
	mov	r3, #128
	lsl	r3, r3, #3
	str	r3, [r5, #4]
	b	.L816
.L818:
	ldr	r2, [r1]
	ldr	r3, [r5]
	cmp	r2, r3
	bne	.L817
	ldr	r2, [r1, #64]
	ldr	r3, [r5, #64]
	mov	r6, #1
	cmp	r2, r3
	beq	.L957
.L817:
	add	r4, r4, #1
	cmp	r4, #255
	bls	.L823
.L816:
	mov	r0, r5
	bl	activate
	ldr	r2, [r5, #4]
	mov	r3, #128
	lsl	r3, r3, #1
	orr	r2, r2, r3
	mov	r3, #128
	lsl	r3, r3, #3
	str	r2, [r5, #4]
	and	r2, r3
	bne	.L825
	ldr	r1, [r5]
	ldrb	r3, [r1]
	lsl	r3, r3, #24
	cmp	r3, #0
	beq	.L825
	strb	r2, [r1]
	ldr	r3, [r5]
	mov	r6, #0
.L829:
	strh	r6, [r3, #2]
	add	r6, r6, #1
	cmp	r6, #7
	bls	.L829
	ldr	r0, [r5, #12]
	ldr	r3, [r5, #24]
	ldr	r1, .L971+4
	bl	.L977
	ldr	r0, .L971
	mov	r6, #0
.L835:
	ldmia	r0!, {r1}
	cmp	r1, #0
	beq	.L831
	ldr	r2, [r1]
	ldr	r3, [r5]
	cmp	r2, r3
	bne	.L832
	ldr	r2, [r1, #4]
	mov	r3, #128
	lsl	r3, r3, #3
	orr	r2, r2, r3
	str	r2, [r1, #4]
.L832:
	add	r6, r6, #1
	cmp	r6, #255
	bls	.L835
.L831:
	ldr	r2, [r5]
	ldr	r3, [r5, #64]
	strh	r3, [r2, #2]
.L825:
	ldr	r3, [r5, #4]
	ldr	r2, .L971+8
	ldr	r1, .L971+12
	and	r3, r3, r2
	str	r3, [r5, #4]
	ldr	r2, [r5]
	mov	r3, #1
	neg	r3, r3
	strb	r3, [r2]
	ldr	r0, [r5, #12]
	ldr	r3, [r5, #24]
	bl	.L977
	ldr	r1, .L971+16
	mov	r6, #0
.L839:
	ldr	r2, [r5]
	mov	r3, #1
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r5]
	add	r6, r6, #1
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #33
	neg	r2, r2
	strb	r2, [r3]
	ldr	r2, [r5]
	ldrb	r3, [r2]
	ldrb	r3, [r2]
	cmp	r6, r1
	bls	.L839
	ldrb	r3, [r2, #1]
	mov	r3, #24
	strb	r3, [r2, #1]
	add	r7, sp, #88
	mov	r1, #146
	mov	r2, #213
	mov	r4, #0
	mov	r0, r5
	lsl	r1, r1, #2
	lsl	r2, r2, #1
	mov	r3, r7
	str	r4, [sp]
	bl	sdcmd2
	cmp	r0, #0
	beq	.L840
	ldr	r2, [sp, #20]
	mov	r6, #255
	lsl	r6, r6, #16
	str	r4, [r2]
	b	.L843
.L840:
	ldr	r6, .L971+20
.L843:
	mov	r4, #0
	ldr	r1, .L971+24
	mov	r2, #0
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	mov	r2, r6
	mov	r3, r7
	mov	r0, r5
	ldr	r1, .L971+28
	str	r4, [sp]
	bl	sdcmd2
	mov	r3, r5
	add	r3, r3, #168
	str	r3, [sp, #12]
	ldr	r2, [r3]
	ldr	r3, .L971+32
	cmp	r2, r3
	bhi	.L844
	add	r3, r2, #1
	ldr	r2, [sp, #12]
	str	r3, [r2]
	ldr	r3, [sp, #92]
	lsl	r2, r3, #24
	bpl	.L843
.L844:
	mov	r3, #128
	lsl	r3, r3, #23
	tst	r6, r3
	beq	.L850
	ldr	r3, [sp, #92]
	mov	r2, #64
	tst	r3, r2
	beq	.L850
	ldr	r3, [r5, #4]
	orr	r3, r3, r2
	str	r3, [r5, #4]
.L850:
	mov	r4, #0
	ldr	r1, .L971+36
	mov	r2, #0
	mov	r3, r7
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r1, .L971+40
	mov	r2, #0
	mov	r3, r7
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r2, [sp, #92]
	ldr	r3, [sp, #96]
	lsl	r2, r2, #8
	orr	r2, r2, r3
	lsl	r2, r2, #16
	mvn	r3, r2
	str	r3, [r5, #40]
	mov	r3, r5
	str	r2, [r5, #68]
	add	r3, r3, #72
	ldr	r1, .L971+44
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r2, [r5, #68]
	mov	r3, r7
	mov	r0, r5
	ldr	r1, .L971+48
	str	r4, [sp]
	bl	sdcmd2
	ldr	r2, [sp, #92]
	mov	r3, #2
	and	r2, r3
	beq	.L851
	ldr	r2, [r5, #52]
	mov	r0, #1
	str	r0, [r5, #56]
	cmp	r2, #0
	bne	.LCB4785
	b	.L936	@long jump
.LCB4785:
	mov	r0, r5
	mov	r1, #0
	mov	r3, #0
	bl	sdlockctl2
	cmp	r0, #0
	beq	.L854
	b	.L936
.L972:
	.align	2
.L971:
	.word	sdcores
	.word	100000
	.word	-1025
	.word	5000
	.word	749
	.word	1090453504
	.word	631
	.word	617
	.word	1000000
	.word	834
	.word	579
	.word	841
	.word	1095
.L851:
	str	r2, [r5, #56]
.L854:
	mov	r4, #0
	ldr	r2, [r5, #68]
	ldr	r1, .L973
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r1, .L973+4
	mov	r2, #0
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	mov	r1, #148
	mov	r2, #128
	lsl	r1, r1, #2
	lsl	r2, r2, #2
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r2, [r5, #68]
	ldr	r1, .L973
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r1, .L973+8
	mov	r2, #2
	mov	r3, r7
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	ldr	r3, [r5, #4]
	mov	r2, #32
	orr	r3, r3, r2
	ldr	r2, .L973+12
	ldr	r1, .L973
	and	r3, r3, r2
	str	r3, [r5, #4]
	ldr	r2, [r5, #68]
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd2
	mov	r0, r5
	ldr	r1, .L973+16
	mov	r2, #0
	mov	r3, #0
	str	r4, [sp]
	bl	sdcmd2
.L855:
	ldr	r3, [sp, #12]
	ldr	r2, [r3]
	ldr	r3, .L973+20
	cmp	r2, r3
	bhi	.L856
	add	r3, r2, #1
	ldr	r2, [sp, #12]
	str	r3, [r2]
	ldr	r2, [r5]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r5]
	ldrb	r2, [r3]
	mov	r2, #1
	neg	r2, r2
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r3, [r5]
	ldrb	r3, [r3]
	mov	r3, #15
	tst	r3, r1
	bne	.L855
.L856:
	mov	r7, r5
	mov	r6, #0
	add	r7, r7, #180
.L866:
	ldr	r3, [r5]
	mov	r4, #33
	neg	r4, r4
	strb	r4, [r3]
	ldr	r2, [r5]
	mov	r1, #15
	ldrb	r3, [r2]
	ldrb	r3, [r2]
	mov	r0, #1
	and	r3, r3, r1
	neg	r0, r0
	strb	r0, [r2]
	lsl	r3, r3, #4
	mov	ip, r3
	ldr	r3, [r5]
	ldrb	r2, [r3]
	strb	r4, [r3]
	ldr	r2, [r5]
	ldrb	r3, [r2]
	ldrb	r3, [r2]
	strb	r0, [r2]
	and	r1, r1, r3
	mov	r3, ip
	orr	r3, r3, r1
	mov	ip, r3
	ldr	r3, [r5]
	ldrb	r3, [r3]
	cmp	r6, #7
	bhi	.L864
	mov	r2, ip
	strb	r2, [r7]
.L864:
	add	r6, r6, #1
	add	r7, r7, #1
	cmp	r6, #15
	bls	.L866
	mov	r6, #7
.L870:
	ldr	r2, [r5]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r5]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #1
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r5]
	ldrb	r3, [r3]
	sub	r6, r6, #1
	bpl	.L870
	ldr	r3, [r5, #4]
	mov	r2, #1
	bic	r3, r3, r2
	str	r3, [r5, #4]
	mov	r3, r5
	add	r3, r3, #180
	ldrb	r2, [r3]
	mov	r3, #15
	tst	r2, r3
	beq	.L871
	mov	r3, #0
	mov	r0, r5
	ldr	r1, .L973+24
	ldr	r2, .L973+28
	str	r3, [sp]
	bl	sdcmd2
.L872:
	ldr	r3, [sp, #12]
	ldr	r2, [r3]
	ldr	r3, .L973+20
	cmp	r2, r3
	bhi	.L873
	add	r3, r2, #1
	ldr	r2, [sp, #12]
	str	r3, [r2]
	ldr	r2, [r5]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r5]
	ldrb	r2, [r3]
	mov	r2, #1
	neg	r2, r2
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r3, [r5]
	ldrb	r3, [r3]
	mov	r3, #15
	tst	r3, r1
	bne	.L872
.L873:
	mov	r6, #0
.L883:
	ldr	r3, [r5]
	mov	r4, #33
	neg	r4, r4
	strb	r4, [r3]
	ldr	r2, [r5]
	mov	r1, #15
	ldrb	r3, [r2]
	ldrb	r3, [r2]
	mov	r0, #1
	and	r3, r3, r1
	neg	r0, r0
	strb	r0, [r2]
	lsl	r3, r3, #4
	mov	ip, r3
	ldr	r3, [r5]
	ldrb	r2, [r3]
	strb	r4, [r3]
	ldr	r2, [r5]
	ldrb	r3, [r2]
	ldrb	r3, [r2]
	strb	r0, [r2]
	and	r1, r1, r3
	mov	r3, ip
	orr	r3, r3, r1
	mov	ip, r3
	ldr	r3, [r5]
	ldrb	r3, [r3]
	cmp	r6, #63
	bhi	.L881
	add	r3, sp, #24
	mov	r2, ip
	strb	r2, [r3, r6]
.L881:
	add	r6, r6, #1
	cmp	r6, #71
	bls	.L883
	mov	r6, #7
.L887:
	ldr	r2, [r5]
	mov	r3, #33
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r5]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #1
	neg	r2, r2
	strb	r2, [r3]
	ldr	r1, [r5]
	ldrb	r3, [r1]
	sub	r6, r6, #1
	bpl	.L887
	ldr	r3, [r5, #4]
	mov	r2, #1
	bic	r3, r3, r2
	str	r3, [r5, #4]
	add	r2, sp, #24
	ldrb	r3, [r2]
	ldrb	r2, [r2, #1]
	orr	r3, r3, r2
	lsl	r3, r3, #24
	cmp	r3, #0
	beq	.L871
	mov	r3, #56
	strb	r3, [r1, #1]
	ldr	r3, [r5, #4]
	mov	r2, #128
	orr	r3, r3, r2
	str	r3, [r5, #4]
.L871:
	mov	r3, r5
	add	r3, r3, #132
	ldr	r2, [r3]
	mov	r3, #48
	tst	r2, r3
	bne	.L890
	ldr	r3, [r5]
	ldrh	r3, [r3]
	lsl	r2, r3, #22
	bpl	.L889
.L890:
	mov	r3, #1
	str	r3, [r5, #36]
.L889:
	ldr	r2, [r5, #96]
	mov	r3, #15
	and	r2, r2, r3
	mov	r1, r5
	mov	r3, #1
	lsl	r3, r3, r2
	add	r1, r1, #168
	str	r3, [r5, #48]
	ldr	r2, [r1]
	ldr	r3, .L973+20
	cmp	r2, r3
	bls	.LCB5144
	b	.L936	@long jump
.LCB5144:
	add	r3, r2, #1
	str	r3, [r1]
	b	.L935
.L810:
	ldr	r1, [r5]
	mov	r3, #8
	ldrb	r2, [r1, #3]
	mov	r4, r3
	and	r4, r2
	beq	.LCB5159
	b	.L936	@long jump
.LCB5159:
	ldr	r3, [r5, #40]
	cmp	r3, #0
	beq	.L897
	mov	r3, #64
	strb	r3, [r1, #3]
	ldr	r2, [r5, #40]
	mov	r3, #32
	str	r3, [r5, #4]
	mvn	r3, r2
	str	r3, [r5, #68]
	ldr	r1, .L973+32
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	mov	r3, r5
	ldr	r2, [r5, #68]
	add	r3, r3, #72
	ldr	r1, .L973+36
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	mov	r3, #0
	ldr	r2, [r5, #68]
	mov	r0, r5
	ldr	r1, .L973+40
	str	r4, [sp]
	bl	sdcmd
	ldr	r3, [r5, #16]
	cmp	r3, #0
	beq	.L898
	ldr	r2, [r5]
	mov	r3, #66
	strb	r3, [r2, #3]
.L898:
	ldr	r3, [r5]
	ldrb	r3, [r3, #3]
	lsl	r3, r3, #24
	cmp	r3, #0
	blt	.L900
	mov	r3, r5
	add	r3, r3, #132
	ldr	r2, [r3]
	mov	r3, #48
	tst	r2, r3
	beq	.L899
.L900:
	mov	r3, #1
	str	r3, [r5, #36]
.L899:
	ldr	r2, [r5, #96]
	mov	r3, #15
	and	r2, r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	str	r3, [r5, #48]
	ldr	r3, [sp, #20]
	ldr	r2, [r3]
	ldr	r3, .L973+20
	cmp	r2, r3
	bls	.L902
	mov	r0, #0
	b	.L905
.L902:
	add	r3, r2, #1
	ldr	r2, [sp, #20]
	mov	r0, r5
	str	r3, [r2]
	bl	sdsize
.L905:
	mov	r3, #0
	str	r3, [r5, #40]
	cmp	r0, #0
	beq	.LCB5240
	b	.L808	@long jump
.LCB5240:
.L897:
	ldr	r2, [r5]
	mov	r3, #32
	strb	r3, [r2, #3]
	ldr	r2, [r5]
	mov	r3, #0
	strb	r3, [r2, #2]
	mov	r3, #5
	str	r3, [r5, #4]
	ldr	r3, [r5]
	ldrb	r2, [r3, #2]
	mov	r3, #7
	and	r3, r3, r2
.L969:
	cmp	r3, #1
	beq	.L956
	mov	r4, r5
	add	r4, r4, #168
	ldr	r2, [r4]
	ldr	r3, .L973+20
	cmp	r2, r3
	bls	.LCB5266
	b	.L936	@long jump
.LCB5266:
	add	r3, r2, #1
	str	r3, [r4]
	ldr	r0, [r5, #12]
	ldr	r3, [r5, #24]
	ldr	r1, .L973+44
	bl	.L977
	ldr	r3, [r4]
	ldr	r2, .L973+44
	mov	r0, r5
	add	r3, r3, r2
	str	r3, [r4]
	mov	r1, #0
	mov	r2, #0
	bl	tend_ssp
	mov	r3, #7
	and	r3, r3, r0
	b	.L969
.L956:
	ldr	r2, [r5]
	mov	r3, #7
	strb	r3, [r2, #2]
	mov	r4, #0
	ldr	r0, [r5, #12]
	ldr	r3, [r5, #24]
	ldr	r1, .L973+48
	str	r4, [r5, #4]
	bl	.L977
	ldr	r3, [r5]
	ldr	r1, .L973+52
	strb	r4, [r3, #2]
	ldr	r3, [r5, #24]
	ldr	r0, [r5, #12]
	bl	.L977
	ldr	r1, [r5]
	mov	r3, #7
	ldrb	r2, [r1, #2]
	and	r3, r3, r2
	cmp	r3, #7
	bne	.LCB5312
	b	.L936	@long jump
.LCB5312:
	mov	r3, #2
	strb	r3, [r1, #2]
	ldr	r0, [r5, #12]
	ldr	r3, [r5, #24]
	ldr	r1, .L973+48
	bl	.L977
	ldr	r3, [r5]
	mov	r1, #146
	mov	r2, #213
	strb	r4, [r3, #2]
	mov	r0, r5
	lsl	r1, r1, #2
	lsl	r2, r2, #1
	add	r3, sp, #160
	str	r4, [sp]
	bl	sdcmd
	cmp	r0, #0
	beq	.L916
	mov	r3, r5
	add	r3, r3, #168
	str	r4, [r3]
	mov	r6, #255
	ldr	r3, [r5]
	lsl	r6, r6, #16
	strb	r4, [r3, #2]
	b	.L919
.L974:
	.align	2
.L973:
	.word	631
	.word	618
	.word	582
	.word	-257
	.word	1907
	.word	1000000
	.word	1862
	.word	-2130706447
	.word	327
	.word	841
	.word	1095
	.word	10000
	.word	50000
	.word	100000
.L916:
	ldr	r6, .L975
.L919:
	mov	r4, #0
	ldr	r1, .L975+4
	mov	r2, #0
	mov	r3, #0
	mov	r0, r5
	mov	r7, r5
	str	r4, [sp]
	add	r7, r7, #168
	bl	sdcmd
	mov	r2, r6
	add	r3, sp, #160
	mov	r0, r5
	ldr	r1, .L975+8
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [r7]
	ldr	r3, .L975+12
	cmp	r2, r3
	bhi	.L920
	add	r3, r2, #1
	str	r3, [r7]
	ldr	r3, [sp, #164]
	lsl	r2, r3, #24
	bpl	.L919
.L920:
	mov	r3, #128
	lsl	r3, r3, #23
	tst	r6, r3
	beq	.L926
	ldr	r3, [sp, #164]
	mov	r2, #64
	tst	r3, r2
	beq	.L926
	ldr	r3, [r5, #4]
	orr	r3, r3, r2
	str	r3, [r5, #4]
.L926:
	mov	r4, #0
	ldr	r1, .L975+16
	mov	r2, #0
	add	r3, sp, #160
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r1, .L975+20
	mov	r2, #0
	add	r3, sp, #160
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [sp, #164]
	ldr	r3, [sp, #168]
	lsl	r2, r2, #8
	orr	r2, r2, r3
	lsl	r2, r2, #16
	mvn	r3, r2
	str	r3, [r5, #40]
	mov	r3, r5
	str	r2, [r5, #68]
	add	r3, r3, #72
	ldr	r1, .L975+24
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [r5, #68]
	add	r3, sp, #160
	mov	r0, r5
	ldr	r1, .L975+28
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [sp, #164]
	mov	r3, #2
	and	r2, r3
	beq	.L927
	ldr	r2, [r5, #52]
	mov	r0, #1
	str	r0, [r5, #56]
	cmp	r2, #0
	beq	.L936
	mov	r0, r5
	mov	r1, #0
	mov	r3, #0
	bl	sdlockctl
	cmp	r0, #0
	beq	.L930
	b	.L936
.L927:
	str	r2, [r5, #56]
.L930:
	mov	r4, #0
	ldr	r2, [r5, #68]
	ldr	r1, .L975+4
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r1, .L975+32
	mov	r2, #0
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	mov	r1, #148
	mov	r2, #128
	lsl	r1, r1, #2
	lsl	r2, r2, #2
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	ldr	r2, [r5, #68]
	ldr	r1, .L975+4
	mov	r3, #0
	mov	r0, r5
	str	r4, [sp]
	bl	sdcmd
	mov	r2, #2
	add	r3, sp, #160
	mov	r0, r5
	ldr	r1, .L975+36
	str	r4, [sp]
	bl	sdcmd
	ldr	r3, [r5, #16]
	ldr	r2, [r5]
	cmp	r3, #0
	beq	.L931
	mov	r3, #66
	b	.L932
.L931:
	mov	r3, #64
.L932:
	strb	r3, [r2, #3]
	ldr	r3, [r5, #4]
	mov	r2, #32
	orr	r3, r3, r2
	str	r3, [r5, #4]
	ldr	r3, [r5]
	ldrb	r3, [r3, #3]
	lsl	r3, r3, #24
	cmp	r3, #0
	blt	.L934
	mov	r3, r5
	add	r3, r3, #132
	ldr	r2, [r3]
	mov	r3, #48
	tst	r2, r3
	beq	.L933
.L934:
	mov	r3, #1
	str	r3, [r5, #36]
.L933:
	ldr	r2, [r5, #96]
	mov	r3, #15
	and	r2, r2, r3
	mov	r3, #1
	lsl	r3, r3, r2
	str	r3, [r5, #48]
	ldr	r2, [r7]
	ldr	r3, .L975+12
	cmp	r2, r3
	bhi	.L936
	add	r3, r2, #1
	str	r3, [r7]
	add	r0, sp, #160
	ldr	r1, .L975+36
	bl	error
	cmp	r0, #0
	beq	.L935
.L936:
	mov	r0, #0
	b	.L808
.L935:
	mov	r0, r5
	bl	sdsize
.L808:
	add	sp, sp, #236
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L976:
	.align	2
.L975:
	.word	1090453504
	.word	631
	.word	617
	.word	1000000
	.word	834
	.word	579
	.word	841
	.word	1095
	.word	618
	.word	582
.L977:
	bx	r3
	.size	sdreset, .-sdreset
	.section	.text.sdread,"ax",%progbits
	.align	2
	.global	sdread
	.code	16
	.thumb_func
	.type	sdread, %function
sdread:
	push	{r4, lr}
	sub	sp, sp, #8
	str	r3, [sp, #4]
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	str	r2, [sp]
	cmp	r3, #0
	bne	.L979
	mov	r2, sp
	mov	r3, #1
	bl	do_read
	b	.L980
.L979:
	mov	r2, sp
	mov	r3, #1
	bl	do_read2
.L980:
	add	sp, sp, #8
	@ sp needed for prologue
	pop	{r4}
	pop	{r1}
	bx	r1
	.size	sdread, .-sdread
	.section	.text.sdwrite,"ax",%progbits
	.align	2
	.global	sdwrite
	.code	16
	.thumb_func
	.type	sdwrite, %function
sdwrite:
	push	{r4, lr}
	sub	sp, sp, #8
	str	r3, [sp, #4]
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	str	r2, [sp]
	cmp	r3, #0
	bne	.L982
	mov	r2, sp
	mov	r3, #1
	bl	do_write
	b	.L983
.L982:
	mov	r2, sp
	mov	r3, #1
	bl	do_write2
.L983:
	add	sp, sp, #8
	@ sp needed for prologue
	pop	{r4}
	pop	{r1}
	bx	r1
	.size	sdwrite, .-sdwrite
	.section	.text.sdreadv,"ax",%progbits
	.align	2
	.global	sdreadv
	.code	16
	.thumb_func
	.type	sdreadv, %function
sdreadv:
	push	{r4, lr}
	mov	r4, r3
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L985
	mov	r3, r4
	bl	do_read
	b	.L984
.L985:
	mov	r3, r4
	bl	do_read2
.L984:
	@ sp needed for prologue
	pop	{r4}
	pop	{r1}
	bx	r1
	.size	sdreadv, .-sdreadv
	.section	.text.sdwritev,"ax",%progbits
	.align	2
	.global	sdwritev
	.code	16
	.thumb_func
	.type	sdwritev, %function
sdwritev:
	push	{r4, lr}
	mov	r4, r3
	mov	r3, r0
	add	r3, r3, #176
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L988
	mov	r3, r4
	bl	do_write
	b	.L987
.L988:
	mov	r3, r4
	bl	do_write2
.L987:
	@ sp needed for prologue
	pop	{r4}
	pop	{r1}
	bx	r1
	.size	sdwritev, .-sdwritev
	.section	.text.sdsetwprot,"ax",%progbits
	.align	2
	.global	sdsetwprot
	.code	16
	.thumb_func
	.type	sdsetwprot, %function
sdsetwprot:
	push	{r4, r5, r6, r7, lr}
	mov	r6, r0
	mov	r3, r6
	add	r3, r3, #176
	sub	sp, sp, #228
	ldr	r3, [r3]
	add	r0, sp, #120
	mov	r4, r1
	str	r0, [sp, #12]
	cmp	r3, #0
	bne	.LCB5725
	b	.L991	@long jump
.LCB5725:
	mov	r1, sp
	add	r1, r1, #16
	mov	r0, r6
	str	r1, [sp, #8]
	bl	stop2
	cmp	r4, #0
	beq	.L992
	mov	r1, #3
	b	.L993
.L992:
	mov	r1, #1
.L993:
	mov	r7, #0
.L997:
	lsl	r3, r7, #2
	add	r2, sp, #56
	mov	ip, r2
	add	r2, r3, r6
	ldr	r2, [r2, #76]
	mov	r0, ip
	add	r7, r7, #1
	str	r2, [r3, r0]
	cmp	r7, #15
	ble	.L997
	ldr	r3, [sp, #112]
	mov	r2, #48
	bic	r3, r3, r2
	lsl	r2, r1, #4
	orr	r3, r3, r2
	str	r3, [sp, #112]
	mov	r1, #0
	mov	r5, ip
	mov	r4, #0
.L1006:
	ldrb	r2, [r5]
	mov	r0, #0
.L1005:
	lsl	r1, r1, #1
	mov	r3, r2
	eor	r3, r3, r1
	lsl	r7, r3, #24
	bpl	.L1004
	mov	r3, #9
	eor	r1, r1, r3
.L1004:
	lsl	r3, r2, #25
	lsr	r2, r3, #24
	add	r3, r0, #1
	lsl	r3, r3, #24
	lsr	r0, r3, #24
	cmp	r0, #7
	bls	.L1005
	mov	r3, #127
	add	r4, r4, #1
	and	r1, r1, r3
	add	r5, r5, #4
	cmp	r4, #15
	bcc	.L1006
	mov	r2, #1
	lsl	r3, r1, #1
	orr	r3, r3, r2
	mov	r0, ip
	str	r3, [r0, #60]
	mov	r7, #0
	mov	r2, ip
.L1011:
	ldmia	r2!, {r3}
	ldr	r1, [sp, #8]
	strb	r3, [r1, r7]
	add	r7, r7, #1
	cmp	r7, #15
	ble	.L1011
	mov	r3, #0
	str	r3, [sp]
	mov	r0, r6
	ldr	r1, .L1093
	mov	r2, #0
	add	r3, sp, #32
	bl	sdcmd2
	cmp	r0, #0
	beq	.LCB5838
	b	.L1065	@long jump
.LCB5838:
	add	r0, sp, #32
	ldr	r1, .L1093
	bl	error
	cmp	r0, #0
	beq	.LCB5843
	b	.L1065	@long jump
.LCB5843:
	mov	r7, #15
.L1018:
	ldr	r2, [sp, #8]
	mov	r0, r6
	ldrb	r5, [r2]
	add	r2, r2, #1
	mov	r1, r5
	str	r2, [sp, #8]
	bl	sd_4bit_feedcrc
	lsr	r2, r5, #4
	ldr	r1, [r6]
	mov	r4, #16
	mov	r3, r2
	orr	r3, r3, r4
	strb	r3, [r1]
	ldr	r3, [r6]
	mov	r0, #48
	orr	r2, r2, r0
	ldrb	r1, [r3]
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r1, [r6]
	mov	r2, r5
	ldrb	r3, [r1]
	mov	r3, #15
	and	r2, r2, r3
	mov	r3, r2
	orr	r3, r3, r4
	strb	r3, [r1]
	ldr	r3, [r6]
	orr	r2, r2, r0
	ldrb	r1, [r3]
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r7, r7, #1
	bpl	.L1018
	mov	r7, #7
.L1022:
	mov	r0, r6
	bl	sd_4bit_getcrc
	lsl	r2, r0, #24
	lsr	r2, r2, #28
	ldr	r1, [r6]
	mov	r4, #16
	mov	r3, r2
	orr	r3, r3, r4
	strb	r3, [r1]
	ldr	r3, [r6]
	mov	r5, r0
	mov	r0, #48
	orr	r2, r2, r0
	ldrb	r1, [r3]
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r1, [r6]
	mov	r2, r5
	ldrb	r3, [r1]
	mov	r3, #15
	and	r2, r2, r3
	mov	r3, r2
	orr	r3, r3, r4
	strb	r3, [r1]
	ldr	r3, [r6]
	orr	r2, r2, r0
	ldrb	r1, [r3]
	ldrb	r1, [r3]
	strb	r2, [r3]
	ldr	r2, [r6]
	ldrb	r3, [r2]
	sub	r7, r7, #1
	bpl	.L1022
	mov	r3, #31
	strb	r3, [r2]
	ldr	r3, [r6]
	mov	r5, #0
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #63
	strb	r2, [r3]
	ldr	r2, [r6]
	mov	r7, #6
	ldrb	r3, [r2]
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
.L1026:
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [r6]
	lsl	r5, r5, #1
	ldrb	r3, [r2]
	ldrb	r1, [r2]
	mov	r3, #1
	and	r3, r3, r1
	orr	r5, r5, r3
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	sub	r7, r7, #1
	bpl	.L1026
	mov	r3, #15
	and	r3, r3, r5
	cmp	r3, #5
	beq	.LCB5976
	b	.L1065	@long jump
.LCB5976:
	mov	r5, #0
.L1034:
	mov	r1, r6
	add	r1, r1, #168
	ldr	r2, [r1]
	ldr	r3, .L1093+4
	cmp	r2, r3
	bhi	.L1029
	add	r3, r2, #1
	str	r3, [r1]
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r2, [r6]
	lsl	r5, r5, #1
	ldrb	r3, [r2]
	ldrb	r1, [r2]
	mov	r3, #1
	and	r3, r3, r1
	orr	r5, r5, r3
	mov	r3, #65
	neg	r3, r3
	strb	r3, [r2]
	mov	r3, #7
	and	r3, r3, r5
	cmp	r3, #7
	bne	.L1034
.L1029:
	mov	r7, #7
.L1038:
	ldr	r2, [r6]
	mov	r3, #97
	neg	r3, r3
	strb	r3, [r2]
	ldr	r3, [r6]
	ldrb	r2, [r3]
	ldrb	r2, [r3]
	mov	r2, #65
	neg	r2, r2
	strb	r2, [r3]
	ldr	r3, [r6]
	ldrb	r3, [r3]
	sub	r7, r7, #1
	bpl	.L1038
	ldr	r3, [r6, #4]
	mov	r2, #2
	bic	r3, r3, r2
	ldr	r2, [r6, #68]
	str	r3, [r6, #4]
	mvn	r2, r2
	mov	r4, #0
	ldr	r1, .L1093+8
	mov	r3, #0
	mov	r0, r6
	str	r4, [sp]
	bl	sdcmd2
	mov	r3, r6
	ldr	r2, [r6, #68]
	add	r3, r3, #72
	mov	r0, r6
	ldr	r1, .L1093+12
	str	r4, [sp]
	bl	sdcmd2
	cmp	r0, #0
	beq	.LCB6055
	b	.L1065	@long jump
.LCB6055:
	mov	r3, r6
	add	r3, r3, #132
	ldr	r2, [r3]
	ldr	r3, [sp, #112]
	cmp	r2, r3
	beq	.LCB6061
	b	.L1065	@long jump
.LCB6061:
	str	r0, [sp]
	ldr	r2, [r6, #68]
	mov	r0, r6
	ldr	r1, .L1093+16
	add	r3, sp, #32
	bl	sdcmd2
	b	.L1092
.L991:
	mov	r0, r6
	bl	stop
	cmp	r0, #0
	bne	.L1065
	cmp	r4, #0
	beq	.L1042
	mov	r0, #3
	b	.L1043
.L1042:
	mov	r0, #1
.L1043:
	mov	r1, #0
.L1047:
	lsl	r3, r1, #2
	add	r2, r3, r6
	ldr	r2, [r2, #76]
	add	r7, sp, #160
	add	r1, r1, #1
	str	r2, [r3, r7]
	cmp	r1, #15
	ble	.L1047
	ldr	r3, [sp, #216]
	mov	r2, #48
	bic	r3, r3, r2
	lsl	r2, r0, #4
	orr	r3, r3, r2
	str	r3, [sp, #216]
	mov	r1, #0
	mov	r5, r7
	mov	r4, #0
.L1056:
	ldrb	r2, [r5]
	mov	r0, #0
.L1055:
	lsl	r1, r1, #1
	mov	r3, r2
	eor	r3, r3, r1
	lsl	r3, r3, #24
	bpl	.L1054
	mov	r3, #9
	eor	r1, r1, r3
.L1054:
	lsl	r3, r2, #25
	lsr	r2, r3, #24
	add	r3, r0, #1
	lsl	r3, r3, #24
	lsr	r0, r3, #24
	cmp	r0, #7
	bls	.L1055
	mov	r3, #127
	add	r4, r4, #1
	and	r1, r1, r3
	add	r5, r5, #4
	cmp	r4, #15
	bcc	.L1056
	lsl	r3, r1, #1
	mov	r2, #1
	orr	r3, r3, r2
	str	r3, [r7, #60]
	mov	r1, #0
	mov	r2, r7
.L1061:
	ldmia	r2!, {r3}
	add	r7, sp, #120
	strb	r3, [r7, r1]
	add	r1, r1, #1
	cmp	r1, #15
	ble	.L1061
	mov	r3, #0
	add	r5, sp, #136
	str	r3, [sp]
	mov	r0, r6
	ldr	r1, .L1093
	mov	r2, #0
	mov	r3, r5
	bl	sdcmd
	mov	r4, r0
	cmp	r0, #0
	bne	.L1065
	mov	r0, r5
	ldr	r1, .L1093
	bl	error
	cmp	r0, #0
	bne	.L1065
	add	r1, sp, #12
	mov	r2, #16
	mov	r0, r6
	bl	datssp_stream
	mov	r1, #0
	mov	r2, #8
	mov	r0, r6
	bl	datssp_stream
	ldr	r2, [r6]
	mov	r3, #122
	neg	r3, r3
	strb	r3, [r2, #2]
	ldr	r3, [r6, #4]
	mov	r2, #2
	bic	r3, r3, r2
	ldr	r2, [r6, #68]
	str	r3, [r6, #4]
	mvn	r2, r2
	ldr	r1, .L1093+8
	mov	r3, #0
	mov	r0, r6
	str	r4, [sp]
	bl	sdcmd
	mov	r3, r6
	ldr	r2, [r6, #68]
	add	r3, r3, #72
	mov	r0, r6
	ldr	r1, .L1093+12
	str	r4, [sp]
	bl	sdcmd
	cmp	r0, #0
	bne	.L1065
	mov	r3, r6
	add	r3, r3, #132
	ldr	r2, [r3]
	ldr	r3, [sp, #216]
	cmp	r2, r3
	beq	.L1064
.L1065:
	mov	r0, #1
	b	.L990
.L1064:
	str	r0, [sp]
	ldr	r2, [r6, #68]
	mov	r0, r6
	ldr	r1, .L1093+16
	mov	r3, r5
	bl	sdcmd
.L1092:
	mov	r3, #1
	str	r3, [r6, #36]
	mov	r0, #0
.L990:
	add	sp, sp, #228
	@ sp needed for prologue
	pop	{r4, r5, r6, r7}
	pop	{r1}
	bx	r1
.L1094:
	.align	2
.L1093:
	.word	1371
	.word	1000000
	.word	327
	.word	841
	.word	1095
	.size	sdsetwprot, .-sdsetwprot
	.section	.bss.sdcores,"aw",%nobits
	.align	2
	.type	sdcores, %object
	.size	sdcores, 256
sdcores:
	.space	256
	.ident	"GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
