Function at 0x1800a5130
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x90
mov rsi, rcx
xor ebp, ebp
mov r14, r9
mov rbx, r8
mov rdi, rdx
mov ecx, ebp
test rsi, rsi
je 0x1800a557a
test rdx, rdx
je 0x1800a557a
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r13
mov rax, rdx
nop dword [rax]
movsx edx, byte [rax + 0x35]
cmp edx, 1
jbe 0x1800a5194
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x1800a5180
jmp 0x1800a51a1
mov rcx, rdi
call sym.JS0GROUP.dll_public:_void___cdecl_CATMetaClass::SetAuth_int____ptr64
mov ecx, 1
mov r13, rbp
mov r12d, 2
test ecx, ecx
je 0x1800a52f5
cmp dword [0x1802a2f50], ebp
jne 0x1800a5200
lea ecx, [r12 + 0x2e]
call fcn.1801a1ce0
mov rcx, rax
test rax, rax
je 0x1800a556a
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rbx
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 0x20], eax
mov qword [rcx + 0x18], r14
mov rax, qword [0x1802a2f58]
mov qword [rcx + 0x28], rax
mov qword [0x1802a2f58], rcx
jmp 0x1800a556a
cmp byte [rsi + 0x36], bpl
je 0x1800a5213
mov edx, 1
mov rcx, rsi
call sym.JS0GROUP.dll_public:_void___cdecl_CATMetaClass::SetAuth_int____ptr64
mov rcx, qword [rsi + 0x40]
call fcn.1800a4800
mov r13, rax
test rax, rax
je 0x1800a52e6
cmp qword [0x180271ec0], rbp
mov dword [rsp + 0xc0], 1
jne 0x1800a5285
lea rcx, str.JS0GROUP
call qword [0x1801a58c0]
test rax, rax
je 0x1800a5285
cmp word [rax + 0x24], bp
jne 0x1800a5285
cmp word [rax + 0x26], bp
jne 0x1800a5285
movsxd rcx, dword [rax + 0x3c]
cmp dword [rcx + rax + 0xb0], ebp
je 0x1800a5285
cmp dword [rcx + rax + 0xb4], 0x1000
jb 0x1800a5285
lea rdx, [0x180271ec0]
mov ecx, 4
call sym.JS0GROUP.dll_private:_static_void___cdecl_CATLM::GetCATLM_int__struct_CATLM::CATLMServices____ptr64____ptr64_
mov rax, qword [0x180271ec0]
lea r9, [rsp + 0xc0]
xor r8d, r8d
xor edx, edx
mov rcx, r13
call qword [rax + 0x148]
mov ebx, dword [rsp + 0xc0]
mov edi, eax
mov eax, dword [0x180270da4]
xor ebx, 0xab
mov dword [rsp + 0xc0], ebx
cmp eax, 0xffffffff
jne 0x1800a52cf
call qword [0x1801a58c8]
mov dword [0x180270da4], eax
cmp ebx, eax
je 0x1800a52d5
call rbp
test edi, edi
mov edx, ebp
mov rdi, qword [rsp + 0xc8]
sete dl
jmp 0x1800a52e8
mov edx, ebp
mov rcx, rsi
call sym.JS0GROUP.dll_public:_void___cdecl_CATMetaClass::SetAuth_int____ptr64
movsx r12d, byte [rsi + 0x35]
mov edx, r12d
mov qword [rsp + 0x78], r15
mov rcx, rdi
call sym.JS0GROUP.dll_public:_void___cdecl_CATMetaClass::SetAuth_int____ptr64
mov rax, qword gs:[0x58]
mov edi, 2
mov ecx, dword [0x180328370]
movzx r15d, byte [rsi + 0x34]
mov edx, 0x10
mov rcx, qword [rax + rcx*8]
mov eax, dword [rdx + rcx]
cmp dword [0x1802a2f68], eax
jg 0x1800a5588
cmp r15b, 1
jne 0x1800a54d5
mov r14, qword [rsi + 8]
mov rbp, qword [rsi]
mov rbx, qword [rsp + 0xc8]
nop
cmp edi, 3
jne 0x1800a5366
mov rax, qword [0x1802a2f60]
cmp qword [rbx + 8], rax
je 0x1800a540f
mov rdx, qword [rbx + 8]
xor ecx, ecx
mov rax, qword [rsp + 0xd8]
test rbp, rbp
je 0x1800a53ba
mov qword [rsp + 0x58], r13
mov r9, rdx
mov rdx, qword [rbx]
mov r8, r14
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call sym.JS0GROUP.dll_struct_info_dic_const____ptr64___cdecl_AddDictionary_struct__GUID_const____ptr64__struct__GUID_const____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64__void____ptr64__char_const____ptr64__void____ptr64__int__int__int__char_const____ptr64_
jmp 0x1800a53f3
mov r9, qword [rsp + 0xd0]
xor r8d, r8d
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, r14
call sym.JS0GROUP.dll_struct_info_dic_const____ptr64___cdecl_AddDictionary_char_const____ptr64__char_const____ptr64__char_const____ptr64__struct_IUnknown____ptr64____cdecl___class_CATBaseUnknown_const____ptr64__class_CATBaseUnknown_const____ptr64___char_const____ptr64__int____cdecl___class_CATBaseUnknown_const____ptr64__struct__GUID_const____ptr64___struct_info_dic____ptr64__int__int__int__char_const____ptr64__char_const____ptr64_
cmp dword [rsp + 0xe0], 0
je 0x1800a540f
mov rbx, qword [rbx + 0x18]
mov edi, 3
test rbx, rbx
jne 0x1800a5350
mov r14, qword [rsp + 0xd8]
cmp r15b, 5
jne 0x1800a5565
mov rcx, rsi
call sym.JS0GROUP.dll_public:_class_CATMetaClass_const____ptr64____ptr64___cdecl_CATMetaClass::GetListOfSupportedImplementation_void_const___ptr64
mov qword [rsp + 0x60], rax
test rax, rax
je 0x1800a5565
mov rdx, qword [rax]
xor r8d, r8d
cmp byte [rsi + 0x36], 1
mov ebp, r8d
sete bpl
test rdx, rdx
je 0x1800a5565
mov r15d, dword [rsp + 0xe0]
mov qword [rsp + 0xc0], r8
mov rsi, qword [rdx + 8]
mov ecx, 2
mov rdi, qword [rdx]
mov rbx, qword [rsp + 0xc8]
cmp ecx, 3
jne 0x1800a548b
mov rax, qword [0x1802a2f60]
cmp qword [rbx + 8], rax
je 0x1800a5540
mov rdx, qword [rbx + 8]
test rdi, rdi
je 0x1800a54e7
mov rax, qword [rsp + 0xd0]
mov r9, rdx
mov rdx, qword [rbx]
mov qword [rsp + 0x58], r13
mov dword [rsp + 0x50], r12d
mov dword [rsp + 0x48], ebp
mov dword [rsp + 0x40], ecx
mov rcx, rdi
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov r8, rsi
call sym.JS0GROUP.dll_struct_info_dic_const____ptr64___cdecl_AddDictionary_struct__GUID_const____ptr64__struct__GUID_const____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64__void____ptr64__char_const____ptr64__void____ptr64__int__int__int__char_const____ptr64_
jmp 0x1800a5520
lea eax, [r15 - 2]
cmp al, dil
jbe 0x1800a5421
jmp 0x1800a5417
mov r9, qword [rsp + 0xd0]
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0x38], ecx
mov rcx, rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r8
xor r8d, r8d
call sym.JS0GROUP.dll_struct_info_dic_const____ptr64___cdecl_AddDictionary_char_const____ptr64__char_const____ptr64__char_const____ptr64__struct_IUnknown____ptr64____cdecl___class_CATBaseUnknown_const____ptr64__class_CATBaseUnknown_const____ptr64___char_const____ptr64__int____cdecl___class_CATBaseUnknown_const____ptr64__struct__GUID_const____ptr64___struct_info_dic____ptr64__int__int__int__char_const____ptr64__char_const____ptr64_
test r15d, r15d
je 0x1800a553d
mov rbx, qword [rbx + 0x18]
mov ecx, 3
lea r8d, [rcx - 3]
test rbx, rbx
jne 0x1800a5475
jmp 0x1800a5540
xor r8d, r8d
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0xc0], rax
mov rdx, qword [rcx + rax*8]
test rdx, rdx
jne 0x1800a5461
mov r15, qword [rsp + 0x78]
mov r12, qword [rsp + 0x88]
mov r13, qword [rsp + 0x80]
add rsp, 0x90
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rcx, [0x1802a2f68]
call fcn.1801a2300
cmp dword [0x1802a2f68], 0xffffffff
jne 0x1800a5336
lea rcx, str.CATBaseUnknown
call fcn.1800a4800
lea rcx, [0x1802a2f68]
mov qword [0x1802a2f60], rax
call fcn.1801a22a0
jmp 0x1800a5336