Function at 0x100132d0
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1012269a
mov eax, dword fs:[0]
push eax
sub esp, 0x420
mov eax, dword [0x10167c60]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
xor eax, eax
mov word [ebp - 0x218], ax
call fcn.100088b0
mov ecx, eax
test ecx, ecx
je 0x10013774
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
mov ecx, dword [ebp + 8]
add ecx, 0xffffff9b
mov dword [ebp - 4], 0
cmp ecx, 0x10
ja case.default.0x1001333b
jmp dword [ecx*4 + 0x10013780]
lea ecx, [ebp - 0x428]
call fcn.100131c0
lea eax, [ebp - 0x428]
mov byte [ebp - 4], 1
push eax
push 0x68
call fcn.100132d0
add esp, 8
lea ecx, [ebp - 0x428]
push 0x104
call fcn.10013280
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x428]
call fcn.100137d0
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x42c]
call fcn.10008310
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 0
call fcn.10007df0
jmp 0x10013702
lea ecx, [ebp - 0x428]
call fcn.100131c0
lea eax, [ebp - 0x428]
mov byte [ebp - 4], 2
push eax
push 0x69
jmp 0x1001335a
lea eax, [ebp - 0x424]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x102
ja 0x1001340b
lea ecx, [ebp - 0x424]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100133f0
sub ecx, edx
lea eax, [ebp - 0x424]
sar ecx, 1
push ecx
jmp 0x100136f6
lea ecx, [ebp - 0x42c]
call fcn.10007df0
jmp 0x10013758
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 3
jmp 0x1001338c
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x10000000
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 4
jmp 0x1001338c
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 5
jmp 0x1001338c
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 6
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 7
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x20
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 8
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 9
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 2
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 0xa
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 0xb
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x28
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 0xc
jmp 0x1001338c
call fcn.10084c50
cmp eax, 3
jl 0x1001340b
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
push str.LocalLow
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10013670
sub ecx, edx
sar ecx, 1
push ecx
jmp 0x100136f0
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x1c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x428]
call fcn.100079a0
mov byte [ebp - 4], 0xd
jmp 0x1001338c
lea eax, [ebp - 0x218]
push eax
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1001340b
lea edx, [ebp - 0x218]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x100136e0
sub edx, ecx
sar edx, 1
push edx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x42c]
call fcn.1000b940
lea eax, [ebp - 0x42c]
mov ecx, esi
push eax
call fcn.10008310
mov edx, dword [ebp - 0x42c]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10013735
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, 1
jmp 0x1001375a
lea edx, [eax - 0x10]
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10013758
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100c495f
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.10008520
nop
inc edx
xor eax, dword [ecx]
adc byte [ebx + esi + 0x33c61001], ch
add dword [eax], edx
sbb esi, dword [ecx + eax]
adc byte [edx + 52], cl
add dword [eax], edx
jl 0x100137ca
add dword [eax], edx
test eax, 0xd6100134
xor al, 1
adc dh, dl
xor al, 1
adc byte [esi], cl
xor eax, 0x35461001
add dword [eax], edx
jle 0x100137e3
add dword [eax], edx
mov dh, 0x35
add dword [eax], edx
out dx, al
xor eax, 908464129
add dword [eax], edx
xor byte [esi], 1
adc byte [edx - 871366346], bh
int3
int3
add al, 0x33
shr bl, cl
adc bh, bh
jo 0x100137e3
push eax
call fcn.100efbd7
add esp, 8
mov edx, eax
test edx, edx
js 0x10013811
mov eax, dword [esi]
cmp edx, dword [eax - 8]
jg 0x10013811
mov dword [eax - 0xc], edx
xor ecx, ecx
mov eax, dword [esi]
pop esi
mov word [eax + edx*2], cx
pop ebp
ret 4
push 0x80070057
call fcn.10008520
int3