	.include "asm/macros.inc"
	.include "constants/constants.inc"

	.syntax unified

	.text





	thumb_func_start sub_80E51B0
sub_80E51B0: @ 80E51B0
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0x92
	lsls r1, 3
	adds r0, r1
	ldr r1, =gSpecialVar_0x8005
	ldrh r1, [r1]
	bl IsEnoughMoney
	lsls r0, 24
	lsrs r0, 24
	pop {r1}
	bx r1
	.pool
	thumb_func_end sub_80E51B0

	thumb_func_start sub_80E51D4
sub_80E51D4: @ 80E51D4
	push {lr}
	ldr r0, =gSaveBlock1Ptr
	ldr r0, [r0]
	movs r1, 0x92
	lsls r1, 3
	adds r0, r1
	ldr r1, =gSpecialVar_0x8005
	ldrh r1, [r1]
	bl SubtractMoney
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E51D4

	thumb_func_start PrintMoneyAmountInMoneyBox
@ void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, s8 a3)
PrintMoneyAmountInMoneyBox: @ 80E51F4
	push {lr}
	sub sp, 0x4
	adds r3, r1, 0
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	str r2, [sp]
	movs r1, 0x26
	movs r2, 0x1
	bl PrintMoneyAmount
	add sp, 0x4
	pop {r0}
	bx r0
	thumb_func_end PrintMoneyAmountInMoneyBox

	thumb_func_start PrintMoneyAmount
@ void PrintMoneyAmount(u8 windowId, char x, char y, int amount, u8 a5)
PrintMoneyAmount: @ 80E5214
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0xC
	ldr r4, [sp, 0x24]
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r8, r1
	lsls r2, 24
	lsrs r6, r2, 24
	lsls r4, 24
	lsrs r5, r4, 24
	ldr r4, =gStringVar1
	adds r0, r4, 0
	adds r1, r3, 0
	movs r2, 0
	movs r3, 0x6
	bl ConvertIntToDecimalStringN
	adds r0, r4, 0
	bl StringLength
	lsls r0, 16
	lsrs r0, 16
	movs r1, 0x6
	subs r1, r0
	ldr r2, =gStringVar4
	adds r0, r1, 0
	subs r1, 0x1
	cmp r0, 0
	ble _080E5264
	movs r3, 0x77
_080E5258:
	strb r3, [r2]
	adds r2, 0x1
	adds r0, r1, 0
	subs r1, 0x1
	cmp r0, 0
	bgt _080E5258
_080E5264:
	ldr r1, =gUnknown_085E969C
	adds r0, r2, 0
	bl StringExpandPlaceholders
	ldr r2, =gStringVar4
	str r6, [sp]
	str r5, [sp, 0x4]
	movs r0, 0
	str r0, [sp, 0x8]
	adds r0, r7, 0
	movs r1, 0x1
	mov r3, r8
	bl PrintTextOnWindow
	add sp, 0xC
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.pool
	thumb_func_end PrintMoneyAmount

	thumb_func_start set_window_border_style_and_print_money_box
@ void set_window_border_style_and_print_money_box(u8 windowId, u16 tileStart, u8 palette, int amount)
set_window_border_style_and_print_money_box: @ 80E5298
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	adds r6, r0, 0
	adds r4, r1, 0
	adds r5, r2, 0
	mov r8, r3
	lsls r6, 24
	lsrs r6, 24
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	adds r0, r6, 0
	movs r1, 0
	adds r2, r4, 0
	adds r3, r5, 0
	bl SetWindowBorderStyle
	adds r0, r6, 0
	mov r1, r8
	movs r2, 0
	bl PrintMoneyAmountInMoneyBox
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end set_window_border_style_and_print_money_box

	thumb_func_start sub_80E52D4
sub_80E52D4: @ 80E52D4
	push {lr}
	adds r1, r0, 0
	ldr r0, =gUnknown_02039F98
	ldrb r0, [r0]
	movs r2, 0
	bl PrintMoneyAmountInMoneyBox
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E52D4

	thumb_func_start sub_80E52EC
@ void sub_80E52EC(int money, int x, int y)
sub_80E52EC: @ 80E52EC
	push {r4-r6,lr}
	mov r6, r8
	push {r6}
	sub sp, 0x18
	mov r8, r0
	adds r4, r1, 0
	adds r3, r2, 0
	lsls r4, 24
	lsls r3, 24
	lsrs r6, r4, 24
	movs r0, 0x80
	lsls r0, 17
	adds r4, r0
	lsrs r4, 24
	lsrs r5, r3, 24
	adds r3, r0
	lsrs r3, 24
	movs r0, 0xA
	str r0, [sp]
	movs r0, 0x2
	str r0, [sp, 0x4]
	movs r0, 0xF
	str r0, [sp, 0x8]
	movs r0, 0x8
	str r0, [sp, 0xC]
	add r0, sp, 0x10
	movs r1, 0
	adds r2, r4, 0
	bl SetWindowTemplateFields
	ldr r4, =gUnknown_02039F98
	add r0, sp, 0x10
	bl AddWindow
	strb r0, [r4]
	ldrb r0, [r4]
	movs r1, 0
	bl FillWindowPixelBuffer
	ldrb r0, [r4]
	bl PutWindowTilemap
	ldrb r0, [r4]
	movs r1, 0x1
	bl CopyWindowToVram
	ldrb r0, [r4]
	movs r1, 0x85
	lsls r1, 2
	movs r2, 0xE
	mov r3, r8
	bl set_window_border_style_and_print_money_box
	lsls r6, 19
	movs r0, 0x98
	lsls r0, 13
	adds r6, r0
	lsrs r6, 16
	lsls r5, 19
	movs r0, 0xB0
	lsls r0, 12
	adds r5, r0
	lsrs r5, 16
	adds r0, r6, 0
	adds r1, r5, 0
	bl AddMoneyLabelObject
	add sp, 0x18
	pop {r3}
	mov r8, r3
	pop {r4-r6}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E52EC

	thumb_func_start sub_80E5384
sub_80E5384: @ 80E5384
	push {r4,lr}
	bl RemoveMoneyLabelObject
	ldr r4, =gUnknown_02039F98
	ldrb r0, [r4]
	movs r1, 0
	bl sub_8198070
	ldrb r0, [r4]
	movs r1, 0x2
	bl CopyWindowToVram
	ldrb r0, [r4]
	bl RemoveWindow
	pop {r4}
	pop {r0}
	bx r0
	.pool
	thumb_func_end sub_80E5384

	thumb_func_start AddMoneyLabelObject
AddMoneyLabelObject: @ 80E53AC
	push {r4,r5,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 16
	lsrs r5, 16
	ldr r0, =gUnknown_0858C2A4
	bl LoadCompressedObjectPic
	ldr r0, =gUnknown_0858C2AC
	bl LoadCompressedObjectPalette
	ldr r0, =gUnknown_0858C28C
	lsls r4, 16
	asrs r4, 16
	lsls r5, 16
	asrs r5, 16
	adds r1, r4, 0
	adds r2, r5, 0
	movs r3, 0
	bl CreateSprite
	ldr r1, =gUnknown_02039F99
	strb r0, [r1]
	pop {r4,r5}
	pop {r0}
	bx r0
	.pool
	thumb_func_end AddMoneyLabelObject

	thumb_func_start RemoveMoneyLabelObject
RemoveMoneyLabelObject: @ 80E53F4
	push {lr}
	ldr r0, =gUnknown_02039F99
	ldrb r1, [r0]
	lsls r0, r1, 4
	adds r0, r1
	lsls r0, 2
	ldr r1, =gSprites
	adds r0, r1
	bl DestroySpriteAndFreeResources
	pop {r0}
	bx r0
	.pool
	thumb_func_end RemoveMoneyLabelObject

	.align 2, 0 @ Don't pad with nop.
