Function at 0x1400339a0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x20
mov rbx, rcx
lea rdx, [0x1400ce826]
mov ecx, 0x120
call fcn.14005d5a4
mov rsi, rax
test rax, rax
je 0x140033e40
test rbx, rbx
lea rcx, str.bdec.dll
cmovne rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsi], rax
test rax, rax
je 0x140033e33
lea rdx, str.Init
mov qword [rsp + 0x30], rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea rdx, str.InitEx
xor ebx, ebx
mov qword [rsi + 8], rax
test rax, rax
sete bl
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x10], rax
lea rdx, str.RegisterCallbackA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x18], rax
lea rdx, str.SetOptionA
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x20], rax
lea rdx, str.SetOptionVarLenA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x28], rax
lea rdx, str.OverWriteReservedKeyInt64A
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x30], rax
lea rdx, str.OverWriteReservedKeyInt64W
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x38], rax
lea rdx, str.OverWriteReservedKeyStringA
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x40], rax
lea rdx, str.OverWriteReservedKeyStringW
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x48], rax
lea rdx, str.CreateEcEventW
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x50], rax
lea rdx, str.CreateEcEventA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x58], rax
lea rdx, str.AddKeyValueEventW
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x60], rax
lea rdx, str.AddKeyValueEventA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x68], rax
lea rdx, str.AddKeyValueEventInt64W
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x70], rax
lea rdx, str.AddKeyValueEventInt64A
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x78], rax
lea rdx, str.AddKeyValueEventDoubleW
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x80], rax
lea rdx, str.AddKeyValueEventDoubleA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x88], rax
lea rdx, str.AddKeyValueEventArray
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x90], rax
lea rdx, str.CreateChildEvent
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x98], rax
lea rdx, str.CreateArrayOfEvents
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xa8], rax
lea rdx, str.AppendEventToArray
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0xb0], rax
lea rdx, str.AppendIntegerToArray
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xb8], rax
lea rdx, str.AppendValueToParentW
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
mov qword [rsi + 0xd0], rax
lea ebx, [rdi + 1]
cmovne ebx, edi
mov rcx, qword [rsi]
lea rdx, str.ReloadCommonFields
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xd8], rax
lea rdx, str.ApplySettingsOnTheFly
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0xe0], rax
lea rdx, str.AppendValueToParentA
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xe8], rax
lea rdx, str.GetEventTextA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0xf0], rax
lea rdx, str.FreeEventTextA
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xf8], rax
lea rdx, str.SubmitEvent
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x100], rax
lea rdx, str.DestroyEvent
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x108], rax
lea rdx, str.UnregisterCallbackA
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0x110], rax
lea rdx, str.Uninit
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0x118], rax
lea rdx, str.CreateArrayOfStrings
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea ebx, [rdi + 1]
test rax, rax
mov qword [rsi + 0xa0], rax
lea rdx, str.AppendStringToArrayA
cmovne ebx, edi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsi]
lea edi, [rbx + 1]
test rax, rax
mov qword [rsi + 0xc0], rax
lea rdx, str.AppendStringToArrayW
cmovne edi, ebx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0xc8], rax
test rax, rax
lea ecx, [rdi + 1]
cmovne ecx, edi
mov rdi, qword [rsp + 0x30]
test ecx, ecx
je 0x140033e4d
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, 0x120
mov rcx, rsi
call fcn.14005c5c0
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
mov rbx, qword [rsp + 0x38]
mov rax, rsi
add rsp, 0x20
pop rsi
ret