Function at 0x4163a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54d996
mov eax, dword fs:[0]
push eax
sub esp, 0xd74
mov eax, dword [0x13413f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xd44], ecx
xor eax, eax
mov word [ebp - 0x210], ax
push 0x1fe
push 0
lea ecx, [ebp - 0x20e]
push ecx
call fcn.004f3400
add esp, 0xc
push 0xff
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0xa40]
call fcn.00404c20
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xd80]
call fcn.004191e0
mov byte [ebp - 4], 1
push 0x5a1a2c
lea ecx, [ebp - 0xa70]
call fcn.00404c20
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xa70]
push ecx
lea edx, [ebp - 0xd80]
push edx
lea eax, [ebp - 0xa40]
push eax
call fcn.004044c0
add esp, 0xc
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa70]
call fcn.00401cd0
push 0x5a1a30
push 0
lea ecx, [ebp - 0xd80]
call fcn.00419160
push eax
lea ecx, [ebp - 0xb18]
push ecx
call fcn.00407220
add esp, 0xc
mov dword [ebp - 0xd48], eax
mov edx, dword [ebp - 0xd48]
push edx
lea ecx, [ebp - 0xa40]
call fcn.00404a40
lea ecx, [ebp - 0xb18]
call fcn.00401cd0
push 0x5a1a5c
lea ecx, [ebp - 0xa40]
call fcn.004064c0
push 0x5a1a78
mov ecx, dword [ebp - 0xd44]
add ecx, 0x4c
call fcn.004758f0
mov dword [ebp - 0xd30], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401c20
push eax
lea ecx, [ebp - 0xb9c]
call fcn.00484410
mov byte [ebp - 4], 3
lea eax, [ebp - 0xb9c]
push eax
mov ecx, dword [ebp - 0xd30]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xd30]
mov eax, dword [edx + 0x3c]
call eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb9c]
call fcn.00484540
push 0xffffffffffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401c20
push eax
lea ecx, [ebp - 0xc20]
call fcn.00484410
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xc20]
push ecx
mov edx, dword [ebp - 0xd30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd30]
mov edx, dword [eax + 0xb0]
call edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc20]
call fcn.00484540
lea ecx, [ebp - 0xd29]
call fcn.00402270
mov byte [ebp - 4], 5
push 0x5a1a8c
lea ecx, [ebp - 0xa88]
call fcn.00404c20
mov byte [ebp - 4], 6
push 1
lea eax, [ebp - 0xa88]
push eax
lea ecx, [ebp - 0xd29]
call fcn.00406330
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa88]
call fcn.00401cd0
lea ecx, [ebp - 0xa28]
call fcn.00401d20
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xa58]
call fcn.00401d20
mov byte [ebp - 4], 8
mov dword [ebp - 0xd4c], 1
push 0x5a1ab0
lea ecx, [ebp - 0xab8]
call fcn.00404c20
mov byte [ebp - 4], 9
push 0x5a1ad0
lea ecx, [ebp - 0xaa0]
call fcn.00404c20
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xa28]
push ecx
lea edx, [ebp - 0xd4c]
push edx
lea eax, [ebp - 0xab8]
push eax
lea ecx, [ebp - 0xaa0]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00406bd0
add esp, 0x14
mov byte [ebp - 0xd31], al
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xaa0]
call fcn.00401cd0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xab8]
call fcn.00401cd0
movzx edx, byte [ebp - 0xd31]
test edx, edx
je 0x41687d
lea ecx, [ebp - 0xd74]
call fcn.004191e0
mov byte [ebp - 4], 0xb
push 0x5a1b48
lea ecx, [ebp - 0xad0]
call fcn.00404c20
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0xad0]
push eax
lea ecx, [ebp - 0xd74]
push ecx
lea edx, [ebp - 0xa28]
push edx
call fcn.004044c0
add esp, 0xc
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xad0]
call fcn.00401cd0
lea ecx, [ebp - 0xd74]
call fcn.00405ac0
cmp eax, 1
jbe 0x4166d1
push 1
lea ecx, [ebp - 0xd74]
call fcn.00419160
push eax
lea ecx, [ebp - 0xa28]
call fcn.00401c60
lea ecx, [ebp - 0xd68]
call fcn.004191e0
mov byte [ebp - 4], 0xd
push 0x5a1b50
lea ecx, [ebp - 0xae8]
call fcn.00404c20
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0xae8]
push eax
lea ecx, [ebp - 0xd68]
push ecx
lea edx, [ebp - 0xa28]
push edx
call fcn.004044c0
add esp, 0xc
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xae8]
call fcn.00401cd0
lea ecx, [ebp - 0xd68]
call fcn.00405ac0
sub eax, 1
push eax
lea ecx, [ebp - 0xd68]
call fcn.00419160
push eax
lea ecx, [ebp - 0xb00]
call fcn.00404d00
mov byte [ebp - 4], 0xf
xor eax, eax
mov word [ebp - 0xa10], ax
push 0x7fe
push 0
lea ecx, [ebp - 0xa0e]
push ecx
call fcn.004f3400
add esp, 0xc
lea ecx, [ebp - 0xa28]
call fcn.00401c20
mov dword [ebp - 0xd38], eax
mov edx, dword [ebp - 0xd38]
add edx, 2
mov dword [ebp - 0xd50], edx
mov eax, dword [ebp - 0xd38]
mov cx, word [eax]
mov word [ebp - 0xd3e], cx
add dword [ebp - 0xd38], 2
cmp word [ebp - 0xd3e], 0
jne 0x416789
mov edx, dword [ebp - 0xd38]
sub edx, dword [ebp - 0xd50]
sar edx, 1
mov dword [ebp - 0xd58], edx
lea ecx, [ebp - 0xb00]
call fcn.00401c20
mov dword [ebp - 0xd3c], eax
mov eax, dword [ebp - 0xd3c]
add eax, 2
mov dword [ebp - 0xd54], eax
mov ecx, dword [ebp - 0xd3c]
mov dx, word [ecx]
mov word [ebp - 0xd40], dx
add dword [ebp - 0xd3c], 2
cmp word [ebp - 0xd40], 0
jne 0x4167de
mov eax, dword [ebp - 0xd3c]
sub eax, dword [ebp - 0xd54]
sar eax, 1
mov dword [ebp - 0xd5c], eax
mov ecx, dword [ebp - 0xd58]
sub ecx, dword [ebp - 0xd5c]
sub ecx, 1
push ecx
lea ecx, [ebp - 0xa28]
call fcn.00401c20
push eax
lea edx, [ebp - 0xa10]
push edx
call fcn.00500bb4
add esp, 0xc
lea eax, [ebp - 0xa10]
push eax
lea ecx, [ebp - 0xa58]
call fcn.004070c0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xb00]
call fcn.00401cd0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xd68]
call fcn.004191a0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xd74]
call fcn.004191a0
push 0x5a1b54
lea ecx, [ebp - 0xa58]
push ecx
call fcn.00419430
add esp, 8
movzx edx, al
test edx, edx
je 0x41692b
push 0xffffffffffffffff
lea ecx, [ebp - 0xa58]
call fcn.00401c20
push eax
lea ecx, [ebp - 0xca4]
call fcn.00484410
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0xca4]
push eax
mov ecx, dword [ebp - 0xd30]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xd30]
mov eax, dword [edx + 0x3c]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xca4]
call fcn.00484540
push 0xffffffffffffffff
lea ecx, [ebp - 0xa58]
call fcn.00401c20
push eax
lea ecx, [ebp - 0xd28]
call fcn.00484410
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0xd28]
push ecx
mov edx, dword [ebp - 0xd30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd30]
mov edx, dword [eax + 0xb0]
call edx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xd28]
call fcn.00484540
movzx eax, byte [0x1343c4c]
test eax, eax
je 0x416945
push 1
push 0
mov ecx, dword [ebp - 0xd44]
call fcn.0047f170
mov ecx, dword [ebp - 0xd44]
call fcn.00417890
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xa58]
call fcn.00401cd0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xa28]
call fcn.00401cd0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xd29]
call fcn.00401400
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xd80]
call fcn.004191a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa40]
call fcn.00401cd0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00472312
mov esp, ebp
pop ebp
ret 8