Function at 0x403bd0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, dword [ebp + 8]
sub esp, 0x34
push ebx
push esi
push edi
push 0x4a8bf0
mov dword [0x4a9d18], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x4aa520
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x403cd6
mov byte [0x4aa520], al
mov esi, 0x498831
mov ebx, 1
mov dword [0x4aa624], esi
mov byte [esp + 0x12], 0
mov byte [esp + 0x11], 0
mov dword [esp + 0x14], ebx
cmp dword [0x4a7bc4], ebx
jle 0x403dc4
mov edi, edi
cmp byte [esp + 0x11], 0
mov ecx, dword [0x4a7bc8]
mov edi, dword [ecx + ebx*4]
je 0x403d3e
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x24]
push 0x49884c
push eax
call fcn.004855f8
add esp, 0xc
cmp byte [esp + 0x20], 0
mov esi, eax
je 0x403e15
lea ecx, [esp + 0x13]
push ecx
push 3
lea edx, [esp + 0x20]
push edx
push esi
lea eax, [esp + 0x30]
push eax
mov ecx, 0x4abd80
call fcn.00420b70
test eax, eax
jne 0x403cc0
mov edx, dword [esp + 0x18]
xor ecx, ecx
cmp byte [esp + 0x13], cl
setne cl
inc ecx
push ecx
push edx
push 0x4abd80
mov ecx, esi
lea edx, [esp + 0x2c]
call fcn.00420e00
test eax, eax
je 0x403e15
push 1
push 0
push 0xffffffffffffffff
push edi
push eax
call fcn.00474fa0
inc dword [esp + 0x14]
jmp 0x403db7
cmp byte [0x4aa520], 0
je 0x403c14
mov eax, 0x4aa520
lea edx, [eax + 1]
jmp 0x403cf0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403cf0
sub eax, edx
mov edi, eax
lea eax, [edi + 1]
call fcn.0046f800
mov esi, eax
test esi, esi
jne 0x403d22
push 0x4aa520
push 0x499f48
mov ecx, 0x4abd80
call fcn.0042e860
jmp 0x403c19
test edi, edi
je 0x403d35
push edi
push 0x4aa520
push esi
call fcn.0048da10
add esp, 0xc
mov byte [esi + edi], 0
jmp 0x403c19
push 0x498850
push edi
call fcn.004850c1
add esp, 8
test eax, eax
je 0x403db2
push 0x498854
push edi
call fcn.004850c1
add esp, 8
test eax, eax
je 0x403db2
push 0x498860
push edi
call fcn.004850c1
add esp, 8
test eax, eax
je 0x403da9
push 0x498864
push edi
call fcn.004850c1
add esp, 8
test eax, eax
je 0x403da9
push 0x49886c
push edi
call fcn.004850c1
add esp, 8
test eax, eax
jne 0x403da1
mov byte [0x4ac383], 1
jmp 0x403db7
mov byte [esp + 0x11], 1
dec ebx
jmp 0x403db7
mov byte [0x4a9e41], 1
jmp 0x403db7
mov byte [esp + 0x12], 1
inc ebx
cmp ebx, dword [0x4a7bc4]
jl 0x403c40
lea eax, [esp + 0x13]
push eax
push 3
lea ecx, [esp + 0x20]
push ecx
push 0
push 0x49887c
mov ecx, 0x4abd80
call fcn.00420b70
test eax, eax
jne 0x403e0a
mov eax, dword [esp + 0x18]
xor edx, edx
cmp byte [esp + 0x13], dl
setne dl
xor ecx, ecx
inc edx
push edx
push eax
push 0x4abd80
mov edx, 0x49887c
call fcn.00420e00
test eax, eax
je 0x403e15
cmp byte [eax + 0x17], 0
jne 0x403e23
mov esi, dword [eax + 0xc]
jmp 0x403e25
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, eax
mov al, byte [esi + 0x15]
test al, 2
je 0x403e3b
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 + 0x14]
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 0x403e5f
mov eax, esi
call fcn.00401150
and byte [esi + 0x15], 0x8f
jmp 0x403e84
cmp dword [0x4a9e7c], 0
je 0x403e6c
test al, 0x10
jne 0x403e79
cmp dword [0x4a9e80], 0
je 0x403e84
test al, 0x20
je 0x403e84
test al, 8
je 0x403e84
mov eax, esi
call fcn.00401150
call fcn.00403a60
mov bl, byte [esp + 0x12]
push 0x4abd80
mov al, bl
call fcn.004150e0
cmp eax, 1
jne 0x403e15
mov esi, dword [0x4a6440]
mov ecx, 0x3a
mov edi, 0x4a89d0
mov eax, 0x4abd80
rep movsd dword es:[edi], dword [esi]
call fcn.00415f60
cmp eax, 0xffffffff
je 0x403e15
test eax, eax
je 0x40414e
mov eax, dword [0x4a9e6c]
test eax, eax
jne 0x403f17
mov eax, dword [0x4a7554]
cmp word [eax], 0
jne 0x403f0b
cmp dword [0x4ab61c], 0
jne 0x403f0b
cmp dword [0x4a9e50], 0
jne 0x403f0b
cmp dword [0x4a9e54], 0
jne 0x403f0b
cmp byte [0x4a9e70], 0
je 0x403f8b
mov dword [0x4a9e6c], 1
jmp 0x403f1c
cmp eax, 4
je 0x403f8b
test bl, bl
jne 0x403f93
cmp byte [0x4a9e41], bl
jne 0x404011
mov ecx, dword [0x4ac37c]
push ecx
push 0x498880
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x404011
mov eax, dword [0x4a9e6c]
cmp eax, 3
je 0x40414e
cmp eax, 2
je 0x403f84
fldz
mov edx, dword [0x4ac370]
push 0
sub esp, 8
fstp qword [esp]
push edx
push 4
push 0x498890
call fcn.00476b90
add esp, 0x18
cmp eax, 7
je 0x40414e
mov eax, 0x407
jmp 0x403faf
test bl, bl
je 0x404011
mov eax, dword [0x4ac37c]
push eax
push 0x498880
call dword [sym.imp.USER32.dll_FindWindowA]
mov edi, eax
test edi, edi
je 0x404011
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 0x40400d
cmp esi, 0x64
jne 0x403ffd
fldz
push 0
sub esp, 8
fstp qword [esp]
push 0
push 4
push 0x498928
call fcn.00476b90
add esp, 0x18
cmp eax, 7
je 0x403e15
xor esi, esi
push 0x14
inc esi
call ebx
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x403fd2
push 0x64
call ebx
mov esi, dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 0
push 0x4a88e4
push 0
push 0x2000
call esi
test eax, eax
je 0x404041
cmp dword [0x4a88e4], 0
je 0x404041
push 2
push 0
push 0
push 0x2001
call esi
push 0x4abd80
call fcn.00415350
cmp eax, 1
jne 0x403e15
push 0
push 4
push 0
call fcn.00485787
add eax, 0x20
push eax
call fcn.00485691
mov esi, dword [0x4a63a8]
add esp, 0x10
test esi, esi
je 0x404096
imul esi, esi, 0x70
push esi
call fcn.00485279
add esp, 4
mov dword [0x4aa62c], eax
test eax, eax
je 0x404096
push esi
push 0
push eax
call fcn.0048e5e0
add esp, 0xc
cmp byte [0x4ac542], 0
jne 0x4040ba
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], 8
mov dword [esp + 0x20], 0x1ff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.00409a50
lea edx, [esp + 0x13]
push edx
push 3
lea eax, [esp + 0x20]
push eax
push 0
push 0x498970
mov ecx, 0x4abd80
mov byte [0x4ac380], 1
call fcn.00420b70
test eax, eax
jne 0x40410c
mov edx, dword [esp + 0x18]
xor ecx, ecx
cmp byte [esp + 0x13], cl
setne cl
inc ecx
push ecx
push edx
push 0x4abd80
xor ecx, ecx
mov edx, 0x498970
call fcn.00420e00
test eax, eax
je 0x404130
cmp byte [eax + 0x17], 0
jne 0x404117
mov esi, dword [eax + 0xc]
jmp 0x404119
mov esi, eax
test byte [esi + 0x15], 0x80
jne 0x404130
mov eax, esi
call fcn.00401150
mov al, byte [esi + 0x15]
and al, 0xf
or al, 0x80
mov byte [esi + 0x15], al
push 0x4abd80
call fcn.00415930
test eax, eax
je 0x403e15
push 0
push 0xa
call fcn.00401290
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10