Function at 0x418096
Capabilities:
Get common file path

Disassembly:
mov eax, 0x42ce2d
call fcn.00421904
mov eax, 0x30e0
call fcn.00420a50
push esi
push edi
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
mov edi, 0x100
lea eax, [ebp - 0x31c]
push edi
push eax
push 0x26
push dword [0x441fe4]
call esi
lea eax, [ebp - 0x21c]
push edi
push eax
push 0x27
push dword [0x441fe4]
call esi
lea eax, [ebp - 0x21c]
push 0x21
push eax
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
je 0x41810f
push 1
call fcn.0041676b
cmp eax, 2
pop ecx
jl 0x418116
cmp eax, 3
jg 0x418116
xor eax, eax
jmp 0x4183cc
push ebx
lea ecx, [ebp - 0x30ec]
call fcn.0041dbe0
xor ebx, ebx
push ebx
mov dword [ebp - 4], ebx
call fcn.00417e28
push ebx
call fcn.00417c1d
push 0x437ea8
push ebx
call fcn.00417d21
add esp, 0x10
call fcn.0041783a
mov esi, 0x104
lea eax, [ebp - 0x524]
push esi
push eax
push dword [0x441fe4]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x108c
call fcn.004223d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, ebx
mov byte [ebp - 4], 1
je 0x41818e
push dword [0x441fe4]
lea eax, [ebp - 0x524]
push eax
call fcn.004143ec
mov dword [ebp - 0x18], eax
jmp 0x418191
mov dword [ebp - 0x18], ebx
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], bl
cmp ecx, ebx
je 0x4183ba
mov eax, dword [ecx + 0x1088]
mov byte [ebp - 0xd], bl
dec eax
cmp eax, ebx
jle 0x4181f8
lea edi, [eax + 0x41]
mov dword [ebp - 0x14], eax
shl edi, 4
add edi, ecx
push dword [edi]
lea ecx, [ebp - 0x30ec]
call fcn.0041f7ad
push eax
push 0x4320f0
lea eax, [ebp - 0x72c]
push esi
push eax
call fcn.004209f2
lea eax, [ebp - 0x72c]
push eax
call fcn.0040264c
add esp, 0x18
cmp eax, 2
jne 0x4181f0
mov byte [ebp - 0xd], 1
sub edi, 0x10
dec dword [ebp - 0x14]
jne 0x4181b8
mov dl, byte [0x437ea8]
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x11b]
mov byte [ebp - 0x11c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x41f]
mov byte [ebp - 0x420], dl
push esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp byte [ebp - 0x11c], bl
je 0x41826b
lea eax, [ebp - 0x11c]
push eax
call fcn.00420cc0
cmp byte [ebp + eax - 0x11d], 0x5c
pop ecx
jne 0x41826b
lea eax, [ebp - 0x11c]
push eax
call fcn.00420cc0
pop ecx
mov byte [ebp + eax - 0x11d], bl
lea eax, [ebp - 0x11c]
push str.uncns.ini
push eax
push str._s_s
lea eax, [ebp - 0x420]
push esi
push eax
call fcn.004209f2
lea eax, [ebp - 0x420]
push 0x432e68
push eax
mov byte [ebp - 0x31d], bl
call fcn.00421bbb
mov edi, eax
add esp, 0x1c
cmp edi, ebx
je 0x418324
mov ecx, 0x439d88
call fcn.0041f7ad
push edi
push str._MUTEX__n
mov dword [ebp - 0x14], eax
call fcn.00422cb3
push str.chinaddrmainmutexstr
push str.NAME_s_n_n
push edi
call fcn.004219cf
add esp, 0x14
lea eax, [ebp - 0x628]
push esi
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
push str._FILE__n
call fcn.00422cb3
lea eax, [ebp - 0x628]
push eax
push ebx
push str._d_s_n_n
push edi
call fcn.004219cf
push edi
push str._DIR__n
call fcn.00422cb3
push dword [ebp - 0x14]
push ebx
push str._d_s_n
push edi
call fcn.004219cf
push edi
call fcn.00421952
add esp, 0x34
mov ecx, dword [ebp - 0x18]
call fcn.00414462
push dword [ebp - 0x18]
call fcn.004223c7
pop ecx
call fcn.00418014
call fcn.00418043
lea ecx, [ebp - 0x30ec]
call fcn.0041f359
cmp byte [ebp - 0xd], bl
mov edi, 0x100
lea eax, [ebp - 0x31c]
push edi
push eax
je 0x418378
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x38
push dword [0x441fe4]
call esi
lea eax, [ebp - 0x21c]
push edi
push eax
push 0x39
jmp 0x418392
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x28
push dword [0x441fe4]
call esi
lea eax, [ebp - 0x21c]
push edi
push eax
push 0x29
push dword [0x441fe4]
call esi
lea eax, [ebp - 0x21c]
push 0x40
push eax
lea eax, [ebp - 0x31c]
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
pop ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30ec]
call fcn.0041dcb8
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
leave
ret