Function at 0x40b4df
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 0x40b532
call fcn.004089c6
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x40b51e
mov eax, 0xffffffff
jmp 0x40bc0e
test byte [ebp - 8], 2
je 0x40b532
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 2
push 0x200
push 0x430ce0
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x4a05b0
push 0x430ce0
call fcn.0041d138
add esp, 8
mov dword [0x42d8c0], 0
jmp 0x40b569
inc dword [0x42d8c0]
cmp dword [0x42d8c0], 0x3000
jge 0x40b58a
mov eax, dword [0x42d8c0]
mov byte [eax + 0x42d8d0], 0
jmp 0x40b563
cmp dword [ebp + 0xc], 0x2b0
jbe 0x40b5a4
mov eax, dword [ebp + 8]
mov dword [eax + 0x2b0], 0
push 0x434100
push 0x42d8d0
push 0x430ce0
call fcn.0040bc13
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40b5db
push 0x2002019
call fcn.0040648e
add esp, 4
mov eax, 0xffffffff
jmp 0x40bc0e
push 0x430ee4
mov ax, word [0x434100]
push eax
push 0x42d8d0
push str._386Enh_
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40b62a
push 0x80002
call fcn.004064f2
add esp, 4
push 0x2002019
call fcn.0040648e
add esp, 4
mov eax, 0xffffffff
jmp 0x40bc0e
push 0x430ee6
xor eax, eax
mov ax, word [0x434100]
xor ecx, ecx
mov cx, word [0x430ee4]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a05c8
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b670
mov eax, dword [ebp + 8]
or dword [eax + 0x118], 1
jmp 0x40b677
xor eax, eax
jmp 0x40bc0e
push 0x430ee4
mov ax, word [0x434100]
push eax
push 0x42d8d0
push 0x4a05d4
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40b6c3
push 0x430ee4
mov ax, word [0x434100]
push eax
push 0x42d8d0
push str._haspdd_
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40b711
push 0x4a05e8
mov eax, dword [ebp + 8]
push eax
call fcn.0041d13c
add esp, 8
push 0x4a05f0
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041d13c
add esp, 8
push 0x4a05f8
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041d13c
add esp, 8
xor eax, eax
jmp 0x40bc0e
push 0x434370
xor eax, eax
mov ax, word [0x434100]
xor ecx, ecx
mov cx, word [0x430ee4]
sub eax, ecx
push eax
mov eax, dword [ebp - 0x10]
inc eax
push eax
push 0x4a0600
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x40b758
mov ax, word [0x434370]
mov word [ebp - 4], ax
jmp 0x40b76f
xor eax, eax
mov ax, word [0x434100]
xor ecx, ecx
mov cx, word [0x430ee4]
sub eax, ecx
mov word [ebp - 4], ax
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a0604
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b835
mov word [ebp - 0xc], 0
push 0x4a060c
call fcn.0041d0c4
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 [0x49ff78]
cmp eax, ecx
je 0x40b820
push 0x4a0614
call fcn.0041d0c4
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 [0x434100]
add ecx, 0x42d8d0
cmp eax, ecx
jbe 0x40b79c
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx - 1], 0
jmp 0x40b846
push 0x4a061c
mov eax, dword [ebp + 8]
push eax
call fcn.0041d13c
add esp, 8
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a0624
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b910
mov word [ebp - 0xc], 0
push 0x4a062c
call fcn.0041d0c4
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 [0x49ff78]
cmp eax, ecx
je 0x40b8fb
push 0x4a0634
call fcn.0041d0c4
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 [0x434100]
add ecx, 0x42d8d0
cmp eax, ecx
jbe 0x40b873
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x7f], 0
jmp 0x40b926
push 0x4a063c
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0041d13c
add esp, 8
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a0644
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40b9f6
mov word [ebp - 0xc], 0
push 0x4a0654
call fcn.0041d0c4
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 [0x49ff78]
cmp eax, ecx
je 0x40b9de
push 0x4a0664
call fcn.0041d0c4
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 [0x434100]
add ecx, 0x42d8d0
cmp eax, ecx
jbe 0x40b953
mov eax, dword [ebp - 0xc]
and eax, 0xffff
mov ecx, dword [ebp + 8]
mov byte [eax + ecx + 0x97], 0
jmp 0x40ba0c
push str.Unknown
mov eax, dword [ebp + 8]
add eax, 0x98
push eax
call fcn.0041d13c
add esp, 8
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a067c
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40babd
push 0x4a068c
call fcn.0041d0c4
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x434102], al
mov byte [0x434103], 0
push 0x4a069c
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40ba7f
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 1
jmp 0x40bab8
push 0x4a06a0
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40baab
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 2
jmp 0x40bab8
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
jmp 0x40baca
mov eax, dword [ebp + 8]
mov dword [eax + 0x94], 0xffffffff
push 0x430ee6
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x4a06a4
call fcn.004095d8
add esp, 0x10
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x40bbd3
push 0x4a06b0
call fcn.0041d0c4
add esp, 4
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + eax + 1]
mov byte [0x434102], al
mov byte [0x434103], 0
push str.NEBA
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40bb3d
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 1
jmp 0x40bbce
push 0x4a06c0
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40bb69
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 2
jmp 0x40bbce
push 0x4a06c4
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40bb95
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 4
jmp 0x40bbce
push 0x4a06c8
push 0x434102
call fcn.0041e370
add esp, 8
test eax, eax
jne 0x40bbc1
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 8
jmp 0x40bbce
mov eax, dword [ebp + 8]
mov dword [eax + 0x1a0], 0xffffffff
jmp 0x40bbe0
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 0x40bc0e
pop edi
pop esi
pop ebx
leave
ret