Function at 0x180024b80
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0x88
cmp dword [rcx + 0x20], 0
mov rbx, rcx
ja 0x180024ba7
mov eax, 1
add rsp, 0x88
pop rbx
pop rbp
ret
mov ecx, dword [rcx + 0x20]
lea rdx, str.CreateDecoder
mov rax, qword [rbx + 0x18]
dec ecx
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x70], r15
mov r15, qword [rax + rcx*8]
mov rcx, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [r15]
lea rdx, str.CreateEncoder
mov qword [r15 + 0x28], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [r15]
lea rdx, str.GetMethodProperty
mov qword [r15 + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
or r13, 0xffffffffffffffff
xor esi, esi
mov qword [r15 + 0x20], rax
test rax, rax
je 0x180024dd6
mov rcx, qword [r15]
lea rdx, str.GetNumberOfMethods
mov dword [rbp + 0x67], 1
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180024c53
lea rcx, [rbp + 0x67]
call rax
test eax, eax
jne 0x180024e9f
mov r14d, esi
cmp dword [rbp + 0x67], esi
jbe 0x180024dd6
nop
mov eax, dword [rbx + 0x20]
lea r8, [rbp - 0x19]
dec eax
mov dword [rbp + 3], r14d
mov dword [rbp - 1], eax
mov edx, 3
mov rax, qword [r15 + 0x20]
mov ecx, r14d
mov dword [rbp - 0x19], esi
mov qword [rbp - 0x11], rsi
mov byte [rbp + 7], sil
call rax
mov edi, eax
test eax, eax
jne 0x180024eeb
movzx eax, word [rbp - 0x19]
cmp ax, 8
jne 0x180024cd0
mov rcx, qword [rbp - 0x11]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
cmp eax, 0x10
jne 0x180024ed3
mov rax, qword [rbp - 0x11]
mov byte [rbp + 7], 1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xb], xmm0
cmp word [rbp - 0x19], si
je 0x180024cd9
lea rcx, [rbp - 0x19]
call fcn.180018c30
jmp 0x180024cd9
test ax, ax
jne 0x180024ed9
mov rax, qword [r15 + 0x20]
lea r8, [rbp - 0x19]
mov edx, 2
mov dword [rbp - 0x19], esi
mov ecx, r14d
mov qword [rbp - 0x11], rsi
mov byte [rbp + 8], sil
call rax
mov edi, eax
test eax, eax
jne 0x180024eeb
movzx eax, word [rbp - 0x19]
cmp ax, 8
jne 0x180024d3d
mov rcx, qword [rbp - 0x11]
call qword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
cmp eax, 0x10
jne 0x180024ed3
mov rax, qword [rbp - 0x11]
mov byte [rbp + 8], 1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1b], xmm0
cmp word [rbp - 0x19], si
je 0x180024d46
lea rcx, [rbp - 0x19]
call fcn.180018c30
jmp 0x180024d46
test ax, ax
jne 0x180024ed9
mov ecx, dword [rbx + 0x5c]
cmp dword [rbx + 0x58], ecx
jne 0x180024d9c
mov eax, ecx
lea r12d, [rcx + 1]
shr eax, 2
add r12d, eax
mov eax, 0x2c
mov ecx, r12d
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.180072d68
mov rdi, rax
mov eax, dword [rbx + 0x58]
test eax, eax
je 0x180024d8b
mov rdx, qword [rbx + 0x50]
mov rcx, rdi
imul r8, rax, 0x2c
call fcn.18008b7d0
mov rcx, qword [rbx + 0x50]
call fcn.18007294c
mov qword [rbx + 0x50], rdi
mov dword [rbx + 0x5c], r12d
mov eax, dword [rbx + 0x58]
inc r14d
movups xmm0, xmmword [rbp - 1]
movups xmm1, xmmword [rbp + 0xf]
imul rdx, rax, 0x2c
mov eax, dword [rbp + 0x27]
add rdx, qword [rbx + 0x50]
movups xmmword [rdx], xmm0
movsd xmm0, qword [rbp + 0x1f]
movups xmmword [rdx + 0x10], xmm1
movsd qword [rdx + 0x20], xmm0
mov dword [rdx + 0x28], eax
inc dword [rbx + 0x58]
cmp r14d, dword [rbp + 0x67]
jb 0x180024c60
mov rcx, qword [r15]
lea rdx, str.GetHashers
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180024e9d
lea rcx, [r15 + 0x40]
call rax
test eax, eax
jne 0x180024e9f
mov rcx, qword [r15 + 0x40]
test rcx, rcx
je 0x180024e9d
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r15d, eax
test eax, eax
je 0x180024e9d
nop dword [rax + rax]
mov ecx, dword [rbx + 0x20]
dec ecx
mov dword [rbp + 0x6b], esi
mov dword [rbp + 0x67], ecx
mov ecx, dword [rbx + 0x6c]
cmp dword [rbx + 0x68], ecx
jne 0x180024e84
mov eax, ecx
lea r14d, [rcx + 1]
shr eax, 2
add r14d, eax
mov eax, 8
mov ecx, r14d
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.180072d68
mov rdi, rax
mov eax, dword [rbx + 0x68]
test eax, eax
je 0x180024e73
mov rdx, qword [rbx + 0x60]
mov r8d, eax
shl r8, 3
mov rcx, rdi
call fcn.18008b7d0
mov rcx, qword [rbx + 0x60]
call fcn.18007294c
mov qword [rbx + 0x60], rdi
mov dword [rbx + 0x6c], r14d
mov edx, dword [rbx + 0x68]
inc esi
mov rcx, qword [rbx + 0x60]
mov rax, qword [rbp + 0x67]
mov qword [rcx + rdx*8], rax
inc dword [rbx + 0x68]
cmp esi, r15d
jb 0x180024e20
xor eax, eax
mov r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
ret
cmp word [rbp - 0x19], si
je 0x180024ee2
lea rcx, [rbp - 0x19]
call fcn.180018c30
mov edi, 0x80004005
mov eax, edi
jmp 0x180024e9f
cmp word [rbp - 0x19], si
je 0x180024efa
lea rcx, [rbp - 0x19]
call fcn.180018c30
mov eax, edi
jmp 0x180024e9f