Function at 0x450230
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c6c8b
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x4ea5e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
xor esi, esi
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x234], esi
mov dword [ebp - 0x230], esi
call fcn.0045d8f0
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x124]
push eax
push 0x104
mov dword [ebp - 0x238], esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x45032e
push 0x104
lea ecx, [ebp - 0x124]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4502d2
lea edx, [ebp - 0x124]
push 0x5c
push edx
call fcn.004a9130
add esp, 8
cmp eax, esi
je 0x45087a
mov byte [eax], 0
add ebx, 0xb5c
lea eax, [ebp - 0x124]
mov byte [ebx], 0
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4502e3
sub eax, esi
lea edi, [ebx - 1]
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4502f0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 1]
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x450310
mov ax, word [0x4ce6f4]
mov word [edi], ax
lea eax, [ebx - 1]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x450324
jmp 0x450378
add ebx, 0xb5c
lea eax, [ebp - 0x124]
mov byte [ebx], 0
mov esi, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450340
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x450350
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [ebx - 1]
lea esp, [esp]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x450370
cmp dword [ebp - 0x23c], 0
mov ecx, dword [str.UltraVNC.ini]
mov dword [eax], ecx
mov edx, dword [0x4d65dc]
mov dword [eax + 4], edx
mov ecx, dword [0x4d65e0]
mov dword [eax + 8], ecx
mov dl, byte [0x4d65e4]
mov byte [eax + 0xc], dl
je 0x450452
mov eax, dword [ebp - 0x23c]
push eax
push 0
push 0x2000000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
lea ecx, [ebp - 0x230]
push ecx
push 0x201eb
push eax
mov dword [ebp - 0x234], eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x450452
mov edx, dword [ebp - 0x230]
push edx
call dword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x238], eax
test eax, eax
jne 0x450452
mov eax, dword [ebp - 0x230]
push 0x104
push ebx
push str._TEMP_
push eax
call dword [sym.imp.USERENV.dll_ExpandEnvironmentStringsForUserA]
lea edi, [ebx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x450415
mov cx, word [0x4ce6f4]
mov word [edi], cx
dec ebx
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x450428
mov edx, dword [str.UltraVNC.ini]
mov dword [ebx], edx
mov eax, dword [0x4d65dc]
mov dword [ebx + 4], eax
mov ecx, dword [0x4d65e0]
mov dword [ebx + 8], ecx
mov dl, byte [0x4d65e4]
mov byte [ebx + 0xc], dl
mov esi, dword [ebp - 0x240]
cmp dword [esi + 0x114], 0
jne 0x450499
cmp dword [ebp - 0x238], 0
jne 0x450470
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov eax, dword [ebp - 0x234]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x450483
push eax
call edi
mov eax, dword [ebp - 0x230]
test eax, eax
je 0x45087a
push eax
call edi
jmp 0x45087a
mov eax, dword [esi + 4]
test eax, eax
je 0x450629
cmp dword [0x544798], 0
je 0x4504b4
mov dword [ebp + 8], 0
mov ecx, dword [ebp + 8]
mov dword [esi + 0x110], ecx
test eax, eax
je 0x450629
test ecx, ecx
je 0x45057e
lea eax, [ebp - 0x22c]
call fcn.0045dd00
test eax, eax
jne 0x450505
cmp dword [ebp - 0x238], 0
jne 0x4504eb
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov edx, dword [ebp - 0x234]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [ebp - 0x230]
jmp 0x450877
mov ecx, 0x4ce44c
lea eax, [ebp - 0x22c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x450530
test dl, dl
je 0x45052c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x450530
add eax, 2
add ecx, 2
test dl, dl
jne 0x450510
xor eax, eax
jmp 0x450535
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x450629
push 0x517b58
push 0x518468
mov eax, 0x30
call fcn.00409310
add esp, 8
cmp dword [ebp - 0x238], 0
jne 0x450563
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov ecx, dword [ebp - 0x234]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov edx, dword [ebp - 0x230]
push edx
jmp 0x450878
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
xor eax, eax
lea ecx, [ebp - 0x24c]
push ecx
lea edx, [ebp - 0x23c]
push edx
push eax
push 0x20019
push eax
push eax
push eax
push 0x4d3f84
push reloc.WS2_32.dll_bind
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x244], eax
lea ebx, [eax + 1]
call edi
test eax, eax
jne 0x4505e9
mov edx, dword [ebp - 0x23c]
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x244]
push ecx
push 0
push 0x2001f
push 0
push 0
push 0
push str.Default
push edx
call edi
test eax, eax
je 0x4505eb
xor ebx, ebx
mov eax, dword [ebp - 0x23c]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4505fe
push eax
call edi
mov eax, dword [ebp - 0x244]
test eax, eax
je 0x45060b
push eax
call edi
test ebx, ebx
jne 0x450629
push 0x517b58
push 0x5182e8
lea eax, [ebx + 0x30]
call fcn.00409310
add esp, 8
jmp 0x450461
cmp dword [esi + 0x130], 0
jne 0x45084b
cmp dword [esi + 4], 0
je 0x450670
mov edi, dword [ebp + 8]
mov eax, 9
mov ecx, 0x4ecb00
test edi, edi
je 0x450654
push str.vncproperties.cpp_:_show_per_user_Properties_n
jmp 0x450659
push str.vncproperties.cpp_:_show_default_system_Properties_n
call fcn.00403230
add esp, 4
mov dword [esi + 0x110], edi
jmp 0x450670
mov eax, dword [0x513794]
push esi
push 0x4508a0
push 0
push 0x92
push eax
mov dword [esi + 0x12c], 0
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp dword [esi + 0x12c], 0
mov edi, eax
jne 0x4506a3
mov edi, 2
push edi
push str.vncproperties.cpp_:_dialog_result___d_n
mov eax, 9
mov ecx, 0x4ecb00
call fcn.00403230
add esp, 8
cmp edi, 0xffffffff
je 0x4507c7
mov ebx, dword [ebp - 0x240]
mov ecx, dword [ebx + 0x10c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x12c]
lea eax, [ebp - 0x1c]
push eax
call edx
push str.l:ultravnc_installer_otherultravncultravnc_project_rootultravncwinvncwinvnc_vncpasswd.h_:_PASSWD_:_ToText_called_n
mov eax, 9
mov ecx, 0x4ecb00
call fcn.00403230
add esp, 4
push 9
call fcn.004aa188
add esp, 4
push 1
mov ecx, 0x4ebecc
mov esi, eax
call fcn.004040e0
add esp, 4
lea eax, [ebp - 0x1c]
call fcn.00404650
mov byte [esi + 8], 0
mov dword [ebp - 0x248], esi
mov eax, esi
mov dword [ebp - 4], 0
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450730
sub eax, edx
jne 0x45081a
mov ecx, dword [ebx + 0x10c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18c]
call edx
test eax, eax
je 0x45081a
mov eax, esi
mov dword [ebp - 4], 0xffffffff
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450763
sub eax, edx
push eax
push 0
push esi
call fcn.004b2d10
add esp, 0xc
push esi
call fcn.004aa14e
add esp, 4
push str.vncproperties.cpp_:_warning___empty_password_n
xor eax, eax
mov ecx, 0x4ecb00
call fcn.00403230
add esp, 4
cmp edi, 2
je 0x4507f9
push 0x517a58
push 0x517f30
mov eax, 0x30
call fcn.00409310
add esp, 8
push 0xfa0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [ebp - 0x240]
jmp 0x450670
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
cmp dword [ebp - 0x238], 0
jne 0x4507de
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov eax, dword [ebp - 0x234]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [ebp - 0x230]
push ecx
jmp 0x450878
push str.vncproperties.cpp_:_no_password___QUITTING_n
xor eax, eax
mov ecx, 0x4ecb00
call fcn.00403230
add esp, 4
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x4504dc
lea edi, [ebp - 0x248]
mov dword [ebp - 4], 0xffffffff
call fcn.0041aed0
cmp dword [0x544798], 0
jne 0x45084b
cmp dword [ebx + 4], 0
mov ecx, ebx
je 0x450846
push 1
call fcn.00452930
jmp 0x45084b
call fcn.00454740
cmp dword [ebp - 0x238], 0
jne 0x45085a
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov eax, dword [ebp - 0x234]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x45086d
push eax
call esi
mov eax, dword [ebp - 0x230]
test eax, eax
je 0x45087a
push eax
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004a8a2f
mov esp, ebp
pop ebp
ret 4