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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x340
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x1801270d0]
xor rax, rsp
mov qword [rsp + 0x330], rax
mov r15, r8
mov rsi, rdx
mov rdi, rcx
xor ebx, ebx
test byte [r8 + 0x70], 0x10
je 0x180052c46
cmp qword [rdx + 8], rbx
je 0x180052c51
mov rax, qword [rdx + 8]
mov qword [r8 + 0x88], rax
movzx edx, byte [rdx + 0x24]
mov byte [rsp + 0x30], dl
mov r13d, ebx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x38], ebx
movzx ecx, dl
dec ecx
je 0x180053472
sub ecx, 0x17
je case.0x180052db1.3
sub ecx, 9
je 0x180052d20
cmp ecx, 0xde
je 0x180052ceb
cmp byte [r8 + 0x74], 0
jne 0x180052d20
mov byte [rsp + 0x58], 0x80
movzx eax, byte [rsi + 0x2c]
mov byte [rsp + 0x59], al
movzx eax, word [rsi + 0x34]
mov word [rsp + 0x5a], ax
mov eax, dword [rsi + 0x3c]
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x60], rbx
xor eax, eax
mov qword [rsp + 0x70], rax
mov r9, r8
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x20], 1
mov rax, qword [rdi]
mov r8d, 0x20
lea rdx, [rsp + 0x58]
mov rcx, rdi
call qword [rax + VariantCopy]
jmp case.0x180052db1.3
mov byte [rsp + 0x30], 0x18
mov rax, qword [rdi]
mov ecx, 2
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], 1
mov r9, r8
lea r8d, [rcx - 1]
lea rdx, [rsp + 0x30]
mov rcx, rdi
call qword [rax + VariantCopy]
jmp case.0x180052db1.3
movzx eax, dl
mov rcx, qword [rdi + rax*8 + 0x758]
test rcx, rcx
je 0x180052d48
mov rax, qword [rcx]
mov r8, r15
mov rdx, rsi
call qword [rax + VariantCopy]
mov r13d, eax
mov dword [rsp + 0x38], eax
jmp case.0x180052db1.3
test dl, dl
jne 0x180052d87
mov ecx, 0x2138
call fcn.18005f544
mov qword [rsp + 0x40], rax
test rax, rax
je 0x180052d70
mov rdx, rdi
mov rcx, rax
call fcn.180012bf0
mov r11, rax
jmp 0x180052d73
mov r11, rbx
movzx eax, byte [rsp + 0x30]
mov qword [rdi + rax*8 + 0x758], r11
movzx edx, byte [rsp + 0x30]
jmp 0x180052d20
movzx eax, dl
add eax, 0xfffffffe
cmp eax, 0x20
ja case.0x180052db1.3
cdqe
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x53588]
mov ecx, dword [rdx + rax*4 + 0x5354c]
add rcx, rdx
jmp rcx
mov rdx, r15
mov rcx, rdi
call fcn.18002b1d0
jmp case.0x180052db1.3
cmp dword [r15 + 0x70], 0x200
je 0x180052ded
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
lea rdx, [r15 + 0x4c]
mov r9d, 1
mov r8d, 0x400
call qword [rax + 0x30]
mov r15, rax
test r15, r15
je case.0x180052db1.3
mov byte [rsi + 0x24], 0x90
mov byte [r15 + 0x74], 1
mov rax, qword [rsi + 0x34]
mov qword [r15 + 0x88], rax
mov qword [r15 + 0x90], rdi
mov rax, qword [rdi]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], 1
mov r9, r15
mov r8d, 0x20
lea rdx, [rsi + 0x24]
mov rcx, rdi
call qword [rax + VariantCopy]
jmp case.0x180052db1.3
movzx eax, byte [rsi + 0x25]
cmp al, 0xb
jne 0x180053041
mov r13, rbx
movzx ecx, byte [rsi + 0x47]
dec ecx
je 0x180052f51
sub ecx, 2
je 0x180052ece
dec ecx
jne 0x180052f9f
xor eax, eax
mov qword [rsp + 0x7a], rax
mov qword [rsp + 0x82], rax
mov qword [rsp + 0x8a], rax
mov word [rsp + 0x92], ax
mov eax, 0x17
mov word [rsp + 0x78], ax
movzx eax, word [rsi + 0x58]
mov word [rsp + 0x7a], ax
mov rax, qword [rsi + 0x48]
mov qword [rsp + 0x80], rax
mov rax, qword [rsi + 0x50]
mov qword [rsp + 0x88], rax
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, 0x4000
lea rdx, [rsp + 0x78]
call qword [rax + 0x30]
mov r13, rax
jmp 0x180052f9f
movzx eax, byte [rsi + 0x48]
movzx ecx, word [rax + rsi + 0x49]
mov word [rsp + 0x32], cx
mov byte [rax + rsi + 0x49], r13b
mov qword [rsp + 0x40], rbx
mov ecx, 0x54afa001
call fcn.180051c90
lea rcx, [rsi + 0x49]
lea r9, [rsp + 0x40]
xor r8d, r8d
xor edx, edx
call rax
test eax, eax
jne 0x180052f9f
mov r12, qword [rsp + 0x40]
nop dword [rax]
test r12, r12
je 0x180052f9f
mov rax, qword [r12 + 0x20]
movzx ecx, word [rsp + 0x32]
mov word [rax + 2], cx
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, 0x4000
mov rdx, qword [r12 + 0x20]
call qword [rax + 0x30]
mov r13, rax
test rax, rax
jne 0x180052f9f
mov r12, qword [r12 + 0x28]
jmp 0x180052f10
xor eax, eax
mov qword [rsp + 0x5a], rax
mov qword [rsp + 0x62], rax
mov qword [rsp + 0x6a], rax
mov word [rsp + 0x72], ax
mov ecx, 2
mov word [rsp + 0x58], cx
mov eax, dword [rsi + 0x48]
mov dword [rsp + 0x5c], eax
movzx eax, word [rsi + 0x4c]
mov word [rsp + 0x5a], ax
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, 0x4000
lea rdx, [rsp + 0x58]
call qword [rax + 0x30]
mov r13, rax
mov byte [rsi + 0x25], 0x12
mov qword [rsi + 0x3c], r13
mov rax, qword [rdi]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], 1
mov r9, r15
mov r8d, 0x20
lea rdx, [rsi + 0x24]
mov rcx, rdi
call qword [rax + VariantCopy]
test eax, eax
je 0x180053020
test r13, r13
je 0x180053519
mov rax, qword [rsi + 8]
mov qword [r13 + 0x88], rax
mov qword [r13 + 0x90], rdi
mov qword [r13 + 0x98], r15
mov rax, qword [rsi + 0x34]
mov qword [r13 + 0xa0], rax
mov ecx, 0x54a4a00e
call fcn.1800061a0
mov ecx, 0x64
call rax
mov rdx, r13
mov rcx, qword [0x18012e938]
call fcn.1800487e0
jmp 0x180053519
test r13, r13
je 0x180053519
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, r13
call qword [rax + 0x18]
jmp 0x180053519
cmp al, 0xa
jne 0x1800530aa
mov r12, qword [rsi + 0x34]
mov rcx, r12
call fcn.180057c50
test eax, eax
je 0x180053074
lea rdx, [rsi + 0x44]
mov r9, r12
mov r8d, dword [rsi + 0x40]
mov rcx, qword [0x18012e938]
call fcn.1800063d0
test eax, eax
jne case.0x180052db1.3
xor eax, eax
mov qword [rsp + 0x59], rax
mov qword [rsp + 0x61], rax
mov qword [rsp + 0x69], rax
mov dword [rsp + 0x71], eax
mov word [rsp + 0x75], ax
mov byte [rsp + 0x77], al
mov word [rsp + 0x58], 0x100d
mov rax, qword [rsi + 0x3c]
mov qword [rsp + 0x70], r12
mov r9, r15
jmp 0x180052cc0
cmp al, 0x10
jne case.0x180052db1.3
mov rdi, qword [rsi + 0x34]
mov rcx, rdi
call fcn.180057c50
test eax, eax
je case.0x180052db1.3
cmp byte [rdi + 0x75], 0
je case.0x180052db1.3
mov rax, qword [rsi + 0x3c]
cmp qword [rdi + 0xa0], rax
jne case.0x180052db1.3
mov qword [rdi + 0xa0], rbx
mov rcx, qword [0x18012e938]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, rdi
call qword [rax + 0x18]
jmp case.0x180052db1.3
call fcn.18000cf10
mov ecx, 0x54a4a0f8
call fcn.1800061a0
lea rcx, [rsi + 0x28]
xor edx, edx
call rax
cmp eax, 0x1f
seta bl
call fcn.1800238d0
jmp 0x180053453
cmp dword [rsi + 0x20], 0x94
jbe 0x180053453
lea rcx, [rdi + 0x348]
lea rdx, [rsi + 0x25]
mov r8d, DllRegisterServer
call fcn.1800e7bc0
mov edx, 5
movabs r8, 0x27ae2ef28
lea rcx, [rsp + 0x98]
call fcn.18004e5b0
mov r11, rax
lea rax, [rdi + 0x378]
sub r11, rax
movzx edx, word [rax]
movzx ecx, word [rax + r11]
sub edx, ecx
jne 0x180053187
add rax, 2
test ecx, ecx
jne 0x180053173
test edx, edx
jne 0x180053195
or dword [rdi + 0x34c], 0x400
lea rcx, [rdi + 0x10]
lea r8, [rcx + 0x338]
mov dword [r8], 0x50000ee
xor edx, edx
mov r9d, DllRegisterServer
call fcn.1800529b0
test eax, eax
sete bl
jmp 0x180053453
lea r12, [rsi + 0x28]
mov ecx, 0x54a4a061
call fcn.1800061a0
xor edx, edx
lea ecx, [rdx + 2]
call rax
mov rsi, rax
mov dword [rsp + 0xf0], 0x238
mov ecx, 0x54a4a01a
call fcn.1800061a0
lea rdx, [rsp + 0xf0]
mov rcx, rsi
call rax
test eax, eax
je 0x18005323f
nop dword [rax]
mov ecx, 0x54a7a056
call fcn.180051c90
mov rdx, r12
lea rcx, [rsp + 0x11c]
call rax
test eax, eax
je 0x180053224
mov ebx, dword [rsp + 0xf8]
jmp 0x18005323f
mov ecx, 0x54a4a019
call fcn.1800061a0
lea rdx, [rsp + 0xf0]
mov rcx, rsi
call rax
test eax, eax
jne 0x180053200
mov ecx, 0x54a4a07b
call fcn.1800061a0
mov rcx, rsi
call rax
jmp 0x180053453
mov edx, 7
movabs r8, 0x3a363ab0b332a20
lea rcx, [rsp + 0xb8]
call fcn.18004e5b0
mov r12, rax
lea rax, [rsi + 0x28]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rbx
mov ecx, 0x54aba031
call fcn.180051c90
mov r9d, 0x2000000
xor r8d, r8d
xor edx, edx
mov rcx, r12
call rax
mov rbx, rax
test rax, rax
je 0x1800532cc
mov ecx, 0x54aba049
call fcn.180051c90
lea r8, [rsp + 0x40]
lea rdx, [0x180049030]
mov rcx, rbx
call rax
mov ecx, 0x54aba047
call fcn.180051c90
mov rcx, rbx
call rax
mov ebx, dword [rsp + 0x48]
jmp 0x180053453
lea rcx, [rsi + 0x28]
call fcn.180033800
mov ebx, eax
jmp 0x180053453
lea rcx, [rsi + 0x28]
call fcn.180017000
mov ebx, eax
jmp 0x180053453
mov ecx, 0x54aca013
call fcn.180051c90
lea r9, [rsp + 0x32]
xor r8d, r8d
mov dl, 1
lea ecx, [r8 + 0x13]
call rax
cmp dword [rsi + 0x40], 0xffffffff
jne 0x18005332b
mov ecx, 0x54aca068
call fcn.180051c90
mov ecx, 1
call rax
jmp 0x180053453
mov ecx, 0x54aba048
call fcn.180051c90
mov edx, 0x80000000
mov ecx, dword [rsi + 0x40]
call rax
mov ebx, eax
jmp 0x180053453
mov ecx, 0x54b7a0e9
call fcn.180051c90
xor r8d, r8d
mov dl, 1
movzx ecx, byte [rsi + 0x40]
call rax
mov ebx, eax
jmp 0x180053453
cmp dword [0x18012e308], 0
je case.0x180052db1.3
mov dword [0x18012e308], ebx
call fcn.18004e6c0
mov ebx, 1
jmp 0x180053453
lea rcx, [0x18012e308]
lea rdx, [rsi + 0x40]
mov r8d, 0x38
call fcn.1800e7bc0
call fcn.1800369e0
mov ebx, eax
jmp 0x180053453
mov edx, 6
movabs r8, 0x3636ba3439b68
lea rcx, [rsp + 0xa8]
call fcn.18004e5b0
mov rcx, rax
call fcn.1800447a0
mov r12, rax
mov qword [rsp + 0x20], rbx
mov edx, 0x10
movabs r9, 0x22b3b7b630b4a23c
movabs r8, 0x626aa243bb7b429a
lea rcx, [rsp + 0xc8]
call fcn.18004e5b0
mov rdx, rax
mov rcx, r12
call qword [0x18012e680]
mov r12, rax
test rax, rax
je 0x180053453
mov ecx, 0x54a1a06c
call fcn.180051c90
lea rdx, [rsi + 0x28]
lea r8, [rsp + 0x40]
xor ecx, ecx
call rax
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x180053453
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor ecx, ecx
lea r8d, [r9 + 0x50]
call r12
test eax, eax
sete bl
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov byte [rsp + 0x20], 0
mov r9d, ebx
mov r8b, 0x93
mov rdx, r15
mov rcx, qword [rdi + 0x738]
call fcn.180059fe0
jmp case.0x180052db1.3
cmp dword [rsi + 0x20], 0x20
jb case.0x180052db1.3
mov rax, qword [rdi + 0x5c4]
cmp qword [rsi + 0x3c], rax
jne case.0x180052db1.3
cmp dword [rsi + 0x28], 0x38676
jbe case.0x180052db1.3
test byte [rsi], 8
je case.0x180052db1.3
mov byte [r8 + 0x74], 1
xor ecx, ecx
call fcn.180011ae8
mov dword [rdi + 0x3d8], eax
test byte [r15 + 0x70], 0x10
je 0x1800534ed
xor ecx, ecx
call fcn.180011ae8
mov dword [rdi + 0x3a4], eax
mov rax, qword [rdi + 0x750]
test rax, rax
je 0x1800534d7
cmp byte [rax + 0x74], 0
jne 0x1800534de
mov qword [rdi + 0x750], r15
mov rdx, r15
mov rcx, qword [rdi + 0x860]
call fcn.18005d8a0
movzx eax, word [rsi + 0x26]
mov word [rdi + 0xf50], ax
lea rcx, [rdi + 0x10]
lea r8, [rcx + 0x338]
mov dword [r8], 0x50000ee
xor edx, edx
mov r9d, DllRegisterServer
call fcn.1800529b0
jmp case.0x180052db1.3
mov r13d, dword [rsp + 0x34]
mov eax, r13d
jmp 0x180053527
mov rcx, qword [rsp + 0x330]
xor rcx, rsp
call fcn.1800e7b90
add rsp, 0x340
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret