Function at 0x46e2e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53d7db
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x5bc684]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push 0
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], esi
call fcn.00498380
mov dword [ebp - 4], 0
test esi, esi
jle 0x46e58d
push str._AMZ2122
push str.RatSymLdrD
push str.RatSymLdr
push 0
lea ecx, [ebp - 0x134]
push 0x5682a8
push ecx
call fcn.0041d370
add esp, 0x18
mov dword [ebp - 0x120], eax
test eax, eax
jle 0x46e58d
cmp byte [0x5bf538], 0
je 0x46e41d
mov eax, 0x5bf538
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46e384
sub eax, edx
lea ecx, [ebp - 0x134]
mov ebx, eax
call fcn.00498900
mov esi, eax
test esi, esi
je 0x46e41d
mov ecx, esi
call fcn.00497c50
mov edi, eax
test edi, edi
je 0x46e3c0
push ebx
push 0x5bf538
push edi
call fcn.00504aba
add esp, 0xc
test eax, eax
je 0x46e3d4
push esi
lea ecx, [ebp - 0x134]
call fcn.00498910
mov esi, eax
test esi, esi
jne 0x46e3a0
jmp 0x46e41d
cmp dword [ebp + 0x10], 0
je 0x46e3eb
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x118]
push edx
push edi
push eax
jmp 0x46e3fc
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
push ecx
add edi, ebx
push edi
push edx
call fcn.004ff0c0
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
add esp, 0xc
mov byte [eax + ecx - 1], 0
test esi, esi
jne 0x46e58d
push 0x104
lea edx, [ebp - 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x114]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46e438
sub eax, edx
lea ecx, [ebp - 0x134]
mov ebx, eax
call fcn.00498900
mov edi, eax
test edi, edi
je 0x46e513
mov ecx, edi
call fcn.00497c50
mov esi, eax
test esi, esi
je 0x46e47a
push ebx
lea eax, [ebp - 0x114]
push eax
push esi
call fcn.00504aba
add esp, 0xc
test eax, eax
jne 0x46e491
push edi
lea ecx, [ebp - 0x134]
call fcn.00498910
mov edi, eax
test edi, edi
jne 0x46e458
jmp 0x46e513
cmp byte [0x5bf538], 0
jne 0x46e4c3
mov edx, 0x5bf538
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x46e4a3
push 0x5c
push 0x5bf538
call fcn.004ff460
add esp, 8
test eax, eax
je 0x46e4c3
mov byte [eax], 0
cmp dword [ebp + 0x10], 0
je 0x46e4d3
mov ecx, dword [ebp - 0x11c]
push ecx
push esi
jmp 0x46e4ef
push 0x5c
push esi
call fcn.004ff460
add esp, 8
test eax, eax
je 0x46e4e5
inc eax
jmp 0x46e4e7
mov eax, esi
mov ecx, dword [ebp - 0x11c]
push ecx
push eax
mov edx, dword [ebp - 0x118]
push edx
call fcn.004ff0c0
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x118]
add esp, 0xc
mov byte [eax + ecx - 1], 0
test edi, edi
jne 0x46e58d
cmp dword [ebp + 0x10], 0
je 0x46e583
lea ecx, [ebp - 0x134]
call fcn.00498900
test eax, eax
je 0x46e58d
mov ecx, eax
call fcn.00497c50
mov esi, eax
test esi, esi
je 0x46e58d
cmp byte [0x5bf538], 0
jne 0x46e565
mov edx, 0x5bf538
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x46e545
push 0x5c
push 0x5bf538
call fcn.004ff460
add esp, 8
test eax, eax
je 0x46e565
mov byte [eax], 0
mov edi, dword [ebp - 0x11c]
push edi
push esi
mov esi, dword [ebp - 0x118]
push esi
call fcn.004ff0c0
add esp, 0xc
mov byte [edi + esi - 1], 0
jmp 0x46e58d
mov dword [ebp - 0x120], 0
push 1
lea ecx, [ebp - 0x134]
call fcn.004989b0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.00498f60
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004fe1f5
mov esp, ebp
pop ebp
ret