Function at 0x408c90
Capabilities:
Create directory
Delete file
Get common file path
Move file
Query or enumerate registry value
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1150
call fcn.0040cd80
mov eax, dword [0x4116b8]
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x1138], esi
mov eax, dword [str..log]
mov cl, byte [0x40f22c]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], cl
xor eax, eax
mov byte [ebp - 0x1124], 0
mov ecx, 0xff
lea edi, [ebp - 0x1123]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [ebp - 0x1128]
push edx
mov ebx, 1
push ebx
stosb byte es:[edi], al
mov eax, dword [str.SoftwareRealNetworksPreferencesCrashLogOptions]
push 0
push eax
push 0x80000001
mov dword [ebp - 0x1134], 0x676f4c
mov dword [ebp - 0x1128], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408d9f
mov byte [ebp - 0x120], al
mov ecx, 0x3f
lea edi, [ebp - 0x11f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [ebp - 0x1130]
push ecx
mov ecx, dword [str.NumberOfLogFiles]
stosb byte es:[edi], al
lea edx, [ebp - 0x120]
push edx
mov edx, dword [ebp - 0x1128]
lea eax, [ebp - 0x112c]
push eax
xor edi, edi
push edi
push ecx
push edx
mov dword [ebp - 0x112c], edi
mov dword [ebp - 0x1130], 0x100
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x1128]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x120]
push ecx
mov dword [ebp - 0x1128], edi
call dword [sym.imp.MSVCR71.dll_atoi]
mov ebx, eax
add esp, 4
cmp ebx, 1
jb 0x408d9a
cmp ebx, 0x2710
jbe 0x408d9f
mov ebx, 1
xor eax, eax
mov byte [ebp - 0x520], 0
mov ecx, 0xff
lea edi, [ebp - 0x51f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x40e79f
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x408de3
mov eax, dword [ebp - 0x1138]
push 0x400
push eax
lea ecx, [ebp - 0x520]
push ecx
call fcn.00405270
add esp, 0xc
mov edi, 0x40e79f
lea esi, [ebp - 0x520]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x408e62
mov ecx, dword [str.SoftwareRealNetworksPreferencesUserDataPath]
lea eax, [ebp - 0x1128]
push eax
push 1
xor esi, esi
push esi
push ecx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x408e62
lea edx, [ebp - 0x112c]
push edx
mov edx, dword [ebp - 0x1128]
lea eax, [ebp - 0x520]
push eax
lea ecx, [ebp - 0x1130]
push ecx
push esi
push esi
push edx
mov dword [ebp - 0x1130], esi
mov dword [ebp - 0x112c], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 0x1128]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1128], esi
mov edi, 0x40e79f
lea esi, [ebp - 0x520]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x408ea5
push 0x400
lea eax, [ebp - 0x520]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x520]
push 0x5c
push ecx
call dword [sym.imp.MSVCR71.dll_strrchr]
add esp, 8
test eax, eax
je 0x408ea5
mov byte [eax + 1], 0
lea edx, [ebp - 0x1124]
push edx
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, dword [ebp - 0x1138]
xor eax, eax
mov ecx, 0x100
lea edi, [ebp - 0xd23]
add esi, 0x800
mov byte [ebp - 0xd24], 0
rep stosd dword es:[edi], eax
cmp byte [esi], 0
lea eax, [ebp - 0x520]
je 0x408f14
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea ecx, [ebp - 0x520]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x400
lea edx, [ebp - 0xd24]
push esi
push edx
call fcn.00405270
add esp, 0xc
jmp 0x408fe0
push 0x400
push str.ErrorLogs
push eax
call fcn.004052b0
add esp, 0xc
push 0
lea ecx, [ebp - 0x520]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edx, [ebp - 0x520]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov edi, dword [sym.imp.MSVCR71.dll_sprintf]
xor eax, eax
mov dword [ebp - 0x1f], eax
mov dword [ebp - 0x1b], eax
lea ecx, [ebp - 0xc]
push ecx
mov dword [ebp - 0x17], eax
push ebx
mov dword [ebp - 0x13], eax
lea edx, [ebp - 0x1134]
push edx
mov word [ebp - 0xf], ax
lea eax, [ebp - 0xd24]
push str._s_lu_s
push eax
mov byte [ebp - 0x20], 0
call edi
add esp, 0x14
lea ecx, [ebp - 0xd24]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp ebx, 1
mov esi, ebx
jbe 0x408fe0
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileA]
lea edx, [ebp - 0xc]
push edx
push esi
lea eax, [ebp - 0x1134]
push eax
lea ecx, [ebp - 0x20]
push str._s_lu_s
push ecx
call edi
lea edx, [ebp - 0xc]
push edx
lea eax, [esi - 1]
push eax
lea ecx, [ebp - 0x1134]
push ecx
lea edx, [ebp - 0xd24]
push str._s_lu_s
push edx
call edi
add esp, 0x28
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0xd24]
push ecx
call ebx
dec esi
cmp esi, 1
ja 0x408f96
xor eax, eax
mov byte [ebp - 0x920], 0
mov ecx, 0xff
lea edi, [ebp - 0x91f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x1138]
add eax, 0x400
mov edi, 0x40e79f
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40902b
push 0x400
push eax
lea eax, [ebp - 0x920]
push eax
call fcn.00405270
add esp, 0xc
mov edi, 0x40e79f
lea esi, [ebp - 0x920]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4090b3
mov ecx, dword [str.SoftwareRealNetworksPreferencesCrashLogOptions]
lea eax, [ebp - 0x1128]
push eax
push 0x20019
xor esi, esi
push esi
push ecx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4090b3
lea edx, [ebp - 0x112c]
push edx
mov edx, dword [str.SymbolPath]
lea eax, [ebp - 0x920]
push eax
mov eax, dword [ebp - 0x1128]
lea ecx, [ebp - 0x1130]
push ecx
push esi
push edx
push eax
mov dword [ebp - 0x1130], esi
mov dword [ebp - 0x112c], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [ebp - 0x1128]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1128], esi
mov edi, 0x40e79f
lea esi, [ebp - 0x920]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4090f5
push 0x400
lea eax, [ebp - 0x920]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x920]
push 0x5c
push ecx
call dword [sym.imp.MSVCR71.dll_strrchr]
add esp, 8
test eax, eax
je 0x4090f5
mov byte [eax], 0
lea ecx, [ebp - 0x1150]
call fcn.00409370
lea edx, [ebp - 0x920]
push edx
lea ecx, [ebp - 0x1150]
call fcn.00409390
lea eax, [ebp - 0xd24]
push eax
lea ecx, [ebp - 0x1150]
call fcn.0040a440
lea ecx, [ebp - 0x1150]
call fcn.0040ac30
lea ecx, [ebp - 0x1150]
call fcn.0040a910
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push edi
push ebx
lea ecx, [ebp - 0x1150]
call fcn.0040a830
lea ecx, [ebp - 0x1150]
call fcn.0040a6d0
lea ecx, [ebp - 0x1150]
call fcn.0040a730
lea ecx, [ebp - 0x1150]
call fcn.0040af10
mov edx, dword [str.SoftwareRealNetworksPreferencesCrashLogOptions]
lea ecx, [ebp - 0x1128]
push ecx
push 1
xor esi, esi
push esi
push edx
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4091e2
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp + 0xc]
push edx
mov edx, dword [str.MiniDumpOptions]
lea ecx, [ebp - 0x112c]
push ecx
push eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x112c], eax
mov eax, dword [ebp - 0x1128]
push edx
push eax
mov dword [ebp + 8], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4091cb
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1128]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1128], 0
push edi
push ebx
push esi
push str.log1.dmp
lea ecx, [ebp - 0x1150]
call fcn.0040ae30
lea edi, [ebp - 0x1124]
mov esi, 0x40e79f
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
pop edi
pop esi
pop ebx
je 0x40921b
lea eax, [ebp - 0x1124]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0x1150]
call fcn.0040aed0
mov ecx, dword [ebp - 4]
call fcn.0040cbe2
mov esp, ebp
pop ebp
ret 8