Function at 0x43c510
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43ed93
mov eax, dword fs:[0]
push eax
sub esp, 0x888
mov eax, dword [0x44d1a4]
xor eax, ebp
mov dword [ebp - 0x20], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x854], ecx
lea ecx, [ebp - 0x260]
call fcn.00406440
mov dword [ebp - 4], 0
push 0x20019
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x260]
call fcn.00406150
test eax, eax
je 0x43c595
mov byte [ebp - 0x745], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x260]
call fcn.00406420
mov al, byte [ebp - 0x745]
jmp 0x43cc9a
xor eax, eax
mov word [ebp - 0x47c], ax
push 0x206
push 0
lea ecx, [ebp - 0x47a]
push ecx
call fcn.0041c880
add esp, 0xc
mov dword [ebp - 0x14], 0x104
xor edx, edx
mov word [ebp - 0x22c], dx
push 0x206
push 0
lea eax, [ebp - 0x22a]
push eax
call fcn.0041c880
add esp, 0xc
mov dword [ebp - 0x18], 0x104
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x258], 0x104
mov dword [ebp - 0x6bc], 0x104
lea ecx, [ebp - 0x6b4]
push ecx
lea edx, [ebp - 0x6b8]
push edx
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0x6d0]
push ecx
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x6bc]
push eax
lea ecx, [ebp - 0x258]
push ecx
lea edx, [ebp - 0x10]
push edx
push 0
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x260]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x43c652
cmp dword [ebp - 0x10], 0
jne 0x43c676
mov byte [ebp - 0x746], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x260]
call fcn.00406420
mov al, byte [ebp - 0x746]
jmp 0x43cc9a
push 0xa
push 0
mov ecx, dword [ebp + 8]
add ecx, 4
call fcn.004031f0
push eax
call fcn.00420078
add esp, 0xc
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x6d4], 0
jmp 0x43c6b5
mov eax, dword [ebp - 0x6d4]
add eax, 1
mov dword [ebp - 0x6d4], eax
mov ecx, dword [ebp - 0x6d4]
cmp ecx, dword [ebp - 0x10]
jae 0x43ca78
mov dword [ebp - 0x14], 0x104
lea edx, [ebp - 0x6b4]
push edx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x47c]
push ecx
mov edx, dword [ebp - 0x6d4]
push edx
lea ecx, [ebp - 0x260]
call fcn.00414a70
test eax, eax
jne 0x43ca73
mov eax, dword [ebp - 0x6b0]
mov dword [ebp - 0x6d8], eax
mov ecx, dword [ebp - 0x6b4]
mov dword [ebp - 0x6dc], ecx
mov edx, dword [ebp - 0x254]
sub edx, 0xb2d05e00
mov eax, dword [ebp - 0x250]
sbb eax, 0
mov dword [ebp - 0x85c], edx
mov dword [ebp - 0x858], eax
mov ecx, dword [ebp - 0x858]
cmp ecx, dword [ebp - 0x6d8]
ja 0x43ca73
jb 0x43c756
mov edx, dword [ebp - 0x85c]
cmp edx, dword [ebp - 0x6dc]
jae 0x43ca73
mov eax, dword [ebp - 0x254]
add eax, 0xb2d05e00
mov ecx, dword [ebp - 0x250]
adc ecx, 0
mov dword [ebp - 0x864], eax
mov dword [ebp - 0x860], ecx
mov edx, dword [ebp - 0x860]
cmp edx, dword [ebp - 0x6d8]
jb 0x43ca73
ja 0x43c79c
mov eax, dword [ebp - 0x864]
cmp eax, dword [ebp - 0x6dc]
jbe 0x43ca73
lea ecx, [ebp - 0x47c]
push ecx
mov ecx, dword [ebp - 0x854]
call fcn.0043bb10
movzx edx, al
test edx, edx
je 0x43ca73
lea ecx, [ebp - 0x6e4]
call fcn.00406440
mov byte [ebp - 4], 1
push 1
lea eax, [ebp - 0x47c]
push eax
lea ecx, [ebp - 0x260]
call fcn.00411e50
push eax
lea ecx, [ebp - 0x6e4]
call fcn.00406150
test eax, eax
je 0x43c800
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6e4]
call fcn.00406420
jmp 0x43c6a6
push 0x443ba0
lea ecx, [ebp - 0x6e4]
push ecx
lea edx, [ebp - 0x768]
push edx
mov ecx, dword [ebp - 0x854]
call fcn.0043b9e0
mov dword [ebp - 0x868], eax
mov eax, dword [ebp - 0x868]
mov dword [ebp - 0x86c], eax
mov byte [ebp - 4], 2
push 0x443bb8
push 0x443bbc
mov ecx, dword [ebp - 0x86c]
call fcn.00412a80
push eax
lea ecx, [ebp - 0x744]
call fcn.00402e30
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x768]
call fcn.00402ed0
lea ecx, [ebp - 0x744]
push ecx
mov ecx, dword [ebp - 0x854]
call fcn.0043b8b0
movzx edx, al
test edx, edx
jne 0x43c8dd
cmp dword [ebp + 0xc], 0
je 0x43c891
mov eax, dword [ebp + 0xc]
add eax, 4
mov dword [ebp - 0x870], eax
jmp 0x43c89b
mov dword [ebp - 0x870], 0
lea ecx, [ebp - 0x744]
test ecx, ecx
je 0x43c8b6
lea edx, [ebp - 0x744]
add edx, 4
mov dword [ebp - 0x874], edx
jmp 0x43c8c0
mov dword [ebp - 0x874], 0
mov eax, dword [ebp - 0x870]
push eax
mov ecx, dword [ebp - 0x874]
push ecx
call fcn.00414300
add esp, 8
movzx edx, al
test edx, edx
je 0x43c900
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x744]
call fcn.00402ed0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6e4]
call fcn.00406420
jmp 0x43c6a6
push 0x443bc0
lea eax, [ebp - 0x6e4]
push eax
lea ecx, [ebp - 0x788]
push ecx
mov ecx, dword [ebp - 0x854]
call fcn.0043b9e0
mov dword [ebp - 0x878], eax
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x87c], edx
mov byte [ebp - 4], 5
push 0x443bd8
push 0x443bdc
mov ecx, dword [ebp - 0x87c]
call fcn.00412a80
push eax
lea ecx, [ebp - 0x724]
call fcn.00402e30
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x788]
call fcn.00402ed0
push 0x443be0
push 0x443be8
lea ecx, [ebp - 0x724]
call fcn.00412a80
push 0x443bec
lea eax, [ebp - 0x6e4]
push eax
lea ecx, [ebp - 0x7a8]
push ecx
mov ecx, dword [ebp - 0x854]
call fcn.0043b9e0
mov dword [ebp - 0x880], eax
mov edx, dword [ebp - 0x880]
mov dword [ebp - 0x884], edx
mov byte [ebp - 4], 8
push 0x443c00
push 0x443c04
mov ecx, dword [ebp - 0x884]
call fcn.00412a80
push eax
lea ecx, [ebp - 0x704]
call fcn.00402e30
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x7a8]
call fcn.00402ed0
lea eax, [ebp - 0x704]
push eax
lea ecx, [ebp - 0x744]
push ecx
lea edx, [ebp - 0x724]
push edx
lea ecx, [ebp - 0x808]
call fcn.00412650
mov dword [ebp - 0x888], eax
mov eax, dword [ebp - 0x888]
mov dword [ebp - 0x88c], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x88c]
push ecx
mov ecx, dword [ebp - 0x854]
add ecx, 4
call fcn.00412dc0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x808]
call fcn.004128e0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x704]
call fcn.00402ed0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x724]
call fcn.00402ed0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x744]
call fcn.00402ed0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x6e4]
call fcn.00406420
jmp 0x43c6a6
mov ecx, dword [ebp - 0x854]
add ecx, 4
call fcn.00412da0
movzx edx, al
test edx, edx
je 0x43cab1
mov byte [ebp - 0x809], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x260]
call fcn.00406420
mov al, byte [ebp - 0x809]
jmp 0x43cc9a
lea ecx, [ebp - 0x80a]
call fcn.0040a340
push eax
lea ecx, [ebp - 0x24c]
call fcn.00403d90
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x24c]
push eax
push 0x443c08
mov ecx, dword [ebp - 0x854]
call fcn.0043b930
movzx ecx, al
test ecx, ecx
jne 0x43cb1d
mov byte [ebp - 0x80b], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24c]
call fcn.00403b10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x260]
call fcn.00406420
mov al, byte [ebp - 0x80b]
jmp 0x43cc9a
lea edx, [ebp - 0x6ac]
push edx
mov ecx, dword [ebp - 0x854]
call fcn.0043bdf0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x6a8]
call fcn.00403df0
push eax
push 0x443c28
lea ecx, [ebp - 0x24c]
call fcn.00412b90
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x82c]
push ecx
call fcn.00412770
add esp, 8
mov dword [ebp - 0x890], eax
mov edx, dword [ebp - 0x890]
mov dword [ebp - 0x894], edx
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x894]
add ecx, 4
call fcn.00403df0
push eax
push 0x443c2c
lea ecx, [ebp - 0x24c]
call fcn.00412b90
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x82c]
call fcn.00403b10
xor eax, eax
mov word [ebp - 0x68c], ax
push 0x206
push 0
lea ecx, [ebp - 0x68a]
push ecx
call fcn.0041c880
add esp, 0xc
lea edx, [ebp - 0x68c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x68c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push 0x443c30
lea ecx, [ebp - 0x68c]
push ecx
call fcn.0041da33
add esp, 8
lea ecx, [ebp - 0x84d]
call fcn.0040a340
push eax
lea edx, [ebp - 0x68c]
push edx
lea ecx, [ebp - 0x84c]
call fcn.004026a0
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x84c]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.00402760
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x84c]
call fcn.00402ed0
push 0
lea ecx, [ebp - 0x248]
call fcn.00403590
push eax
lea ecx, [ebp - 0x248]
call fcn.00403df0
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.0043ab40
add esp, 0x10
mov byte [ebp - 0x84e], al
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x6ac]
call fcn.00403b10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x24c]
call fcn.00403b10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x260]
call fcn.00406420
mov al, byte [ebp - 0x84e]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0041be5c
mov esp, ebp
pop ebp
ret 0xc