Function at 0x40b59f
Capabilities:
Get common file path

Disassembly:
sub esp, 0x53c
mov eax, dword [0x435280]
xor eax, esp
mov dword [esp + 0x534], eax
mov eax, dword [esp + 0x54c]
push ebx
mov ebx, dword [esp + 0x544]
push ebp
mov ebp, dword [0x436310]
push esi
mov esi, dword [esp + 0x554]
push edi
mov edi, dword [esp + 0x564]
push 0xff
mov dword [esp + 0x14], eax
lea eax, [esp + 0x134]
push eax
push 8
push 0x42f7e0
push 0
push 0
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x40b611
call dword [sym.imp.KERNEL32.dll_GetLastError]
or esi, 0xffffffff
jmp 0x40b7db
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b616
push 0x104
sub ecx, edx
lea eax, [esp + 0x334]
push eax
lea eax, [ecx + 1]
push eax
push ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x40b656
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push str.InstallLsp:_MultiByteToWidechar_failed_to_convert__s:_Error___d_n
call fcn.00401d4f
add esp, 0xc
jmp 0x40b609
cmp dword [esp + 0x554], 0
je 0x40b609
lea eax, [esp + 0x130]
push eax
push str.LSP_name_is__S_n
call fcn.00401d4f
add esp, 8
lea edx, [esp + 0x18]
mov ecx, ebx
call fcn.0040fa51
test eax, eax
jne 0x40b7dd
test edi, edi
je 0x40b698
lea esi, [esp + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x28]
mov byte [esp + 0x28], 0
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, 0x42e704
push edi
push ebx
call fcn.004126f0
pop ecx
pop ecx
test eax, eax
je 0x40b6d6
push SysReAllocString
push ebx
push ecx
mov edx, 0x104
lea ecx, [esp + 0x34]
call fcn.0040685c
jmp 0x40b6ea
push edi
lea ecx, [esp + 0x2c]
call fcn.00406823
push ebx
lea ecx, [esp + 0x2c]
call fcn.00406823
lea eax, [esp + 0x28]
push 0x42f540
push eax
call fcn.00411ec1
pop ecx
pop ecx
test eax, eax
je 0x40b73e
push eax
call fcn.00411f9a
pop ecx
lea ecx, [esp + 0x28]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b70d
push 0x104
sub ecx, edx
lea eax, [esp + 0x334]
push eax
lea eax, [ecx + 1]
push eax
lea eax, [esp + 0x34]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x40b63f
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x130]
mov edx, dword [esi]
mov ecx, ebp
push ebx
push eax
call fcn.0040b865
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x40b609
push 1
lea eax, [esp + 0x334]
mov ecx, ebp
push edi
push eax
lea edx, [esp + 0x24]
call fcn.0040b7f6
add esp, 0xc
mov ecx, edi
test eax, eax
je 0x40b789
or esi, 0xffffffff
call fcn.0040124d
jmp 0x40b7db
call fcn.0040124d
lea eax, [esp + 0x330]
mov ecx, ebp
lea edx, [esp + 0x18]
push dword [esp + 0x554]
push esi
push eax
lea eax, [esp + 0x13c]
push eax
test ebx, ebx
jne 0x40b7b7
call fcn.0040bf88
jmp 0x40b7bc
call fcn.0040b90d
mov esi, eax
add esp, 0x10
cmp esi, 0xffffffff
jne 0x40b7db
cmp ebp, 1
jne 0x40b7db
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.WS2_32.dll_WSCDeinstallProvider]
mov eax, esi
mov ecx, dword [esp + 0x544]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00410875
add esp, 0x53c
ret