Function at 0x407490
Capabilities:
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x430307
push eax
mov dword fs:[0], esp
sub esp, 0x12c
lea eax, [esp + 0x28]
push ebx
push ebp
push esi
push edi
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov ebx, dword [esp + 0x14c]
xor edi, edi
push edi
push 0x4327bc
mov ecx, ebx
call fcn.004236e1
mov esi, eax
cmp esi, 0xffffffff
je 0x40772a
mov edi, 0x4327bc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add esi, ecx
mov ecx, ebx
push esi
push 0x43d26c
call fcn.004236e1
mov edi, eax
cmp edi, 0xffffffff
je 0x40772a
mov ecx, edi
lea edx, [esp + 0x20]
sub ecx, esi
push ecx
push esi
push edx
mov ecx, ebx
call fcn.004235a3
lea esi, [edi + 1]
mov ecx, ebx
push esi
push str.ocx.file.end
mov dword [esp + 0x14c], 0
call fcn.004236e1
mov ebp, eax
cmp ebp, 0xffffffff
je 0x407716
sub eax, esi
lea ecx, [esp + 0x18]
push eax
push esi
push ecx
mov ecx, ebx
call fcn.004235a3
mov edi, str.ocx.file.end
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x18]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x13], al
mov esi, dword [edx - 8]
mov al, byte [esp + 0x13]
mov edi, ecx
mov byte [esp + 0x28], al
add edi, ebp
mov byte [esp + 0x144], 1
test esi, esi
mov eax, esi
jge 0x407587
xor eax, eax
push eax
call fcn.00428cb4
add esp, 4
mov dword [esp + 0x2c], eax
test esi, esi
mov ebp, eax
jbe 0x4075bc
mov dword [esp + 0x24], esi
lea ecx, [esp + 0x13]
push ecx
push ebp
call fcn.00406c20
mov eax, dword [esp + 0x2c]
add esp, 8
inc ebp
dec eax
mov dword [esp + 0x24], eax
jne 0x40759e
mov eax, dword [esp + 0x2c]
lea ecx, [eax + esi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
test eax, eax
mov byte [esp + 0x144], 2
jne 0x4075d7
xor ecx, ecx
jmp 0x4075d9
sub ecx, eax
mov eax, dword [esp + 0x18]
push ecx
lea ecx, [esp + 0x2c]
mov edx, dword [eax - 8]
push ecx
push edx
push eax
call fcn.0040ac70
mov edx, dword [0x43dc9c]
add esp, 0x10
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x38]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
mov byte [esp + 0x154], 3
call fcn.00423a59
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.0040b6e0
mov edx, dword [esp + 0x2c]
push edx
call fcn.00407380
xor esi, esi
add esp, 0x1c
cmp eax, esi
je 0x40765b
mov eax, dword [esp + 0x14]
push eax
push 0xb9
push str.E:CVSPKI_WKS_MAVEN99.tools16.ClientConfigToolsConfigToolsConfigMngr.cpp
push str.Register_ocx__s_successfully.
call fcn.0040b900
add esp, 0x10
jmp 0x4076c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x43dc9c]
mov dword [esp + 0x1c], ecx
push 0xc0
push str.E:CVSPKI_WKS_MAVEN99.tools16.ClientConfigToolsConfigToolsConfigMngr.cpp
push eax
lea edx, [esp + 0x28]
push str.RegisterOcx
push edx
mov byte [esp + 0x158], 4
call fcn.0040af20
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
add esp, 0x14
push eax
push ecx
push 0xc1
push str.E:CVSPKI_WKS_MAVEN99.tools16.ClientConfigToolsConfigToolsConfigMngr.cpp
push str.Register_ocx__s_failed:
call fcn.0040b900
add esp, 0x14
lea ecx, [esp + 0x1c]
mov byte [esp + 0x144], 3
call fcn.004287a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x144], 2
call fcn.004287a0
mov edx, dword [esp + 0x2c]
push edx
call fcn.00428cdd
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x144], 0
call fcn.004287a0
lea ecx, [esp + 0x20]
mov dword [esp + 0x144], 0xffffffff
call fcn.004287a0
jmp 0x4074c8
lea ecx, [esp + 0x20]
mov dword [esp + 0x144], 0xffffffff
call fcn.004287a0
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x138
ret