	.file	"metamapdecode.cpp"
@ GNU C++ version 3.3.2 (arm-thumb-elf)
@	compiled by GNU C version 3.3.1 (cygming special).
@ GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=65463
@ options passed:  -fpreprocessed -mthumb-interwork -mlong-calls
@ -auxbase-strip -O2 -Wall -fverbose-asm
@ options enabled:  -fdefer-pop -fomit-frame-pointer
@ -foptimize-sibling-calls -fcse-follow-jumps -fcse-skip-blocks
@ -fexpensive-optimizations -fthread-jumps -fstrength-reduce -fpeephole
@ -fforce-mem -ffunction-cse -fkeep-static-consts -fcaller-saves
@ -freg-struct-return -fgcse -fgcse-lm -fgcse-sm -floop-optimize
@ -fcrossjumping -fif-conversion -fif-conversion2 -frerun-cse-after-loop
@ -frerun-loop-opt -fdelete-null-pointer-checks -fschedule-insns
@ -fschedule-insns2 -fsched-interblock -fsched-spec -fbranch-count-reg
@ -fexceptions -freorder-blocks -freorder-functions -fcprop-registers
@ -fcommon -fverbose-asm -fgnu-linker -fregmove -foptimize-register-move
@ -fargument-alias -fstrict-aliasing -fmerge-constants
@ -fzero-initialized-in-bss -fident -fpeephole2 -fguess-branch-probability
@ -fmath-errno -ftrapping-math -mapcs -mapcs-frame -mapcs-32 -msoft-float
@ -mthumb-interwork -mlong-calls

	.global	newarray
	.bss
	.global	newarray
	.align	2
	.type	newarray, %object
	.size	newarray, 4
newarray:
	.space	4
	.global	myoldmap
	.global	myoldmap
	.align	2
	.type	myoldmap, %object
	.size	myoldmap, 4
myoldmap:
	.space	4
	.global	mylookuptable
	.global	mylookuptable
	.align	2
	.type	mylookuptable, %object
	.size	mylookuptable, 4
mylookuptable:
	.space	4
	.text
	.align	2
	.global	_Z13metaMapDecodePsPthh
	.type	_Z13metaMapDecodePsPthh, %function
_Z13metaMapDecodePsPthh:
	@ Function supports interworking.
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	mov	ip, sp
	stmfd	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc}
	ldr	r5, .L30
	sub	fp, ip, #4
	ldr	ip, [r5, #0]	@  oldmap,  newarray
	and	sl, r2, #255	@  oldsizex
	mov	r5, r0	@  oldmap
	ldr	r2, .L30+4
	mov	r0, ip	@  oldmap
	mov	r4, r1	@  lookuptable
	and	r9, r3, #255	@  oldsizey
	mov	lr, pc
	bx	r2
	mov	r3, sl, asl #3	@  oldsizex
	add	r2, r9, #10	@  oldsizey
	add	r3, r3, #120
	mul	r0, r2, r3	@  oldmap
	ldr	r3, .L30+8
	mov	lr, pc
	bx	r3
	mov	ip, sl, asl #1	@  oldsizex
	mov	r8, #0	@  x
	add	r2, ip, #30
	ldr	lr, .L30
	ldr	r1, .L30+12
	ldr	r3, .L30+16
	cmp	r8, r2	@  x
	str	r0, [lr, #0]	@  oldmap,  newarray
	str	r5, [r1, #0]	@  oldmap,  myoldmap
	str	r4, [r3, #0]	@  lookuptable,  mylookuptable
	bge	.L23
	mov	r3, r9, asl #1	@  oldsizey
	add	lr, r3, #20	@  y
	mov	r4, r2
.L11:
	cmp	lr, #0	@  y
	beq	.L25
	ldr	r5, .L30
	ldr	r0, [r5, #0]	@  newarray
	mov	r3, r8	@  x,  x
	mov	r1, lr	@  y,  y
.L10:
	add	r2, ip, r3	@  x
	mov	r5, #0	@ movhi
	mov	r3, r3, asl #1	@  x
	subs	r1, r1, #1	@  y,  y
	strh	r5, [r3, r0]	@ movhi 
	add	r3, r2, #30	@  x
	bne	.L10
.L25:
	add	r8, r8, #1	@  x,  x
	cmp	r8, r4	@  x
	blt	.L11
.L23:
	ldr	lr, .L30
	mov	r3, #0	@  x
	ldr	r2, [lr, #0]	@  newarray
	cmp	r3, sl	@  x,  oldsizex
	mov	r8, r3	@  x,  x
	strh	r3, [r2, #4]	@ movhi 	@  x
	strh	r3, [r2, #2]	@ movhi 	@  x
	bge	.L27
.L21:
	cmp	r9, #0	@  oldsizey
	beq	.L29
	add	r0, sl, #15	@  oldsizex
	ldr	r1, .L30
	add	r3, r0, r0, asl #2
	ldr	ip, [r1, #0]	@  newarray
	mov	r2, r8, asl #2	@  x
	add	r1, r0, r3, asl #1
	ldr	r5, .L30+12
	ldr	lr, .L30+16
	add	r3, r2, r3, asl #3
	add	r2, r2, r1, asl #2
	ldr	r6, [r5, #0]	@  myoldmap
	ldr	r4, [lr, #0]	@  mylookuptable
	add	r5, r3, ip
	add	lr, r2, ip
	mov	r0, r0, asl #3
	mov	ip, r8, asl #1	@  x
	mov	r7, sl, asl #1	@  oldsizex
	mov	r1, r9	@  y,  oldsizey
.L20:
	ldrsh	r3, [ip, r6]
	mov	r3, r3, asl #3
	ldrh	r3, [r3, r4]	@ movhi
	strh	r3, [r5, #28]	@ movhi 
	ldrsh	r2, [ip, r6]
	add	r2, r4, r2, asl #3
	ldrh	r2, [r2, #2]	@ movhi
	strh	r2, [r5, #30]	@ movhi 
	ldrsh	r3, [ip, r6]
	add	r3, r4, r3, asl #3
	ldrh	r3, [r3, #4]	@ movhi
	strh	r3, [lr, #28]	@ movhi 
	ldrsh	r2, [ip, r6]
	add	r2, r4, r2, asl #3
	ldrh	r2, [r2, #6]	@ movhi
	subs	r1, r1, #1	@  y,  y
	strh	r2, [lr, #30]	@ movhi 
	add	r5, r5, r0
	add	ip, ip, r7
	add	lr, lr, r0
	bne	.L20
.L29:
	add	r8, r8, #1	@  x,  x
	cmp	r8, sl	@  x,  oldsizex
	blt	.L21
.L27:
	ldr	r1, .L30
	ldr	r0, [r1, #0]	@  oldmap,  newarray
	ldmea	fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, lr}
	bx	lr
.L31:
	.align	2
.L30:
	.word	newarray
	.word	free
	.word	ham_Malloc
	.word	myoldmap
	.word	mylookuptable
	.size	_Z13metaMapDecodePsPthh, .-_Z13metaMapDecodePsPthh
	.ident	"GCC: (GNU) 3.3.2"
