### RAW ASSEMBLY INSTRUCTIONS:

glabel appendGfx_background_texture
/* DC5C0 80145EC0 27BDFF48 */  addiu     $sp, $sp, -0xB8
/* DC5C4 80145EC4 AFB00080 */  sw        $s0, 0x80($sp)
/* DC5C8 80145EC8 0000802D */  daddu     $s0, $zero, $zero
/* DC5CC 80145ECC 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* DC5D0 80145ED0 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* DC5D4 80145ED4 3C04800B */  lui       $a0, %hi(gCameras)
/* DC5D8 80145ED8 24841D80 */  addiu     $a0, $a0, %lo(gCameras)
/* DC5DC 80145EDC AFBF00A4 */  sw        $ra, 0xA4($sp)
/* DC5E0 80145EE0 AFBE00A0 */  sw        $fp, 0xA0($sp)
/* DC5E4 80145EE4 AFB7009C */  sw        $s7, 0x9C($sp)
/* DC5E8 80145EE8 AFB60098 */  sw        $s6, 0x98($sp)
/* DC5EC 80145EEC AFB50094 */  sw        $s5, 0x94($sp)
/* DC5F0 80145EF0 AFB40090 */  sw        $s4, 0x90($sp)
/* DC5F4 80145EF4 AFB3008C */  sw        $s3, 0x8C($sp)
/* DC5F8 80145EF8 AFB20088 */  sw        $s2, 0x88($sp)
/* DC5FC 80145EFC AFB10084 */  sw        $s1, 0x84($sp)
/* DC600 80145F00 F7B600B0 */  sdc1      $f22, 0xB0($sp)
/* DC604 80145F04 F7B400A8 */  sdc1      $f20, 0xA8($sp)
/* DC608 80145F08 00031080 */  sll       $v0, $v1, 2
/* DC60C 80145F0C 00431021 */  addu      $v0, $v0, $v1
/* DC610 80145F10 00021080 */  sll       $v0, $v0, 2
/* DC614 80145F14 00431023 */  subu      $v0, $v0, $v1
/* DC618 80145F18 000218C0 */  sll       $v1, $v0, 3
/* DC61C 80145F1C 00431021 */  addu      $v0, $v0, $v1
/* DC620 80145F20 000210C0 */  sll       $v0, $v0, 3
/* DC624 80145F24 0C046EE9 */  jal       is_world_fog_enabled
/* DC628 80145F28 0044A821 */   addu     $s5, $v0, $a0
/* DC62C 80145F2C 1040000A */  beqz      $v0, .L80145F58
/* DC630 80145F30 27A40018 */   addiu    $a0, $sp, 0x18
/* DC634 80145F34 27A5001C */  addiu     $a1, $sp, 0x1C
/* DC638 80145F38 27A60020 */  addiu     $a2, $sp, 0x20
/* DC63C 80145F3C 0C046EF6 */  jal       get_world_fog_color
/* DC640 80145F40 27A70024 */   addiu    $a3, $sp, 0x24
/* DC644 80145F44 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DC648 80145F48 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DC64C 80145F4C 9442015C */  lhu       $v0, 0x15C($v0)
/* DC650 80145F50 24100001 */  addiu     $s0, $zero, 0x1
/* DC654 80145F54 AFA20024 */  sw        $v0, 0x24($sp)
.L80145F58:
/* DC658 80145F58 3C028015 */  lui       $v0, %hi(gBackgroundFogModePtr)
/* DC65C 80145F5C 8C4212F0 */  lw        $v0, %lo(gBackgroundFogModePtr)($v0)
/* DC660 80145F60 90420000 */  lbu       $v0, 0x0($v0)
/* DC664 80145F64 0440000C */  bltz      $v0, .L80145F98
/* DC668 80145F68 28420002 */   slti     $v0, $v0, 0x2
/* DC66C 80145F6C 1040000A */  beqz      $v0, .L80145F98
/* DC670 80145F70 27A40028 */   addiu    $a0, $sp, 0x28
/* DC674 80145F74 27A50029 */  addiu     $a1, $sp, 0x29
/* DC678 80145F78 27A6002A */  addiu     $a2, $sp, 0x2A
/* DC67C 80145F7C 0C046FA0 */  jal       get_background_color_blend
/* DC680 80145F80 27A7002B */   addiu    $a3, $sp, 0x2B
/* DC684 80145F84 93A2002B */  lbu       $v0, 0x2B($sp)
/* DC688 80145F88 54400020 */  bnel      $v0, $zero, .L8014600C
/* DC68C 80145F8C 36100002 */   ori      $s0, $s0, 0x2
/* DC690 80145F90 08051804 */  j         .L80146010
/* DC694 80145F94 3203FFFF */   andi     $v1, $s0, 0xFFFF
.L80145F98:
/* DC698 80145F98 27A40028 */  addiu     $a0, $sp, 0x28
/* DC69C 80145F9C 27A50029 */  addiu     $a1, $sp, 0x29
/* DC6A0 80145FA0 27A6002A */  addiu     $a2, $sp, 0x2A
/* DC6A4 80145FA4 27A7002C */  addiu     $a3, $sp, 0x2C
/* DC6A8 80145FA8 27A2002D */  addiu     $v0, $sp, 0x2D
/* DC6AC 80145FAC AFA20010 */  sw        $v0, 0x10($sp)
/* DC6B0 80145FB0 27A2002E */  addiu     $v0, $sp, 0x2E
/* DC6B4 80145FB4 0C046FF5 */  jal       get_model_env_color_parameters
/* DC6B8 80145FB8 AFA20014 */   sw       $v0, 0x14($sp)
/* DC6BC 80145FBC 93A40028 */  lbu       $a0, 0x28($sp)
/* DC6C0 80145FC0 240200FF */  addiu     $v0, $zero, 0xFF
/* DC6C4 80145FC4 54820011 */  bnel      $a0, $v0, .L8014600C
/* DC6C8 80145FC8 36100004 */   ori      $s0, $s0, 0x4
/* DC6CC 80145FCC 93A30029 */  lbu       $v1, 0x29($sp)
/* DC6D0 80145FD0 5464000E */  bnel      $v1, $a0, .L8014600C
/* DC6D4 80145FD4 36100004 */   ori      $s0, $s0, 0x4
/* DC6D8 80145FD8 93A2002A */  lbu       $v0, 0x2A($sp)
/* DC6DC 80145FDC 5443000B */  bnel      $v0, $v1, .L8014600C
/* DC6E0 80145FE0 36100004 */   ori      $s0, $s0, 0x4
/* DC6E4 80145FE4 93A2002C */  lbu       $v0, 0x2C($sp)
/* DC6E8 80145FE8 54400008 */  bnel      $v0, $zero, .L8014600C
/* DC6EC 80145FEC 36100004 */   ori      $s0, $s0, 0x4
/* DC6F0 80145FF0 93A2002D */  lbu       $v0, 0x2D($sp)
/* DC6F4 80145FF4 54400005 */  bnel      $v0, $zero, .L8014600C
/* DC6F8 80145FF8 36100004 */   ori      $s0, $s0, 0x4
/* DC6FC 80145FFC 93A2002E */  lbu       $v0, 0x2E($sp)
/* DC700 80146000 10400003 */  beqz      $v0, .L80146010
/* DC704 80146004 3203FFFF */   andi     $v1, $s0, 0xFFFF
/* DC708 80146008 36100004 */  ori       $s0, $s0, 0x4
.L8014600C:
/* DC70C 8014600C 3203FFFF */  andi      $v1, $s0, 0xFFFF
.L80146010:
/* DC710 80146010 2C620005 */  sltiu     $v0, $v1, 0x5
/* DC714 80146014 10400067 */  beqz      $v0, .L801461B4
/* DC718 80146018 00031080 */   sll      $v0, $v1, 2
/* DC71C 8014601C 3C018015 */  lui       $at, %hi(jtbl_80151220)
/* DC720 80146020 00220821 */  addu      $at, $at, $v0
/* DC724 80146024 8C221220 */  lw        $v0, %lo(jtbl_80151220)($at)
/* DC728 80146028 00400008 */  jr        $v0
/* DC72C 8014602C 00000000 */   nop
glabel .L80146030
/* DC730 80146030 3C038007 */  lui       $v1, %hi(gGameStatusPtr)
/* DC734 80146034 8C63419C */  lw        $v1, %lo(gGameStatusPtr)($v1)
/* DC738 80146038 94620148 */  lhu       $v0, 0x148($v1)
/* DC73C 8014603C 0805186C */  j         .L801461B0
/* DC740 80146040 3042FFFD */   andi     $v0, $v0, 0xFFFD
glabel .L80146044
/* DC744 80146044 3C078007 */  lui       $a3, %hi(gGameStatusPtr)
/* DC748 80146048 8CE7419C */  lw        $a3, %lo(gGameStatusPtr)($a3)
/* DC74C 8014604C 93A60028 */  lbu       $a2, 0x28($sp)
/* DC750 80146050 93A30029 */  lbu       $v1, 0x29($sp)
/* DC754 80146054 93A4002A */  lbu       $a0, 0x2A($sp)
/* DC758 80146058 93A5002B */  lbu       $a1, 0x2B($sp)
/* DC75C 8014605C 94E20148 */  lhu       $v0, 0x148($a3)
/* DC760 80146060 AFA60018 */  sw        $a2, 0x18($sp)
/* DC764 80146064 AFA3001C */  sw        $v1, 0x1C($sp)
/* DC768 80146068 AFA40020 */  sw        $a0, 0x20($sp)
/* DC76C 8014606C AFA50024 */  sw        $a1, 0x24($sp)
/* DC770 80146070 34420002 */  ori       $v0, $v0, 0x2
/* DC774 80146074 0805186D */  j         .L801461B4
/* DC778 80146078 A4E20148 */   sh       $v0, 0x148($a3)
glabel .L8014607C
/* DC77C 8014607C 240700FF */  addiu     $a3, $zero, 0xFF
/* DC780 80146080 93A8002B */  lbu       $t0, 0x2B($sp)
/* DC784 80146084 8FA20018 */  lw        $v0, 0x18($sp)
/* DC788 80146088 00E83823 */  subu      $a3, $a3, $t0
/* DC78C 8014608C 00470018 */  mult      $v0, $a3
/* DC790 80146090 00001812 */  mflo      $v1
/* DC794 80146094 93A20028 */  lbu       $v0, 0x28($sp)
/* DC798 80146098 00000000 */  nop
/* DC79C 8014609C 00480018 */  mult      $v0, $t0
/* DC7A0 801460A0 3C098080 */  lui       $t1, (0x80808081 >> 16)
/* DC7A4 801460A4 00005012 */  mflo      $t2
/* DC7A8 801460A8 35298081 */  ori       $t1, $t1, (0x80808081 & 0xFFFF)
/* DC7AC 801460AC 006A3021 */  addu      $a2, $v1, $t2
/* DC7B0 801460B0 00C90018 */  mult      $a2, $t1
/* DC7B4 801460B4 00005810 */  mfhi      $t3
/* DC7B8 801460B8 8FA2001C */  lw        $v0, 0x1C($sp)
/* DC7BC 801460BC 00000000 */  nop
/* DC7C0 801460C0 00470018 */  mult      $v0, $a3
/* DC7C4 801460C4 00002012 */  mflo      $a0
/* DC7C8 801460C8 93A20029 */  lbu       $v0, 0x29($sp)
/* DC7CC 801460CC 00000000 */  nop
/* DC7D0 801460D0 00480018 */  mult      $v0, $t0
/* DC7D4 801460D4 00006012 */  mflo      $t4
/* DC7D8 801460D8 8FA20020 */  lw        $v0, 0x20($sp)
/* DC7DC 801460DC 00000000 */  nop
/* DC7E0 801460E0 00470018 */  mult      $v0, $a3
/* DC7E4 801460E4 00005012 */  mflo      $t2
/* DC7E8 801460E8 93A2002A */  lbu       $v0, 0x2A($sp)
/* DC7EC 801460EC 00000000 */  nop
/* DC7F0 801460F0 00480018 */  mult      $v0, $t0
/* DC7F4 801460F4 00002812 */  mflo      $a1
/* DC7F8 801460F8 008C2021 */  addu      $a0, $a0, $t4
/* DC7FC 801460FC 00000000 */  nop
/* DC800 80146100 00890018 */  mult      $a0, $t1
/* DC804 80146104 00006010 */  mfhi      $t4
/* DC808 80146108 3C038007 */  lui       $v1, %hi(gGameStatusPtr)
/* DC80C 8014610C 8C63419C */  lw        $v1, %lo(gGameStatusPtr)($v1)
/* DC810 80146110 01452821 */  addu      $a1, $t2, $a1
/* DC814 80146114 00A90018 */  mult      $a1, $t1
/* DC818 80146118 94620148 */  lhu       $v0, 0x148($v1)
/* DC81C 8014611C 34420002 */  ori       $v0, $v0, 0x2
/* DC820 80146120 A4620148 */  sh        $v0, 0x148($v1)
/* DC824 80146124 00005010 */  mfhi      $t2
/* DC828 80146128 8FA30024 */  lw        $v1, 0x24($sp)
/* DC82C 8014612C 00000000 */  nop
/* DC830 80146130 00670018 */  mult      $v1, $a3
/* DC834 80146134 01661021 */  addu      $v0, $t3, $a2
/* DC838 80146138 000211C3 */  sra       $v0, $v0, 7
/* DC83C 8014613C 000637C3 */  sra       $a2, $a2, 31
/* DC840 80146140 00461023 */  subu      $v0, $v0, $a2
/* DC844 80146144 00001812 */  mflo      $v1
/* DC848 80146148 AFA20018 */  sw        $v0, 0x18($sp)
/* DC84C 8014614C 01841021 */  addu      $v0, $t4, $a0
/* DC850 80146150 01080018 */  mult      $t0, $t0
/* DC854 80146154 000211C3 */  sra       $v0, $v0, 7
/* DC858 80146158 000427C3 */  sra       $a0, $a0, 31
/* DC85C 8014615C 00441023 */  subu      $v0, $v0, $a0
/* DC860 80146160 AFA2001C */  sw        $v0, 0x1C($sp)
/* DC864 80146164 00004012 */  mflo      $t0
/* DC868 80146168 01451021 */  addu      $v0, $t2, $a1
/* DC86C 8014616C 00681821 */  addu      $v1, $v1, $t0
/* DC870 80146170 00690018 */  mult      $v1, $t1
/* DC874 80146174 000211C3 */  sra       $v0, $v0, 7
/* DC878 80146178 00052FC3 */  sra       $a1, $a1, 31
/* DC87C 8014617C 00451023 */  subu      $v0, $v0, $a1
/* DC880 80146180 AFA20020 */  sw        $v0, 0x20($sp)
/* DC884 80146184 00004010 */  mfhi      $t0
/* DC888 80146188 01031021 */  addu      $v0, $t0, $v1
/* DC88C 8014618C 000211C3 */  sra       $v0, $v0, 7
/* DC890 80146190 00031FC3 */  sra       $v1, $v1, 31
/* DC894 80146194 00431023 */  subu      $v0, $v0, $v1
/* DC898 80146198 0805186D */  j         .L801461B4
/* DC89C 8014619C AFA20024 */   sw       $v0, 0x24($sp)
glabel .L801461A0
/* DC8A0 801461A0 3C038007 */  lui       $v1, %hi(gGameStatusPtr)
/* DC8A4 801461A4 8C63419C */  lw        $v1, %lo(gGameStatusPtr)($v1)
/* DC8A8 801461A8 94620148 */  lhu       $v0, 0x148($v1)
/* DC8AC 801461AC 34420002 */  ori       $v0, $v0, 0x2
.L801461B0:
/* DC8B0 801461B0 A4620148 */  sh        $v0, 0x148($v1)
.L801461B4:
/* DC8B4 801461B4 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DC8B8 801461B8 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DC8BC 801461BC 94420148 */  lhu       $v0, 0x148($v0)
/* DC8C0 801461C0 30420002 */  andi      $v0, $v0, 0x2
/* DC8C4 801461C4 10400077 */  beqz      $v0, .L801463A4
/* DC8C8 801461C8 00000000 */   nop
/* DC8CC 801461CC 3C028015 */  lui       $v0, %hi(gBackgroundFogModePtr)
/* DC8D0 801461D0 8C4212F0 */  lw        $v0, %lo(gBackgroundFogModePtr)($v0)
/* DC8D4 801461D4 90420000 */  lbu       $v0, 0x0($v0)
/* DC8D8 801461D8 04400038 */  bltz      $v0, .L801462BC
/* DC8DC 801461DC 28420002 */   slti     $v0, $v0, 0x2
/* DC8E0 801461E0 10400036 */  beqz      $v0, .L801462BC
/* DC8E4 801461E4 240200FF */   addiu    $v0, $zero, 0xFF
/* DC8E8 801461E8 8FA30024 */  lw        $v1, 0x24($sp)
/* DC8EC 801461EC 1462000B */  bne       $v1, $v0, .L8014621C
/* DC8F0 801461F0 0000982D */   daddu    $s3, $zero, $zero
/* DC8F4 801461F4 24030001 */  addiu     $v1, $zero, 0x1
/* DC8F8 801461F8 0040982D */  daddu     $s3, $v0, $zero
/* DC8FC 801461FC 3C028016 */  lui       $v0, %hi(D_8015959E)
/* DC900 80146200 2442959E */  addiu     $v0, $v0, %lo(D_8015959E)
.L80146204:
/* DC904 80146204 A4430000 */  sh        $v1, 0x0($v0)
/* DC908 80146208 2673FFFF */  addiu     $s3, $s3, -0x1
/* DC90C 8014620C 0661FFFD */  bgez      $s3, .L80146204
/* DC910 80146210 2442FFFE */   addiu    $v0, $v0, -0x2
/* DC914 80146214 080518E9 */  j         .L801463A4
/* DC918 80146218 00000000 */   nop
.L8014621C:
/* DC91C 8014621C 3C148016 */  lui       $s4, %hi(gBackgroundPalette)
/* DC920 80146220 269493A0 */  addiu     $s4, $s4, %lo(gBackgroundPalette)
.L80146224:
/* DC924 80146224 00131840 */  sll       $v1, $s3, 1
/* DC928 80146228 26730001 */  addiu     $s3, $s3, 0x1
/* DC92C 8014622C 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DC930 80146230 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DC934 80146234 8FA60024 */  lw        $a2, 0x24($sp)
/* DC938 80146238 8C420158 */  lw        $v0, 0x158($v0)
/* DC93C 8014623C 8FA50020 */  lw        $a1, 0x20($sp)
/* DC940 80146240 00621821 */  addu      $v1, $v1, $v0
/* DC944 80146244 94700000 */  lhu       $s0, 0x0($v1)
/* DC948 80146248 000528C3 */  sra       $a1, $a1, 3
/* DC94C 8014624C 00102042 */  srl       $a0, $s0, 1
/* DC950 80146250 0C0517A6 */  jal       blend_background_channel
/* DC954 80146254 3084001F */   andi     $a0, $a0, 0x1F
/* DC958 80146258 0040902D */  daddu     $s2, $v0, $zero
/* DC95C 8014625C 00102182 */  srl       $a0, $s0, 6
/* DC960 80146260 3084001F */  andi      $a0, $a0, 0x1F
/* DC964 80146264 8FA5001C */  lw        $a1, 0x1C($sp)
/* DC968 80146268 8FA60024 */  lw        $a2, 0x24($sp)
/* DC96C 8014626C 0C0517A6 */  jal       blend_background_channel
/* DC970 80146270 000528C3 */   sra      $a1, $a1, 3
/* DC974 80146274 0040882D */  daddu     $s1, $v0, $zero
/* DC978 80146278 001022C2 */  srl       $a0, $s0, 11
/* DC97C 8014627C 8FA50018 */  lw        $a1, 0x18($sp)
/* DC980 80146280 8FA60024 */  lw        $a2, 0x24($sp)
/* DC984 80146284 0C0517A6 */  jal       blend_background_channel
/* DC988 80146288 000528C3 */   sra      $a1, $a1, 3
/* DC98C 8014628C 00121840 */  sll       $v1, $s2, 1
/* DC990 80146290 00112180 */  sll       $a0, $s1, 6
/* DC994 80146294 00641825 */  or        $v1, $v1, $a0
/* DC998 80146298 000212C0 */  sll       $v0, $v0, 11
/* DC99C 8014629C 00621825 */  or        $v1, $v1, $v0
/* DC9A0 801462A0 34630001 */  ori       $v1, $v1, 0x1
/* DC9A4 801462A4 A6830000 */  sh        $v1, 0x0($s4)
/* DC9A8 801462A8 2A620100 */  slti      $v0, $s3, 0x100
/* DC9AC 801462AC 1440FFDD */  bnez      $v0, .L80146224
/* DC9B0 801462B0 26940002 */   addiu    $s4, $s4, 0x2
/* DC9B4 801462B4 080518E9 */  j         .L801463A4
/* DC9B8 801462B8 00000000 */   nop
.L801462BC:
/* DC9BC 801462BC 0000982D */  daddu     $s3, $zero, $zero
/* DC9C0 801462C0 3C058016 */  lui       $a1, %hi(gBackgroundPalette)
/* DC9C4 801462C4 24A593A0 */  addiu     $a1, $a1, %lo(gBackgroundPalette)
/* DC9C8 801462C8 3C0C8007 */  lui       $t4, %hi(gGameStatusPtr)
/* DC9CC 801462CC 8D8C419C */  lw        $t4, %lo(gGameStatusPtr)($t4)
/* DC9D0 801462D0 93AB002A */  lbu       $t3, 0x2A($sp)
/* DC9D4 801462D4 93AA0029 */  lbu       $t2, 0x29($sp)
/* DC9D8 801462D8 93A2002E */  lbu       $v0, 0x2E($sp)
/* DC9DC 801462DC 93A90028 */  lbu       $t1, 0x28($sp)
/* DC9E0 801462E0 93A3002C */  lbu       $v1, 0x2C($sp)
/* DC9E4 801462E4 000240C2 */  srl       $t0, $v0, 3
/* DC9E8 801462E8 93A2002D */  lbu       $v0, 0x2D($sp)
/* DC9EC 801462EC 000330C2 */  srl       $a2, $v1, 3
/* DC9F0 801462F0 000238C2 */  srl       $a3, $v0, 3
.L801462F4:
/* DC9F4 801462F4 8D830158 */  lw        $v1, 0x158($t4)
/* DC9F8 801462F8 00131040 */  sll       $v0, $s3, 1
/* DC9FC 801462FC 00431021 */  addu      $v0, $v0, $v1
/* DCA00 80146300 94430000 */  lhu       $v1, 0x0($v0)
/* DCA04 80146304 00031042 */  srl       $v0, $v1, 1
/* DCA08 80146308 3042001F */  andi      $v0, $v0, 0x1F
/* DCA0C 8014630C 004B0018 */  mult      $v0, $t3
/* DCA10 80146310 00002012 */  mflo      $a0
/* DCA14 80146314 00031182 */  srl       $v0, $v1, 6
/* DCA18 80146318 3042001F */  andi      $v0, $v0, 0x1F
/* DCA1C 8014631C 004A0018 */  mult      $v0, $t2
/* DCA20 80146320 00006812 */  mflo      $t5
/* DCA24 80146324 00031AC2 */  srl       $v1, $v1, 11
/* DCA28 80146328 00000000 */  nop
/* DCA2C 8014632C 00690018 */  mult      $v1, $t1
/* DCA30 80146330 00041203 */  sra       $v0, $a0, 8
/* DCA34 80146334 01029021 */  addu      $s2, $t0, $v0
/* DCA38 80146338 000D1203 */  sra       $v0, $t5, 8
/* DCA3C 8014633C 00E28821 */  addu      $s1, $a3, $v0
/* DCA40 80146340 00001812 */  mflo      $v1
/* DCA44 80146344 00031203 */  sra       $v0, $v1, 8
/* DCA48 80146348 00C22021 */  addu      $a0, $a2, $v0
/* DCA4C 8014634C 2E420020 */  sltiu     $v0, $s2, 0x20
/* DCA50 80146350 50400001 */  beql      $v0, $zero, .L80146358
/* DCA54 80146354 2412001F */   addiu    $s2, $zero, 0x1F
.L80146358:
/* DCA58 80146358 3222FFFF */  andi      $v0, $s1, 0xFFFF
/* DCA5C 8014635C 2C420020 */  sltiu     $v0, $v0, 0x20
/* DCA60 80146360 50400001 */  beql      $v0, $zero, .L80146368
/* DCA64 80146364 2411001F */   addiu    $s1, $zero, 0x1F
.L80146368:
/* DCA68 80146368 3082FFFF */  andi      $v0, $a0, 0xFFFF
/* DCA6C 8014636C 2C420020 */  sltiu     $v0, $v0, 0x20
/* DCA70 80146370 50400001 */  beql      $v0, $zero, .L80146378
/* DCA74 80146374 2404001F */   addiu    $a0, $zero, 0x1F
.L80146378:
/* DCA78 80146378 00121040 */  sll       $v0, $s2, 1
/* DCA7C 8014637C 00111980 */  sll       $v1, $s1, 6
/* DCA80 80146380 00431025 */  or        $v0, $v0, $v1
/* DCA84 80146384 00041AC0 */  sll       $v1, $a0, 11
/* DCA88 80146388 00431025 */  or        $v0, $v0, $v1
/* DCA8C 8014638C 34420001 */  ori       $v0, $v0, 0x1
/* DCA90 80146390 A4A20000 */  sh        $v0, 0x0($a1)
/* DCA94 80146394 26730001 */  addiu     $s3, $s3, 0x1
/* DCA98 80146398 2A620100 */  slti      $v0, $s3, 0x100
/* DCA9C 8014639C 1440FFD5 */  bnez      $v0, .L801462F4
/* DCAA0 801463A0 24A50002 */   addiu    $a1, $a1, 0x2
.L801463A4:
/* DCAA4 801463A4 C6AC0084 */  lwc1      $f12, 0x84($s5)
/* DCAA8 801463A8 0C00A6C9 */  jal       clamp_angle
/* DCAAC 801463AC 46006307 */   neg.s    $f12, $f12
/* DCAB0 801463B0 46000586 */  mov.s     $f22, $f0
/* DCAB4 801463B4 0C00A8BB */  jal       sin_deg
/* DCAB8 801463B8 4600B306 */   mov.s    $f12, $f22
/* DCABC 801463BC 4600B306 */  mov.s     $f12, $f22
/* DCAC0 801463C0 0C00A8D4 */  jal       cos_deg
/* DCAC4 801463C4 46000506 */   mov.s    $f20, $f0
/* DCAC8 801463C8 C6A20048 */  lwc1      $f2, 0x48($s5)
/* DCACC 801463CC 46020002 */  mul.s     $f0, $f0, $f2
/* DCAD0 801463D0 00000000 */  nop
/* DCAD4 801463D4 C6A20050 */  lwc1      $f2, 0x50($s5)
/* DCAD8 801463D8 4602A502 */  mul.s     $f20, $f20, $f2
/* DCADC 801463DC 00000000 */  nop
/* DCAE0 801463E0 46140001 */  sub.s     $f0, $f0, $f20
/* DCAE4 801463E4 C6A2050C */  lwc1      $f2, 0x50C($s5)
/* DCAE8 801463E8 46020000 */  add.s     $f0, $f0, $f2
/* DCAEC 801463EC 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DCAF0 801463F0 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DCAF4 801463F4 3C013E80 */  lui       $at, (0x3E800000 >> 16)
/* DCAF8 801463F8 44811000 */  mtc1      $at, $f2
/* DCAFC 801463FC 46000007 */  neg.s     $f0, $f0
/* DCB00 80146400 46020102 */  mul.s     $f4, $f0, $f2
/* DCB04 80146404 00000000 */  nop
/* DCB08 80146408 8442014E */  lh        $v0, 0x14E($v0)
/* DCB0C 8014640C 44820000 */  mtc1      $v0, $f0
/* DCB10 80146410 00000000 */  nop
/* DCB14 80146414 46800020 */  cvt.s.w   $f0, $f0
/* DCB18 80146418 46160002 */  mul.s     $f0, $f0, $f22
/* DCB1C 8014641C 00000000 */  nop
/* DCB20 80146420 3C013C36 */  lui       $at, (0x3C360B61 >> 16)
/* DCB24 80146424 34210B61 */  ori       $at, $at, (0x3C360B61 & 0xFFFF)
/* DCB28 80146428 44811000 */  mtc1      $at, $f2
/* DCB2C 8014642C 00000000 */  nop
/* DCB30 80146430 46020002 */  mul.s     $f0, $f0, $f2
/* DCB34 80146434 00000000 */  nop
/* DCB38 80146438 3C028016 */  lui       $v0, %hi(gBackroundLastScrollValue)
/* DCB3C 8014643C 244295A0 */  addiu     $v0, $v0, %lo(gBackroundLastScrollValue)
/* DCB40 80146440 46002100 */  add.s     $f4, $f4, $f0
/* DCB44 80146444 C4460000 */  lwc1      $f6, 0x0($v0)
/* DCB48 80146448 46062001 */  sub.s     $f0, $f4, $f6
/* DCB4C 8014644C 3C013E99 */  lui       $at, (0x3E99999A >> 16)
/* DCB50 80146450 3421999A */  ori       $at, $at, (0x3E99999A & 0xFFFF)
/* DCB54 80146454 44811000 */  mtc1      $at, $f2
/* DCB58 80146458 46000005 */  abs.s     $f0, $f0
/* DCB5C 8014645C 4602003C */  c.lt.s    $f0, $f2
/* DCB60 80146460 00000000 */  nop
/* DCB64 80146464 45020002 */  bc1fl     .L80146470
/* DCB68 80146468 E4440000 */   swc1     $f4, 0x0($v0)
/* DCB6C 8014646C 46003106 */  mov.s     $f4, $f6
.L80146470:
/* DCB70 80146470 44801000 */  mtc1      $zero, $f2
/* DCB74 80146474 00000000 */  nop
/* DCB78 80146478 4602203C */  c.lt.s    $f4, $f2
/* DCB7C 8014647C 00000000 */  nop
/* DCB80 80146480 4500000D */  bc1f      .L801464B8
/* DCB84 80146484 00000000 */   nop
/* DCB88 80146488 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DCB8C 8014648C 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DCB90 80146490 8442014E */  lh        $v0, 0x14E($v0)
/* DCB94 80146494 00021140 */  sll       $v0, $v0, 5
/* DCB98 80146498 44820000 */  mtc1      $v0, $f0
/* DCB9C 8014649C 00000000 */  nop
/* DCBA0 801464A0 46800020 */  cvt.s.w   $f0, $f0
/* DCBA4 801464A4 46002100 */  add.s     $f4, $f4, $f0
.L801464A8:
/* DCBA8 801464A8 4602203C */  c.lt.s    $f4, $f2
/* DCBAC 801464AC 00000000 */  nop
/* DCBB0 801464B0 4503FFFD */  bc1tl     .L801464A8
/* DCBB4 801464B4 46002100 */   add.s    $f4, $f4, $f0
.L801464B8:
/* DCBB8 801464B8 3C0E8007 */  lui       $t6, %hi(gGameStatusPtr)
/* DCBBC 801464BC 8DCE419C */  lw        $t6, %lo(gGameStatusPtr)($t6)
/* DCBC0 801464C0 4600220D */  trunc.w.s $f8, $f4
/* DCBC4 801464C4 44024000 */  mfc1      $v0, $f8
/* DCBC8 801464C8 85C3014E */  lh        $v1, 0x14E($t6)
/* DCBCC 801464CC 3C05E300 */  lui       $a1, (0xE3000A01 >> 16)
/* DCBD0 801464D0 14600002 */  bnez      $v1, .L801464DC
/* DCBD4 801464D4 0043001A */   div      $zero, $v0, $v1
/* DCBD8 801464D8 0007000D */  break     7
.L801464DC:
/* DCBDC 801464DC 2401FFFF */  addiu     $at, $zero, -0x1
/* DCBE0 801464E0 14610004 */  bne       $v1, $at, .L801464F4
/* DCBE4 801464E4 3C018000 */   lui      $at, (0x80000000 >> 16)
/* DCBE8 801464E8 14410002 */  bne       $v0, $at, .L801464F4
/* DCBEC 801464EC 00000000 */   nop
/* DCBF0 801464F0 0006000D */  break     6
.L801464F4:
/* DCBF4 801464F4 00001810 */  mfhi      $v1
/* DCBF8 801464F8 34A50A01 */  ori       $a1, $a1, (0xE3000A01 & 0xFFFF)
/* DCBFC 801464FC 3C08E300 */  lui       $t0, (0xE3000C00 >> 16)
/* DCC00 80146500 35080C00 */  ori       $t0, $t0, (0xE3000C00 & 0xFFFF)
/* DCC04 80146504 3C09E300 */  lui       $t1, (0xE3001001 >> 16)
/* DCC08 80146508 35291001 */  ori       $t1, $t1, (0xE3001001 & 0xFFFF)
/* DCC0C 8014650C 3C0BFCFF */  lui       $t3, (0xFCFFFFFF >> 16)
/* DCC10 80146510 356BFFFF */  ori       $t3, $t3, (0xFCFFFFFF & 0xFFFF)
/* DCC14 80146514 3C0AFFFC */  lui       $t2, (0xFFFCF87C >> 16)
/* DCC18 80146518 354AF87C */  ori       $t2, $t2, (0xFFFCF87C & 0xFFFF)
/* DCC1C 8014651C 3C06E200 */  lui       $a2, (0xE200001C >> 16)
/* DCC20 80146520 34C6001C */  ori       $a2, $a2, (0xE200001C & 0xFFFF)
/* DCC24 80146524 3C07E300 */  lui       $a3, (0xE3001201 >> 16)
/* DCC28 80146528 3C0D800A */  lui       $t5, %hi(gMainGfxPos)
/* DCC2C 8014652C 25ADA66C */  addiu     $t5, $t5, %lo(gMainGfxPos)
/* DCC30 80146530 34E71201 */  ori       $a3, $a3, (0xE3001201 & 0xFFFF)
/* DCC34 80146534 8DAC0000 */  lw        $t4, 0x0($t5)
/* DCC38 80146538 3C10E700 */  lui       $s0, (0xE7000000 >> 16)
/* DCC3C 8014653C 0180202D */  daddu     $a0, $t4, $zero
/* DCC40 80146540 258C0008 */  addiu     $t4, $t4, 0x8
/* DCC44 80146544 ADAC0000 */  sw        $t4, 0x0($t5)
/* DCC48 80146548 25820008 */  addiu     $v0, $t4, 0x8
/* DCC4C 8014654C ADA20000 */  sw        $v0, 0x0($t5)
/* DCC50 80146550 25820010 */  addiu     $v0, $t4, 0x10
/* DCC54 80146554 ADA20000 */  sw        $v0, 0x0($t5)
/* DCC58 80146558 25820018 */  addiu     $v0, $t4, 0x18
/* DCC5C 8014655C ADA20000 */  sw        $v0, 0x0($t5)
/* DCC60 80146560 25820020 */  addiu     $v0, $t4, 0x20
/* DCC64 80146564 ADA20000 */  sw        $v0, 0x0($t5)
/* DCC68 80146568 25820028 */  addiu     $v0, $t4, 0x28
/* DCC6C 8014656C ADA20000 */  sw        $v0, 0x0($t5)
/* DCC70 80146570 25820030 */  addiu     $v0, $t4, 0x30
/* DCC74 80146574 ADA20000 */  sw        $v0, 0x0($t5)
/* DCC78 80146578 25820038 */  addiu     $v0, $t4, 0x38
/* DCC7C 8014657C ADA20000 */  sw        $v0, 0x0($t5)
/* DCC80 80146580 85D2014E */  lh        $s2, 0x14E($t6)
/* DCC84 80146584 85CF0150 */  lh        $t7, 0x150($t6)
/* DCC88 80146588 3C020020 */  lui       $v0, (0x200000 >> 16)
/* DCC8C 8014658C A5C30152 */  sh        $v1, 0x152($t6)
/* DCC90 80146590 AFAF0034 */  sw        $t7, 0x34($sp)
/* DCC94 80146594 85D9014A */  lh        $t9, 0x14A($t6)
/* DCC98 80146598 85D7014C */  lh        $s7, 0x14C($t6)
/* DCC9C 8014659C 00031C00 */  sll       $v1, $v1, 16
/* DCCA0 801465A0 AFB70030 */  sw        $s7, 0x30($sp)
/* DCCA4 801465A4 AC900000 */  sw        $s0, 0x0($a0)
/* DCCA8 801465A8 AC800004 */  sw        $zero, 0x4($a0)
/* DCCAC 801465AC AD820004 */  sw        $v0, 0x4($t4)
/* DCCB0 801465B0 34028000 */  ori       $v0, $zero, 0x8000
/* DCCB4 801465B4 AD850000 */  sw        $a1, 0x0($t4)
/* DCCB8 801465B8 AD880008 */  sw        $t0, 0x8($t4)
/* DCCBC 801465BC AD80000C */  sw        $zero, 0xC($t4)
/* DCCC0 801465C0 AD890010 */  sw        $t1, 0x10($t4)
/* DCCC4 801465C4 AD820014 */  sw        $v0, 0x14($t4)
/* DCCC8 801465C8 AD8B0018 */  sw        $t3, 0x18($t4)
/* DCCCC 801465CC AD8A001C */  sw        $t2, 0x1C($t4)
/* DCCD0 801465D0 AD860020 */  sw        $a2, 0x20($t4)
/* DCCD4 801465D4 AD800024 */  sw        $zero, 0x24($t4)
/* DCCD8 801465D8 AD870028 */  sw        $a3, 0x28($t4)
/* DCCDC 801465DC AD80002C */  sw        $zero, 0x2C($t4)
/* DCCE0 801465E0 AD900030 */  sw        $s0, 0x30($t4)
/* DCCE4 801465E4 AD800034 */  sw        $zero, 0x34($t4)
/* DCCE8 801465E8 95C20148 */  lhu       $v0, 0x148($t6)
/* DCCEC 801465EC 30420002 */  andi      $v0, $v0, 0x2
/* DCCF0 801465F0 14400024 */  bnez      $v0, .L80146684
/* DCCF4 801465F4 0003C403 */   sra      $t8, $v1, 16
/* DCCF8 801465F8 3C03F500 */  lui       $v1, (0xF5000100 >> 16)
/* DCCFC 801465FC 34630100 */  ori       $v1, $v1, (0xF5000100 & 0xFFFF)
/* DCD00 80146600 3C05073F */  lui       $a1, (0x73FC000 >> 16)
/* DCD04 80146604 34A5C000 */  ori       $a1, $a1, (0x73FC000 & 0xFFFF)
/* DCD08 80146608 25820040 */  addiu     $v0, $t4, 0x40
/* DCD0C 8014660C ADA20000 */  sw        $v0, 0x0($t5)
/* DCD10 80146610 3C02FD10 */  lui       $v0, (0xFD100000 >> 16)
/* DCD14 80146614 AD820038 */  sw        $v0, 0x38($t4)
/* DCD18 80146618 25820048 */  addiu     $v0, $t4, 0x48
/* DCD1C 8014661C ADA20000 */  sw        $v0, 0x0($t5)
/* DCD20 80146620 8DC40158 */  lw        $a0, 0x158($t6)
/* DCD24 80146624 3C02E800 */  lui       $v0, (0xE8000000 >> 16)
/* DCD28 80146628 AD820040 */  sw        $v0, 0x40($t4)
/* DCD2C 8014662C 25820050 */  addiu     $v0, $t4, 0x50
/* DCD30 80146630 AD800044 */  sw        $zero, 0x44($t4)
/* DCD34 80146634 ADA20000 */  sw        $v0, 0x0($t5)
/* DCD38 80146638 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DCD3C 8014663C AD82004C */  sw        $v0, 0x4C($t4)
/* DCD40 80146640 25820058 */  addiu     $v0, $t4, 0x58
/* DCD44 80146644 AD830048 */  sw        $v1, 0x48($t4)
/* DCD48 80146648 ADA20000 */  sw        $v0, 0x0($t5)
/* DCD4C 8014664C 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DCD50 80146650 AD820050 */  sw        $v0, 0x50($t4)
/* DCD54 80146654 25820060 */  addiu     $v0, $t4, 0x60
/* DCD58 80146658 AD800054 */  sw        $zero, 0x54($t4)
/* DCD5C 8014665C ADA20000 */  sw        $v0, 0x0($t5)
/* DCD60 80146660 3C02F000 */  lui       $v0, (0xF0000000 >> 16)
/* DCD64 80146664 AD820058 */  sw        $v0, 0x58($t4)
/* DCD68 80146668 25820068 */  addiu     $v0, $t4, 0x68
/* DCD6C 8014666C AD85005C */  sw        $a1, 0x5C($t4)
/* DCD70 80146670 ADA20000 */  sw        $v0, 0x0($t5)
/* DCD74 80146674 AD900060 */  sw        $s0, 0x60($t4)
/* DCD78 80146678 AD800064 */  sw        $zero, 0x64($t4)
/* DCD7C 8014667C 080519C4 */  j         .L80146710
/* DCD80 80146680 AD84003C */   sw       $a0, 0x3C($t4)
.L80146684:
/* DCD84 80146684 3C03F500 */  lui       $v1, (0xF5000100 >> 16)
/* DCD88 80146688 34630100 */  ori       $v1, $v1, (0xF5000100 & 0xFFFF)
/* DCD8C 8014668C 3C04073F */  lui       $a0, (0x73FC000 >> 16)
/* DCD90 80146690 3484C000 */  ori       $a0, $a0, (0x73FC000 & 0xFFFF)
/* DCD94 80146694 25820040 */  addiu     $v0, $t4, 0x40
/* DCD98 80146698 ADA20000 */  sw        $v0, 0x0($t5)
/* DCD9C 8014669C 3C02FD10 */  lui       $v0, (0xFD100000 >> 16)
/* DCDA0 801466A0 AD820038 */  sw        $v0, 0x38($t4)
/* DCDA4 801466A4 3C028016 */  lui       $v0, %hi(gBackgroundPalette)
/* DCDA8 801466A8 244293A0 */  addiu     $v0, $v0, %lo(gBackgroundPalette)
/* DCDAC 801466AC AD82003C */  sw        $v0, 0x3C($t4)
/* DCDB0 801466B0 25820048 */  addiu     $v0, $t4, 0x48
/* DCDB4 801466B4 ADA20000 */  sw        $v0, 0x0($t5)
/* DCDB8 801466B8 3C02E800 */  lui       $v0, (0xE8000000 >> 16)
/* DCDBC 801466BC AD820040 */  sw        $v0, 0x40($t4)
/* DCDC0 801466C0 25820050 */  addiu     $v0, $t4, 0x50
/* DCDC4 801466C4 AD800044 */  sw        $zero, 0x44($t4)
/* DCDC8 801466C8 ADA20000 */  sw        $v0, 0x0($t5)
/* DCDCC 801466CC 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DCDD0 801466D0 AD82004C */  sw        $v0, 0x4C($t4)
/* DCDD4 801466D4 25820058 */  addiu     $v0, $t4, 0x58
/* DCDD8 801466D8 AD830048 */  sw        $v1, 0x48($t4)
/* DCDDC 801466DC ADA20000 */  sw        $v0, 0x0($t5)
/* DCDE0 801466E0 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DCDE4 801466E4 AD820050 */  sw        $v0, 0x50($t4)
/* DCDE8 801466E8 25820060 */  addiu     $v0, $t4, 0x60
/* DCDEC 801466EC AD800054 */  sw        $zero, 0x54($t4)
/* DCDF0 801466F0 ADA20000 */  sw        $v0, 0x0($t5)
/* DCDF4 801466F4 3C02F000 */  lui       $v0, (0xF0000000 >> 16)
/* DCDF8 801466F8 AD820058 */  sw        $v0, 0x58($t4)
/* DCDFC 801466FC 25820068 */  addiu     $v0, $t4, 0x68
/* DCE00 80146700 AD84005C */  sw        $a0, 0x5C($t4)
/* DCE04 80146704 ADA20000 */  sw        $v0, 0x0($t5)
/* DCE08 80146708 AD900060 */  sw        $s0, 0x60($t4)
/* DCE0C 8014670C AD800064 */  sw        $zero, 0x64($t4)
.L80146710:
/* DCE10 80146710 3C028015 */  lui       $v0, %hi(gBackroundWaveEnabled)
/* DCE14 80146714 8042F12F */  lb        $v0, %lo(gBackroundWaveEnabled)($v0)
/* DCE18 80146718 1440013D */  bnez      $v0, .L80146C10
/* DCE1C 8014671C 24110006 */   addiu    $s1, $zero, 0x6
/* DCE20 80146720 3C048007 */  lui       $a0, %hi(gGameStatusPtr)
/* DCE24 80146724 8C84419C */  lw        $a0, %lo(gGameStatusPtr)($a0)
/* DCE28 80146728 8483014E */  lh        $v1, 0x14E($a0)
/* DCE2C 8014672C 24020800 */  addiu     $v0, $zero, 0x800
/* DCE30 80146730 14600002 */  bnez      $v1, .L8014673C
/* DCE34 80146734 0043001A */   div      $zero, $v0, $v1
/* DCE38 80146738 0007000D */  break     7
.L8014673C:
/* DCE3C 8014673C 2401FFFF */  addiu     $at, $zero, -0x1
/* DCE40 80146740 14610004 */  bne       $v1, $at, .L80146754
/* DCE44 80146744 3C018000 */   lui      $at, (0x80000000 >> 16)
/* DCE48 80146748 14410002 */  bne       $v0, $at, .L80146754
/* DCE4C 8014674C 00000000 */   nop
/* DCE50 80146750 0006000D */  break     6
.L80146754:
/* DCE54 80146754 00008812 */  mflo      $s1
/* DCE58 80146758 84820150 */  lh        $v0, 0x150($a0)
/* DCE5C 8014675C 16200002 */  bnez      $s1, .L80146768
/* DCE60 80146760 0051001A */   div      $zero, $v0, $s1
/* DCE64 80146764 0007000D */  break     7
.L80146768:
/* DCE68 80146768 2401FFFF */  addiu     $at, $zero, -0x1
/* DCE6C 8014676C 16210004 */  bne       $s1, $at, .L80146780
/* DCE70 80146770 3C018000 */   lui      $at, (0x80000000 >> 16)
/* DCE74 80146774 14410002 */  bne       $v0, $at, .L80146780
/* DCE78 80146778 00000000 */   nop
/* DCE7C 8014677C 0006000D */  break     6
.L80146780:
/* DCE80 80146780 00007812 */  mflo      $t7
/* DCE84 80146784 0000B810 */  mfhi      $s7
/* DCE88 80146788 0000982D */  daddu     $s3, $zero, $zero
/* DCE8C 8014678C AFAF0070 */  sw        $t7, 0x70($sp)
/* DCE90 80146790 19E00095 */  blez      $t7, .L801469E8
/* DCE94 80146794 AFB70038 */   sw       $s7, 0x38($sp)
/* DCE98 80146798 3C0A800A */  lui       $t2, %hi(gMainGfxPos)
/* DCE9C 8014679C 254AA66C */  addiu     $t2, $t2, %lo(gMainGfxPos)
/* DCEA0 801467A0 2642FFFF */  addiu     $v0, $s2, -0x1
/* DCEA4 801467A4 30420FFF */  andi      $v0, $v0, 0xFFF
/* DCEA8 801467A8 3C03FD48 */  lui       $v1, (0xFD480000 >> 16)
/* DCEAC 801467AC 00431025 */  or        $v0, $v0, $v1
/* DCEB0 801467B0 3C14F548 */  lui       $s4, (0xF5484A00 >> 16)
/* DCEB4 801467B4 36944A00 */  ori       $s4, $s4, (0xF5484A00 & 0xFFFF)
/* DCEB8 801467B8 03191821 */  addu      $v1, $t8, $t9
/* DCEBC 801467BC AFA2003C */  sw        $v0, 0x3C($sp)
/* DCEC0 801467C0 2462FFFF */  addiu     $v0, $v1, -0x1
/* DCEC4 801467C4 00021080 */  sll       $v0, $v0, 2
/* DCEC8 801467C8 30420FFF */  andi      $v0, $v0, 0xFFF
/* DCECC 801467CC 00021300 */  sll       $v0, $v0, 12
/* DCED0 801467D0 AFA20040 */  sw        $v0, 0x40($sp)
/* DCED4 801467D4 00191080 */  sll       $v0, $t9, 2
/* DCED8 801467D8 30420FFF */  andi      $v0, $v0, 0xFFF
/* DCEDC 801467DC 00021300 */  sll       $v0, $v0, 12
/* DCEE0 801467E0 3C16E100 */  lui       $s6, (0xE1000000 >> 16)
/* DCEE4 801467E4 AFA20044 */  sw        $v0, 0x44($sp)
/* DCEE8 801467E8 02581023 */  subu      $v0, $s2, $t8
/* DCEEC 801467EC 00021540 */  sll       $v0, $v0, 21
/* DCEF0 801467F0 3C15F100 */  lui       $s5, (0xF1000000 >> 16)
/* DCEF4 801467F4 3C101000 */  lui       $s0, (0x10000400 >> 16)
/* DCEF8 801467F8 36100400 */  ori       $s0, $s0, (0x10000400 & 0xFFFF)
/* DCEFC 801467FC AFA20048 */  sw        $v0, 0x48($sp)
/* DCF00 80146800 02591021 */  addu      $v0, $s2, $t9
/* DCF04 80146804 2442FFFF */  addiu     $v0, $v0, -0x1
/* DCF08 80146808 00021080 */  sll       $v0, $v0, 2
/* DCF0C 8014680C 30420FFF */  andi      $v0, $v0, 0xFFF
/* DCF10 80146810 00021300 */  sll       $v0, $v0, 12
/* DCF14 80146814 00031880 */  sll       $v1, $v1, 2
/* DCF18 80146818 30630FFF */  andi      $v1, $v1, 0xFFF
/* DCF1C 8014681C 0003F300 */  sll       $fp, $v1, 12
/* DCF20 80146820 0220702D */  daddu     $t6, $s1, $zero
/* DCF24 80146824 8FAF0030 */  lw        $t7, 0x30($sp)
/* DCF28 80146828 0260682D */  daddu     $t5, $s3, $zero
/* DCF2C 8014682C AFA2004C */  sw        $v0, 0x4C($sp)
/* DCF30 80146830 AFAF0078 */  sw        $t7, 0x78($sp)
.L80146834:
/* DCF34 80146834 3C028015 */  lui       $v0, %hi(gBackroundTextureYOffset)
/* DCF38 80146838 9442F130 */  lhu       $v0, %lo(gBackroundTextureYOffset)($v0)
/* DCF3C 8014683C 3C0B8007 */  lui       $t3, %hi(gGameStatusPtr)
/* DCF40 80146840 8D6B419C */  lw        $t3, %lo(gGameStatusPtr)($t3)
/* DCF44 80146844 004D2021 */  addu      $a0, $v0, $t5
/* DCF48 80146848 00041400 */  sll       $v0, $a0, 16
/* DCF4C 8014684C 85630150 */  lh        $v1, 0x150($t3)
/* DCF50 80146850 00021403 */  sra       $v0, $v0, 16
/* DCF54 80146854 0062182A */  slt       $v1, $v1, $v0
/* DCF58 80146858 95620150 */  lhu       $v0, 0x150($t3)
/* DCF5C 8014685C 10600002 */  beqz      $v1, .L80146868
/* DCF60 80146860 0080602D */   daddu    $t4, $a0, $zero
/* DCF64 80146864 00826023 */  subu      $t4, $a0, $v0
.L80146868:
/* DCF68 80146868 3C080749 */  lui       $t0, (0x749C014 >> 16)
/* DCF6C 8014686C 3508C014 */  ori       $t0, $t0, (0x749C014 & 0xFFFF)
/* DCF70 80146870 3C090049 */  lui       $t1, (0x49C014 >> 16)
/* DCF74 80146874 3529C014 */  ori       $t1, $t1, (0x49C014 & 0xFFFF)
/* DCF78 80146878 01B16821 */  addu      $t5, $t5, $s1
/* DCF7C 8014687C 26730001 */  addiu     $s3, $s3, 0x1
/* DCF80 80146880 8FB70078 */  lw        $s7, 0x78($sp)
/* DCF84 80146884 8FAF0030 */  lw        $t7, 0x30($sp)
/* DCF88 80146888 00173080 */  sll       $a2, $s7, 2
/* DCF8C 8014688C 02F1B821 */  addu      $s7, $s7, $s1
/* DCF90 80146890 25E5FFFF */  addiu     $a1, $t7, -0x1
/* DCF94 80146894 01C52821 */  addu      $a1, $t6, $a1
/* DCF98 80146898 00052880 */  sll       $a1, $a1, 2
/* DCF9C 8014689C AFB70078 */  sw        $s7, 0x78($sp)
/* DCFA0 801468A0 8D430000 */  lw        $v1, 0x0($t2)
/* DCFA4 801468A4 30A50FFF */  andi      $a1, $a1, 0xFFF
/* DCFA8 801468A8 0060382D */  daddu     $a3, $v1, $zero
/* DCFAC 801468AC 24630008 */  addiu     $v1, $v1, 0x8
/* DCFB0 801468B0 24620008 */  addiu     $v0, $v1, 0x8
/* DCFB4 801468B4 AD430000 */  sw        $v1, 0x0($t2)
/* DCFB8 801468B8 8FB7003C */  lw        $s7, 0x3C($sp)
/* DCFBC 801468BC 24640048 */  addiu     $a0, $v1, 0x48
/* DCFC0 801468C0 ACF70000 */  sw        $s7, 0x0($a3)
/* DCFC4 801468C4 AD420000 */  sw        $v0, 0x0($t2)
/* DCFC8 801468C8 24620010 */  addiu     $v0, $v1, 0x10
/* DCFCC 801468CC AD420000 */  sw        $v0, 0x0($t2)
/* DCFD0 801468D0 24620018 */  addiu     $v0, $v1, 0x18
/* DCFD4 801468D4 AD420000 */  sw        $v0, 0x0($t2)
/* DCFD8 801468D8 24620020 */  addiu     $v0, $v1, 0x20
/* DCFDC 801468DC AD420000 */  sw        $v0, 0x0($t2)
/* DCFE0 801468E0 24620028 */  addiu     $v0, $v1, 0x28
/* DCFE4 801468E4 AD420000 */  sw        $v0, 0x0($t2)
/* DCFE8 801468E8 24620030 */  addiu     $v0, $v1, 0x30
/* DCFEC 801468EC AD420000 */  sw        $v0, 0x0($t2)
/* DCFF0 801468F0 24620038 */  addiu     $v0, $v1, 0x38
/* DCFF4 801468F4 AD420000 */  sw        $v0, 0x0($t2)
/* DCFF8 801468F8 24620040 */  addiu     $v0, $v1, 0x40
/* DCFFC 801468FC AD420000 */  sw        $v0, 0x0($t2)
/* DD000 80146900 000C1400 */  sll       $v0, $t4, 16
/* DD004 80146904 00021403 */  sra       $v0, $v0, 16
/* DD008 80146908 02420018 */  mult      $s2, $v0
/* DD00C 8014690C AD440000 */  sw        $a0, 0x0($t2)
/* DD010 80146910 8D640154 */  lw        $a0, 0x154($t3)
/* DD014 80146914 24620050 */  addiu     $v0, $v1, 0x50
/* DD018 80146918 AD420000 */  sw        $v0, 0x0($t2)
/* DD01C 8014691C 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DD020 80146920 00007812 */  mflo      $t7
/* DD024 80146924 008F2021 */  addu      $a0, $a0, $t7
/* DD028 80146928 ACE40004 */  sw        $a0, 0x4($a3)
/* DD02C 8014692C AC620004 */  sw        $v0, 0x4($v1)
/* DD030 80146930 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DD034 80146934 AC620008 */  sw        $v0, 0x8($v1)
/* DD038 80146938 3C02F400 */  lui       $v0, (0xF4000000 >> 16)
/* DD03C 8014693C AC620010 */  sw        $v0, 0x10($v1)
/* DD040 80146940 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* DD044 80146944 AC620018 */  sw        $v0, 0x18($v1)
/* DD048 80146948 3C02F200 */  lui       $v0, (0xF2000000 >> 16)
/* DD04C 8014694C AC620028 */  sw        $v0, 0x28($v1)
/* DD050 80146950 3C02E400 */  lui       $v0, (0xE4000000 >> 16)
/* DD054 80146954 AC740000 */  sw        $s4, 0x0($v1)
/* DD058 80146958 AC60000C */  sw        $zero, 0xC($v1)
/* DD05C 8014695C AC680014 */  sw        $t0, 0x14($v1)
/* DD060 80146960 AC60001C */  sw        $zero, 0x1C($v1)
/* DD064 80146964 AC740020 */  sw        $s4, 0x20($v1)
/* DD068 80146968 AC600024 */  sw        $zero, 0x24($v1)
/* DD06C 8014696C AC69002C */  sw        $t1, 0x2C($v1)
/* DD070 80146970 8FB70040 */  lw        $s7, 0x40($sp)
/* DD074 80146974 00A22825 */  or        $a1, $a1, $v0
/* DD078 80146978 02E51025 */  or        $v0, $s7, $a1
/* DD07C 8014697C AC620030 */  sw        $v0, 0x30($v1)
/* DD080 80146980 8FAF0044 */  lw        $t7, 0x44($sp)
/* DD084 80146984 30C60FFF */  andi      $a2, $a2, 0xFFF
/* DD088 80146988 01E61025 */  or        $v0, $t7, $a2
/* DD08C 8014698C AC620034 */  sw        $v0, 0x34($v1)
/* DD090 80146990 AC760038 */  sw        $s6, 0x38($v1)
/* DD094 80146994 8FB70048 */  lw        $s7, 0x48($sp)
/* DD098 80146998 03C63025 */  or        $a2, $fp, $a2
/* DD09C 8014699C AC750040 */  sw        $s5, 0x40($v1)
/* DD0A0 801469A0 AC700044 */  sw        $s0, 0x44($v1)
/* DD0A4 801469A4 AC77003C */  sw        $s7, 0x3C($v1)
/* DD0A8 801469A8 8FAF004C */  lw        $t7, 0x4C($sp)
/* DD0AC 801469AC 24620058 */  addiu     $v0, $v1, 0x58
/* DD0B0 801469B0 01E52825 */  or        $a1, $t7, $a1
/* DD0B4 801469B4 AC650048 */  sw        $a1, 0x48($v1)
/* DD0B8 801469B8 AC66004C */  sw        $a2, 0x4C($v1)
/* DD0BC 801469BC AD420000 */  sw        $v0, 0x0($t2)
/* DD0C0 801469C0 24620060 */  addiu     $v0, $v1, 0x60
/* DD0C4 801469C4 AC760050 */  sw        $s6, 0x50($v1)
/* DD0C8 801469C8 AC600054 */  sw        $zero, 0x54($v1)
/* DD0CC 801469CC AD420000 */  sw        $v0, 0x0($t2)
/* DD0D0 801469D0 AC750058 */  sw        $s5, 0x58($v1)
/* DD0D4 801469D4 AC70005C */  sw        $s0, 0x5C($v1)
/* DD0D8 801469D8 8FB70070 */  lw        $s7, 0x70($sp)
/* DD0DC 801469DC 0277102A */  slt       $v0, $s3, $s7
/* DD0E0 801469E0 1440FF94 */  bnez      $v0, .L80146834
/* DD0E4 801469E4 01D17021 */   addu     $t6, $t6, $s1
.L801469E8:
/* DD0E8 801469E8 8FAF0038 */  lw        $t7, 0x38($sp)
/* DD0EC 801469EC 11E001F9 */  beqz      $t7, .L801471D4
/* DD0F0 801469F0 02330018 */   mult     $s1, $s3
/* DD0F4 801469F4 3C0B8007 */  lui       $t3, %hi(gGameStatusPtr)
/* DD0F8 801469F8 8D6B419C */  lw        $t3, %lo(gGameStatusPtr)($t3)
/* DD0FC 801469FC 3C028015 */  lui       $v0, %hi(gBackroundTextureYOffset)
/* DD100 80146A00 9442F130 */  lhu       $v0, %lo(gBackroundTextureYOffset)($v0)
/* DD104 80146A04 85630150 */  lh        $v1, 0x150($t3)
/* DD108 80146A08 00006812 */  mflo      $t5
/* DD10C 80146A0C 004D2021 */  addu      $a0, $v0, $t5
/* DD110 80146A10 00041400 */  sll       $v0, $a0, 16
/* DD114 80146A14 00021403 */  sra       $v0, $v0, 16
/* DD118 80146A18 0062182A */  slt       $v1, $v1, $v0
/* DD11C 80146A1C 95620150 */  lhu       $v0, 0x150($t3)
/* DD120 80146A20 10600002 */  beqz      $v1, .L80146A2C
/* DD124 80146A24 0080602D */   daddu    $t4, $a0, $zero
/* DD128 80146A28 00826023 */  subu      $t4, $a0, $v0
.L80146A2C:
/* DD12C 80146A2C 3C08F548 */  lui       $t0, (0xF5484A00 >> 16)
/* DD130 80146A30 35084A00 */  ori       $t0, $t0, (0xF5484A00 & 0xFFFF)
/* DD134 80146A34 3C050749 */  lui       $a1, (0x749C000 >> 16)
/* DD138 80146A38 34A5C000 */  ori       $a1, $a1, (0x749C000 & 0xFFFF)
/* DD13C 80146A3C 3C090049 */  lui       $t1, (0x49C000 >> 16)
/* DD140 80146A40 3529C000 */  ori       $t1, $t1, (0x49C000 & 0xFFFF)
/* DD144 80146A44 3C0A1000 */  lui       $t2, (0x10000400 >> 16)
/* DD148 80146A48 3C07800A */  lui       $a3, %hi(gMainGfxPos)
/* DD14C 80146A4C 24E7A66C */  addiu     $a3, $a3, %lo(gMainGfxPos)
/* DD150 80146A50 354A0400 */  ori       $t2, $t2, (0x10000400 & 0xFFFF)
/* DD154 80146A54 2642FFFF */  addiu     $v0, $s2, -0x1
/* DD158 80146A58 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD15C 80146A5C 3C03FD48 */  lui       $v1, (0xFD480000 >> 16)
/* DD160 80146A60 8CE40000 */  lw        $a0, 0x0($a3)
/* DD164 80146A64 00431025 */  or        $v0, $v0, $v1
/* DD168 80146A68 0080302D */  daddu     $a2, $a0, $zero
/* DD16C 80146A6C 24840008 */  addiu     $a0, $a0, 0x8
/* DD170 80146A70 ACE40000 */  sw        $a0, 0x0($a3)
/* DD174 80146A74 ACC20000 */  sw        $v0, 0x0($a2)
/* DD178 80146A78 24820008 */  addiu     $v0, $a0, 0x8
/* DD17C 80146A7C ACE20000 */  sw        $v0, 0x0($a3)
/* DD180 80146A80 24820010 */  addiu     $v0, $a0, 0x10
/* DD184 80146A84 ACE20000 */  sw        $v0, 0x0($a3)
/* DD188 80146A88 24820018 */  addiu     $v0, $a0, 0x18
/* DD18C 80146A8C ACE20000 */  sw        $v0, 0x0($a3)
/* DD190 80146A90 24820020 */  addiu     $v0, $a0, 0x20
/* DD194 80146A94 ACE20000 */  sw        $v0, 0x0($a3)
/* DD198 80146A98 24820028 */  addiu     $v0, $a0, 0x28
/* DD19C 80146A9C ACE20000 */  sw        $v0, 0x0($a3)
/* DD1A0 80146AA0 24820030 */  addiu     $v0, $a0, 0x30
/* DD1A4 80146AA4 ACE20000 */  sw        $v0, 0x0($a3)
/* DD1A8 80146AA8 24820038 */  addiu     $v0, $a0, 0x38
/* DD1AC 80146AAC ACE20000 */  sw        $v0, 0x0($a3)
/* DD1B0 80146AB0 24820040 */  addiu     $v0, $a0, 0x40
/* DD1B4 80146AB4 ACE20000 */  sw        $v0, 0x0($a3)
/* DD1B8 80146AB8 000C1400 */  sll       $v0, $t4, 16
/* DD1BC 80146ABC 00021403 */  sra       $v0, $v0, 16
/* DD1C0 80146AC0 24830048 */  addiu     $v1, $a0, 0x48
/* DD1C4 80146AC4 02420018 */  mult      $s2, $v0
/* DD1C8 80146AC8 ACE30000 */  sw        $v1, 0x0($a3)
/* DD1CC 80146ACC 8D620154 */  lw        $v0, 0x154($t3)
/* DD1D0 80146AD0 24830050 */  addiu     $v1, $a0, 0x50
/* DD1D4 80146AD4 ACE30000 */  sw        $v1, 0x0($a3)
/* DD1D8 80146AD8 3C03E700 */  lui       $v1, (0xE7000000 >> 16)
/* DD1DC 80146ADC 00007812 */  mflo      $t7
/* DD1E0 80146AE0 004F1021 */  addu      $v0, $v0, $t7
/* DD1E4 80146AE4 ACC20004 */  sw        $v0, 0x4($a2)
/* DD1E8 80146AE8 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DD1EC 80146AEC AC820004 */  sw        $v0, 0x4($a0)
/* DD1F0 80146AF0 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DD1F4 80146AF4 AC820008 */  sw        $v0, 0x8($a0)
/* DD1F8 80146AF8 3C02F400 */  lui       $v0, (0xF4000000 >> 16)
/* DD1FC 80146AFC AC880000 */  sw        $t0, 0x0($a0)
/* DD200 80146B00 AC80000C */  sw        $zero, 0xC($a0)
/* DD204 80146B04 AC820010 */  sw        $v0, 0x10($a0)
/* DD208 80146B08 8FB70038 */  lw        $s7, 0x38($sp)
/* DD20C 80146B0C 03193021 */  addu      $a2, $t8, $t9
/* DD210 80146B10 26E2FFFF */  addiu     $v0, $s7, -0x1
/* DD214 80146B14 00021080 */  sll       $v0, $v0, 2
/* DD218 80146B18 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD21C 80146B1C 00452825 */  or        $a1, $v0, $a1
/* DD220 80146B20 AC830018 */  sw        $v1, 0x18($a0)
/* DD224 80146B24 3C03F200 */  lui       $v1, (0xF2000000 >> 16)
/* DD228 80146B28 00491025 */  or        $v0, $v0, $t1
/* DD22C 80146B2C AC82002C */  sw        $v0, 0x2C($a0)
/* DD230 80146B30 24C2FFFF */  addiu     $v0, $a2, -0x1
/* DD234 80146B34 00021080 */  sll       $v0, $v0, 2
/* DD238 80146B38 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD23C 80146B3C 00021300 */  sll       $v0, $v0, 12
/* DD240 80146B40 AC830028 */  sw        $v1, 0x28($a0)
/* DD244 80146B44 3C03E400 */  lui       $v1, (0xE4000000 >> 16)
/* DD248 80146B48 3C09E100 */  lui       $t1, (0xE1000000 >> 16)
/* DD24C 80146B4C AC880020 */  sw        $t0, 0x20($a0)
/* DD250 80146B50 3C08F100 */  lui       $t0, (0xF1000000 >> 16)
/* DD254 80146B54 00063080 */  sll       $a2, $a2, 2
/* DD258 80146B58 30C60FFF */  andi      $a2, $a2, 0xFFF
/* DD25C 80146B5C 00063300 */  sll       $a2, $a2, 12
/* DD260 80146B60 AC850014 */  sw        $a1, 0x14($a0)
/* DD264 80146B64 AC80001C */  sw        $zero, 0x1C($a0)
/* DD268 80146B68 AC800024 */  sw        $zero, 0x24($a0)
/* DD26C 80146B6C 8FAF0030 */  lw        $t7, 0x30($sp)
/* DD270 80146B70 8FB70034 */  lw        $s7, 0x34($sp)
/* DD274 80146B74 25E5FFFF */  addiu     $a1, $t7, -0x1
/* DD278 80146B78 02E52821 */  addu      $a1, $s7, $a1
/* DD27C 80146B7C 00052880 */  sll       $a1, $a1, 2
/* DD280 80146B80 30A50FFF */  andi      $a1, $a1, 0xFFF
/* DD284 80146B84 00A32825 */  or        $a1, $a1, $v1
/* DD288 80146B88 00451025 */  or        $v0, $v0, $a1
/* DD28C 80146B8C AC820030 */  sw        $v0, 0x30($a0)
/* DD290 80146B90 00191080 */  sll       $v0, $t9, 2
/* DD294 80146B94 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD298 80146B98 00021300 */  sll       $v0, $v0, 12
/* DD29C 80146B9C 01AF1821 */  addu      $v1, $t5, $t7
/* DD2A0 80146BA0 00031880 */  sll       $v1, $v1, 2
/* DD2A4 80146BA4 30630FFF */  andi      $v1, $v1, 0xFFF
/* DD2A8 80146BA8 00431025 */  or        $v0, $v0, $v1
/* DD2AC 80146BAC AC820034 */  sw        $v0, 0x34($a0)
/* DD2B0 80146BB0 02581023 */  subu      $v0, $s2, $t8
/* DD2B4 80146BB4 00021540 */  sll       $v0, $v0, 21
/* DD2B8 80146BB8 AC82003C */  sw        $v0, 0x3C($a0)
/* DD2BC 80146BBC 02591021 */  addu      $v0, $s2, $t9
/* DD2C0 80146BC0 2442FFFF */  addiu     $v0, $v0, -0x1
/* DD2C4 80146BC4 00021080 */  sll       $v0, $v0, 2
/* DD2C8 80146BC8 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD2CC 80146BCC 00021300 */  sll       $v0, $v0, 12
/* DD2D0 80146BD0 00451025 */  or        $v0, $v0, $a1
/* DD2D4 80146BD4 00C33025 */  or        $a2, $a2, $v1
/* DD2D8 80146BD8 AC890038 */  sw        $t1, 0x38($a0)
/* DD2DC 80146BDC AC880040 */  sw        $t0, 0x40($a0)
/* DD2E0 80146BE0 AC8A0044 */  sw        $t2, 0x44($a0)
/* DD2E4 80146BE4 AC820048 */  sw        $v0, 0x48($a0)
/* DD2E8 80146BE8 24820058 */  addiu     $v0, $a0, 0x58
/* DD2EC 80146BEC AC86004C */  sw        $a2, 0x4C($a0)
/* DD2F0 80146BF0 ACE20000 */  sw        $v0, 0x0($a3)
/* DD2F4 80146BF4 24820060 */  addiu     $v0, $a0, 0x60
/* DD2F8 80146BF8 AC890050 */  sw        $t1, 0x50($a0)
/* DD2FC 80146BFC AC800054 */  sw        $zero, 0x54($a0)
/* DD300 80146C00 ACE20000 */  sw        $v0, 0x0($a3)
/* DD304 80146C04 AC880058 */  sw        $t0, 0x58($a0)
/* DD308 80146C08 08051C75 */  j         .L801471D4
/* DD30C 80146C0C AC8A005C */   sw       $t2, 0x5C($a0)
.L80146C10:
/* DD310 80146C10 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* DD314 80146C14 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* DD318 80146C18 84420150 */  lh        $v0, 0x150($v0)
/* DD31C 80146C1C 16200002 */  bnez      $s1, .L80146C28
/* DD320 80146C20 0051001A */   div      $zero, $v0, $s1
/* DD324 80146C24 0007000D */  break     7
.L80146C28:
/* DD328 80146C28 2401FFFF */  addiu     $at, $zero, -0x1
/* DD32C 80146C2C 16210004 */  bne       $s1, $at, .L80146C40
/* DD330 80146C30 3C018000 */   lui      $at, (0x80000000 >> 16)
/* DD334 80146C34 14410002 */  bne       $v0, $at, .L80146C40
/* DD338 80146C38 00000000 */   nop
/* DD33C 80146C3C 0006000D */  break     6
.L80146C40:
/* DD340 80146C40 00007812 */  mflo      $t7
/* DD344 80146C44 0000B810 */  mfhi      $s7
/* DD348 80146C48 3C013DD6 */  lui       $at, (0x3DD67744 >> 16)
/* DD34C 80146C4C 34217744 */  ori       $at, $at, (0x3DD67744 & 0xFFFF)
/* DD350 80146C50 44810000 */  mtc1      $at, $f0
/* DD354 80146C54 3C028015 */  lui       $v0, %hi(gBackroundWavePhase)
/* DD358 80146C58 2442F134 */  addiu     $v0, $v0, %lo(gBackroundWavePhase)
/* DD35C 80146C5C AFAF0070 */  sw        $t7, 0x70($sp)
/* DD360 80146C60 AFB70038 */  sw        $s7, 0x38($sp)
/* DD364 80146C64 C4420000 */  lwc1      $f2, 0x0($v0)
/* DD368 80146C68 46001080 */  add.s     $f2, $f2, $f0
/* DD36C 80146C6C 0000982D */  daddu     $s3, $zero, $zero
/* DD370 80146C70 19E000B1 */  blez      $t7, .L80146F38
/* DD374 80146C74 E4420000 */   swc1     $f2, 0x0($v0)
/* DD378 80146C78 3C10800A */  lui       $s0, %hi(gMainGfxPos)
/* DD37C 80146C7C 2610A66C */  addiu     $s0, $s0, %lo(gMainGfxPos)
/* DD380 80146C80 2642FFFF */  addiu     $v0, $s2, -0x1
/* DD384 80146C84 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD388 80146C88 3C03FD48 */  lui       $v1, (0xFD480000 >> 16)
/* DD38C 80146C8C 00431025 */  or        $v0, $v0, $v1
/* DD390 80146C90 3C0BF548 */  lui       $t3, (0xF5484A00 >> 16)
/* DD394 80146C94 356B4A00 */  ori       $t3, $t3, (0xF5484A00 & 0xFFFF)
/* DD398 80146C98 00197880 */  sll       $t7, $t9, 2
/* DD39C 80146C9C AFA20050 */  sw        $v0, 0x50($sp)
/* DD3A0 80146CA0 31E20FFF */  andi      $v0, $t7, 0xFFF
/* DD3A4 80146CA4 00021300 */  sll       $v0, $v0, 12
/* DD3A8 80146CA8 3C0EE100 */  lui       $t6, (0xE1000000 >> 16)
/* DD3AC 80146CAC 3C0DF100 */  lui       $t5, (0xF1000000 >> 16)
/* DD3B0 80146CB0 3C1E1000 */  lui       $fp, (0x10000400 >> 16)
/* DD3B4 80146CB4 37DE0400 */  ori       $fp, $fp, (0x10000400 & 0xFFFF)
/* DD3B8 80146CB8 0220A82D */  daddu     $s5, $s1, $zero
/* DD3BC 80146CBC 8FB60030 */  lw        $s6, 0x30($sp)
/* DD3C0 80146CC0 0260A02D */  daddu     $s4, $s3, $zero
/* DD3C4 80146CC4 AFAF0054 */  sw        $t7, 0x54($sp)
/* DD3C8 80146CC8 AFA20058 */  sw        $v0, 0x58($sp)
.L80146CCC:
/* DD3CC 80146CCC 3C013ED6 */  lui       $at, (0x3ED67744 >> 16)
/* DD3D0 80146CD0 34217744 */  ori       $at, $at, (0x3ED67744 & 0xFFFF)
/* DD3D4 80146CD4 44810000 */  mtc1      $at, $f0
/* DD3D8 80146CD8 44936000 */  mtc1      $s3, $f12
/* DD3DC 80146CDC 00000000 */  nop
/* DD3E0 80146CE0 46806320 */  cvt.s.w   $f12, $f12
/* DD3E4 80146CE4 46006302 */  mul.s     $f12, $f12, $f0
/* DD3E8 80146CE8 00000000 */  nop
/* DD3EC 80146CEC 3C018015 */  lui       $at, %hi(gBackroundWavePhase)
/* DD3F0 80146CF0 C420F134 */  lwc1      $f0, %lo(gBackroundWavePhase)($at)
/* DD3F4 80146CF4 AFAB0060 */  sw        $t3, 0x60($sp)
/* DD3F8 80146CF8 AFAD0064 */  sw        $t5, 0x64($sp)
/* DD3FC 80146CFC 460C0300 */  add.s     $f12, $f0, $f12
/* DD400 80146D00 AFAE0068 */  sw        $t6, 0x68($sp)
/* DD404 80146D04 0C00A85B */  jal       sin_rad
/* DD408 80146D08 AFB9006C */   sw       $t9, 0x6C($sp)
/* DD40C 80146D0C 3C014040 */  lui       $at, (0x40400000 >> 16)
/* DD410 80146D10 44811000 */  mtc1      $at, $f2
/* DD414 80146D14 3C0A8007 */  lui       $t2, %hi(gGameStatusPtr)
/* DD418 80146D18 8D4A419C */  lw        $t2, %lo(gGameStatusPtr)($t2)
/* DD41C 80146D1C 8FAB0060 */  lw        $t3, 0x60($sp)
/* DD420 80146D20 8FAD0064 */  lw        $t5, 0x64($sp)
/* DD424 80146D24 8FAE0068 */  lw        $t6, 0x68($sp)
/* DD428 80146D28 8FB9006C */  lw        $t9, 0x6C($sp)
/* DD42C 80146D2C 85420152 */  lh        $v0, 0x152($t2)
/* DD430 80146D30 46020082 */  mul.s     $f2, $f0, $f2
/* DD434 80146D34 00000000 */  nop
/* DD438 80146D38 44820000 */  mtc1      $v0, $f0
/* DD43C 80146D3C 00000000 */  nop
/* DD440 80146D40 46800020 */  cvt.s.w   $f0, $f0
/* DD444 80146D44 3C028015 */  lui       $v0, %hi(gBackroundTextureYOffset)
/* DD448 80146D48 9442F130 */  lhu       $v0, %lo(gBackroundTextureYOffset)($v0)
/* DD44C 80146D4C 85430150 */  lh        $v1, 0x150($t2)
/* DD450 80146D50 00542021 */  addu      $a0, $v0, $s4
/* DD454 80146D54 46020000 */  add.s     $f0, $f0, $f2
/* DD458 80146D58 00041400 */  sll       $v0, $a0, 16
/* DD45C 80146D5C 00021403 */  sra       $v0, $v0, 16
/* DD460 80146D60 46000000 */  add.s     $f0, $f0, $f0
/* DD464 80146D64 0062182A */  slt       $v1, $v1, $v0
/* DD468 80146D68 95420150 */  lhu       $v0, 0x150($t2)
/* DD46C 80146D6C 4600020D */  trunc.w.s $f8, $f0
/* DD470 80146D70 44184000 */  mfc1      $t8, $f8
/* DD474 80146D74 10600002 */  beqz      $v1, .L80146D80
/* DD478 80146D78 0080602D */   daddu    $t4, $a0, $zero
/* DD47C 80146D7C 00826023 */  subu      $t4, $a0, $v0
.L80146D80:
/* DD480 80146D80 3C080749 */  lui       $t0, (0x749C014 >> 16)
/* DD484 80146D84 3508C014 */  ori       $t0, $t0, (0x749C014 & 0xFFFF)
/* DD488 80146D88 3C090049 */  lui       $t1, (0x49C014 >> 16)
/* DD48C 80146D8C 3529C014 */  ori       $t1, $t1, (0x49C014 & 0xFFFF)
/* DD490 80146D90 00163880 */  sll       $a3, $s6, 2
/* DD494 80146D94 02D1B021 */  addu      $s6, $s6, $s1
/* DD498 80146D98 0291A021 */  addu      $s4, $s4, $s1
/* DD49C 80146D9C 26730001 */  addiu     $s3, $s3, 0x1
/* DD4A0 80146DA0 30E70FFF */  andi      $a3, $a3, 0xFFF
/* DD4A4 80146DA4 8FB70030 */  lw        $s7, 0x30($sp)
/* DD4A8 80146DA8 8E040000 */  lw        $a0, 0x0($s0)
/* DD4AC 80146DAC 26E6FFFF */  addiu     $a2, $s7, -0x1
/* DD4B0 80146DB0 02A63021 */  addu      $a2, $s5, $a2
/* DD4B4 80146DB4 0080282D */  daddu     $a1, $a0, $zero
/* DD4B8 80146DB8 24840008 */  addiu     $a0, $a0, 0x8
/* DD4BC 80146DBC 24820008 */  addiu     $v0, $a0, 0x8
/* DD4C0 80146DC0 24830048 */  addiu     $v1, $a0, 0x48
/* DD4C4 80146DC4 00063080 */  sll       $a2, $a2, 2
/* DD4C8 80146DC8 AE040000 */  sw        $a0, 0x0($s0)
/* DD4CC 80146DCC 8FAF0050 */  lw        $t7, 0x50($sp)
/* DD4D0 80146DD0 30C60FFF */  andi      $a2, $a2, 0xFFF
/* DD4D4 80146DD4 ACAF0000 */  sw        $t7, 0x0($a1)
/* DD4D8 80146DD8 AE020000 */  sw        $v0, 0x0($s0)
/* DD4DC 80146DDC 24820010 */  addiu     $v0, $a0, 0x10
/* DD4E0 80146DE0 AE020000 */  sw        $v0, 0x0($s0)
/* DD4E4 80146DE4 24820018 */  addiu     $v0, $a0, 0x18
/* DD4E8 80146DE8 AE020000 */  sw        $v0, 0x0($s0)
/* DD4EC 80146DEC 24820020 */  addiu     $v0, $a0, 0x20
/* DD4F0 80146DF0 AE020000 */  sw        $v0, 0x0($s0)
/* DD4F4 80146DF4 24820028 */  addiu     $v0, $a0, 0x28
/* DD4F8 80146DF8 AE020000 */  sw        $v0, 0x0($s0)
/* DD4FC 80146DFC 24820030 */  addiu     $v0, $a0, 0x30
/* DD500 80146E00 AE020000 */  sw        $v0, 0x0($s0)
/* DD504 80146E04 24820038 */  addiu     $v0, $a0, 0x38
/* DD508 80146E08 AE020000 */  sw        $v0, 0x0($s0)
/* DD50C 80146E0C 24820040 */  addiu     $v0, $a0, 0x40
/* DD510 80146E10 AE020000 */  sw        $v0, 0x0($s0)
/* DD514 80146E14 000C1400 */  sll       $v0, $t4, 16
/* DD518 80146E18 00021403 */  sra       $v0, $v0, 16
/* DD51C 80146E1C 02420018 */  mult      $s2, $v0
/* DD520 80146E20 AE030000 */  sw        $v1, 0x0($s0)
/* DD524 80146E24 8D430154 */  lw        $v1, 0x154($t2)
/* DD528 80146E28 24820050 */  addiu     $v0, $a0, 0x50
/* DD52C 80146E2C AE020000 */  sw        $v0, 0x0($s0)
/* DD530 80146E30 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DD534 80146E34 00007812 */  mflo      $t7
/* DD538 80146E38 006F1821 */  addu      $v1, $v1, $t7
/* DD53C 80146E3C ACA30004 */  sw        $v1, 0x4($a1)
/* DD540 80146E40 AC820004 */  sw        $v0, 0x4($a0)
/* DD544 80146E44 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DD548 80146E48 AC820008 */  sw        $v0, 0x8($a0)
/* DD54C 80146E4C 3C02F400 */  lui       $v0, (0xF4000000 >> 16)
/* DD550 80146E50 AC820010 */  sw        $v0, 0x10($a0)
/* DD554 80146E54 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* DD558 80146E58 AC820018 */  sw        $v0, 0x18($a0)
/* DD55C 80146E5C 3C02F200 */  lui       $v0, (0xF2000000 >> 16)
/* DD560 80146E60 00182840 */  sll       $a1, $t8, 1
/* DD564 80146E64 AC820028 */  sw        $v0, 0x28($a0)
/* DD568 80146E68 24A2FFFF */  addiu     $v0, $a1, -0x1
/* DD56C 80146E6C 00591021 */  addu      $v0, $v0, $t9
/* DD570 80146E70 00021080 */  sll       $v0, $v0, 2
/* DD574 80146E74 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD578 80146E78 00021300 */  sll       $v0, $v0, 12
/* DD57C 80146E7C 3C03E400 */  lui       $v1, (0xE4000000 >> 16)
/* DD580 80146E80 00C33025 */  or        $a2, $a2, $v1
/* DD584 80146E84 00461025 */  or        $v0, $v0, $a2
/* DD588 80146E88 AC8B0000 */  sw        $t3, 0x0($a0)
/* DD58C 80146E8C AC80000C */  sw        $zero, 0xC($a0)
/* DD590 80146E90 AC880014 */  sw        $t0, 0x14($a0)
/* DD594 80146E94 AC80001C */  sw        $zero, 0x1C($a0)
/* DD598 80146E98 AC8B0020 */  sw        $t3, 0x20($a0)
/* DD59C 80146E9C AC800024 */  sw        $zero, 0x24($a0)
/* DD5A0 80146EA0 AC89002C */  sw        $t1, 0x2C($a0)
/* DD5A4 80146EA4 AC820030 */  sw        $v0, 0x30($a0)
/* DD5A8 80146EA8 8FB70058 */  lw        $s7, 0x58($sp)
/* DD5AC 80146EAC 00181900 */  sll       $v1, $t8, 4
/* DD5B0 80146EB0 AC8E0038 */  sw        $t6, 0x38($a0)
/* DD5B4 80146EB4 02E71025 */  or        $v0, $s7, $a3
/* DD5B8 80146EB8 AC820034 */  sw        $v0, 0x34($a0)
/* DD5BC 80146EBC 00121140 */  sll       $v0, $s2, 5
/* DD5C0 80146EC0 00431023 */  subu      $v0, $v0, $v1
/* DD5C4 80146EC4 00021400 */  sll       $v0, $v0, 16
/* DD5C8 80146EC8 AC82003C */  sw        $v0, 0x3C($a0)
/* DD5CC 80146ECC 02591021 */  addu      $v0, $s2, $t9
/* DD5D0 80146ED0 2442FFFF */  addiu     $v0, $v0, -0x1
/* DD5D4 80146ED4 00021080 */  sll       $v0, $v0, 2
/* DD5D8 80146ED8 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD5DC 80146EDC 00021300 */  sll       $v0, $v0, 12
/* DD5E0 80146EE0 00461025 */  or        $v0, $v0, $a2
/* DD5E4 80146EE4 AC8D0040 */  sw        $t5, 0x40($a0)
/* DD5E8 80146EE8 AC9E0044 */  sw        $fp, 0x44($a0)
/* DD5EC 80146EEC AC820048 */  sw        $v0, 0x48($a0)
/* DD5F0 80146EF0 8FAF0054 */  lw        $t7, 0x54($sp)
/* DD5F4 80146EF4 24820058 */  addiu     $v0, $a0, 0x58
/* DD5F8 80146EF8 00AF2821 */  addu      $a1, $a1, $t7
/* DD5FC 80146EFC 30A50FFF */  andi      $a1, $a1, 0xFFF
/* DD600 80146F00 00052B00 */  sll       $a1, $a1, 12
/* DD604 80146F04 00A72825 */  or        $a1, $a1, $a3
/* DD608 80146F08 AC85004C */  sw        $a1, 0x4C($a0)
/* DD60C 80146F0C AE020000 */  sw        $v0, 0x0($s0)
/* DD610 80146F10 24820060 */  addiu     $v0, $a0, 0x60
/* DD614 80146F14 AC8E0050 */  sw        $t6, 0x50($a0)
/* DD618 80146F18 AC800054 */  sw        $zero, 0x54($a0)
/* DD61C 80146F1C AE020000 */  sw        $v0, 0x0($s0)
/* DD620 80146F20 AC8D0058 */  sw        $t5, 0x58($a0)
/* DD624 80146F24 AC9E005C */  sw        $fp, 0x5C($a0)
/* DD628 80146F28 8FB70070 */  lw        $s7, 0x70($sp)
/* DD62C 80146F2C 0277102A */  slt       $v0, $s3, $s7
/* DD630 80146F30 1440FF66 */  bnez      $v0, .L80146CCC
/* DD634 80146F34 02B1A821 */   addu     $s5, $s5, $s1
.L80146F38:
/* DD638 80146F38 8FAF0038 */  lw        $t7, 0x38($sp)
/* DD63C 80146F3C 11E000A5 */  beqz      $t7, .L801471D4
/* DD640 80146F40 00000000 */   nop
/* DD644 80146F44 3C013ED6 */  lui       $at, (0x3ED67744 >> 16)
/* DD648 80146F48 34217744 */  ori       $at, $at, (0x3ED67744 & 0xFFFF)
/* DD64C 80146F4C 44810000 */  mtc1      $at, $f0
/* DD650 80146F50 44936000 */  mtc1      $s3, $f12
/* DD654 80146F54 00000000 */  nop
/* DD658 80146F58 46806320 */  cvt.s.w   $f12, $f12
/* DD65C 80146F5C 46006302 */  mul.s     $f12, $f12, $f0
/* DD660 80146F60 00000000 */  nop
/* DD664 80146F64 3C018015 */  lui       $at, %hi(gBackroundWavePhase)
/* DD668 80146F68 C420F134 */  lwc1      $f0, %lo(gBackroundWavePhase)($at)
/* DD66C 80146F6C 460C0300 */  add.s     $f12, $f0, $f12
/* DD670 80146F70 0C00A85B */  jal       sin_rad
/* DD674 80146F74 AFB9006C */   sw       $t9, 0x6C($sp)
/* DD678 80146F78 02330018 */  mult      $s1, $s3
/* DD67C 80146F7C 3C014040 */  lui       $at, (0x40400000 >> 16)
/* DD680 80146F80 44811000 */  mtc1      $at, $f2
/* DD684 80146F84 3C0A8007 */  lui       $t2, %hi(gGameStatusPtr)
/* DD688 80146F88 8D4A419C */  lw        $t2, %lo(gGameStatusPtr)($t2)
/* DD68C 80146F8C 8FB9006C */  lw        $t9, 0x6C($sp)
/* DD690 80146F90 46020082 */  mul.s     $f2, $f0, $f2
/* DD694 80146F94 00000000 */  nop
/* DD698 80146F98 85420152 */  lh        $v0, 0x152($t2)
/* DD69C 80146F9C 85430150 */  lh        $v1, 0x150($t2)
/* DD6A0 80146FA0 44820000 */  mtc1      $v0, $f0
/* DD6A4 80146FA4 00000000 */  nop
/* DD6A8 80146FA8 46800020 */  cvt.s.w   $f0, $f0
/* DD6AC 80146FAC 3C028015 */  lui       $v0, %hi(gBackroundTextureYOffset)
/* DD6B0 80146FB0 9442F130 */  lhu       $v0, %lo(gBackroundTextureYOffset)($v0)
/* DD6B4 80146FB4 00006812 */  mflo      $t5
/* DD6B8 80146FB8 004D2021 */  addu      $a0, $v0, $t5
/* DD6BC 80146FBC 46020000 */  add.s     $f0, $f0, $f2
/* DD6C0 80146FC0 00041400 */  sll       $v0, $a0, 16
/* DD6C4 80146FC4 00021403 */  sra       $v0, $v0, 16
/* DD6C8 80146FC8 46000000 */  add.s     $f0, $f0, $f0
/* DD6CC 80146FCC 0062182A */  slt       $v1, $v1, $v0
/* DD6D0 80146FD0 95420150 */  lhu       $v0, 0x150($t2)
/* DD6D4 80146FD4 4600020D */  trunc.w.s $f8, $f0
/* DD6D8 80146FD8 44184000 */  mfc1      $t8, $f8
/* DD6DC 80146FDC 10600002 */  beqz      $v1, .L80146FE8
/* DD6E0 80146FE0 0080602D */   daddu    $t4, $a0, $zero
/* DD6E4 80146FE4 00826023 */  subu      $t4, $a0, $v0
.L80146FE8:
/* DD6E8 80146FE8 3C07F548 */  lui       $a3, (0xF5484A00 >> 16)
/* DD6EC 80146FEC 34E74A00 */  ori       $a3, $a3, (0xF5484A00 & 0xFFFF)
/* DD6F0 80146FF0 3C050749 */  lui       $a1, (0x749C000 >> 16)
/* DD6F4 80146FF4 34A5C000 */  ori       $a1, $a1, (0x749C000 & 0xFFFF)
/* DD6F8 80146FF8 3C090049 */  lui       $t1, (0x49C000 >> 16)
/* DD6FC 80146FFC 3529C000 */  ori       $t1, $t1, (0x49C000 & 0xFFFF)
/* DD700 80147000 3C0B1000 */  lui       $t3, (0x10000400 >> 16)
/* DD704 80147004 3C08800A */  lui       $t0, %hi(gMainGfxPos)
/* DD708 80147008 2508A66C */  addiu     $t0, $t0, %lo(gMainGfxPos)
/* DD70C 8014700C 356B0400 */  ori       $t3, $t3, (0x10000400 & 0xFFFF)
/* DD710 80147010 2642FFFF */  addiu     $v0, $s2, -0x1
/* DD714 80147014 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD718 80147018 3C03FD48 */  lui       $v1, (0xFD480000 >> 16)
/* DD71C 8014701C 8D040000 */  lw        $a0, 0x0($t0)
/* DD720 80147020 00431025 */  or        $v0, $v0, $v1
/* DD724 80147024 0080302D */  daddu     $a2, $a0, $zero
/* DD728 80147028 24840008 */  addiu     $a0, $a0, 0x8
/* DD72C 8014702C AD040000 */  sw        $a0, 0x0($t0)
/* DD730 80147030 ACC20000 */  sw        $v0, 0x0($a2)
/* DD734 80147034 24820008 */  addiu     $v0, $a0, 0x8
/* DD738 80147038 AD020000 */  sw        $v0, 0x0($t0)
/* DD73C 8014703C 24820010 */  addiu     $v0, $a0, 0x10
/* DD740 80147040 AD020000 */  sw        $v0, 0x0($t0)
/* DD744 80147044 24820018 */  addiu     $v0, $a0, 0x18
/* DD748 80147048 AD020000 */  sw        $v0, 0x0($t0)
/* DD74C 8014704C 24820020 */  addiu     $v0, $a0, 0x20
/* DD750 80147050 AD020000 */  sw        $v0, 0x0($t0)
/* DD754 80147054 24820028 */  addiu     $v0, $a0, 0x28
/* DD758 80147058 AD020000 */  sw        $v0, 0x0($t0)
/* DD75C 8014705C 24820030 */  addiu     $v0, $a0, 0x30
/* DD760 80147060 AD020000 */  sw        $v0, 0x0($t0)
/* DD764 80147064 24820038 */  addiu     $v0, $a0, 0x38
/* DD768 80147068 AD020000 */  sw        $v0, 0x0($t0)
/* DD76C 8014706C 24820040 */  addiu     $v0, $a0, 0x40
/* DD770 80147070 AD020000 */  sw        $v0, 0x0($t0)
/* DD774 80147074 000C1400 */  sll       $v0, $t4, 16
/* DD778 80147078 00021403 */  sra       $v0, $v0, 16
/* DD77C 8014707C 24830048 */  addiu     $v1, $a0, 0x48
/* DD780 80147080 02420018 */  mult      $s2, $v0
/* DD784 80147084 AD030000 */  sw        $v1, 0x0($t0)
/* DD788 80147088 8D420154 */  lw        $v0, 0x154($t2)
/* DD78C 8014708C 24830050 */  addiu     $v1, $a0, 0x50
/* DD790 80147090 AD030000 */  sw        $v1, 0x0($t0)
/* DD794 80147094 3C03E700 */  lui       $v1, (0xE7000000 >> 16)
/* DD798 80147098 00195080 */  sll       $t2, $t9, 2
/* DD79C 8014709C 00007812 */  mflo      $t7
/* DD7A0 801470A0 004F1021 */  addu      $v0, $v0, $t7
/* DD7A4 801470A4 ACC20004 */  sw        $v0, 0x4($a2)
/* DD7A8 801470A8 3C020700 */  lui       $v0, (0x7000000 >> 16)
/* DD7AC 801470AC AC820004 */  sw        $v0, 0x4($a0)
/* DD7B0 801470B0 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* DD7B4 801470B4 AC820008 */  sw        $v0, 0x8($a0)
/* DD7B8 801470B8 3C02F400 */  lui       $v0, (0xF4000000 >> 16)
/* DD7BC 801470BC AC870000 */  sw        $a3, 0x0($a0)
/* DD7C0 801470C0 AC80000C */  sw        $zero, 0xC($a0)
/* DD7C4 801470C4 AC820010 */  sw        $v0, 0x10($a0)
/* DD7C8 801470C8 8FB70038 */  lw        $s7, 0x38($sp)
/* DD7CC 801470CC 00183040 */  sll       $a2, $t8, 1
/* DD7D0 801470D0 26E2FFFF */  addiu     $v0, $s7, -0x1
/* DD7D4 801470D4 00021080 */  sll       $v0, $v0, 2
/* DD7D8 801470D8 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD7DC 801470DC 00452825 */  or        $a1, $v0, $a1
/* DD7E0 801470E0 AC830018 */  sw        $v1, 0x18($a0)
/* DD7E4 801470E4 3C03F200 */  lui       $v1, (0xF2000000 >> 16)
/* DD7E8 801470E8 00491025 */  or        $v0, $v0, $t1
/* DD7EC 801470EC AC82002C */  sw        $v0, 0x2C($a0)
/* DD7F0 801470F0 24C2FFFF */  addiu     $v0, $a2, -0x1
/* DD7F4 801470F4 00591021 */  addu      $v0, $v0, $t9
/* DD7F8 801470F8 00021080 */  sll       $v0, $v0, 2
/* DD7FC 801470FC 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD800 80147100 00021300 */  sll       $v0, $v0, 12
/* DD804 80147104 AC830028 */  sw        $v1, 0x28($a0)
/* DD808 80147108 3C03E400 */  lui       $v1, (0xE4000000 >> 16)
/* DD80C 8014710C 3C09E100 */  lui       $t1, (0xE1000000 >> 16)
/* DD810 80147110 00CA3021 */  addu      $a2, $a2, $t2
/* DD814 80147114 30C60FFF */  andi      $a2, $a2, 0xFFF
/* DD818 80147118 00063300 */  sll       $a2, $a2, 12
/* DD81C 8014711C AC850014 */  sw        $a1, 0x14($a0)
/* DD820 80147120 AC80001C */  sw        $zero, 0x1C($a0)
/* DD824 80147124 AC870020 */  sw        $a3, 0x20($a0)
/* DD828 80147128 AC800024 */  sw        $zero, 0x24($a0)
/* DD82C 8014712C 8FAF0030 */  lw        $t7, 0x30($sp)
/* DD830 80147130 8FB70034 */  lw        $s7, 0x34($sp)
/* DD834 80147134 25E5FFFF */  addiu     $a1, $t7, -0x1
/* DD838 80147138 02E52821 */  addu      $a1, $s7, $a1
/* DD83C 8014713C 00052880 */  sll       $a1, $a1, 2
/* DD840 80147140 30A50FFF */  andi      $a1, $a1, 0xFFF
/* DD844 80147144 00A32825 */  or        $a1, $a1, $v1
/* DD848 80147148 00451025 */  or        $v0, $v0, $a1
/* DD84C 8014714C AC820030 */  sw        $v0, 0x30($a0)
/* DD850 80147150 31420FFF */  andi      $v0, $t2, 0xFFF
/* DD854 80147154 00021300 */  sll       $v0, $v0, 12
/* DD858 80147158 01AF3821 */  addu      $a3, $t5, $t7
/* DD85C 8014715C 00073880 */  sll       $a3, $a3, 2
/* DD860 80147160 30E70FFF */  andi      $a3, $a3, 0xFFF
/* DD864 80147164 00471025 */  or        $v0, $v0, $a3
/* DD868 80147168 AC820034 */  sw        $v0, 0x34($a0)
/* DD86C 8014716C 00121140 */  sll       $v0, $s2, 5
/* DD870 80147170 00181900 */  sll       $v1, $t8, 4
/* DD874 80147174 00431023 */  subu      $v0, $v0, $v1
/* DD878 80147178 00021400 */  sll       $v0, $v0, 16
/* DD87C 8014717C 3C03F100 */  lui       $v1, (0xF1000000 >> 16)
/* DD880 80147180 AC82003C */  sw        $v0, 0x3C($a0)
/* DD884 80147184 02591021 */  addu      $v0, $s2, $t9
/* DD888 80147188 2442FFFF */  addiu     $v0, $v0, -0x1
/* DD88C 8014718C 00021080 */  sll       $v0, $v0, 2
/* DD890 80147190 30420FFF */  andi      $v0, $v0, 0xFFF
/* DD894 80147194 00021300 */  sll       $v0, $v0, 12
/* DD898 80147198 00451025 */  or        $v0, $v0, $a1
/* DD89C 8014719C 00C73025 */  or        $a2, $a2, $a3
/* DD8A0 801471A0 AC890038 */  sw        $t1, 0x38($a0)
/* DD8A4 801471A4 AC830040 */  sw        $v1, 0x40($a0)
/* DD8A8 801471A8 AC8B0044 */  sw        $t3, 0x44($a0)
/* DD8AC 801471AC AC820048 */  sw        $v0, 0x48($a0)
/* DD8B0 801471B0 24820058 */  addiu     $v0, $a0, 0x58
/* DD8B4 801471B4 AC86004C */  sw        $a2, 0x4C($a0)
/* DD8B8 801471B8 AD020000 */  sw        $v0, 0x0($t0)
/* DD8BC 801471BC 24820060 */  addiu     $v0, $a0, 0x60
/* DD8C0 801471C0 AC890050 */  sw        $t1, 0x50($a0)
/* DD8C4 801471C4 AC800054 */  sw        $zero, 0x54($a0)
/* DD8C8 801471C8 AD020000 */  sw        $v0, 0x0($t0)
/* DD8CC 801471CC AC830058 */  sw        $v1, 0x58($a0)
/* DD8D0 801471D0 AC8B005C */  sw        $t3, 0x5C($a0)
.L801471D4:
/* DD8D4 801471D4 8FBF00A4 */  lw        $ra, 0xA4($sp)
/* DD8D8 801471D8 8FBE00A0 */  lw        $fp, 0xA0($sp)
/* DD8DC 801471DC 8FB7009C */  lw        $s7, 0x9C($sp)
/* DD8E0 801471E0 8FB60098 */  lw        $s6, 0x98($sp)
/* DD8E4 801471E4 8FB50094 */  lw        $s5, 0x94($sp)
/* DD8E8 801471E8 8FB40090 */  lw        $s4, 0x90($sp)
/* DD8EC 801471EC 8FB3008C */  lw        $s3, 0x8C($sp)
/* DD8F0 801471F0 8FB20088 */  lw        $s2, 0x88($sp)
/* DD8F4 801471F4 8FB10084 */  lw        $s1, 0x84($sp)
/* DD8F8 801471F8 8FB00080 */  lw        $s0, 0x80($sp)
/* DD8FC 801471FC D7B600B0 */  ldc1      $f22, 0xB0($sp)
/* DD900 80147200 D7B400A8 */  ldc1      $f20, 0xA8($sp)
/* DD904 80147204 03E00008 */  jr        $ra
/* DD908 80147208 27BD00B8 */   addiu    $sp, $sp, 0xB8

### DECOMPILED C INSTRUCTIONS:

void appendGfx_background_texture(void) {
    Camera* cam = &gCameras[gCurrentCameraID];
    u16 flags = 0;
    s32 fogR, fogG, fogB, fogA;
    u8 r1, g1, b1, a1;
    u8 r2, g2, b2;
    u16 blendedR, blendedG, blendedB;
    s32 i;

    f32 theta, sinTheta, cosTheta, scrollValue, f5, waveOffset;

    s32 bgMinX;
    s32 bgMinY;
    s32 bgMaxX;
    s32 bgMaxY;
    s32 lineHeight;
    s32 numLines;
    s32 extraHeight;

    s32 bgXOffset;
    s16 texOffsetY;

    u8* newvar;

    if (is_world_fog_enabled()) {
        get_world_fog_color(&fogR, &fogG, &fogB, &fogA);
        flags = 1;
        fogA = gGameStatusPtr->backgroundDarkness;
    }

    switch (*gBackgroundFogModePtr) {
        case FOG_MODE_0:
        case FOG_MODE_1:
            get_background_color_blend(&r1, &g1, &b1, &a1);
            if (a1 != 0) {
                flags |= 2;
            }
            break;
        case FOG_MODE_2:
        case FOG_MODE_3:
        default:
            get_model_env_color_parameters(&r1, &g1, &b1, &r2, &g2, &b2);
            if (!(r1 == 255 && g1 == 255 && b1 == 255 && r2 == 0 && g2 == 0 && b2 == 0)) {
                flags |= 4;
            }
            break;
    }

    switch (flags) {
        case 0:
            gGameStatusPtr->backgroundFlags &= ~BACKGROUND_FLAG_FOG;
            break;
        case 1:
            gGameStatusPtr->backgroundFlags |= BACKGROUND_FLAG_FOG;
            break;
        case 2:
            gGameStatusPtr->backgroundFlags |= BACKGROUND_FLAG_FOG;
            fogR = r1;
            fogG = g1;
            fogB = b1;
            fogA = a1;
            break;
        case 3:
            gGameStatusPtr->backgroundFlags |= BACKGROUND_FLAG_FOG;
            fogR = (fogR * (255 - a1) + r1 * a1) / 255;
            fogG = (fogG * (255 - a1) + g1 * a1) / 255;
            fogB = (fogB * (255 - a1) + b1 * a1) / 255;
            fogA = (fogA * (255 - a1) + a1 * a1) / 255;
            break;
        case 4:
            gGameStatusPtr->backgroundFlags |= BACKGROUND_FLAG_FOG;
            break;
    }

    if (gGameStatusPtr->backgroundFlags & BACKGROUND_FLAG_FOG) {
        switch (*gBackgroundFogModePtr) {
            case FOG_MODE_0:
            case FOG_MODE_1:
                if (fogA == 255) {
                    for (i = 0; i < ARRAY_COUNT(gBackgroundPalette); i++) {
                        gBackgroundPalette[i] = 1;
                    }
                } else {
                    for (i = 0; i < ARRAY_COUNT(gBackgroundPalette); i++) {
                        u16 palColor = gGameStatusPtr->backgroundPalette[i];
                        blendedB = blend_background_channel((palColor >> 1) & 0x1F, fogB >> 3, fogA);
                        blendedG = blend_background_channel((palColor >> 6) & 0x1F, fogG >> 3, fogA);
                        blendedR = blend_background_channel((palColor >> 11) & 0x1F, fogR >> 3, fogA);
                        gBackgroundPalette[i] = blendedB << 1 | blendedG << 6 | blendedR << 11 | 1;
                    }
                }
                break;
            case FOG_MODE_2:
            case FOG_MODE_3:
            default:
                for (i = 0; i < ARRAY_COUNT(gBackgroundPalette); i++) {
                    u16 palColor = gGameStatusPtr->backgroundPalette[i];
                    blendedB = (b2 >> 3) +  ((((palColor >> 1) & 0x1F) * b1) >> 8);
                    blendedG = (g2 >> 3) +  ((((palColor >> 6) & 0x1F) * g1) >> 8);
                    blendedR = (r2 >> 3) +  ((((palColor >> 11) & 0x1F) * r1) >> 8);

                    if (blendedB > 0x1F) {
                        blendedB = 0x1F;
                    }
                    if (blendedG > 0x1F) {
                        blendedG = 0x1F;
                    }
                    if (blendedR > 0x1F) {
                        blendedR = 0x1F;
                    }
                    gBackgroundPalette[i] = blendedB << 1 | blendedG << 6 | blendedR << 11 | 1;
                }
                break;
        }
    }

    theta = clamp_angle(-cam->trueRotation.x);
    sinTheta = sin_deg(theta);
    cosTheta = cos_deg(theta);
    f5 = cosTheta * cam->lookAt_obj.x - sinTheta * cam->lookAt_obj.z + cam->leadAmount;
    scrollValue = -f5 * 0.25f;
    scrollValue += gGameStatusPtr->backgroundMaxX * theta * (1 / 90.0f);

    if (fabsf(scrollValue - gBackroundLastScrollValue) < 0.3f) {
        scrollValue = gBackroundLastScrollValue;
    } else {
        gBackroundLastScrollValue = scrollValue;
    }

    while (scrollValue < 0.0f) {
        scrollValue += gGameStatusPtr->backgroundMaxX * 32;
    }

    bgXOffset =gGameStatusPtr->backgroundXOffset = ((s32)scrollValue) % gGameStatusPtr->backgroundMaxX;
    bgMaxX = gGameStatusPtr->backgroundMaxX;
    bgMaxY = gGameStatusPtr->backgroundMaxY;
    bgMinX = gGameStatusPtr->backgroundMinX;
    bgMinY = gGameStatusPtr->backgroundMinY;

    gDPPipeSync(gMainGfxPos++);
    gDPSetCycleType(gMainGfxPos++, G_CYC_COPY);
    gDPSetTexturePersp(gMainGfxPos++, G_TP_NONE);
    gDPSetTextureLUT(gMainGfxPos++, G_TT_RGBA16);
    gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGB, G_CC_DECALRGB);
    gDPSetRenderMode(gMainGfxPos++, G_RM_NOOP, G_RM_NOOP2);
    gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT);
    gDPPipeSync(gMainGfxPos++);

    if (!(gGameStatusPtr->backgroundFlags & BACKGROUND_FLAG_FOG)) {
        gDPLoadTLUT_pal256(gMainGfxPos++, gGameStatusPtr->backgroundPalette);
    } else {
        gDPLoadTLUT_pal256(gMainGfxPos++, gBackgroundPalette);
    }

    if (!gBackroundWaveEnabled) {
        lineHeight = 2048 / gGameStatusPtr->backgroundMaxX;
        numLines = gGameStatusPtr->backgroundMaxY / lineHeight;
        extraHeight = gGameStatusPtr->backgroundMaxY % lineHeight;
        for (i = 0; i < numLines; i++) {
            texOffsetY = gBackroundTextureYOffset + lineHeight * i;
            if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
                texOffsetY -= gGameStatusPtr->backgroundMaxY;
            }
            gDPLoadTextureTile(gMainGfxPos++, gGameStatusPtr->backgroundRaster + bgMaxX * texOffsetY,
                               G_IM_FMT_CI, G_IM_SIZ_8b, bgMaxX, 6,
                               0, 0, 295, 5, 0,
                               G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);

            gSPTextureRectangle(gMainGfxPos++, bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgXOffset + bgMinX - 1) * 4, (lineHeight * i + lineHeight - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, (bgMaxX - bgXOffset) * 32, 0, 4096, 1024);
            gSPTextureRectangle(gMainGfxPos++, (bgXOffset + bgMinX) * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgMaxX + bgMinX - 1) * 4, (lineHeight * i + lineHeight - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, 0, 0, 4096, 1024);
        }
        if (extraHeight != 0) {
            texOffsetY = gBackroundTextureYOffset + lineHeight * i;
            if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
                texOffsetY -= gGameStatusPtr->backgroundMaxY;
            }
            gDPLoadTextureTile(gMainGfxPos++, gGameStatusPtr->backgroundRaster + bgMaxX * texOffsetY,
                               G_IM_FMT_CI, G_IM_SIZ_8b, bgMaxX, extraHeight,
                               0, 0, 295, extraHeight - 1, 0,
                               G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
            gSPTextureRectangle(gMainGfxPos++, bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgXOffset + bgMinX - 1) * 4, (bgMaxY - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, (bgMaxX - bgXOffset) * 32, 0, 4096, 1024);
            gSPTextureRectangle(gMainGfxPos++, (bgXOffset + bgMinX) * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgMaxX + bgMinX - 1) * 4, (bgMaxY - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, 0, 0, 4096, 1024);
        }
    } else {
        lineHeight = 6;
        numLines = gGameStatusPtr->backgroundMaxY / lineHeight;
        extraHeight = gGameStatusPtr->backgroundMaxY % lineHeight;
        gBackroundWavePhase += TAU / 60; // 60 frames period
        for (i = 0; i < numLines; i++) {
            waveOffset = sin_rad(gBackroundWavePhase + i * (TAU / 15)) * 3.0f;
            bgXOffset = 2.0f * (gGameStatusPtr->backgroundXOffset + waveOffset);
            texOffsetY = gBackroundTextureYOffset + lineHeight * i;
            if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
                texOffsetY -= gGameStatusPtr->backgroundMaxY;
            }
            gDPLoadTextureTile(gMainGfxPos++, gGameStatusPtr->backgroundRaster + bgMaxX * texOffsetY,
                               G_IM_FMT_CI, G_IM_SIZ_8b, bgMaxX, 6,
                               0, 0, 295, 5, 0,
                               G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);

            gSPTextureRectangle(gMainGfxPos++, bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (2 * bgXOffset + (bgMinX - 1)) * 4, (lineHeight * i + lineHeight - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, bgMaxX * 32 - bgXOffset * 16, 0, 4096, 1024);
            gSPTextureRectangle(gMainGfxPos++, bgXOffset * 2 + bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgMaxX + bgMinX - 1) * 4, (lineHeight * i + lineHeight - 1 + bgMinY) * 4,
                                                 G_TX_RENDERTILE, 0, 0, 4096, 1024);
        }
        if (extraHeight != 0) {
            waveOffset = sin_rad(gBackroundWavePhase + i * (TAU / 15)) * 3.0f;
            bgXOffset = 2.0f * (gGameStatusPtr->backgroundXOffset + waveOffset);
            texOffsetY = gBackroundTextureYOffset + lineHeight * i;
            if (texOffsetY > gGameStatusPtr->backgroundMaxY) {
                texOffsetY -= gGameStatusPtr->backgroundMaxY;
            }
            gDPLoadTextureTile(gMainGfxPos++, gGameStatusPtr->backgroundRaster + bgMaxX * texOffsetY,
                               G_IM_FMT_CI, G_IM_SIZ_8b, bgMaxX, extraHeight,
                               0, 0, 295, extraHeight - 1, 0,
                               G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
            gSPTextureRectangle(gMainGfxPos++, bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (2 * bgXOffset + (bgMinX - 1)) * 4, (bgMaxY - 1 + bgMinY) * 4, // @bug xh = 2 * bgXOffset + (bgMinX - 1) * 4
                                                 G_TX_RENDERTILE, bgMaxX * 32 - bgXOffset * 16, 0, 4096, 1024);
            gSPTextureRectangle(gMainGfxPos++, bgXOffset * 2  + bgMinX * 4, (lineHeight * i + bgMinY) * 4,
                                                 (bgMaxX + bgMinX - 1) * 4, (bgMaxY - 1 + bgMinY) * 4, // @bug xh = 2 * bgXOffset + (bgMinX - 1) * 4
                                                 G_TX_RENDERTILE, 0, 0, 4096, 1024);
        }
    }
}