Function at 0x4239f7
Capabilities:
Get common file path

Disassembly:
push 0x718
mov eax, 0x50dd4b
call fcn.004f41e2
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x6fc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x700], edi
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x714], ecx
mov dword [ebp - 0x708], ebx
test edi, edi
je 0x423a3b
cmp word [edi], bx
jne 0x423a4c
test eax, eax
je 0x42411e
cmp word [eax], bx
je 0x42411e
mov ecx, dword [0x5a23f0]
call fcn.0046aa2a
mov esi, eax
test esi, esi
je 0x423a65
xor eax, eax
cmp word [esi], bx
cmove esi, eax
lea ecx, [ebp - 0x2d0]
call fcn.004e25a1
mov ecx, dword [0x5a22a0]
lea eax, [ebp - 0x2d0]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0041129d
mov edx, eax
mov dword [ebp - 0x70c], edx
test edi, edi
je 0x423b7a
xor eax, eax
cmp word [edi], ax
je 0x423b7a
mov ecx, dword [ebp - 0x6fc]
test ecx, ecx
je 0x423c50
lea edx, [edi + 2]
xor ebx, ebx
mov ax, word [edi]
add edi, 2
cmp ax, bx
jne 0x423ab4
sub edi, edx
mov edx, ecx
sar edi, 1
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, bx
jne 0x423ac8
sub edx, ecx
sar edx, 1
test esi, esi
je 0x423af5
mov ecx, esi
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x708]
jne 0x423ae0
sub ecx, ebx
sar ecx, 1
jmp 0x423af7
mov ecx, ebx
lea eax, [edx + 0x20]
add eax, ecx
add edi, eax
lea eax, [edi + edi]
push eax
call fcn.004e1c0a
mov ebx, eax
pop ecx
test ebx, ebx
je 0x423bf1
push dword [ebp - 0x6fc]
xor eax, eax
push edi
push ebx
mov word [ebx], ax
call fcn.004019cd
push 0x5225e4
push edi
push ebx
call fcn.004019cd
test esi, esi
je 0x423b54
push str._config__
push edi
push ebx
call fcn.004019cd
push esi
push edi
push ebx
call fcn.004019cd
push 0x524d94
push edi
push ebx
call fcn.004019cd
push 0x5260ec
push edi
push ebx
call fcn.004019cd
push dword [ebp - 0x700]
push edi
push ebx
call fcn.004019cd
mov esi, ebx
mov dword [ebp - 0x700], esi
jmp 0x423c56
mov esi, dword [ebp - 0x710]
xor ebx, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x423b85
mov edi, dword [ebp - 0x6fc]
sub esi, ecx
sar esi, 1
test edi, edi
je 0x423bba
mov ecx, edi
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x708]
jne 0x423ba3
sub ecx, ebx
sar ecx, 1
xor ebx, ebx
jmp 0x423bbc
mov ecx, ebx
test edx, edx
je 0x423bd8
lea ebx, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, word [ebp - 0x708]
jne 0x423bc3
sub edx, ebx
sar edx, 1
jmp 0x423bda
mov edx, ebx
lea eax, [ecx + 0x20]
add eax, edx
add esi, eax
lea eax, [esi + esi]
push eax
call fcn.004e1c0a
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x423bfb
mov edi, 0x8000ffff
jmp 0x42410f
xor eax, eax
xor ecx, ecx
mov word [ebx], ax
test edi, edi
je 0x423c21
cmp word [edi], cx
je 0x423c21
push edi
push esi
push ebx
call fcn.004019cd
push 0x5225e4
push esi
push ebx
call fcn.004019cd
xor ecx, ecx
mov eax, dword [ebp - 0x70c]
test eax, eax
je 0x423c38
cmp word [eax], cx
je 0x423c38
push eax
push esi
push ebx
call fcn.004019cd
push 0x5260ec
push esi
push ebx
call fcn.004019cd
push dword [ebp - 0x710]
push esi
jmp 0x423b67
mov esi, dword [ebp - 0x700]
lea eax, [ebp - 0x704]
push eax
push 0x567734
push 1
xor eax, eax
push eax
push 0x567884
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
js 0x424104
push 0x104
lea eax, [ebp - 0x218]
push eax
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x4240e4
mov eax, dword [ebp - 0x704]
lea edx, [ebp - 0x218]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
lea ecx, [ebp - 0x32c]
mov edi, eax
call fcn.004e25a1
lea ecx, [ebp - 0x388]
mov byte [ebp - 4], 1
call fcn.004e25a1
xor eax, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x708], eax
call fcn.004e25a1
xor eax, eax
mov dword [ebp - 0x6fc], esi
lea ecx, [ebp - 0x6f8]
mov byte [ebp - 4], 3
mov esi, eax
call fcn.004ea5ed
mov byte [ebp - 4], 4
jmp 0x423d4b
mov eax, dword [ebp - 0x32c]
cmp word [eax], 0x2f
jne 0x423d10
push 0x2d
pop ecx
mov word [eax], cx
push 0x52b698
lea ecx, [ebp - 0x32c]
call fcn.004e2996
test al, al
jne 0x423e35
xor eax, eax
lea ecx, [ebp - 0x32c]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x52b6a4
push 0x52b6b0
call fcn.004e29eb
test al, al
jne 0x423d6d
xor eax, eax
push eax
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x6fc]
push eax
call fcn.004e55bb
add esp, 0xc
test eax, eax
je 0x423cfe
jmp 0x423e5f
mov eax, dword [ebp - 0x6fc]
movzx ecx, word [eax]
cmp ecx, 0x40
je 0x423d96
cmp ecx, 0x7b
je 0x423d96
push str._Startup_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x423dbd
mov eax, dword [ebp - 0x6fc]
xor ecx, ecx
push ecx
mov ecx, dword [0x5a22a0]
push eax
call fcn.0040fb17
mov dword [ebp - 0x70c], eax
lea ecx, [ebp - 0x274]
lea eax, [ebp - 0x70c]
push eax
call fcn.004e2618
lea ecx, [ebp - 0x274]
call fcn.004e2932
test al, al
jne 0x423e2a
lea eax, [ebp - 0x6f8]
push eax
xor eax, eax
lea ecx, [ebp - 0x274]
push eax
call fcn.0044612f
mov ecx, dword [0x5a22a0]
push eax
call fcn.0041796e
mov ecx, dword [ebp - 0x6d0]
mov dword [ebp - 0x6fc], eax
test ecx, ecx
jne 0x423e24
push ecx
push eax
call fcn.004e230a
pop ecx
pop ecx
mov dword [ebp - 0x6e0], eax
lea ecx, [ebp - 0x6f8]
xor eax, eax
push eax
call fcn.004e87cc
mov ecx, dword [ebp - 0x6d0]
test ecx, ecx
je 0x423e2a
mov esi, ecx
test esi, esi
jne 0x423e5f
lea ecx, [ebp - 0x32c]
call fcn.004e2830
xor eax, eax
push eax
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x6fc]
push eax
call fcn.004e55bb
add esp, 0xc
test eax, eax
jne 0x423e5f
lea ecx, [ebp - 0x32c]
call fcn.0044612f
mov esi, eax
lea ecx, [ebp - 0x388]
call fcn.004e2830
test esi, esi
je 0x423f83
xor eax, eax
cmp word [esi], ax
je 0x423f83
lea ecx, [ebp - 0x3e4]
call fcn.004e25a1
push 0xffffffffffffffff
push esi
lea ecx, [ebp - 0x3e4]
mov byte [ebp - 4], 5
call fcn.004e2ad6
lea eax, [ebp - 0x708]
push eax
lea eax, [ebp - 0x3e4]
push eax
call fcn.0044e32d
pop ecx
pop ecx
lea ecx, [ebp - 0x3e4]
call fcn.0044612f
push eax
call fcn.004e2cec
pop ecx
mov dword [ebp - 0x70c], eax
lea ecx, [ebp - 0x440]
lea eax, [ebp - 0x70c]
push eax
call fcn.004e24e8
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 6
call fcn.004e2932
mov esi, dword [ebp - 0x440]
test al, al
lea eax, [ebp - 0x388]
cmovne esi, dword [ebp - 0x3e4]
push eax
push esi
call fcn.004e3e23
pop ecx
pop ecx
test eax, eax
je 0x423f24
xor eax, eax
lea ecx, [ebp - 0x388]
push eax
call fcn.0044612f
push eax
call fcn.004e2e74
pop ecx
pop ecx
test al, al
jne 0x423f69
lea eax, [ebp - 0x388]
push eax
xor eax, eax
push eax
push esi
push eax
call fcn.004e3eec
add esp, 0x10
test eax, eax
jne 0x423f69
lea eax, [ebp - 0x388]
push eax
push 0x522e88
push esi
xor esi, esi
push esi
call fcn.004e3eec
add esp, 0x10
test eax, eax
jne 0x423f69
lea ecx, [ebp - 0x388]
call fcn.004e2830
mov dword [ebp - 0x708], esi
lea ecx, [ebp - 0x440]
call fcn.004e25e0
lea ecx, [ebp - 0x3e4]
mov byte [ebp - 4], 4
call fcn.004e25e0
mov eax, dword [ebp - 0x704]
lea ecx, [ebp - 0x388]
push dword [ebp - 0x708]
mov esi, dword [eax]
call fcn.004e2932
test al, al
lea ecx, [ebp - 0x218]
cmove ecx, dword [ebp - 0x388]
push ecx
push dword [ebp - 0x704]
call dword [esi + 0x44]
lea eax, [ebp - 0x218]
mov esi, 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x423fe3
cmp eax, esi
jae 0x423fe3
mov eax, dword [ebp - 0x704]
lea edx, [ebp - 0x218]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
test edi, edi
js 0x4240b1
mov eax, dword [ebp - 0x704]
push dword [ebp - 0x700]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov edi, eax
test edi, edi
js 0x4240b1
mov eax, dword [ebp - 0x704]
lea edx, [ebp - 0x700]
push edx
push 0x52b678
push eax
mov ecx, dword [eax]
call dword [ecx]
mov edi, eax
test edi, edi
js 0x4240b1
push 8
pop eax
push dword [ebp - 0x710]
mov word [ebp - 0x724], ax
lea edi, [ebp - 0x722]
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x71c], eax
lea edx, [ebp - 0x724]
mov eax, dword [ebp - 0x700]
push edx
push 0x567914
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
test edi, edi
js 0x424099
mov eax, dword [ebp - 0x700]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edi, eax
test edi, edi
js 0x424099
mov eax, dword [ebp - 0x704]
push dword [ebp - 0x714]
push 0x52b688
mov ecx, dword [eax]
push eax
call dword [ecx]
mov edi, eax
push dword [ebp - 0x71c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x700]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea ecx, [ebp - 0x6f8]
call fcn.004ea61b
lea ecx, [ebp - 0x274]
call fcn.004e25e0
lea ecx, [ebp - 0x388]
call fcn.004e25e0
xor eax, eax
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], al
call fcn.004e25e0
jmp 0x4240f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov eax, dword [ebp - 0x704]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test ebx, ebx
je 0x42410f
push ebx
call fcn.004e1bea
pop ecx
lea ecx, [ebp - 0x2d0]
call fcn.004e25e0
mov eax, edi
jmp 0x424123
mov eax, 0x80070057
call fcn.004f418c
ret