Function at 0x18003be20
Capabilities:
Create thread

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa00
mov qword [rsp + 0x1c8], 0xfffffffffffffffe
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rsi
mov rax, qword [0x1800a7b78]
xor rax, rsp
mov qword [rsp + 0x9f0], rax
mov r13d, r8d
mov r12, rdx
mov rsi, rcx
xor edi, edi
mov qword [r11 - 0x960], rdi
mov qword [r11 - 0x958], rdi
mov rcx, qword [r11 - 0x958]
mov qword [r11 - 0x958], rdi
test rcx, rcx
je 0x18003be8b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
lea rcx, [rsp + 0xd0]
call qword [0x1800a9408]
mov dword [rsp + 0xc0], eax
bt eax, 0x1f
jb 0x18003bf6b
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x18003bf6b
mov qword [rsp + 0x1b8], rcx
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x100], rdi
lea r8, [0x1800870c0]
lea rdx, [rsp + 0x1b8]
lea rcx, [rsp + 0x100]
call fcn.1800535c0
nop
bt dword [rsp + 0xc0], 0x1f
jb 0x18003bf57
cmp qword [rsp + 0x100], 0
je 0x18003bf57
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], rdi
test rcx, rcx
je 0x18003bf31
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rbx]
lea r9, [rsp + 0xc8]
lea r8, [0x1800870a0]
lea rdx, str._idm_mozilla_cc_helper5_1
mov rcx, rbx
call qword [rax + 0x20]
mov dword [rsp + 0xc0], eax
lea rcx, [rsp + 0x100]
call fcn.180053510
mov eax, dword [rsp + 0xc0]
bt eax, 0x1f
jb 0x18003ca8c
cmp qword [rsp + 0xc8], 0
je 0x18003ca8c
mov qword [rsp + 0xf0], rdi
lea r8, [0x180087080]
mov rdx, rsi
lea rcx, [rsp + 0xf0]
call fcn.180053570
nop
cmp qword [rsp + 0xf0], 0
jne 0x18003bfe2
lea rcx, [rsp + 0xf0]
call fcn.180053510
nop
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
mov eax, 0x80004001
jmp 0x18003cab3
lea rcx, [rsp + 0x1d0]
call fcn.18001bbe0
nop
movzx eax, byte [rsp + 0x1f0]
mov ecx, 1
test r13d, r13d
cmovne eax, ecx
mov byte [rsp + 0x1f0], al
lea rcx, [rsp + 0x178]
call qword [0x1800a9468]
nop
mov qword [rsp + 0x118], rdi
mov dword [rsp + 0x110], edi
mov qword [rsp + 0xe8], rdi
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0xe8], rdi
test rcx, rcx
je 0x18003c053
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rbx]
lea r8, [rsp + 0xe8]
mov rdx, qword [rsp + 0xf0]
mov rcx, rbx
call qword [rax + 0xb0]
mov dword [rsp + 0xc0], eax
bt eax, 0x1f
jb 0x18003c199
mov rdx, qword [rsp + 0xe8]
test rdx, rdx
je 0x18003c199
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rcx]
lea r8, [rsp + 0x110]
call qword [rax + 0xa8]
mov dword [rsp + 0xc0], eax
bt eax, 0x1f
jb 0x18003c199
mov ebx, edi
mov dword [rsp + 0x120], ebx
nop word [rax + rax]
cmp ebx, dword [rsp + 0x110]
jae 0x18003c199
mov qword [rsp + 0xf8], rdi
mov rsi, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xf8]
mov qword [rsp + 0xf8], rdi
test rcx, rcx
je 0x18003c108
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rsi]
lea r9, [rsp + 0xf8]
mov r8d, ebx
mov rdx, qword [rsp + 0xe8]
mov rcx, rsi
call qword [rax + 0xb8]
mov dword [rsp + 0xc0], eax
bt eax, 0x1f
jb 0x18003c17e
mov rdx, qword [rsp + 0xf8]
test rdx, rdx
je 0x18003c17e
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
lea rax, [rsp + 0x118]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x178]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1d0]
mov r8, r12
mov rcx, qword [rsp + 0xc8]
call fcn.1800227d0
nop
lea rcx, [rsp + 0xf8]
call fcn.180053510
inc ebx
mov dword [rsp + 0x120], ebx
jmp 0x18003c0d0
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 1
lea rax, [rsp + 0x118]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x178]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1d0]
mov r8, r12
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xc8]
call fcn.1800227d0
cmp dword [rsp + 0x1e8], 0
jne 0x18003c2c5
movzx eax, byte [0x1800a98e8]
test al, al
jne 0x18003c208
lea rcx, [0x1800a9600]
call fcn.180006570
mov al, byte [0x1800a98e8]
mov rbx, qword [0x1800a9650]
test rbx, rbx
je 0x18003c21d
cmp dword [0x1800a9658], 0
jne 0x18003c224
lea rbx, [0x1800a965c]
test al, al
jne 0x18003c234
lea rcx, [0x1800a9600]
call fcn.180006570
mov rdx, qword [0x1800a9680]
test rdx, rdx
je 0x18003c249
cmp dword [0x1800a9688], 0
jne 0x18003c250
lea rdx, [0x1800a968c]
mov dword [rsp + 0x20], 0x50030
lea r9, str.Download_with_IDM
mov r8, rbx
xor ecx, ecx
call fcn.18001fcf0
nop
lea rcx, [rsp + 0xe8]
call fcn.180053510
nop
lea rcx, [rsp + 0x178]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x1d0]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xf0]
call fcn.180053510
nop
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
xor eax, eax
jmp 0x18003cab3
mov qword [rsp + 0xe0], rdi
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x18003c39d
mov qword [rsp + 0x198], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x108], rdi
lea r8, [0x1800870c0]
lea rdx, [rsp + 0x198]
lea rcx, [rsp + 0x108]
call fcn.1800535c0
nop
bt dword [rsp + 0xc0], 0x1f
jb 0x18003c390
cmp qword [rsp + 0x108], 0
je 0x18003c390
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 0xe0], rdi
test rcx, rcx
je 0x18003c354
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rax, qword [rbx]
lea r9, [rsp + 0xe0]
lea r8, [0x1800886c8]
lea rdx, str._mozilla.org_cookiemanager_1
mov rcx, rbx
call qword [rax + 0x20]
mov dword [rsp + 0xc0], eax
bt eax, 0x1f
jae 0x18003c390
xor edx, edx
lea rcx, [rsp + 0xe0]
call fcn.180053530
nop
lea rcx, [rsp + 0x108]
call fcn.180053510
cmp dword [rsp + 0x1e8], 1
jne 0x18003c56d
lea rcx, [rsp + 0x198]
call qword [0x1800a9468]
nop
lea r8, [rsp + 0x198]
mov rdx, qword [rsp + 0x1d8]
mov rdx, qword [rdx]
mov rcx, qword [rsp + 0xe0]
call fcn.18002e540
mov ebx, eax
lea rcx, [rsp + 0x128]
call qword [0x1800a9468]
nop
lea rcx, [rsp + 0x158]
call qword [0x1800a9468]
nop
lea r9, [rsp + 0x158]
lea r8, [rsp + 0x128]
mov rdx, qword [rsp + 0x1d8]
mov rdx, qword [rdx]
lea rcx, [0x1800aa7f0]
call fcn.18004df30
test ebx, ebx
je 0x18003c448
xor r8d, r8d
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x198]
call qword [0x1800a9480]
mov rsi, qword [rsp + 0x108]
jmp 0x18003c44b
mov rsi, rdi
mov r13, qword [0x1800a7878]
test r13, r13
je 0x18003c460
cmp dword [0x1800a7880], 0
jne 0x18003c467
lea r13, [0x1800a7884]
xor r8d, r8d
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x158]
call qword [0x1800a9480]
mov rbx, qword [rsp + 0x100]
xor r8d, r8d
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x128]
call qword [0x1800a9480]
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xa8], rdi
mov dword [rsp + 0xa0], edi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x90], rdi
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x78], 4
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x60], edi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8, qword [rsp + 0xf8]
mov rdx, rsi
mov rcx, qword [rsp + 0x1d8]
mov rcx, qword [rcx]
call fcn.180033910
nop
lea rcx, [rsp + 0x158]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x128]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x198]
call qword [0x1800a9478]
jmp 0x18003ca25
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea r11, [rsp + 0x100]
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 0x18003c5ca
movsxd r9, eax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
lea r8, [0x180030760]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x18003ca1e
mov dword [rsp + 0x12c], edi
mov eax, dword [rsp + 0x1e8]
mov dword [rsp + 0x128], eax
mov dword [rsp + 0x134], edi
mov dword [rsp + 0x130], 4
mov ecx, 8
lea r8, [rsp + 0x128]
lea edx, [rcx - 6]
call qword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov rbx, rax
mov qword [rsp + 0x108], rax
test rax, rax
jne 0x18003c683
lea rcx, [rsp + 0xe0]
call fcn.180053510
nop
lea rcx, [rsp + 0xe8]
call fcn.180053510
nop
lea rcx, [rsp + 0x178]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x1d0]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xf0]
call fcn.180053510
nop
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003cab3
movsxd rcx, dword [rsp + 0x1e8]
mov eax, 8
mul rcx
mov r14, 0xffffffffffffffff
cmovo rax, r14
mov rcx, rax
call fcn.180058e74
mov r12, rax
movsxd rcx, dword [rsp + 0x1e8]
mov eax, 8
mul rcx
cmovo rax, r14
mov rcx, rax
call fcn.180058e74
mov rsi, rax
test rax, rax
jne 0x18003c754
test r12, r12
je 0x18003c6de
mov rcx, r12
call fcn.180058dfc
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rsp + 0xe0]
call fcn.180053510
nop
lea rcx, [rsp + 0xe8]
call fcn.180053510
nop
lea rcx, [rsp + 0x178]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x1d0]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xf0]
call fcn.180053510
nop
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003cab3
mov r15, rdi
mov qword [rsp + 0x150], rdi
cmp dword [0x1800a7880], r15d
je 0x18003c7e4
lea r13, [0x1800a7884]
mov r8, r13
mov rax, qword [0x1800a7878]
test rax, rax
cmovne r8, rax
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, r14d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
test eax, eax
je 0x18003c7e4
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov r15, rax
mov qword [rsp + 0x150], rax
test rax, rax
je 0x18003c7e4
mov r8, qword [0x1800a7878]
test r8, r8
je 0x18003c7cb
cmp dword [0x1800a7880], 0
jne 0x18003c7ce
mov r8, r13
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov r9d, r14d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [rsp + 0xd8], edi
mov ebx, edi
mov dword [rsp + 0xd8], ebx
nop word [rax + rax]
cmp ebx, dword [rsp + 0x1e8]
jge 0x18003c8c5
movsxd r13, ebx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, r14d
mov r8, qword [rsp + 0x1d8]
mov r8, qword [r8 + r13*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r14d, eax
test eax, eax
je 0x18003c8ad
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov qword [rsi + r13*8], rax
test rax, rax
je 0x18003c8b3
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rax
or r14, 0xffffffffffffffff
mov r9d, r14d
mov r8, qword [rsp + 0x1d8]
mov r8, qword [r8 + r13*8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
mov r9, qword [rsp + 0x1d8]
mov r9, qword [r9 + r13*8]
mov r8, qword [rsi + r13*8]
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x108]
call fcn.18002ec90
jmp 0x18003c8b7
or r14, 0xffffffffffffffff
jmp 0x18003c8b7
or r14, 0xffffffffffffffff
inc ebx
mov dword [rsp + 0xd8], ebx
jmp 0x18003c800
mov rbx, rdi
mov qword [rsp + 0x148], rbx
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov r9d, r14d
mov r14, qword [rsp + 0x118]
mov r8, r14
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r13d, eax
test eax, eax
je 0x18003c92d
mov edx, eax
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov rbx, rax
mov qword [rsp + 0x148], rax
test rax, rax
je 0x18003c92d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r14
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [rsp + 0x158]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
mov r11d, 0x2008
mov word [rsp + 0x158], r11w
mov r13, qword [rsp + 0x108]
mov qword [rsp + 0x160], r13
mov rcx, qword [rsp + 0x100]
mov rax, qword [rcx]
lea r8, [rsp + 0x158]
mov rdx, rbx
call qword [rax + 0x28]
test rbx, rbx
je 0x18003c981
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r15, r15
je 0x18003c98f
mov rcx, r15
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r12, r12
je 0x18003c9d0
mov ebx, edi
mov dword [rsp + 0xd8], ebx
nop dword [rax]
cmp ebx, dword [rsp + 0x1e8]
jge 0x18003c9c8
movsxd rcx, ebx
cmp qword [r12 + rcx*8], 0
je 0x18003c9bd
mov rcx, qword [r12 + rcx*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
inc ebx
mov dword [rsp + 0xd8], ebx
jmp 0x18003c9a0
mov rcx, r12
call fcn.180058dfc
mov dword [rsp + 0xd8], edi
cmp edi, dword [rsp + 0x1e8]
jge 0x18003c9ff
movsxd rcx, edi
cmp qword [rsi + rcx*8], 0
je 0x18003c9f4
mov rcx, qword [rsi + rcx*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
inc edi
mov dword [rsp + 0xd8], edi
jmp 0x18003c9d7
mov rcx, rsi
call fcn.180058dfc
mov rcx, r13
call qword [sym.imp.OLEAUT32.dll_SafeArrayGetDim]
mov rcx, qword [rsp + 0x100]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
call qword [sym.imp.ole32.dll_CoUninitialize]
nop
lea rcx, [rsp + 0xe0]
call fcn.180053510
nop
lea rcx, [rsp + 0xe8]
call fcn.180053510
nop
lea rcx, [rsp + 0x178]
call qword [0x1800a9478]
nop
lea rcx, [rsp + 0x1d0]
call fcn.18001bc50
nop
lea rcx, [rsp + 0xf0]
call fcn.180053510
nop
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
nop
xor eax, eax
jmp 0x18003cab3
lea rcx, [rsp + 0xd0]
call fcn.180053510
nop
lea rcx, [rsp + 0xc8]
call fcn.180053510
mov eax, 0x80004005
jmp 0x18003cab3
mov rcx, qword [rsp + 0x9f0]
xor rcx, rsp
call fcn.1800590c0
lea r11, [rsp + 0xa00]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret