Function at 0x1800015a0
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x450
mov rax, qword [0x1800a7b78]
xor rax, rsp
mov qword [rsp + 0x440], rax
call fcn.18001c2d0
mov ebx, eax
mov rax, qword [0x1800a9400]
test rax, rax
jne 0x1800016e5
cmp ebx, 0x15
ja 0x1800015f4
lea rcx, str.xpcom.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [0x1800a9400], rax
test rax, rax
jne 0x1800016e5
lea rcx, str.xul.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [0x1800a9400], rax
test rax, rax
jne 0x1800016e5
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [rsp + 0x20]
mov r8d, 0x104
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1800016d5
lea rcx, [rsp + 0x20]
mov edx, 0x5c
call fcn.180058f10
test rax, rax
je 0x1800016d5
xor ecx, ecx
lea r9, [rsp + 0x20]
mov edx, 0x104
mov word [rax + 2], cx
lea r8, str._sxul.dll
lea rcx, [rsp + 0x230]
cmp ebx, 0x15
ja 0x180001678
lea r8, str._sxpcom.dll
call fcn.180058fc0
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1800a9400], rax
test rax, rax
jne 0x1800016e5
cmp ebx, 0x15
ja 0x18000194e
lea r9, [rsp + 0x20]
lea r8, str._sxul.dll
lea rcx, [rsp + 0x230]
mov edx, 0x104
call fcn.180058fc0
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x1800a9400], rax
jmp 0x1800016dc
mov rax, qword [0x1800a9400]
test rax, rax
je 0x18000194e
lea rdx, str.NS_GetServiceManager
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_GetComponentManager
mov qword [0x1800a9408], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_Free
mov qword [0x1800a9410], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringContainerInit
mov qword [0x1800a9418], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringContainerInit2
mov qword [0x1800a9420], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringContainerFinish
mov qword [0x1800a9428], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringGetData
mov qword [0x1800a9430], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringGetMutableData
mov qword [0x1800a9438], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringCloneData
mov qword [0x1800a9440], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringSetData
mov qword [0x1800a9448], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringSetDataRange
mov qword [0x1800a9450], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_StringCopy
mov qword [0x1800a9458], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringContainerInit
mov qword [0x1800a9460], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringContainerInit2
mov qword [0x1800a9468], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringContainerFinish
mov qword [0x1800a9470], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringGetData
mov qword [0x1800a9478], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringGetMutableData
mov qword [0x1800a9480], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringCloneData
mov qword [0x1800a9488], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringSetData
mov qword [0x1800a9490], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringSetDataRange
mov qword [0x1800a9498], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.NS_CStringCopy
mov qword [0x1800a94a0], rax
mov rcx, qword [0x1800a9400]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_CStringToUTF16
mov qword [0x1800a94a8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [0x1800a9400]
lea rdx, str.NS_UTF16ToCString
mov qword [0x1800a94b0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1800a94b8], rax
mov eax, 1
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.1800590c0
add rsp, 0x450
pop rbx
ret