Function at 0x40bdcf
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 0x40be22
call fcn.004092b6
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x40be0e
mov eax, 0xffffffff
jmp 0x40c4fe
test byte [ebp - 8], 2
je 0x40be22
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 2
push 0x200
push 0x5c6860
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4b49b0
push 0x5c6860
call fcn.004202e0
add esp, 8
mov dword [0x5c3430], 0
jmp 0x40be59
inc dword [0x5c3430]
cmp dword [0x5c3430], 0x3000
jge 0x40be7a
mov eax, dword [0x5c3430]
mov byte [eax + 0x5c3440], 0
jmp 0x40be53
cmp dword [ebp + 0xc], 0x2b0
jbe 0x40be94
mov eax, dword [ebp + 8]
mov dword [eax + 0x2b0], 0
push 0x5c9ca0
push 0x5c3440
push 0x5c6860
call fcn.0040c503
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40becb
push 0x2002019
call fcn.00406c68
add esp, 4
mov eax, 0xffffffff
jmp 0x40c4fe
push 0x5c6a64
mov ax, word [0x5c9ca0]
push eax
push 0x5c3440
push str._386Enh_
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40bf1a
push 0x80002
call fcn.00406ccc
add esp, 4
push 0x2002019
call fcn.00406c68
add esp, 4
mov eax, 0xffffffff
jmp 0x40c4fe
push 0x5c6a66
xor eax, eax
mov ax, word [0x5c9ca0]
xor ecx, ecx
mov cx, word [0x5c6a64]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b49c8
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40bf60
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 1
jmp 0x40bf67
xor eax, eax
jmp 0x40c4fe
push 0x5c6a64
mov ax, word [0x5c9ca0]
push eax
push 0x5c3440
push 0x4b49d4
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40bfb3
push 0x5c6a64
mov ax, word [0x5c9ca0]
push eax
push 0x5c3440
push str._haspdd_
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40c001
push 0x4b49e8
mov eax, dword [ebp + 8]
push eax
call fcn.004202d0
add esp, 8
push 0x4b49f0
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.004202d0
add esp, 8
push 0x4b49f8
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.004202d0
add esp, 8
xor eax, eax
jmp 0x40c4fe
push 0x5c9f10
xor eax, eax
mov ax, word [0x5c9ca0]
xor ecx, ecx
mov cx, word [0x5c6a64]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
inc eax
push eax
push 0x4b4a00
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x40c048
mov ax, word [0x5c9f10]
mov word [ebp - 4], ax
jmp 0x40c05f
xor eax, eax
mov ax, word [0x5c9ca0]
xor ecx, ecx
mov cx, word [0x5c6a64]
sub eax, ecx
mov word [ebp - 4], ax
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b4a04
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c125
mov word [ebp - 0xc], 0
push 0x4b4a0c
call fcn.00420150
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 [0x4b4378]
cmp eax, ecx
je 0x40c110
push 0x4b4a14
call fcn.00420150
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 [0x5c9ca0]
add ecx, 0x5c3440
cmp eax, ecx
jbe 0x40c08c
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx - 1], 0
jmp 0x40c136
push 0x4b4a1c
mov eax, dword [ebp + 8]
push eax
call fcn.004202d0
add esp, 8
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b4a24
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c200
mov word [ebp - 0xc], 0
push 0x4b4a2c
call fcn.00420150
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 [0x4b4378]
cmp eax, ecx
je 0x40c1eb
push 0x4b4a34
call fcn.00420150
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 [0x5c9ca0]
add ecx, 0x5c3440
cmp eax, ecx
jbe 0x40c163
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x7f], 0
jmp 0x40c216
push 0x4b4a3c
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.004202d0
add esp, 8
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b4a44
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c2e6
mov word [ebp - 0xc], 0
push 0x4b4a54
call fcn.00420150
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 [0x4b4378]
cmp eax, ecx
je 0x40c2ce
push 0x4b4a64
call fcn.00420150
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 [0x5c9ca0]
add ecx, 0x5c3440
cmp eax, ecx
jbe 0x40c243
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x97], 0
jmp 0x40c2fc
push str.Unknown
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.004202d0
add esp, 8
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b4a7c
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c3ad
push 0x4b4a8c
call fcn.00420150
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x5c9ca2], al
mov byte [0x5c9ca3], 0
push 0x4b4a9c
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c36f
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 1
jmp 0x40c3a8
push 0x4b4aa0
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c39b
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 2
jmp 0x40c3a8
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
jmp 0x40c3ba
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
push 0x5c6a66
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4b4aa4
call fcn.00409ec8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40c4c3
push 0x4b4ab0
call fcn.00420150
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x5c9ca2], al
mov byte [0x5c9ca3], 0
push str.NEBA
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c42d
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 1
jmp 0x40c4be
push 0x4b4ac0
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c459
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 2
jmp 0x40c4be
push 0x4b4ac4
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c485
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 4
jmp 0x40c4be
push 0x4b4ac8
push 0x5c9ca2
call fcn.00421830
add esp, 8
test eax, eax
jne 0x40c4b1
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 8
jmp 0x40c4be
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
jmp 0x40c4d0
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 0x40c4fe
pop edi
pop esi
pop ebx
leave
ret