Function at 0x4532a0e0
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
mov eax, 0x45362bc4
call fcn.4534228c
sub esp, 0x210
push ebx
push esi
mov ebx, 0x208
push edi
lea eax, [ebp - 0x21c]
push ebx
push eax
push dword [0x4537f6d4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4532a16d
lea eax, [ebp - 0x21c]
push 0x5c
push eax
call sym.HHA.dll_Ordinal_10
test eax, eax
jne 0x4532a134
lea eax, [ebp - 0x21c]
push 0x3a
push eax
call sym.HHA.dll_Ordinal_10
test eax, eax
je 0x4532a16d
mov edi, dword [ebp + 8]
lea edx, [eax + 1]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4532a2e7
push str..chm
push dword [ebp + 8]
call sym.HHA.dll_Ordinal_1
test eax, eax
je 0x4532a21c
lea eax, [ebp - 0x21c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x21c]
push eax
call sym.HHA.dll_Ordinal_80
mov edi, str.help
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x21c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call sym.HHA.dll_Ordinal_80
mov edi, dword [ebp + 8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x21c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4532a2e7
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
push 0
push dword [ebp + 8]
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
jne 0x4532a2e7
push str..ocx
push dword [ebp + 8]
call sym.HHA.dll_Ordinal_1
test eax, eax
je 0x4532a2f5
lea eax, [ebp - 0x21c]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x21c]
push eax
call sym.HHA.dll_Ordinal_80
mov edi, str.occache
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x21c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebx
or ebx, 0xffffffff
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call sym.HHA.dll_Ordinal_80
mov edi, dword [ebp + 8]
mov ecx, ebx
xor eax, eax
lea edx, [ebp - 0x21c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
mov ecx, ebx
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, ebx
je 0x4532a2f5
lea eax, [ebp - 0x21c]
push eax
call sym.HHA.dll_Ordinal_23
jmp 0x4532a352
push str.c:program_filesHTML_Help_Workshop_
call sym.HHA.dll_Ordinal_23
mov dword [ebp - 0x10], eax
push dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], edi
call sym.HHA.dll_Ordinal_318
push eax
lea ecx, [ebp - 0x10]
call fcn.45311153
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4532a342
push dword [ebp - 0x10]
call sym.HHA.dll_Ordinal_23
cmp dword [ebp - 0x10], edi
mov esi, eax
je 0x4532a33e
push dword [ebp - 0x10]
call fcn.45341e40
pop ecx
mov eax, esi
jmp 0x4532a352
cmp dword [ebp - 0x10], edi
je 0x4532a350
push dword [ebp - 0x10]
call fcn.45341e40
pop ecx
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 4