Function at 0x403e20
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword [ebp + 8]
sub esp, 0x174
push ebx
push esi
push edi
push 0x4ab1c0
mov dword [0x4ac2c4], eax
call dword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
push 1
call dword [sym.imp.KERNEL32.DLL_SetErrorMode]
lea ecx, [esp + 0x78]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
test eax, eax
je 0x403e67
lea eax, [esp + 0x78]
call fcn.0044f7c0
mov eax, dword [0x4a9aac]
test eax, eax
je 0x403ec4
mov ebx, dword [eax]
test ebx, ebx
je 0x403ec4
cmp byte [ebx], 0
je 0x403ec4
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403e80
sub eax, edx
mov edi, eax
lea eax, [edi + 1]
call fcn.004710c0
mov esi, eax
test esi, esi
jne 0x403ead
push ebx
push 0x49c0a0
mov ecx, 0x4ad268
call fcn.0042f2b0
xor eax, eax
jmp 0x403ec9
test edi, edi
je 0x403ebc
push edi
push ebx
push esi
call fcn.0048f790
add esp, 0xc
mov byte [esi + edi], 0
mov eax, esi
jmp 0x403ec9
mov eax, 0x49a8ad
mov dword [0x4acad8], eax
mov eax, dword [0x4aa184]
mov ebx, 1
mov byte [esp + 0x47], 0
mov byte [esp + 0x45], 0
mov dword [esp + 0x48], 1
mov dword [esp + 0x54], eax
cmp eax, ebx
jle 0x404023
jmp 0x403f00
cmp byte [esp + 0x45], 0
mov edx, dword [0x4aa188]
mov edi, dword [edx + ebx*4]
je 0x403f96
mov eax, dword [esp + 0x48]
push eax
lea ecx, [esp + 0x5c]
push 0x49a8cc
push ecx
call fcn.004873d8
add esp, 0xc
cmp byte [esp + 0x58], 0
mov esi, eax
je 0x4043ec
lea edx, [esp + 0x46]
push edx
push 3
lea eax, [esp + 0x54]
push eax
push esi
lea ecx, [esp + 0x68]
push ecx
mov ecx, 0x4ad268
call fcn.00422690
test eax, eax
jne 0x403f80
mov eax, dword [esp + 0x4c]
xor edx, edx
cmp byte [esp + 0x46], dl
mov ecx, esi
setne dl
inc edx
push edx
push eax
push 0x4ad268
lea edx, [esp + 0x64]
call fcn.00422930
test eax, eax
je 0x4043ec
push 1
push 0
push 0xffffffffffffffff
push edi
push eax
call fcn.00476c10
inc dword [esp + 0x48]
jmp 0x404016
push 0x49a8d0
push edi
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x404011
push 0x49a8d4
push edi
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x404011
push 0x49a8e0
push edi
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x404008
push 0x49a8e4
push edi
call fcn.00486ea1
add esp, 8
test eax, eax
je 0x404008
push 0x49a8ec
push edi
call fcn.00486ea1
add esp, 8
test eax, eax
jne 0x403ff9
mov byte [0x4ad883], 1
jmp 0x404016
dec ebx
lea ecx, [ebx + 1]
mov byte [esp + 0x45], 1
mov dword [esp + 0x54], ecx
jmp 0x404016
mov byte [0x4ac2ef], 1
jmp 0x404016
mov byte [esp + 0x47], 1
inc ebx
cmp ebx, dword [0x4aa184]
jl 0x403f00
lea edx, [esp + 0x46]
push edx
push 3
lea eax, [esp + 0x54]
push eax
push 0
push 0x49a8c8
mov ecx, 0x4ad268
call fcn.00422690
test eax, eax
jne 0x40406d
mov edx, dword [esp + 0x4c]
xor ecx, ecx
cmp byte [esp + 0x46], cl
setne cl
inc ecx
push ecx
push edx
push 0x4ad268
xor ecx, ecx
mov edx, 0x49a8c8
call fcn.00422930
test eax, eax
je 0x4043ec
cmp byte [eax + 0x17], 0
jne 0x404078
mov esi, dword [eax + 0xc]
jmp 0x40407a
mov esi, eax
mov al, byte [esi + 0x15]
test al, 2
je 0x404090
and al, 0x3d
mov byte [esi + 0x15], al
mov eax, dword [esi]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x48]
dec eax
cdq
mov dword [esi], eax
mov al, byte [esi + 0x15]
and al, 0x9b
or al, 0x18
mov dword [esi + 4], edx
mov byte [esi + 0x15], al
jns 0x4040b4
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x4040d9
cmp dword [0x4ac42c], 0
je 0x4040c1
test al, 0x10
jne 0x4040ce
cmp dword [0x4ac430], 0
je 0x4040d9
test al, 0x20
je 0x4040d9
test al, 8
je 0x4040d9
mov eax, esi
call fcn.00401150
lea eax, [esp + 0x45]
push eax
push 0xc1
lea ecx, [esp + 0x50]
push ecx
push 6
push 0x49a8fc
mov ecx, 0x4ad268
call fcn.00422690
test eax, eax
jne 0x404127
mov eax, dword [esp + 0x48]
xor edx, edx
cmp byte [esp + 0x45], dl
mov ecx, 6
setne dl
inc edx
or edx, 0xc0
push edx
push eax
push 0x4ad268
mov edx, 0x49a8fc
call fcn.00422930
mov esi, eax
test esi, esi
je 0x4043ec
mov eax, dword [esp + 0x54]
mov ecx, dword [0x4aa188]
mov ebx, dword [0x4aa184]
lea edx, [ecx + eax*4]
sub ebx, eax
push edx
call fcn.0046d3d0
add esp, 4
test eax, eax
je 0x4043ec
mov edi, eax
mov ecx, esi
call fcn.00476f40
call fcn.00403cb0
mov bl, byte [esp + 0x47]
push 0x4ad268
mov al, bl
call fcn.00416520
cmp eax, 1
jne 0x4043ec
mov esi, dword [0x4a8978]
mov ecx, 0x3a
mov edi, 0x4aaf90
rep movsd dword es:[edi], dword [esi]
mov edi, 0x4ad268
call fcn.004173a0
cmp eax, 0xffffffff
je 0x4043ec
test eax, eax
je 0x4043e1
mov eax, dword [0x4ac420]
test eax, eax
jne 0x4041f3
mov eax, dword [0x4a9ab4]
cmp word [eax], 0
jne 0x4041e7
cmp dword [0x4acb40], 0
jne 0x4041e7
cmp dword [0x4ac3fc], 0
jne 0x4041e7
cmp dword [0x4ac400], 0
jne 0x4041e7
cmp byte [0x4ac40a], 0
je 0x404267
mov dword [0x4ac420], 1
jmp 0x4041f8
cmp eax, 4
je 0x404267
test bl, bl
jne 0x40426f
cmp byte [0x4ac2ef], bl
jne 0x4042ef
mov ecx, dword [0x4ad87c]
push ecx
push 0x49a904
call dword [sym.imp.USER32.DLL_FindWindowA]
mov edi, eax
test edi, edi
je 0x4042ef
mov eax, dword [0x4ac420]
cmp eax, 3
je 0x4043e1
cmp eax, 2
je 0x404260
fldz
mov edx, dword [0x4ad870]
sub esp, 8
fstp qword [esp]
push 0
push edx
push 4
push 0x49a910
call fcn.00478840
add esp, 0x18
cmp eax, 7
je 0x4043e1
mov eax, 0x407
jmp 0x40428b
test bl, bl
je 0x4042ef
mov eax, dword [0x4ad87c]
push eax
push 0x49a904
call dword [sym.imp.USER32.DLL_FindWindowA]
mov edi, eax
test edi, edi
je 0x4042ef
mov eax, 0x406
push 0
push eax
push 0x44
push edi
call dword [sym.imp.USER32.DLL_PostMessageA]
mov ebx, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0x14
xor esi, esi
call ebx
push edi
call dword [sym.imp.USER32.DLL_IsWindow]
test eax, eax
je 0x4042eb
mov edi, edi
cmp esi, 0x64
jne 0x4042db
fldz
sub esp, 8
fstp qword [esp]
push 0
push 0
push 4
push 0x49a9a8
call fcn.00478840
add esp, 0x18
cmp eax, 7
je 0x4043ec
xor esi, esi
push 0x14
inc esi
call ebx
push edi
call dword [sym.imp.USER32.DLL_IsWindow]
test eax, eax
jne 0x4042b0
push 0x64
call ebx
mov esi, dword [sym.imp.USER32.DLL_SystemParametersInfoA]
push 0
push 0x4aaea4
push 0
push 0x2000
call esi
test eax, eax
je 0x40431f
cmp dword [0x4aaea4], 0
je 0x40431f
push 2
push 0
push 0
push 0x2001
call esi
push 0x4ad268
call fcn.00416820
cmp eax, 1
jne 0x4043ec
push 0
push 4
push 0
call fcn.00487567
add eax, 0x20
push eax
call fcn.00487471
mov esi, dword [0x4a88f0]
add esp, 0x10
test esi, esi
je 0x404374
imul esi, esi, 0x70
push esi
call fcn.00487059
add esp, 4
mov dword [0x4acae0], eax
test eax, eax
je 0x404374
push esi
push 0
push eax
call fcn.00490360
add esp, 0xc
cmp byte [0x4ada42], 0
jne 0x404398
lea ecx, [esp + 0x4c]
push ecx
mov dword [esp + 0x50], 8
mov dword [esp + 0x54], 0x1ff
call dword [sym.imp.COMCTL32.DLL_InitCommonControlsEx]
call fcn.00409a30
push 3
push 0
push 0x49a9f0
mov ecx, 0x4ad268
mov byte [0x4ad880], 1
mov byte [0x4acacf], 0
call fcn.00422630
test eax, eax
je 0x4043c7
call fcn.00403df0
push 0x4ad268
call fcn.00416e00
test eax, eax
je 0x4043ec
push 0
push 0xa
call fcn.004013c0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret 0x10