Function at 0x18003caf0
Capabilities:
Create thread
Load assembly via iassembly

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x950
mov qword [rsp + 0x110], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1800a7b78]
xor rax, rsp
mov qword [rsp + 0x940], rax
test rcx, rcx
jne 0x18003cb38
mov eax, 0x80004001
jmp 0x18003d522
xor ebx, ebx
mov qword [rsp + 0x58], rbx
lea r8, [0x180087080]
mov rdx, rcx
lea rcx, [rsp + 0x58]
call fcn.180053570
nop
cmp qword [rsp + 0x58], rbx
jne 0x18003cb6f
lea rcx, [rsp + 0x58]
call fcn.180053510
mov eax, 0x80004001
jmp 0x18003d522
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rbx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x50], rbx
test rcx, rcx
je 0x18003cb8e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
lea rcx, [rsp + 0x50]
call qword [0x1800a9408]
mov dword [rsp + 0x44], eax
bt eax, 0x1f
jb 0x18003cc41
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18003cc41
mov qword [rsp + 0xe8], rcx
lea rax, [rsp + 0x44]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x78], rbx
lea r8, [0x1800870c0]
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x78]
call fcn.1800535c0
nop
bt dword [rsp + 0x44], 0x1f
jb 0x18003cc33
cmp qword [rsp + 0x78], 0
je 0x18003cc33
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rbx
test rcx, rcx
je 0x18003cc13
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rdi]
lea r9, [rsp + 0x48]
lea r8, [0x1800870a0]
lea rdx, str._idm_mozilla_cc_helper5_1
mov rcx, rdi
call qword [rax + 0x20]
mov dword [rsp + 0x44], eax
lea rcx, [rsp + 0x78]
call fcn.180053510
mov eax, dword [rsp + 0x44]
bt eax, 0x1f
jb 0x18003d4f6
cmp qword [rsp + 0x48], 0
je 0x18003d4f6
lea rcx, [rsp + 0xb0]
call qword [0x1800a9468]
nop
lea rcx, [rsp + 0x120]
call fcn.18001bbe0
nop
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0x28], 1
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xb0]
lea r8, [rsp + 0x120]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
call fcn.18002ee50
mov qword [rsp + 0x60], rbx
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x60], rbx
test rcx, rcx
je 0x18003cccc
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rdi]
lea r8, [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov rcx, rdi
call qword [rax + 0xb0]
mov dword [rsp + 0x44], eax
bt eax, 0x1f
jb 0x18003cddd
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x18003cddd
mov dword [rsp + 0x70], ebx
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
call qword [rax + 0xa8]
mov dword [rsp + 0x44], eax
bt eax, 0x1f
jb 0x18003cddd
mov edi, ebx
mov dword [rsp + 0x98], ebx
nop dword [rax]
cmp edi, dword [rsp + 0x70]
jae 0x18003cddd
mov qword [rsp + 0x80], rbx
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x80], rbx
test rcx, rcx
je 0x18003cd62
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rsi]
lea r9, [rsp + 0x80]
mov r8d, edi
mov rdx, qword [rsp + 0x60]
mov rcx, rsi
call qword [rax + 0xb8]
mov dword [rsp + 0x44], eax
bt eax, 0x1f
jb 0x18003cdc2
mov rdx, qword [rsp + 0x80]
test rdx, rdx
je 0x18003cdc2
mov byte [rsp + 0x28], 0
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0xb0]
lea r8, [rsp + 0x120]
mov rcx, qword [rsp + 0x48]
call fcn.18002ee50
nop
lea rcx, [rsp + 0x80]
call fcn.180053510
inc edi
mov dword [rsp + 0x98], edi
jmp 0x18003cd30
cmp dword [rsp + 0x138], 0
jne 0x18003ceb9
movzx eax, byte [0x1800a98e8]
test al, al
jne 0x18003ce08
lea rcx, [0x1800a9600]
call fcn.180006570
mov al, byte [0x1800a98e8]
mov rbx, qword [0x1800a9668]
test rbx, rbx
je 0x18003ce1d
cmp dword [0x1800a9670], 0
jne 0x18003ce24
lea rbx, [0x1800a9674]
test al, al
jne 0x18003ce34
lea rcx, [0x1800a9600]
call fcn.180006570
mov rdx, qword [0x1800a9680]
test rdx, rdx
je 0x18003ce49
cmp dword [0x1800a9688], 0
jne 0x18003ce50
lea rdx, [0x1800a968c]
mov dword [rsp + 0x20], 0x50030
lea r9, str.Download_All_with_IDM
mov r8, rbx
xor ecx, ecx
call fcn.18001fcf0
nop
lea rcx, [rsp + 0x60]
call fcn.180053510
nop
lea rcx, [rsp + 0x120]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xb0]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x50]
call fcn.180053510
nop
lea rcx, [rsp + 0x48]
call fcn.180053510
nop
lea rcx, [rsp + 0x58]
call fcn.180053510
xor eax, eax
jmp 0x18003d522
mov qword [rsp + 0x68], rbx
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x68], rbx
test rcx, rcx
je 0x18003ced8
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rdi]
lea r9, [rsp + 0x68]
lea r8, [0x1800886c8]
lea rdx, str._mozilla.org_cookiemanager_1
mov rcx, rdi
call qword [rax + 0x20]
mov dword [rsp + 0x44], eax
bt eax, 0x1f
jae 0x18003cf0a
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.180053530
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea r11, [rsp + 0xa0]
mov qword [rsp + 0x20], r11
lea r9, [0x180088588]
xor edx, edx
lea r8d, [rdx + 4]
lea rcx, [0x1800885a8]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
je 0x18003cf64
movsxd r9, eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
lea r8, [0x180030760]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x18003d497
mov dword [rsp + 0xd4], ebx
mov eax, dword [rsp + 0x138]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xdc], ebx
mov dword [rsp + 0xd8], 4
mov ecx, 8
lea r8, [rsp + 0xd0]
lea edx, [rcx - 6]
call qword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov rdi, rax
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x18003d00b
lea rcx, [rsp + 0x68]
call fcn.180053510
nop
lea rcx, [rsp + 0x60]
call fcn.180053510
nop
lea rcx, [rsp + 0x120]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xb0]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x50]
call fcn.180053510
nop
lea rcx, [rsp + 0x48]
call fcn.180053510
nop
lea rcx, [rsp + 0x58]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003d522
movsxd rcx, dword [rsp + 0x138]
mov eax, 8
mul rcx
mov r12, 0xffffffffffffffff
cmovo rax, r12
mov rcx, rax
call fcn.180058e74
mov r15, rax
movsxd rcx, dword [rsp + 0x138]
mov eax, 8
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.180058e74
mov rsi, rax
movsxd rcx, dword [rsp + 0x138]
mov eax, 8
mul rcx
cmovo rax, r12
mov rcx, rax
call fcn.180058e74
mov r13, rax
test rax, rax
jne 0x18003d0f9
test r15, r15
je 0x18003d085
mov rcx, r15
call fcn.180058dfc
test rsi, rsi
je 0x18003d092
mov rcx, rsi
call fcn.180058dfc
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rsp + 0x68]
call fcn.180053510
nop
lea rcx, [rsp + 0x60]
call fcn.180053510
nop
lea rcx, [rsp + 0x120]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xb0]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x50]
call fcn.180053510
nop
lea rcx, [rsp + 0x48]
call fcn.180053510
nop
lea rcx, [rsp + 0x58]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003d522
mov r14, rbx
mov qword [rsp + 0x88], rbx
cmp dword [0x1800a7880], r14d
je 0x18003d18a
lea r8, [0x1800a7884]
mov rax, qword [0x1800a7878]
test rax, rax
cmovne r8, rax
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9d, r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, eax
test eax, eax
je 0x18003d18a
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov r14, rax
mov qword [rsp + 0x88], rax
test rax, rax
je 0x18003d18a
mov r8, qword [0x1800a7878]
test r8, r8
je 0x18003d16d
cmp dword [0x1800a7880], 0
jne 0x18003d174
lea r8, [0x1800a7884]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
mov r9d, r12d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [rsp + 0x40], ebx
mov r12d, ebx
mov dword [rsp + 0x40], ebx
nop word [rax + rax]
cmp r12d, dword [rsp + 0x138]
jge 0x18003d308
movsxd rdi, r12d
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, qword [rsp + 0x128]
mov r8, qword [r8 + rdi*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r14d, eax
test eax, eax
je 0x18003d2e9
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov qword [r13 + rdi*8], rax
test rax, rax
je 0x18003d2f3
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, qword [rsp + 0x128]
mov r8, qword [r8 + rdi*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test rsi, rsi
je 0x18003d2a8
mov qword [rsi + rdi*8], rbx
mov r8, qword [rsp + 0x130]
cmp qword [r8 + rdi*8], 0
je 0x18003d2a2
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, qword [r8 + rdi*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r14d, eax
test eax, eax
je 0x18003d2a2
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov qword [rsi + rdi*8], rax
test rax, rax
je 0x18003d2a2
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, qword [rsp + 0x130]
mov r8, qword [r8 + rdi*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x18003d2a2
mov rcx, qword [rsi + rdi*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rsi + rdi*8], rbx
mov rax, qword [rsi + rdi*8]
jmp 0x18003d2ab
mov rax, rbx
mov qword [rsp + 0x38], r15
mov r14, qword [rsp + 0x88]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x128]
mov r9, qword [r9 + rdi*8]
mov r8, qword [r13 + rdi*8]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
call fcn.18002ec90
jmp 0x18003d2fb
mov r14, qword [rsp + 0x88]
jmp 0x18003d2fb
mov r14, qword [rsp + 0x88]
inc r12d
mov dword [rsp + 0x40], r12d
jmp 0x18003d1a0
mov rdi, rbx
mov qword [rsp + 0xa8], rbx
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, qword [rsp + 0x90]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r12d, eax
test eax, eax
je 0x18003d373
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov rdi, rax
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x18003d373
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, qword [rsp + 0x90]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
mov r11d, 0x2008
mov word [rsp + 0xf8], r11w
mov r12, qword [rsp + 0x78]
mov qword [rsp + 0x100], r12
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rcx]
lea r8, [rsp + 0xf8]
mov rdx, rdi
call qword [rax + 0x28]
test rdi, rdi
je 0x18003d3c4
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r14, r14
je 0x18003d3d2
mov rcx, r14
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r15, r15
je 0x18003d40d
mov edi, ebx
mov dword [rsp + 0x40], ebx
nop dword [rax]
cmp edi, dword [rsp + 0x138]
jge 0x18003d405
movsxd rcx, edi
cmp qword [r15 + rcx*8], 0
je 0x18003d3fd
mov rcx, qword [r15 + rcx*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
inc edi
mov dword [rsp + 0x40], edi
jmp 0x18003d3e0
mov rcx, r15
call fcn.180058dfc
test rsi, rsi
je 0x18003d44d
mov edi, ebx
mov dword [rsp + 0x40], ebx
nop dword [rax + rax]
cmp edi, dword [rsp + 0x138]
jge 0x18003d445
movsxd rcx, edi
cmp qword [rsi + rcx*8], 0
je 0x18003d43d
mov rcx, qword [rsi + rcx*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
inc edi
mov dword [rsp + 0x40], edi
jmp 0x18003d420
mov rcx, rsi
call fcn.180058dfc
mov dword [rsp + 0x40], ebx
cmp ebx, dword [rsp + 0x138]
jge 0x18003d478
movsxd rcx, ebx
cmp qword [r13 + rcx*8], 0
je 0x18003d470
mov rcx, qword [r13 + rcx*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
inc ebx
mov dword [rsp + 0x40], ebx
jmp 0x18003d451
mov rcx, r13
call fcn.180058dfc
mov rcx, r12
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
call qword [sym.imp.ole32.dll_CoUninitialize]
nop
lea rcx, [rsp + 0x68]
call fcn.180053510
nop
lea rcx, [rsp + 0x60]
call fcn.180053510
nop
lea rcx, [rsp + 0x120]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xb0]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x50]
call fcn.180053510
nop
lea rcx, [rsp + 0x48]
call fcn.180053510
nop
lea rcx, [rsp + 0x58]
call fcn.180053510
nop
xor eax, eax
jmp 0x18003d522
lea rcx, [rsp + 0x50]
call fcn.180053510
nop
lea rcx, [rsp + 0x48]
call fcn.180053510
nop
lea rcx, [rsp + 0x58]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003d522
mov rcx, qword [rsp + 0x940]
xor rcx, rsp
call fcn.1800590c0
lea r11, [rsp + 0x950]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret