; ; FMOD_OS_CriticalSection_Create from 0xe6fa0 to 0xe7038 (152 bytes) ; ; 4 xrefs: ; > .FMOD_OS_CriticalSection_Create @ 0x107f6c ; > @ 0x4ff0 ; > .FMOD_OS_CriticalSection_Create @ 0x107f64 ; > @ 0x110878 ; ; 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 ; SUB SP, SP, #0x30 ; +0x0, 0xe6fa0 STP X20, X19, [SP,#0x20+var_10] ; +0x4, 0xe6fa4 MOV X19, X0 ; +0x8, 0xe6fa8 STP X29, X30, [SP,#0x20+var_s0] ; +0xc, 0xe6fac ADD X29, SP, #0x20 ; +0x10, 0xe6fb0 TBZ W1, #0, loc_E6FC4 ; +0x14, 0xe6fb4 ADRL X20, unk_155F54 ; +0x18, 0xe6fb8 B loc_E6FE0 ; +0x20, 0xe6fc0 BL sub_E7334 ; +0x24, 0xe6fc4 MOV W1, #0x28 ; '(' ; +0x28, 0xe6fc8 LDR X8, [X8] ; +0x2c, 0xe6fcc MOV W3, #0x21E ; +0x30, 0xe6fd0 BL sub_E7390 ; +0x34, 0xe6fd4 MOV X20, X0 ; +0x38, 0xe6fd8 CBZ X0, loc_E7028 ; +0x3c, 0xe6fdc ADD X0, SP, #0x20+attr; attr ; +0x40, 0xe6fe0 BL .pthread_mutexattr_init ; +0x44, 0xe6fe4 CBNZ W0, loc_E7018 ; +0x48, 0xe6fe8 ADD X0, SP, #0x20+attr; attr ; +0x4c, 0xe6fec MOV W1, #1; kind ; +0x50, 0xe6ff0 BL .pthread_mutexattr_settype ; +0x54, 0xe6ff4 CBNZ W0, loc_E7018 ; +0x58, 0xe6ff8 ADD X1, SP, #0x20+attr; mutexattr ; +0x5c, 0xe6ffc MOV X0, X20; mutex ; +0x60, 0xe7000 BL .pthread_mutex_init ; +0x64, 0xe7004 CBNZ W0, loc_E7018 ; +0x68, 0xe7008 ADD X0, SP, #0x20+attr; attr ; +0x6c, 0xe700c BL .pthread_mutexattr_destroy ; +0x70, 0xe7010 CBZ W0, loc_E7030 ; +0x74, 0xe7014 MOV W0, #0x1C ; +0x78, 0xe7018 LDP X29, X30, [SP,#0x20+var_s0] ; +0x7c, 0xe701c LDP X20, X19, [SP,#0x20+var_10] ; +0x80, 0xe7020 B loc_E73E0 ; +0x84, 0xe7024 MOV W0, #0x26 ; '&' ; +0x88, 0xe7028 B loc_E701C ; +0x8c, 0xe702c STR X20, [X19] ; +0x90, 0xe7030 B loc_E701C ; +0x94, 0xe7034