Function at 0x40bd8f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [eax + 0x118], 0
cmp dword [ebp + 0xc], 0x2b0
jbe 0x40bde2
call fcn.00409276
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x40bdce
mov eax, 0xffffffff
jmp 0x40c4be
test byte [ebp - 8], 2
je 0x40bde2
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 2
push 0x200
push 0x5afb80
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a55f8
push 0x5afb80
call fcn.0041e940
add esp, 8
mov dword [0x5ac750], 0
jmp 0x40be19
inc dword [0x5ac750]
cmp dword [0x5ac750], 0x3000
jge 0x40be3a
mov eax, dword [0x5ac750]
mov byte [eax + 0x5ac760], 0
jmp 0x40be13
cmp dword [ebp + 0xc], 0x2b0
jbe 0x40be54
mov eax, dword [ebp + 8]
mov dword [eax + 0x2b0], 0
push 0x5b2fc0
push 0x5ac760
push 0x5afb80
call fcn.0040c4c3
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40be8b
push 0x2002019
call fcn.00406c68
add esp, 4
mov eax, 0xffffffff
jmp 0x40c4be
push 0x5afd84
mov ax, word [0x5b2fc0]
push eax
push 0x5ac760
push str._386Enh_
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40beda
push 0x80002
call fcn.00406ccc
add esp, 4
push 0x2002019
call fcn.00406c68
add esp, 4
mov eax, 0xffffffff
jmp 0x40c4be
push 0x5afd86
xor eax, eax
mov ax, word [0x5b2fc0]
xor ecx, ecx
mov cx, word [0x5afd84]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a5610
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40bf20
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 1
jmp 0x40bf27
xor eax, eax
jmp 0x40c4be
push 0x5afd84
mov ax, word [0x5b2fc0]
push eax
push 0x5ac760
push 0x4a561c
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40bf73
push 0x5afd84
mov ax, word [0x5b2fc0]
push eax
push 0x5ac760
push str._haspdd_
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40bfc1
push 0x4a5630
mov eax, dword [ebp + 8]
push eax
call fcn.0041e930
add esp, 8
push 0x4a5638
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041e930
add esp, 8
push 0x4a5640
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041e930
add esp, 8
xor eax, eax
jmp 0x40c4be
push 0x5b3230
xor eax, eax
mov ax, word [0x5b2fc0]
xor ecx, ecx
mov cx, word [0x5afd84]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
inc eax
push eax
push 0x4a5648
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x40c008
mov ax, word [0x5b3230]
mov word [ebp - 4], ax
jmp 0x40c01f
xor eax, eax
mov ax, word [0x5b2fc0]
xor ecx, ecx
mov cx, word [0x5afd84]
sub eax, ecx
mov word [ebp - 4], ax
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a564c
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c0e5
mov word [ebp - 0xc], 0
push 0x4a5654
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx - 1]
movsx ecx, byte [0x4a4fc0]
cmp eax, ecx
je 0x40c0d0
push 0x4a565c
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x5b2fc0]
add ecx, 0x5ac760
cmp eax, ecx
jbe 0x40c04c
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx - 1], 0
jmp 0x40c0f6
push 0x4a5664
mov eax, dword [ebp + 8]
push eax
call fcn.0041e930
add esp, 8
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a566c
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c1c0
mov word [ebp - 0xc], 0
push 0x4a5674
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx + 0x80], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx + 0x7f]
movsx ecx, byte [0x4a4fc0]
cmp eax, ecx
je 0x40c1ab
push 0x4a567c
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x5b2fc0]
add ecx, 0x5ac760
cmp eax, ecx
jbe 0x40c123
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x7f], 0
jmp 0x40c1d6
push 0x4a5684
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041e930
add esp, 8
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a568c
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c2a6
mov word [ebp - 0xc], 0
push 0x4a569c
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + ecx + 1]
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov byte [ecx + edx + 0x98], al
inc word [ebp - 0xc]
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
movsx eax, byte [eax + ecx + 0x97]
movsx ecx, byte [0x4a4fc0]
cmp eax, ecx
je 0x40c28e
push 0x4a56ac
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0xc]
and ecx, 0xffff
add eax, ecx
add eax, dword [ebp - 0x14]
inc eax
xor ecx, ecx
mov cx, word [0x5b2fc0]
add ecx, 0x5ac760
cmp eax, ecx
jbe 0x40c203
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x97], 0
jmp 0x40c2bc
push str.Unknown
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041e930
add esp, 8
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a56c4
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c36d
push 0x4a56d4
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x5b2fc2], al
mov byte [0x5b2fc3], 0
push 0x4a56e4
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c32f
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 1
jmp 0x40c368
push 0x4a56e8
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c35b
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 2
jmp 0x40c368
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
jmp 0x40c37a
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
push 0x5afd86
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a56ec
call fcn.00409e88
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c483
push 0x4a56f8
call fcn.0041e7b0
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x5b2fc2], al
mov byte [0x5b2fc3], 0
push str.NEBA
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c3ed
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 1
jmp 0x40c47e
push 0x4a5708
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c419
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 2
jmp 0x40c47e
push 0x4a570c
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c445
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 4
jmp 0x40c47e
push 0x4a5710
push 0x5b2fc2
call fcn.0041fe90
add esp, 8
test eax, eax
jne 0x40c471
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 8
jmp 0x40c47e
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
jmp 0x40c490
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a4], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a8], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x1ac], 0
xor eax, eax
jmp 0x40c4be
pop edi
pop esi
pop ebx
leave
ret