; ; sub_54DB0 from 0x54db0 to 0x55c5c (3756 bytes) ; ; 2 xrefs: ; > sub_58380 @ 0x583c8 ; > sub_5B3B0 @ 0x5b4b8 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; STP D15, D14, [SP,#-0x10+var_90]! ; +0x0, 0x54db0 STP D13, D12, [SP,#0x90+var_80] ; +0x4, 0x54db4 STP D11, D10, [SP,#0x90+var_70] ; +0x8, 0x54db8 STP D9, D8, [SP,#0x90+var_60] ; +0xc, 0x54dbc STP X28, X27, [SP,#0x90+var_50] ; +0x10, 0x54dc0 STP X26, X25, [SP,#0x90+var_40] ; +0x14, 0x54dc4 STP X24, X23, [SP,#0x90+var_30] ; +0x18, 0x54dc8 STP X22, X21, [SP,#0x90+var_20] ; +0x1c, 0x54dcc STP X20, X19, [SP,#0x90+var_10] ; +0x20, 0x54dd0 STP X29, X30, [SP,#0x90+var_s0] ; +0x24, 0x54dd4 ADD X29, SP, #0x90 ; +0x28, 0x54dd8 SUB SP, SP, #0xD70 ; +0x2c, 0x54ddc STUR WZR, [X29,#var_A4] ; +0x30, 0x54de0 LDR X8, [X0] ; +0x34, 0x54de4 MOV W20, W1 ; +0x38, 0x54de8 SUB X1, X29, #-var_A4 ; +0x3c, 0x54dec MOV W21, W2 ; +0x40, 0x54df0 LDR X8, [X8,#0x98] ; +0x44, 0x54df4 MOV X19, X0 ; +0x48, 0x54df8 BLR X8 ; +0x4c, 0x54dfc CBNZ W0, loc_55C2C ; +0x50, 0x54e00 LDUR W8, [X29,#var_A4] ; +0x54, 0x54e04 MOV W9, #0x40000010 ; +0x58, 0x54e08 AND W8, W8, W9 ; +0x60, 0x54e10 CMP W8, #0x10 ; +0x64, 0x54e14 B.NE loc_55090 ; +0x68, 0x54e18 MOV X23, X19 ; +0x6c, 0x54e1c LDR S9, [X23,#0xC8]! ; +0x70, 0x54e20 MOV X22, X23 ; +0x74, 0x54e24 LDR S8, [X22,#4]! ; +0x78, 0x54e28 LDURB W8, [X23,#-0x80] ; +0x7c, 0x54e2c TBNZ W8, #2, loc_54E40 ; +0x80, 0x54e30 LDR X0, [X19,#8] ; +0x84, 0x54e34 BL sub_55C5C ; +0x88, 0x54e38 TBZ W0, #0, loc_54EE0 ; +0x8c, 0x54e3c LDR X8, [X19,#8] ; +0x90, 0x54e40 MOV W9, #0x11DB0 ; +0x94, 0x54e44 LDR X9, [X8,X9] ; +0x9c, 0x54e4c CBZ X9, loc_54EF8 ; +0xa0, 0x54e50 LDURB W10, [X29,#var_A4+2] ; +0xa4, 0x54e54 LDR S0, [X19,#0x80] ; +0xa8, 0x54e58 ADD X9, SP, #0xE00+var_7B8 ; +0xac, 0x54e5c TBNZ W10, #2, loc_54E70 ; +0xb0, 0x54e60 LDUR X10, [X19,#0x84] ; +0xb4, 0x54e64 STUR X10, [X9,#4] ; +0xb8, 0x54e68 B loc_54E94 ; +0xbc, 0x54e6c MOV W10, #0x10A70 ; +0xc0, 0x54e70 ADD X10, X8, X10 ; +0xc8, 0x54e78 LDUR D1, [X19,#0x84] ; +0xcc, 0x54e7c LDUR D3, [X10,#4] ; +0xd0, 0x54e80 LDR S2, [X10] ; +0xd4, 0x54e84 FADD V1.2S, V3.2S, V1.2S ; +0xd8, 0x54e88 FADD S0, S2, S0 ; +0xdc, 0x54e8c STUR D1, [X9,#4] ; +0xe0, 0x54e90 STR S0, [SP,#0xE00+var_7B8] ; +0xe4, 0x54e94 TBZ W21, #0, loc_54ED0 ; +0xe8, 0x54e98 MOV W9, #0x1DB8 ; +0xec, 0x54e9c MOV W10, #0xA70 ; +0xf0, 0x54ea0 MOVK W9, #1,LSL#16 ; +0xf4, 0x54ea4 MOVK W10, #1,LSL#16 ; +0xf8, 0x54ea8 ADD X0, X8, X9 ; +0xfc, 0x54eac ADD X1, X8, X10 ; +0x100, 0x54eb0 ADD X2, SP, #0xE00+var_7B8 ; +0x104, 0x54eb4 MOV X3, X23 ; +0x108, 0x54eb8 MOV X4, X22 ; +0x10c, 0x54ebc BL sub_5CF84 ; +0x110, 0x54ec0 MOV W24, #1 ; +0x114, 0x54ec4 TBZ W21, #0, loc_54F00 ; +0x118, 0x54ec8 B loc_54F2C ; +0x11c, 0x54ecc BL sub_579C8 ; +0x120, 0x54ed0 ADD X2, SP, #0xE00+var_7B8 ; +0x124, 0x54ed4 BL sub_5D078 ; +0x128, 0x54ed8 B loc_54EF8 ; +0x12c, 0x54edc LDR X8, [X19,#8] ; +0x130, 0x54ee0 MOV W9, #0x11DC0 ; +0x134, 0x54ee4 LDRB W8, [X8,X9] ; +0x13c, 0x54eec CBNZ W8, loc_54E40 ; +0x140, 0x54ef0 TBNZ W21, #0, loc_54E40 ; +0x144, 0x54ef4 MOV W24, WZR ; +0x148, 0x54ef8 TBNZ W21, #0, loc_54F2C ; +0x14c, 0x54efc LDR X8, [X19,#8] ; +0x150, 0x54f00 BL sub_579C8 ; +0x154, 0x54f04 BL sub_5D1CC ; +0x158, 0x54f08 CBZ X0, loc_54F2C ; +0x15c, 0x54f0c LDR X8, [X0,#0x20] ; +0x160, 0x54f10 LDR X9, [X19,#0x50] ; +0x164, 0x54f14 CMP X8, X9 ; +0x168, 0x54f18 B.NE loc_54F2C ; +0x16c, 0x54f1c LDUR X8, [X0,#0x34] ; +0x170, 0x54f20 MOV W24, #1 ; +0x174, 0x54f24 STR X8, [X23] ; +0x178, 0x54f28 LDR X8, [X19,#0x170] ; +0x17c, 0x54f2c CBZ X8, loc_54F58 ; +0x180, 0x54f30 CBZ W24, loc_54F58 ; +0x184, 0x54f34 LDR X1, [X19,#0x50] ; +0x188, 0x54f38 MOV W3, #3 ; +0x18c, 0x54f3c MOV X0, X19 ; +0x190, 0x54f40 MOV W2, WZR ; +0x194, 0x54f44 MOV X4, X23 ; +0x198, 0x54f48 MOV X5, X22 ; +0x19c, 0x54f4c BL sub_55C9C ; +0x1a0, 0x54f50 CBNZ W0, loc_55C2C ; +0x1a4, 0x54f54 LDR X8, [X19,#8] ; +0x1a8, 0x54f58 MOV W9, #0x1104C ; +0x1ac, 0x54f5c LDR S0, [X19,#0xC8] ; +0x1b4, 0x54f64 LDR W8, [X8,X9] ; +0x1b8, 0x54f68 MOV W9, #0x43FA0000 ; +0x1bc, 0x54f6c FMOV S1, W9 ; +0x1c0, 0x54f70 ADRP X9, #dword_2F098@PAGE ; +0x1c4, 0x54f74 UCVTF S2, W8 ; +0x1c8, 0x54f78 CMP W8, #0 ; +0x1cc, 0x54f7c FCSEL S2, S1, S2, EQ ; +0x1d0, 0x54f80 FCMP S9, S0 ; +0x1d4, 0x54f84 ADRP X8, #dword_2EEE0@PAGE ; +0x1d8, 0x54f88 B.EQ loc_54FB8 ; +0x1dc, 0x54f8c LDR S1, [X19,#0xC0] ; +0x1e0, 0x54f90 LDR S3, [X9,#dword_2F098@PAGEOFF] ; +0x1e4, 0x54f94 LDR S4, [X8,#dword_2EEE0@PAGEOFF] ; +0x1e8, 0x54f98 FSUB S1, S0, S1 ; +0x1ec, 0x54f9c FDIV S1, S1, S2 ; +0x1f0, 0x54fa0 FMINNM S3, S1, S3 ; +0x1f4, 0x54fa4 FMAXNM S4, S1, S4 ; +0x1f8, 0x54fa8 FCMP S1, #0.0 ; +0x1fc, 0x54fac FCSEL S1, S3, S4, LT ; +0x200, 0x54fb0 STR S1, [X19,#0xD8] ; +0x204, 0x54fb4 LDR S1, [X22] ; +0x208, 0x54fb8 FCMP S8, S1 ; +0x20c, 0x54fbc B.EQ loc_54FEC ; +0x210, 0x54fc0 LDR S3, [X19,#0xC4] ; +0x214, 0x54fc4 LDR S4, [X9,#dword_2F098@PAGEOFF] ; +0x218, 0x54fc8 LDR S5, [X8,#dword_2EEE0@PAGEOFF] ; +0x21c, 0x54fcc FSUB S3, S1, S3 ; +0x220, 0x54fd0 FDIV S2, S3, S2 ; +0x224, 0x54fd4 FMINNM S3, S2, S4 ; +0x228, 0x54fd8 FMAXNM S4, S2, S5 ; +0x22c, 0x54fdc FCMP S2, #0.0 ; +0x230, 0x54fe0 FCSEL S2, S3, S4, LT ; +0x234, 0x54fe4 STR S2, [X19,#0xDC] ; +0x238, 0x54fe8 LDR S2, [X19,#0xC0] ; +0x23c, 0x54fec FCMP S2, S0 ; +0x240, 0x54ff0 B.NE loc_55004 ; +0x244, 0x54ff4 LDR S3, [X19,#0xC4] ; +0x248, 0x54ff8 FCMP S3, S1 ; +0x24c, 0x54ffc B.EQ loc_55090 ; +0x250, 0x55000 CBNZ W20, loc_5500C ; +0x254, 0x55004 TBZ W21, #0, loc_55090 ; +0x258, 0x55008 TBZ W21, #0, loc_55018 ; +0x25c, 0x5500c STP S0, S1, [X19,#0xC0] ; +0x260, 0x55010 B loc_5507C ; +0x264, 0x55014 LDP S5, S4, [X19,#0xD8] ; +0x268, 0x55018 LDR S3, [X19,#0xC4] ; +0x26c, 0x5501c SCVTF S6, W20 ; +0x270, 0x55020 FMADD S2, S5, S6, S2 ; +0x274, 0x55024 FMADD S3, S4, S6, S3 ; +0x278, 0x55028 FCMP S5, #0.0 ; +0x27c, 0x5502c STP S2, S3, [X19,#0xC0] ; +0x280, 0x55030 B.LE loc_55044 ; +0x284, 0x55034 FCMP S2, S0 ; +0x288, 0x55038 B.GT loc_5504C ; +0x28c, 0x5503c B loc_55054 ; +0x290, 0x55040 FCMP S2, S0 ; +0x294, 0x55044 B.GE loc_55054 ; +0x298, 0x55048 MOV V2.16B, V0.16B ; +0x29c, 0x5504c STR S0, [X19,#0xC0] ; +0x2a0, 0x55050 FCMP S4, #0.0 ; +0x2a4, 0x55054 B.LE loc_5506C ; +0x2a8, 0x55058 FCMP S3, S1 ; +0x2ac, 0x5505c B.GT loc_55074 ; +0x2b0, 0x55060 MOV V1.16B, V3.16B ; +0x2b4, 0x55064 B loc_55078 ; +0x2b8, 0x55068 FCMP S3, S1 ; +0x2bc, 0x5506c B.GE loc_55064 ; +0x2c0, 0x55070 STR S1, [X19,#0xC4] ; +0x2c4, 0x55074 MOV V0.16B, V2.16B ; +0x2c8, 0x55078 LDR X8, [X19] ; +0x2cc, 0x5507c MOV X0, X19 ; +0x2d0, 0x55080 MOV W1, WZR ; +0x2d4, 0x55084 LDR X8, [X8,#0x198] ; +0x2d8, 0x55088 BLR X8 ; +0x2dc, 0x5508c LDR X0, [X19,#8] ; +0x2e0, 0x55090 SUB X1, X29, #-var_A8 ; +0x2e4, 0x55094 SUB X2, X29, #-var_AC ; +0x2e8, 0x55098 SUB X3, X29, #-var_B0 ; +0x2ec, 0x5509c BL sub_6D7C4 ; +0x2f0, 0x550a0 CBNZ W0, loc_55C2C ; +0x2f4, 0x550a4 LDR S0, [X19,#0xF4] ; +0x2f8, 0x550a8 LDUR S1, [X29,#var_A8] ; +0x2fc, 0x550ac FMOV S11, #-1.0 ; +0x300, 0x550b0 FMUL S0, S1, S0 ; +0x304, 0x550b4 STUR S0, [X29,#var_A8] ; +0x308, 0x550b8 LDRB W8, [X19,#0x48] ; +0x30c, 0x550bc TBNZ W8, #2, loc_550D0 ; +0x310, 0x550c0 LDR X0, [X19,#8] ; +0x314, 0x550c4 BL sub_55C5C ; +0x318, 0x550c8 TBZ W0, #0, loc_55458 ; +0x31c, 0x550cc LDR X0, [X19,#8] ; +0x320, 0x550d0 ADD X1, SP, #0xE00+var_7B8 ; +0x324, 0x550d4 BL sub_6D6EC ; +0x328, 0x550d8 CBNZ W0, loc_55C2C ; +0x32c, 0x550dc ADRP X10, #dword_2F008@PAGE ; +0x330, 0x550e0 LDR W8, [SP,#0xE00+var_7B8] ; +0x334, 0x550e4 LDR S10, [X10,#dword_2F008@PAGEOFF] ; +0x338, 0x550e8 MOV W9, #0x7F7FFFFF ; +0x33c, 0x550ec MOV W23, #0xA70 ; +0x340, 0x550f0 MOV W24, #0xA78 ; +0x344, 0x550f4 MOV W25, #0xE00 ; +0x348, 0x550f8 MOV X21, XZR ; +0x34c, 0x550fc MOV W22, #0x70 ; 'p' ; +0x350, 0x55100 MOVK W23, #1,LSL#16 ; +0x354, 0x55104 MOVK W24, #1,LSL#16 ; +0x358, 0x55108 MOVK W25, #1,LSL#16 ; +0x35c, 0x5510c FMOV S9, #1.0 ; +0x360, 0x55110 MOV W12, #0xC ; +0x364, 0x55114 MOV W28, #0x43B40000 ; +0x368, 0x55118 ADRP X26, #dword_2F05C@PAGE ; +0x36c, 0x5511c FMOV S0, W9 ; +0x370, 0x55120 CMP X21, W8,SXTW ; +0x374, 0x55124 B.GE loc_55458 ; +0x378, 0x55128 LDR X20, [X19,#8] ; +0x37c, 0x5512c LDUR W8, [X29,#var_A4] ; +0x380, 0x55130 NOP ; +0x384, 0x55134 MADD X9, X21, X22, X20 ; +0x388, 0x55138 ADD X27, X9, X23 ; +0x38c, 0x5513c TBNZ W8, #0x12, loc_55164 ; +0x390, 0x55140 MADD X9, X21, X22, X20 ; +0x394, 0x55144 LDR D1, [X19,#0x80] ; +0x398, 0x55148 LDR D2, [X27] ; +0x39c, 0x5514c LDR S3, [X19,#0x88] ; +0x3a0, 0x55150 LDR S4, [X9,X24] ; +0x3a4, 0x55154 FSUB V12.2S, V1.2S, V2.2S ; +0x3a8, 0x55158 FSUB S1, S3, S4 ; +0x3ac, 0x5515c B loc_5516C ; +0x3b0, 0x55160 LDR D12, [X19,#0x80] ; +0x3b4, 0x55164 LDR S1, [X19,#0x88] ; +0x3b8, 0x55168 LDRB W9, [X20,#0x78] ; +0x3bc, 0x5516c FNEG S2, S1 ; +0x3c0, 0x55170 FMUL V3.2S, V12.2S, V12.2S ; +0x3c4, 0x55174 TST W9, #4 ; +0x3c8, 0x55178 FCSEL S13, S1, S2, EQ ; +0x3cc, 0x5517c FADDP S1, V3.2S ; +0x3d0, 0x55180 FMADD S1, S13, S13, S1 ; +0x3d4, 0x55184 FSQRT S8, S1 ; +0x3d8, 0x55188 FCMP S8, S0 ; +0x3dc, 0x5518c B.GE loc_55340 ; +0x3e0, 0x55190 STR S8, [X19,#0x98] ; +0x3e4, 0x55194 LDR X9, [X20,X25] ; +0x3e8, 0x55198 CBZ X9, loc_551E0 ; +0x3ec, 0x5519c MOV X0, X20 ; +0x3f0, 0x551a0 MOV W1, WZR ; +0x3f4, 0x551a4 BL sub_7BA10 ; +0x3f8, 0x551a8 CBNZ W0, loc_55C2C ; +0x3fc, 0x551ac LDR X8, [X19,#8] ; +0x400, 0x551b0 LDR X0, [X19,#0x50] ; +0x404, 0x551b4 LDR S0, [X19,#0x98] ; +0x408, 0x551b8 LDR X8, [X8,X25] ; +0x40c, 0x551bc BLR X8 ; +0x410, 0x551c0 LDR X0, [X19,#8] ; +0x414, 0x551c4 STR S0, [X19,#0x78] ; +0x418, 0x551c8 BL sub_7BAA0 ; +0x41c, 0x551cc MOV W12, #0xC ; +0x420, 0x551d0 CBNZ W0, loc_55C2C ; +0x424, 0x551d4 LDR S0, [X19,#0x78] ; +0x428, 0x551d8 B loc_55200 ; +0x42c, 0x551dc TBNZ W8, #0x1A, loc_5521C ; +0x430, 0x551e0 MOV W9, #0x4F00000 ; +0x434, 0x551e4 AND W1, W8, W9 ; +0x438, 0x551e8 MOV X0, X19 ; +0x43c, 0x551ec MOV V0.16B, V8.16B ; +0x440, 0x551f0 BL sub_54D2C ; +0x444, 0x551f4 MOV W12, #0xC ; +0x448, 0x551f8 STR S0, [X19,#0x78] ; +0x44c, 0x551fc FCMP S0, #0.0 ; +0x450, 0x55200 FMOV S1, WZR ; +0x454, 0x55204 B.LT loc_5527C ; +0x458, 0x55208 FCMP S0, S9 ; +0x45c, 0x5520c MOV V1.16B, V9.16B ; +0x460, 0x55210 B.GT loc_5527C ; +0x464, 0x55214 B loc_55280 ; +0x468, 0x55218 LDR X9, [X19,#0xE0] ; +0x46c, 0x5521c MOV V1.16B, V9.16B ; +0x470, 0x55220 CBZ X9, loc_5527C ; +0x474, 0x55224 LDRSW X8, [X19,#0xE8] ; +0x478, 0x55228 MOV V1.16B, V9.16B ; +0x47c, 0x5522c CBZ W8, loc_5527C ; +0x480, 0x55230 SUB X10, X8, #1 ; +0x484, 0x55234 MUL X11, X10, X12 ; +0x488, 0x55238 LDR S0, [X9,X11] ; +0x48c, 0x5523c FCMP S8, S0 ; +0x490, 0x55240 B.GE loc_55424 ; +0x494, 0x55244 ADD X9, X9, #0x10 ; +0x498, 0x55248 MOV W10, #1 ; +0x49c, 0x5524c CMP X10, X8 ; +0x4a0, 0x55250 B.GE loc_551D8 ; +0x4a4, 0x55254 LDUR S0, [X9,#-0x10] ; +0x4a8, 0x55258 FCMP S8, S0 ; +0x4ac, 0x5525c B.LT loc_55270 ; +0x4b0, 0x55260 LDUR S1, [X9,#-4] ; +0x4b4, 0x55264 FCMP S8, S1 ; +0x4b8, 0x55268 B.LT loc_55438 ; +0x4bc, 0x5526c ADD X10, X10, #1 ; +0x4c0, 0x55270 ADD X9, X9, #0xC ; +0x4c4, 0x55274 B loc_55250 ; +0x4c8, 0x55278 STR S1, [X19,#0x78] ; +0x4cc, 0x5527c LDR S14, [X19,#0xAC] ; +0x4d0, 0x55280 FMOV S0, W28 ; +0x4d4, 0x55284 FCMP S14, S0 ; +0x4d8, 0x55288 B.LT loc_552A0 ; +0x4dc, 0x5528c LDR S0, [X19,#0xA8] ; +0x4e0, 0x55290 FMOV S1, W28 ; +0x4e4, 0x55294 FCMP S0, S1 ; +0x4e8, 0x55298 B.GE loc_5533C ; +0x4ec, 0x5529c LDR S0, [X19,#0x98] ; +0x4f0, 0x552a0 FMOV S1, WZR ; +0x4f4, 0x552a4 FCMP S0, #0.0 ; +0x4f8, 0x552a8 B.LE loc_552F8 ; +0x4fc, 0x552ac LDR X8, [X19,#8] ; +0x500, 0x552b0 LDR S1, [X19,#0xBC] ; +0x504, 0x552b4 LDUR D2, [X19,#0xB4] ; +0x508, 0x552b8 LDR W8, [X8,#0x78] ; +0x50c, 0x552bc FNEG S3, S1 ; +0x510, 0x552c0 FMUL V2.2S, V2.2S, V12.2S ; +0x514, 0x552c4 FADDP S2, V2.2S ; +0x518, 0x552c8 TST W8, #4 ; +0x51c, 0x552cc FCSEL S1, S1, S3, EQ ; +0x520, 0x552d0 FMADD S1, S1, S13, S2 ; +0x524, 0x552d4 FDIV S0, S1, S0 ; +0x528, 0x552d8 FNEG S1, S0 ; +0x52c, 0x552dc FMINNM S1, S1, S9 ; +0x530, 0x552e0 FCMP S0, S9 ; +0x534, 0x552e4 FCSEL S0, S11, S1, GT; x ; +0x538, 0x552e8 BL .acosf ; +0x53c, 0x552ec MOV W12, #0xC ; +0x540, 0x552f0 FMUL S1, S0, S10 ; +0x544, 0x552f4 LDR S0, [X19,#0xA8] ; +0x548, 0x552f8 FCMP S1, S0 ; +0x54c, 0x552fc B.GE loc_5530C ; +0x550, 0x55300 MOV W8, #0x3F800000 ; +0x554, 0x55304 B loc_55338 ; +0x558, 0x55308 FCMP S1, S14 ; +0x55c, 0x5530c B.GE loc_55334 ; +0x560, 0x55310 LDR S2, [X19,#0xB0] ; +0x564, 0x55314 FSUB S1, S1, S0 ; +0x568, 0x55318 FSUB S0, S14, S0 ; +0x56c, 0x5531c FDIV S0, S1, S0 ; +0x570, 0x55320 FSUB S1, S9, S0 ; +0x574, 0x55324 FMADD S0, S2, S0, S1 ; +0x578, 0x55328 STR S0, [X19,#0xA4] ; +0x57c, 0x5532c B loc_5533C ; +0x580, 0x55330 LDR W8, [X19,#0xB0] ; +0x584, 0x55334 STR W8, [X19,#0xA4] ; +0x588, 0x55338 MOV V0.16B, V8.16B ; +0x58c, 0x5533c LDUR S1, [X29,#var_A8] ; +0x590, 0x55340 LDR W8, [SP,#0xE00+var_7B8] ; +0x594, 0x55344 FCMP S1, #0.0 ; +0x598, 0x55348 CCMP W8, #1, #0, GT ; +0x59c, 0x5534c B.EQ loc_5535C ; +0x5a0, 0x55350 LDR S1, [X19,#0x7C] ; +0x5a4, 0x55354 B loc_55404 ; +0x5a8, 0x55358 LDURB W9, [X29,#var_A4+2] ; +0x5ac, 0x5535c LDR S2, [X19,#0x8C] ; +0x5b0, 0x55360 TBNZ W9, #2, loc_553AC ; +0x5b4, 0x55364 MOV W10, #0xA88 ; +0x5b8, 0x55368 MADD X9, X21, X22, X20 ; +0x5bc, 0x5536c MOVK W10, #1,LSL#16 ; +0x5c0, 0x55370 LDR S7, [X9,X10] ; +0x5c4, 0x55374 MOV W10, #0x10A8C ; +0x5c8, 0x55378 LDR D3, [X19,#0x90] ; +0x5d0, 0x55380 LDR D4, [X19,#0x80] ; +0x5d4, 0x55384 LDR D5, [X27] ; +0x5d8, 0x55388 LDR S6, [X19,#0x88] ; +0x5dc, 0x5538c LDR D16, [X9,X10] ; +0x5e0, 0x55390 LDR S17, [X9,X24] ; +0x5e4, 0x55394 FSUB V5.2S, V4.2S, V5.2S ; +0x5e8, 0x55398 FSUB S2, S2, S7 ; +0x5ec, 0x5539c FSUB V3.2S, V3.2S, V16.2S ; +0x5f0, 0x553a0 FSUB S4, S6, S17 ; +0x5f4, 0x553a4 B loc_553B8 ; +0x5f8, 0x553a8 LDR D3, [X19,#0x90] ; +0x5fc, 0x553ac LDR D5, [X19,#0x80] ; +0x600, 0x553b0 LDR S4, [X19,#0x88] ; +0x604, 0x553b4 FMUL V6.2S, V5.2S, V5.2S ; +0x608, 0x553b8 FADDP S6, V6.2S ; +0x60c, 0x553bc FMADD S6, S4, S4, S6 ; +0x610, 0x553c0 FSQRT S6, S6 ; +0x614, 0x553c4 FCMP S6, #0.0 ; +0x618, 0x553c8 FMOV S7, WZR ; +0x61c, 0x553cc B.LE loc_553E8 ; +0x620, 0x553d0 FMUL S2, S2, V5.S[0] ; +0x624, 0x553d4 DUP S5, V5.S[1] ; +0x628, 0x553d8 FMLA S2, S5, V3.S[0] ; +0x62c, 0x553dc FMLA S2, S4, V3.S[1] ; +0x630, 0x553e0 FDIV S7, S2, S6 ; +0x634, 0x553e4 LDUR S2, [X29,#var_AC] ; +0x638, 0x553e8 MOV W9, #0x43AA0000 ; +0x63c, 0x553ec FMOV S3, W9 ; +0x640, 0x553f0 FMUL S2, S2, S3 ; +0x644, 0x553f4 FMSUB S1, S7, S1, S2 ; +0x648, 0x553f8 FDIV S1, S1, S2 ; +0x64c, 0x553fc STR S1, [X19,#0x7C] ; +0x650, 0x55400 LDR S2, [X26,#dword_2F05C@PAGEOFF] ; +0x654, 0x55404 FCMP S1, S2 ; +0x658, 0x55408 B.GE loc_5541C ; +0x65c, 0x5540c MOV W9, #0x358637BD ; +0x660, 0x55410 STR W9, [X19,#0x7C] ; +0x668, 0x55418 ADD X21, X21, #1 ; +0x66c, 0x5541c B loc_55124 ; +0x670, 0x55420 MADD X8, X10, X12, X9 ; +0x674, 0x55424 LDR W8, [X8,#4] ; +0x678, 0x55428 STR W8, [X19,#0x78] ; +0x67c, 0x5542c FMOV S0, W8 ; +0x680, 0x55430 B loc_55200 ; +0x684, 0x55434 LDUR S3, [X9,#-0xC] ; +0x688, 0x55438 LDR S4, [X9] ; +0x68c, 0x5543c FSUB S2, S8, S0 ; +0x690, 0x55440 FSUB S0, S1, S0 ; +0x694, 0x55444 FDIV S0, S2, S0 ; +0x698, 0x55448 FMSUB S1, S0, S3, S3 ; +0x69c, 0x5544c FMADD S0, S4, S0, S1 ; +0x6a0, 0x55450 B loc_551FC ; +0x6a4, 0x55454 MOVI V0.2D, #0 ; +0x6a8, 0x55458 STR Q0, [SP,#0xE00+var_C0] ; +0x6ac, 0x5545c STR Q0, [SP,#0xE00+var_D0] ; +0x6b0, 0x55460 STR Q0, [SP,#0xE00+var_E0] ; +0x6b4, 0x55464 STR Q0, [SP,#0xE00+var_F0] ; +0x6b8, 0x55468 STR Q0, [SP,#0xE00+var_100] ; +0x6bc, 0x5546c STR Q0, [SP,#0xE00+var_110] ; +0x6c0, 0x55470 STR Q0, [SP,#0xE00+var_120] ; +0x6c4, 0x55474 STR Q0, [SP,#0xE00+var_130] ; +0x6c8, 0x55478 STR Q0, [SP,#0xE00+var_140] ; +0x6cc, 0x5547c STR Q0, [SP,#0xE00+var_150] ; +0x6d0, 0x55480 STR Q0, [SP,#0xE00+var_160] ; +0x6d4, 0x55484 STR Q0, [SP,#0xE00+var_170] ; +0x6d8, 0x55488 STR Q0, [SP,#0xE00+var_180] ; +0x6dc, 0x5548c STR Q0, [SP,#0xE00+var_190] ; +0x6e0, 0x55490 STR Q0, [SP,#0xE00+var_1A0] ; +0x6e4, 0x55494 STR Q0, [SP,#0xE00+var_1B0] ; +0x6e8, 0x55498 LDR X8, [X19] ; +0x6ec, 0x5549c ADD X1, SP, #0xE00+var_1B4 ; +0x6f0, 0x554a0 MOV X0, X19 ; +0x6f4, 0x554a4 LDR X8, [X8,#0x1F8] ; +0x6f8, 0x554a8 BLR X8 ; +0x6fc, 0x554ac CBNZ W0, loc_55C2C ; +0x700, 0x554b0 LDR X8, [X19,#8] ; +0x704, 0x554b4 MOV W9, #0x10DF0 ; +0x708, 0x554b8 MOV W10, #0xA70 ; +0x710, 0x554c0 LDR W9, [X8,X9] ; +0x714, 0x554c4 MOVK W10, #1,LSL#16 ; +0x718, 0x554c8 FMOV S4, #1.0 ; +0x71c, 0x554cc ADD X21, X8, X10 ; +0x720, 0x554d0 CMP W9, #1 ; +0x724, 0x554d4 B.NE loc_5551C ; +0x728, 0x554d8 LDP S3, S2, [X19,#0x80] ; +0x72c, 0x554dc LDURB W9, [X29,#var_A4+2] ; +0x730, 0x554e0 LDR S7, [X19,#0x88] ; +0x734, 0x554e4 TBNZ W9, #2, loc_55534 ; +0x738, 0x554e8 LDP S17, S18, [X21] ; +0x73c, 0x554ec LDR S19, [X21,#8] ; +0x740, 0x554f0 LDR W8, [X8,#0x78] ; +0x744, 0x554f4 LDP S1, S0, [X21,#0x48] ; +0x748, 0x554f8 LDR S16, [X21,#0x50] ; +0x74c, 0x554fc LDP S4, S6, [X21,#0x60] ; +0x750, 0x55500 LDR S5, [X21,#0x68] ; +0x754, 0x55504 FSUB S3, S3, S17 ; +0x758, 0x55508 FSUB S2, S2, S18 ; +0x75c, 0x5550c FSUB S7, S7, S19 ; +0x760, 0x55510 AND W8, W8, #4 ; +0x764, 0x55514 B loc_55558 ; +0x768, 0x55518 MOV W26, WZR ; +0x76c, 0x5551c FMOV S8, WZR ; +0x770, 0x55520 FMOV S9, WZR ; +0x774, 0x55524 FMOV S0, WZR ; +0x778, 0x55528 STR S0, [SP,#0xE00+var_DD4] ; +0x77c, 0x5552c B loc_5575C ; +0x780, 0x55530 LDR W9, [X8,#0x78] ; +0x784, 0x55534 FMOV S0, WZR ; +0x788, 0x55538 MOV V16.16B, V4.16B ; +0x78c, 0x5553c FMOV S1, WZR ; +0x790, 0x55540 TST W9, #4 ; +0x794, 0x55544 FMOV S5, WZR ; +0x798, 0x55548 AND W8, W9, #4 ; +0x79c, 0x5554c FCSEL S4, S4, S11, EQ ; +0x7a0, 0x55550 FMOV S6, WZR ; +0x7a4, 0x55554 FNEG S18, S16 ; +0x7a8, 0x55558 FNEG S19, S7 ; +0x7ac, 0x5555c CMP W8, #0 ; +0x7b0, 0x55560 FMUL S20, S2, S2 ; +0x7b4, 0x55564 FCSEL S19, S7, S19, EQ ; +0x7b8, 0x55568 FCSEL S7, S16, S18, EQ ; +0x7bc, 0x5556c FMADD S16, S3, S3, S20 ; +0x7c0, 0x55570 FMADD S16, S19, S19, S16 ; +0x7c4, 0x55574 FSQRT S20, S16 ; +0x7c8, 0x55578 FMOV S17, WZR ; +0x7cc, 0x5557c FCMP S20, #0.0 ; +0x7d0, 0x55580 FMOV S18, WZR ; +0x7d4, 0x55584 FMOV S16, WZR ; +0x7d8, 0x55588 B.LE loc_555A4 ; +0x7dc, 0x5558c FMOV S16, #1.0 ; +0x7e0, 0x55590 FDIV S17, S16, S20 ; +0x7e4, 0x55594 FMUL S16, S3, S17 ; +0x7e8, 0x55598 FMUL S18, S2, S17 ; +0x7ec, 0x5559c FMUL S17, S19, S17 ; +0x7f0, 0x555a0 ADRP X8, #dword_2EF74@PAGE ; +0x7f4, 0x555a4 LDR S3, [X8,#dword_2EF74@PAGEOFF] ; +0x7f8, 0x555a8 FMUL S2, S17, S5 ; +0x7fc, 0x555ac FMADD S2, S18, S6, S2 ; +0x800, 0x555b0 FMADD S2, S16, S4, S2 ; +0x804, 0x555b4 FCMP S2, S3 ; +0x808, 0x555b8 MOV W0, #0x24 ; '$' ; +0x80c, 0x555bc B.GT loc_55C2C ; +0x810, 0x555c0 ADRP X8, #dword_2EFCC@PAGE ; +0x814, 0x555c4 LDR S4, [X8,#dword_2EFCC@PAGEOFF] ; +0x818, 0x555c8 FCMP S2, S4 ; +0x81c, 0x555cc B.LT loc_55C2C ; +0x820, 0x555d0 FMUL S5, S17, S7 ; +0x824, 0x555d4 FMADD S0, S18, S0, S5 ; +0x828, 0x555d8 FMADD S0, S16, S1, S0 ; +0x82c, 0x555dc FCMP S0, S3 ; +0x830, 0x555e0 MOV W0, #0x24 ; '$' ; +0x834, 0x555e4 B.GT loc_55C2C ; +0x838, 0x555e8 FCMP S0, S4 ; +0x83c, 0x555ec B.LT loc_55C2C ; +0x840, 0x555f0 FMOV S10, #1.0 ; +0x844, 0x555f4 FMINNM S1, S2, S10 ; +0x848, 0x555f8 FMINNM S0, S0, S10 ; +0x84c, 0x555fc FMAXNM S8, S1, S11 ; +0x850, 0x55600 FMAXNM S9, S0, S11 ; +0x854, 0x55604 MOV V0.16B, V8.16B ; +0x858, 0x55608 MOV V1.16B, V9.16B ; +0x85c, 0x5560c BL sub_55D20 ; +0x860, 0x55610 STR S0, [SP,#0xE00+var_DD4] ; +0x864, 0x55614 MOV V0.16B, V9.16B; x ; +0x868, 0x55618 BL .acosf ; +0x86c, 0x5561c ADRP X8, #dword_2EF54@PAGE ; +0x870, 0x55620 LDR S1, [X8,#dword_2EF54@PAGEOFF] ; +0x874, 0x55624 FMUL S0, S0, S1 ; +0x878, 0x55628 STR S0, [X19,#0x100] ; +0x87c, 0x5562c LDR S0, [X19,#0xEC] ; +0x880, 0x55630 LDR W8, [SP,#0xE00+var_1B4] ; +0x884, 0x55634 FCMP S0, #0.0 ; +0x888, 0x55638 CCMP W8, #1, #0, NE ; +0x88c, 0x5563c B.EQ loc_5564C ; +0x890, 0x55640 MOV W26, WZR ; +0x894, 0x55644 B loc_55658 ; +0x898, 0x55648 MOV W8, #2 ; +0x89c, 0x5564c MOV W26, #1 ; +0x8a0, 0x55650 STR W8, [SP,#0xE00+var_1B4] ; +0x8a4, 0x55654 ADRP X9, #dword_2EEE4@PAGE ; +0x8a8, 0x55658 LDR S1, [X9,#dword_2EEE4@PAGEOFF] ; +0x8ac, 0x5565c FCMP S0, #0.0 ; +0x8b0, 0x55660 SXTW X22, W8 ; +0x8b4, 0x55664 CSET W9, EQ ; +0x8b8, 0x55668 SUBS W8, W8, #1 ; +0x8bc, 0x5566c ADRP X25, #jpt_556D4@PAGE ; +0x8c0, 0x55670 FMUL S13, S0, S1 ; +0x8c4, 0x55674 SCVTF S0, W8 ; +0x8c8, 0x55678 CSET W8, EQ ; +0x8cc, 0x5567c ADRP X28, #flt_2F174@PAGE ; +0x8d0, 0x55680 MOV X20, XZR ; +0x8d4, 0x55684 ADD X23, SP, #0xE00+var_130 ; +0x8d8, 0x55688 ADD X24, SP, #0xE00+var_1B0 ; +0x8dc, 0x5568c ADD X25, X25, #jpt_556D4@PAGEOFF ; +0x8e0, 0x55690 FMOV S12, WZR ; +0x8e4, 0x55694 ORR W27, W9, W8 ; +0x8e8, 0x55698 FDIV S14, S10, S0 ; +0x8ec, 0x5569c ADD X28, X28, #flt_2F174@PAGEOFF ; +0x8f0, 0x556a0 CMP X20, X22 ; +0x8f4, 0x556a4 B.GE loc_5575C ; +0x8f8, 0x556a8 CBZ W27, loc_556BC ; +0x8fc, 0x556ac STR S8, [X23,X20,LSL#2] ; +0x900, 0x556b0 MOV V0.16B, V9.16B ; +0x904, 0x556b4 B loc_55750 ; +0x908, 0x556b8 SUB W8, W22, #4; switch 9 cases ; +0x90c, 0x556bc CMP W8, #8 ; +0x910, 0x556c0 B.HI def_556D4; jumptable 00000000000556D4 default case, cases 5,7,9-11 ; +0x914, 0x556c4 ADR X9, loc_556D8; jumptable 00000000000556D4 cases 8,12 ; +0x918, 0x556c8 LDRB W10, [X25,X8] ; +0x91c, 0x556cc ADD X9, X9, X10,LSL#2 ; +0x920, 0x556d0 BR X9; switch jump ; +0x924, 0x556d4 CMP W20, #8; jumptable 00000000000556D4 cases 8,12 ; +0x928, 0x556d8 FMOV S0, WZR ; +0x92c, 0x556dc B.CS loc_55728 ; +0x930, 0x556e0 LDR S0, [X28,X20,LSL#2] ; +0x934, 0x556e4 B loc_55728 ; +0x938, 0x556e8 CMP X20, #1; jumptable 00000000000556D4 case 4 ; +0x93c, 0x556ec FCSEL S0, S10, S12, EQ ; +0x940, 0x556f0 CMP X20, #0 ; +0x944, 0x556f4 FCSEL S0, S11, S0, EQ ; +0x948, 0x556f8 B loc_55728 ; +0x94c, 0x556fc SCVTF S0, W20; jumptable 00000000000556D4 default case, cases 5,7,9-11 ; +0x950, 0x55700 FADD S0, S0, S0 ; +0x954, 0x55704 FMADD S0, S0, S14, S11 ; +0x958, 0x55708 B loc_55728 ; +0x95c, 0x5570c CMP W20, #6; jumptable 00000000000556D4 case 6 ; +0x960, 0x55710 FMOV S0, WZR ; +0x964, 0x55714 B.CS loc_55728 ; +0x968, 0x55718 ADRL X8, flt_2F15C ; +0x96c, 0x5571c LDR S0, [X8,X20,LSL#2] ; +0x974, 0x55724 FMUL S0, S13, S0; x ; +0x978, 0x55728 ADD X0, SP, #0xE00+sinx; sinx ; +0x97c, 0x5572c ADD X1, SP, #0xE00+cosx; cosx ; +0x980, 0x55730 BL .sincosf ; +0x984, 0x55734 LDP S1, S0, [SP,#0xE00+cosx] ; +0x988, 0x55738 FMUL S2, S0, S9 ; +0x98c, 0x5573c FMUL S0, S0, S8 ; +0x990, 0x55740 FNMSUB S2, S1, S8, S2 ; +0x994, 0x55744 FMADD S0, S1, S9, S0 ; +0x998, 0x55748 STR S2, [X23,X20,LSL#2] ; +0x99c, 0x5574c STR S0, [X24,X20,LSL#2] ; +0x9a0, 0x55750 ADD X20, X20, #1 ; +0x9a4, 0x55754 B loc_556A4 ; +0x9a8, 0x55758 LDR W22, [X21,#0x8CC] ; +0x9ac, 0x5575c SUB W8, W22, #1 ; +0x9b0, 0x55760 CMP W8, #2 ; +0x9b4, 0x55764 B.CC loc_55C10 ; +0x9b8, 0x55768 ADD X0, SP, #0xE00+var_7B8 ; +0x9bc, 0x5576c BL sub_57994 ; +0x9c0, 0x55770 SUB W8, W22, #3; switch 6 cases ; +0x9c4, 0x55774 CMP W8, #5 ; +0x9c8, 0x55778 STR W26, [SP,#0xE00+var_DE8] ; +0x9cc, 0x5577c B.HI def_557A0; jumptable 00000000000557A0 default case ; +0x9d0, 0x55780 ADRL X9, jpt_557A0 ; +0x9d4, 0x55784 ADR X10, loc_557A4; jumptable 00000000000557A0 cases 4,5 ; +0x9dc, 0x5578c LDRB W11, [X9,X8] ; +0x9e0, 0x55790 ADD X10, X10, X11,LSL#2 ; +0x9e4, 0x55794 MOV W20, #5 ; +0x9e8, 0x55798 MOV W8, #2 ; +0x9ec, 0x5579c BR X10; switch jump ; +0x9f0, 0x557a0 MOV W8, W22; jumptable 00000000000557A0 cases 4,5 ; +0x9f4, 0x557a4 B loc_557B0; jumptable 00000000000557A0 case 3 ; +0x9f8, 0x557a8 MOV W8, WZR; jumptable 00000000000557A0 default case ; +0x9fc, 0x557ac ADD X23, X19, #0x38 ; '8'; jumptable 00000000000557A0 case 3 ; +0xa00, 0x557b0 ADD X9, X19, #0x40 ; '@' ; +0xa04, 0x557b4 MOV W24, #0xFFFFFFFF ; +0xa08, 0x557b8 MOV W20, W8 ; +0xa0c, 0x557bc STR X9, [SP,#0xE00+var_DF8] ; +0xa10, 0x557c0 STR W8, [SP,#0xE00+var_DE4] ; +0xa14, 0x557c4 B loc_55840 ; +0xa18, 0x557c8 MOV W22, #8; jumptable 00000000000557A0 case 7 ; +0xa1c, 0x557cc MOV W20, #7 ; +0xa20, 0x557d0 B loc_557E0; jumptable 00000000000557A0 case 6 ; +0xa24, 0x557d4 MOV W22, #0xC; jumptable 00000000000557A0 case 8 ; +0xa28, 0x557d8 MOV W20, #0xB ; +0xa2c, 0x557dc MOV X9, X19; jumptable 00000000000557A0 case 6 ; +0xa30, 0x557e0 LDR X8, [X9,#0x40]! ; +0xa34, 0x557e4 STR W22, [SP,#0xE00+var_DE4] ; +0xa38, 0x557e8 SUB X23, X9, #8 ; +0xa3c, 0x557ec STR X9, [SP,#0xE00+var_DF8] ; +0xa40, 0x557f0 CBZ X8, loc_5583C ; +0xa44, 0x557f4 LDRB W8, [X21,#0x988] ; +0xa48, 0x557f8 CBZ W8, loc_5583C ; +0xa4c, 0x557fc ADD X8, SP, #0xE00+var_7B8 ; +0xa50, 0x55800 MOV X21, XZR ; +0xa54, 0x55804 ADD X22, X8, #0x180 ; +0xa58, 0x55808 MOV W24, #3 ; +0xa5c, 0x5580c LDRSW X8, [SP,#0xE00+var_1B4] ; +0xa60, 0x55810 CMP X21, X8 ; +0xa64, 0x55814 B.GE loc_55840 ; +0xa68, 0x55818 ADD X0, SP, #0xE00+var_DB8 ; +0xa6c, 0x5581c MOV W1, W21 ; +0xa70, 0x55820 STP X23, X24, [SP,#0xE00+var_DB8] ; +0xa74, 0x55824 BL sub_55D90 ; +0xa78, 0x55828 LDR W8, [X0] ; +0xa7c, 0x5582c STR W8, [X22,X21,LSL#2] ; +0xa80, 0x55830 ADD X21, X21, #1 ; +0xa84, 0x55834 B loc_55810 ; +0xa88, 0x55838 MOV W24, #3 ; +0xa8c, 0x5583c LDR S15, [X19,#0xF0] ; +0xa90, 0x55840 FCMP S15, #0.0 ; +0xa94, 0x55844 B.LE loc_55AB0 ; +0xa98, 0x55848 ADRP X8, #dword_2F070@PAGE ; +0xa9c, 0x5584c MOV W10, W20 ; +0xaa0, 0x55850 STR X10, [SP,#0xE00+var_DF0] ; +0xaa4, 0x55854 LDR W10, [SP,#0xE00+var_DE4] ; +0xaa8, 0x55858 LDR S1, [X8,#dword_2F070@PAGEOFF] ; +0xaac, 0x5585c LDRSW X26, [SP,#0xE00+var_1B4] ; +0xab0, 0x55860 SCVTF S0, W20 ; +0xab4, 0x55864 ADD W9, W20, #1 ; +0xab8, 0x55868 MOV W16, #0x1580 ; +0xabc, 0x5586c MOV X21, XZR ; +0xac0, 0x55870 MOV W28, W10 ; +0xac4, 0x55874 ADD X22, SP, #0xE00+var_7B8 ; +0xac8, 0x55878 ADD X15, SP, #0xE00+var_1B0 ; +0xacc, 0x5587c ADD X25, SP, #0xE00+var_130 ; +0xad0, 0x55880 FMOV S13, WZR ; +0xad4, 0x55884 MOVK W16, #1,LSL#16 ; +0xad8, 0x55888 MOV W20, #0x3F800000 ; +0xadc, 0x5588c FMOV S10, #8.0 ; +0xae0, 0x55890 FDIV S14, S1, S0 ; +0xae4, 0x55894 SUB X8, X9, #1 ; +0xae8, 0x55898 ADD X27, SP, #0xE00+var_7B8 ; +0xaec, 0x5589c STR X8, [SP,#0xE00+var_DE0] ; +0xaf0, 0x558a0 CMP X21, X26 ; +0xaf4, 0x558a4 B.GE loc_55AB0 ; +0xaf8, 0x558a8 LDR S11, [X15,X21,LSL#2] ; +0xafc, 0x558ac LDR S12, [X25,X21,LSL#2] ; +0xb00, 0x558b0 FCMP S11, #0.0 ; +0xb04, 0x558b4 CSET W8, NE ; +0xb08, 0x558b8 FCMP S12, #0.0 ; +0xb0c, 0x558bc CSET W9, NE ; +0xb10, 0x558c0 ORR W8, W8, W9 ; +0xb14, 0x558c4 TBNZ W8, #0, loc_55910 ; +0xb18, 0x558c8 MOV W10, #0x1368 ; +0xb1c, 0x558cc MOV X8, X24 ; +0xb20, 0x558d0 MOV X9, X27 ; +0xb24, 0x558d4 MOVK W10, #1,LSL#16 ; +0xb28, 0x558d8 MOV X11, X28 ; +0xb2c, 0x558dc CBZ X11, loc_55AA4 ; +0xb30, 0x558e0 LDR X12, [X19,#8] ; +0xb34, 0x558e4 SUB X11, X11, #1 ; +0xb38, 0x558e8 LDRB W12, [X12,X10] ; +0xb3c, 0x558ec ADD X10, X10, #0x30 ; '0' ; +0xb40, 0x558f0 CMP W12, #0 ; +0xb44, 0x558f4 CCMP X8, #0, #4, NE ; +0xb48, 0x558f8 FCSEL S0, S13, S14, EQ ; +0xb4c, 0x558fc STR S0, [X9],#0x80 ; +0xb50, 0x55900 SUB X8, X8, #1 ; +0xb54, 0x55904 CBNZ X11, loc_558E4 ; +0xb58, 0x55908 B loc_55AA4 ; +0xb5c, 0x5590c LDR S0, [SP,#0xE00+var_DD4] ; +0xb60, 0x55910 FCMP S11, S9 ; +0xb64, 0x55914 FCCMP S12, S8, #0, EQ ; +0xb68, 0x55918 B.EQ loc_55938 ; +0xb6c, 0x5591c MOV V0.16B, V12.16B ; +0xb70, 0x55920 MOV V1.16B, V11.16B ; +0xb74, 0x55924 BL sub_55D20 ; +0xb78, 0x55928 MOV W16, #0x11580 ; +0xb7c, 0x5592c ADD X15, SP, #0xE00+var_1B0 ; +0xb84, 0x55934 LDR X9, [X19,#8] ; +0xb88, 0x55938 ADD X8, X9, X16 ; +0xb8c, 0x5593c LDR X10, [X8] ; +0xb90, 0x55940 CBZ X10, loc_55AA4 ; +0xb94, 0x55944 LDR X8, [X8,#8] ; +0xb98, 0x55948 CBZ X8, loc_559C4 ; +0xb9c, 0x5594c LDR X13, [SP,#0xE00+var_DE0] ; +0xba0, 0x55950 MOV W8, #0x11588 ; +0xba4, 0x55954 FADD S1, S0, S10 ; +0xbac, 0x5595c ADD X12, X9, X8 ; +0xbb0, 0x55960 MOV X8, X10 ; +0xbb4, 0x55964 CBZ X13, loc_55AA4 ; +0xbb8, 0x55968 CBZ X8, loc_559D4 ; +0xbbc, 0x5596c LDR X14, [X12] ; +0xbc0, 0x55970 LDR S2, [X8,#0x20] ; +0xbc4, 0x55974 CMP X14, #0 ; +0xbc8, 0x55978 CSEL X11, X10, X14, EQ ; +0xbcc, 0x5597c LDR S3, [X11,#0x20] ; +0xbd0, 0x55980 FCMP S2, S3 ; +0xbd4, 0x55984 B.EQ loc_559B0 ; +0xbd8, 0x55988 FADD S4, S3, S10 ; +0xbdc, 0x5598c FCMP S3, S2 ; +0xbe0, 0x55990 FCSEL S3, S3, S4, GE ; +0xbe4, 0x55994 FCMP S2, S0 ; +0xbe8, 0x55998 FCCMP S3, S0, #4, LE ; +0xbec, 0x5599c B.GT loc_55A04 ; +0xbf0, 0x559a0 FCMP S1, S2 ; +0xbf4, 0x559a4 FCCMP S1, S3, #0, GE ; +0xbf8, 0x559a8 B.LT loc_55A04 ; +0xbfc, 0x559ac SUB X13, X13, #1 ; +0xc00, 0x559b0 ADD X12, X12, #8 ; +0xc04, 0x559b4 MOV X8, X14 ; +0xc08, 0x559b8 CBNZ X13, loc_5596C ; +0xc0c, 0x559bc B loc_55AA4 ; +0xc10, 0x559c0 LDRSW X8, [X10,#4] ; +0xc14, 0x559c4 ADD X8, X22, X8,LSL#7 ; +0xc18, 0x559c8 STR W20, [X8,X21,LSL#2] ; +0xc1c, 0x559cc B loc_55AA4 ; +0xc20, 0x559d0 ADD X8, X9, X16 ; +0xc24, 0x559d4 LDR X9, [SP,#0xE00+var_DF0] ; +0xc28, 0x559d8 CBZ X9, loc_55AA4 ; +0xc2c, 0x559dc LDR X10, [X8] ; +0xc30, 0x559e0 CBZ X10, loc_55AA4 ; +0xc34, 0x559e4 LDRSW X10, [X10,#4] ; +0xc38, 0x559e8 SUB X9, X9, #1 ; +0xc3c, 0x559ec ADD X8, X8, #8 ; +0xc40, 0x559f0 ADD X10, X22, X10,LSL#7 ; +0xc44, 0x559f4 STR W20, [X10,X21,LSL#2] ; +0xc48, 0x559f8 CBNZ X9, loc_559E0 ; +0xc4c, 0x559fc B loc_55AA4 ; +0xc50, 0x55a00 LDRB W9, [X8,#0x29] ; +0xc54, 0x55a04 CBZ W9, loc_55A5C ; +0xc58, 0x55a08 LDR S0, [X11,#0x14] ; +0xc5c, 0x55a0c LDR S1, [X11,#0x1C] ; +0xc60, 0x55a10 LDR S2, [X8,#0x1C] ; +0xc64, 0x55a14 LDR S3, [X8,#0x2C] ; +0xc68, 0x55a18 FMUL S0, S0, S11 ; +0xc6c, 0x55a1c FNMSUB S0, S1, S12, S0 ; +0xc70, 0x55a20 LDR S1, [X8,#0x14] ; +0xc74, 0x55a24 FMUL S2, S2, S12 ; +0xc78, 0x55a28 LDRSW X8, [X8,#4] ; +0xc7c, 0x55a2c FNMSUB S1, S1, S11, S2 ; +0xc80, 0x55a30 FMUL S2, S0, S0 ; +0xc84, 0x55a34 FMADD S2, S1, S1, S2 ; +0xc88, 0x55a38 FSQRT S2, S2 ; +0xc8c, 0x55a3c FDIV S2, S3, S2 ; +0xc90, 0x55a40 FMUL S0, S2, S0 ; +0xc94, 0x55a44 ADD X8, X22, X8,LSL#7 ; +0xc98, 0x55a48 STR S0, [X8,X21,LSL#2] ; +0xc9c, 0x55a4c LDRSW X8, [X11,#4] ; +0xca0, 0x55a50 FMUL S0, S2, S1 ; +0xca4, 0x55a54 B loc_55A9C ; +0xca8, 0x55a58 LDR S0, [X8,#0x14] ; +0xcac, 0x55a5c LDR S1, [X8,#0x1C] ; +0xcb0, 0x55a60 LDRSW X8, [X8,#4] ; +0xcb4, 0x55a64 FMOV S3, #0.5 ; +0xcb8, 0x55a68 FMUL S0, S0, S12 ; +0xcbc, 0x55a6c FMADD S0, S1, S11, S0 ; +0xcc0, 0x55a70 FMOV S1, #2.0 ; +0xcc4, 0x55a74 FMSUB S1, S0, S0, S1 ; +0xcc8, 0x55a78 FSQRT S1, S1 ; +0xccc, 0x55a7c FADD S2, S1, S0 ; +0xcd0, 0x55a80 FMUL S2, S2, S3 ; +0xcd4, 0x55a84 ADD X8, X22, X8,LSL#7 ; +0xcd8, 0x55a88 STR S2, [X8,X21,LSL#2] ; +0xcdc, 0x55a8c LDRSW X8, [X11,#4] ; +0xce0, 0x55a90 FSUB S0, S1, S0 ; +0xce4, 0x55a94 FMUL S0, S0, S3 ; +0xce8, 0x55a98 ADD X8, X22, X8,LSL#7 ; +0xcec, 0x55a9c STR S0, [X8,X21,LSL#2] ; +0xcf0, 0x55aa0 ADD X21, X21, #1 ; +0xcf4, 0x55aa4 ADD X27, X27, #4 ; +0xcf8, 0x55aa8 B loc_558A4 ; +0xcfc, 0x55aac LDR W27, [SP,#0xE00+var_DE4] ; +0xd00, 0x55ab0 FMOV S8, #1.0 ; +0xd04, 0x55ab4 FCMP S15, S8 ; +0xd08, 0x55ab8 B.GE loc_55BAC ; +0xd0c, 0x55abc LDR X8, [SP,#0xE00+var_DF8] ; +0xd10, 0x55ac0 LDR X8, [X8] ; +0xd14, 0x55ac4 CBZ X8, loc_55B2C ; +0xd18, 0x55ac8 MOV X21, XZR ; +0xd1c, 0x55acc MOV W20, W27 ; +0xd20, 0x55ad0 ADD X22, SP, #0xE00+var_DB8 ; +0xd24, 0x55ad4 LDRSW X9, [SP,#0xE00+var_1B4] ; +0xd28, 0x55ad8 CMP X21, X9 ; +0xd2c, 0x55adc B.GE loc_55B50 ; +0xd30, 0x55ae0 MOV X25, XZR ; +0xd34, 0x55ae4 MOV X26, X22 ; +0xd38, 0x55ae8 CMP X20, X25 ; +0xd3c, 0x55aec B.EQ loc_55B20 ; +0xd40, 0x55af0 CMP X24, X25 ; +0xd44, 0x55af4 FMOV S0, WZR ; +0xd48, 0x55af8 B.EQ loc_55B14 ; +0xd4c, 0x55afc ADD X0, SP, #0xE00+var_DC8 ; +0xd50, 0x55b00 MOV W1, W21 ; +0xd54, 0x55b04 STP X23, X25, [SP,#0xE00+var_DC8] ; +0xd58, 0x55b08 BL sub_55D90 ; +0xd5c, 0x55b0c LDR S0, [X0] ; +0xd60, 0x55b10 STR S0, [X26],#0x80 ; +0xd64, 0x55b14 ADD X25, X25, #1 ; +0xd68, 0x55b18 B loc_55AEC ; +0xd6c, 0x55b1c ADD X21, X21, #1 ; +0xd70, 0x55b20 ADD X22, X22, #4 ; +0xd74, 0x55b24 B loc_55AD8 ; +0xd78, 0x55b28 ADD X0, SP, #0xE00+var_DB8 ; +0xd7c, 0x55b2c BL sub_57994 ; +0xd80, 0x55b30 LDR W3, [SP,#0xE00+var_1B4] ; +0xd84, 0x55b34 FMOV S0, #1.0 ; +0xd88, 0x55b38 ADD X0, SP, #0xE00+var_DB8 ; +0xd8c, 0x55b3c MOV W1, WZR ; +0xd90, 0x55b40 MOV W2, W27 ; +0xd94, 0x55b44 BL sub_AB134 ; +0xd98, 0x55b48 LDR W9, [SP,#0xE00+var_1B4] ; +0xd9c, 0x55b4c MOV X8, XZR ; +0xda0, 0x55b50 FSUB S0, S8, S15 ; +0xda4, 0x55b54 SXTW X9, W9 ; +0xda8, 0x55b58 MOV W10, W27 ; +0xdac, 0x55b5c ADD X11, SP, #0xE00+var_7B8 ; +0xdb0, 0x55b60 ADD X12, SP, #0xE00+var_DB8 ; +0xdb4, 0x55b64 CMP X8, X9 ; +0xdb8, 0x55b68 MOV X13, X12 ; +0xdbc, 0x55b6c MOV X14, X11 ; +0xdc0, 0x55b70 MOV X15, X10 ; +0xdc4, 0x55b74 B.GE loc_55BAC ; +0xdc8, 0x55b78 CBZ X15, loc_55B9C ; +0xdcc, 0x55b7c LDR S1, [X14] ; +0xdd0, 0x55b80 LDR S2, [X13],#0x80 ; +0xdd4, 0x55b84 SUB X15, X15, #1 ; +0xdd8, 0x55b88 FMUL S1, S1, S15 ; +0xddc, 0x55b8c FMADD S1, S2, S0, S1 ; +0xde0, 0x55b90 STR S1, [X14],#0x80 ; +0xde4, 0x55b94 CBNZ X15, loc_55B80 ; +0xde8, 0x55b98 ADD X8, X8, #1 ; +0xdec, 0x55b9c ADD X11, X11, #4 ; +0xdf0, 0x55ba0 ADD X12, X12, #4 ; +0xdf4, 0x55ba4 B loc_55B68 ; +0xdf8, 0x55ba8 LDR W8, [SP,#0xE00+var_DE8] ; +0xdfc, 0x55bac TBZ W8, #0, loc_55BEC ; +0xe00, 0x55bb0 MOV W9, #1 ; +0xe04, 0x55bb4 MOV W8, W27 ; +0xe08, 0x55bb8 STR W9, [SP,#0xE00+var_1B4] ; +0xe0c, 0x55bbc ADD X9, SP, #0xE00+var_7B8 ; +0xe10, 0x55bc0 FMOV S2, #0.5 ; +0xe14, 0x55bc4 CBZ X8, loc_55BE4 ; +0xe18, 0x55bc8 LDP S0, S1, [X9] ; +0xe1c, 0x55bcc SUB X8, X8, #1 ; +0xe20, 0x55bd0 FADD S0, S1, S0 ; +0xe24, 0x55bd4 FMUL S0, S0, S2 ; +0xe28, 0x55bd8 STR S0, [X9],#0x80 ; +0xe2c, 0x55bdc CBNZ X8, loc_55BCC ; +0xe30, 0x55be0 MOV W3, #1 ; +0xe34, 0x55be4 B loc_55BF0 ; +0xe38, 0x55be8 LDR W3, [SP,#0xE00+var_1B4] ; +0xe3c, 0x55bec LDR X8, [X19] ; +0xe40, 0x55bf0 ADD X1, SP, #0xE00+var_7B8 ; +0xe44, 0x55bf4 MOV W4, #0x20 ; ' ' ; +0xe48, 0x55bf8 MOV X0, X19 ; +0xe4c, 0x55bfc LDR X8, [X8,#0xC8] ; +0xe50, 0x55c00 MOV W2, W27 ; +0xe54, 0x55c04 MOV W5, WZR ; +0xe58, 0x55c08 BLR X8 ; +0xe5c, 0x55c0c LDR X8, [X19] ; +0xe60, 0x55c10 LDR S0, [X19,#0x34] ; +0xe64, 0x55c14 MOV X0, X19 ; +0xe68, 0x55c18 LDR X8, [X8,#0x48] ; +0xe6c, 0x55c1c BLR X8 ; +0xe70, 0x55c20 BL sub_5790C ; +0xe74, 0x55c24 MOV W0, WZR ; +0xe78, 0x55c28 ADD SP, SP, #0xD70 ; +0xe7c, 0x55c2c LDP X29, X30, [SP,#0x90+var_s0] ; +0xe80, 0x55c30 LDP X20, X19, [SP,#0x90+var_10] ; +0xe84, 0x55c34 LDP X22, X21, [SP,#0x90+var_20] ; +0xe88, 0x55c38 LDP X24, X23, [SP,#0x90+var_30] ; +0xe8c, 0x55c3c LDP X26, X25, [SP,#0x90+var_40] ; +0xe90, 0x55c40 LDP X28, X27, [SP,#0x90+var_50] ; +0xe94, 0x55c44 LDP D9, D8, [SP,#0x90+var_60] ; +0xe98, 0x55c48 LDP D11, D10, [SP,#0x90+var_70] ; +0xe9c, 0x55c4c LDP D13, D12, [SP,#0x90+var_80] ; +0xea0, 0x55c50 LDP D15, D14, [SP+0x90+var_90],#0xA0 ; +0xea4, 0x55c54 RET ; +0xea8, 0x55c58