Function at 0x403030
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47212c
mov eax, dword fs:[0]
push eax
sub esp, 0x388
mov eax, dword [0x498068]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 0x2cc], ebx
mov byte [ebp - 0x2c1], bl
mov dword [ebp - 4], ebx
xor eax, eax
mov dword [ebp - 0x250], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x250], ebx
mov dword [ebp - 0x24c], 7
mov word [ebp - 0x260], ax
push 0x208
push eax
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 1
push eax
call fcn.00452a30
add esp, 0xc
lea eax, [ebp - 0x218]
push ebx
push 0x2b
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4030d0
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x260]
call fcn.00401a50
push 7
xor eax, eax
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
lea ecx, [ebp - 0x248]
push 0x484908
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
call fcn.00401a50
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x230]
call fcn.00401920
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x230]
call fcn.00427150
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 4
push ecx
mov ecx, eax
call fcn.00427430
push eax
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 5
call fcn.00401920
lea ecx, [ebp - 0x290]
call fcn.00427330
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 7
call fcn.00401850
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 8
call fcn.00401850
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 9
call fcn.00401850
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x234]
cmp edx, 8
jb 0x403206
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4031fc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a1d
push edx
push ecx
call fcn.004501a5
add esp, 8
xor eax, eax
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x230]
push 0x1b
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], eax
push str.QQProtectBinQQProtect.exe
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.00401a50
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0xf
push eax
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x290]
call fcn.00427150
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x4032bd
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4032b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a22
push edx
push ecx
call fcn.004501a5
add esp, 8
xor eax, eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0x11
call fcn.00401810
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40342d
cmp dword [0x49ad28], 0
jg 0x40338f
sub esp, 8
mov dword [ebp - 0x394], 0
lea ecx, [ebp - 0x38c]
call fcn.004235a0
mov dword [ebp - 0x2f0], str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
mov dword [ebp - 0x2ec], 0x1d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1d7
push str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
lea ecx, [ebp - 0x394]
mov dword [ebp - 0x2e8], eax
call fcn.00426000
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0x278]
cmp dword [ebp - 0x264], 8
lea ecx, [ebp - 0x38c]
mov ebx, 1
mov edx, str.qp_not_existed:
cmovae esi, dword [ebp - 0x278]
mov dword [ebp - 0x2cc], ebx
call fcn.00407b40
mov edx, esi
mov ecx, eax
call fcn.004263f0
mov dword [ebp - 4], 0x11
test bl, 1
je 0x4033a6
lea ecx, [ebp - 0x394]
call fcn.00425b00
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0xa
call fcn.00401850
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 1
call fcn.00401850
mov dword [ebp - 4], 0x17
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x40340b
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403401
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a27
push edx
push ecx
call fcn.004501a5
add esp, 8
xor eax, eax
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 7
mov word [ebp - 0x260], ax
jmp 0x4039f5
sub esp, 8
lea ecx, [ebp - 0x2e4]
call fcn.0042a5d0
push 0x40
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2d4], 0
call fcn.00450175
mov esi, eax
push esi
push 4
call fcn.004013c0
mov dword [eax], esi
lea eax, [esi + 4]
push eax
push 4
call fcn.004013c0
mov dword [eax], esi
lea eax, [esi + 8]
push eax
push 4
call fcn.004013c0
add esp, 0x1c
lea ecx, [ebp - 0x2e4]
mov dword [eax], esi
mov word [esi + 0xc], 0x101
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2d0], 1
call fcn.00401a00
mov eax, dword [eax]
push eax
push ecx
lea ecx, [ebp - 0x278]
call fcn.0043ad40
add esp, 8
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x230]
push 9
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
push str._irqpcore
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.004069a0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [ebp - 0x2e4]
call fcn.0042a320
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x21c]
cmp edx, 0x10
jb 0x40354b
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x403541
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a2c
push edx
push ecx
call fcn.004501a5
add esp, 8
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x248]
push 0xa
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
push str._fp_enable
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.004069a0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0x21
push eax
lea ecx, [ebp - 0x2e4]
call fcn.0042a320
mov byte [ebp - 4], 0x22
mov edx, dword [ebp - 0x234]
cmp edx, 0x10
jb 0x4035ff
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4035f5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a31
push edx
push ecx
call fcn.004501a5
add esp, 8
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x230]
push 2
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
push 0x48497c
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.004069a0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0x26
push eax
lea ecx, [ebp - 0x2e4]
call fcn.0042a320
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x21c]
cmp edx, 0x10
jb 0x4036b3
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4036a9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a36
push edx
push ecx
call fcn.004501a5
add esp, 8
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x2c8]
push eax
lea edx, [ebp - 0x240]
mov word [ebp - 0x23f], 0
lea ecx, [ebp - 0x2e4]
mov dword [ebp - 0x23c], 0
mov byte [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
mov byte [ebp - 0x240], 1
mov dword [ebp - 0x2c8], 0
call fcn.004245e0
add esp, 4
test al, al
je 0x40388d
mov esi, dword [ebp - 0x2c8]
push 0xea60
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4037e6
cmp dword [0x49ad28], 2
jg 0x4037bc
sub esp, 8
mov dword [ebp - 0x394], 2
lea ecx, [ebp - 0x38c]
call fcn.004235a0
mov dword [ebp - 0x2f0], str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
mov dword [ebp - 0x2ec], 0x1e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1e7
push str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
lea ecx, [ebp - 0x394]
mov dword [ebp - 0x2e8], eax
call fcn.00426000
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x38c]
mov ebx, 2
mov edx, str.install_qpcore_service_error_timeout_
mov dword [ebp - 0x2cc], ebx
call fcn.00407b40
mov dword [ebp - 4], 0x1b
test bl, 2
je 0x4037d3
lea ecx, [ebp - 0x394]
call fcn.00425b00
push 0
xor edx, edx
mov ecx, esi
call fcn.00424640
add esp, 4
jmp 0x403919
lea edx, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 0
mov ecx, esi
call fcn.00424680
mov esi, dword [ebp - 0x2c8]
test esi, esi
je 0x403919
cmp dword [0x49ad28], 2
jg 0x403888
sub esp, 8
mov dword [ebp - 0x394], 2
lea ecx, [ebp - 0x38c]
call fcn.004235a0
mov dword [ebp - 0x2f0], str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
mov dword [ebp - 0x2ec], 0x1f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1f1
push str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
lea ecx, [ebp - 0x394]
mov dword [ebp - 0x2e8], eax
call fcn.00426000
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x38c]
mov ebx, 4
mov edx, str.install_qpcore_service_error:
push esi
mov dword [ebp - 0x2cc], ebx
call fcn.00407b40
mov ecx, eax
call fcn.00405e10
test bl, 4
jmp 0x403905
cmp dword [0x49ad28], 2
jg 0x403902
sub esp, 8
mov dword [ebp - 0x394], 2
lea ecx, [ebp - 0x38c]
call fcn.004235a0
mov dword [ebp - 0x2f0], str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
mov dword [ebp - 0x2ec], 0x1f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x1f7
push str.d:devopsworkspacep_37d34ce895ed4865ac95061b653d796fmisc_setup3hummersetuputil_serviceqd_helper.cpp
lea ecx, [ebp - 0x394]
mov dword [ebp - 0x2e8], eax
call fcn.00426000
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x38c]
mov ebx, 8
mov edx, str.launch_process_failed__install_qpcore_service_error
mov dword [ebp - 0x2cc], ebx
call fcn.00407b40
test bl, 8
mov dword [ebp - 4], 0x1b
je 0x403919
lea ecx, [ebp - 0x394]
call fcn.00425b00
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2d8]
mov esi, dword [ebp - 0x2d8]
mov byte [ebp - 0x2c1], 1
push dword [esi + 4]
call fcn.0042a6f0
mov eax, dword [ebp - 0x2d8]
push 0x40
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x2d8]
mov dword [eax], esi
mov eax, dword [ebp - 0x2d8]
mov dword [eax + 8], esi
push dword [ebp - 0x2d8]
mov dword [ebp - 0x2d4], 0
call fcn.004501a5
add esp, 8
lea ecx, [ebp - 0x2e4]
call fcn.00419cb0
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], 0xa
call fcn.00401850
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 1
call fcn.00401850
mov dword [ebp - 4], 0x2e
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x4039d8
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4039ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403a3b
push edx
push ecx
call fcn.004501a5
add esp, 8
xor eax, eax
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 7
mov word [ebp - 0x260], ax
mov al, byte [ebp - 0x2c1]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00450164
mov esp, ebp
pop ebp
ret
call fcn.0045559f
call fcn.0045559f
call fcn.0045559f
call fcn.0045559f
call fcn.0045559f
call fcn.0045559f
call fcn.0045559f
int3