Function at 0x654d40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x168
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6550e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006550d0
mov edx, dword [0xb29eb4]
mov ecx, dword [0xb29eac]
mov edi, 0xbdf0
sub edi, eax
add eax, 0xffff4210
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x48], edi
sub ecx, edi
add ecx, edx
call dword [0xb0836c]
call ecx
mov ecx, eax
xor ecx, 0xb729c8cf
mov ebx, eax
xor ebx, 0xb729c8df
mov dword [ebp - 0x34], ebx
mov edi, eax
xor edi, 0xb729c8d3
mov edx, eax
xor edx, 0xb729c8c4
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x38], edi
mov dword [esi + edi], edx
mov dword [esi], 0x79b7a0
mov dword [esi + ebx], 0
mov dword [ebp - 0x2c], ecx
mov byte [esi + ecx], 0
mov dword [ebp - 0x44], eax
xor eax, 0xb729c9ce
mov dword [ebp - 0x10], 1
mov ecx, dword [0xb53264]
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x171]
push eax
push ecx
call sub.KERNEL32.dll_GetSystemDirectoryA
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + ebp]
add ecx, 0xffffff94
mov dword [ebp - 0x30], ecx
mov dword [ebp + edx - 0x6c], 0
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov dword [ebp + ecx - 0x6c], edi
mov byte [ebp + eax - 0x6c], 0
mov eax, dword [0xb29eb0]
mov ecx, dword [ebp - 0x40]
sub ecx, dword [ebp - 0x28]
mov esi, dword [0xb29ea0]
mov dword [ebp - 0x4c], ecx
add esi, ecx
add esi, eax
mov ebx, dword [ebp - 0x44]
xor ebx, 0xbddb43db
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x171]
mov edx, ebx
call esi
mov esi, eax
cmp eax, edi
jbe 0x654ea2
mov dword [ebp - 0x10], 1
sub esp, 0xc
movzx eax, byte [ebp - 0x24]
mov byte [esp + 4], al
lea eax, [ebp - 0x171]
mov dword [esp + 8], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x30]
call fcn.0052ce20
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
jmp 0x654ecb
mov ebx, dword [ebp - 0x34]
mov dword [ebp + ebx - 0x6c], esi
push esi
lea eax, [ebp - 0x171]
push eax
mov edi, dword [ebp - 0x30]
push edi
call fcn.0077cce0
add esp, 0xc
mov byte [edi + esi], 0
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov eax, edi
mov edi, ebx
mov dword [ebp - 0x6c], 0x799e70
mov esi, dword [ebp + edi - 0x6c]
mov dword [ebp - 0x50], esi
mov ebx, eax
cmp dword [ebp + ecx - 0x6c], edx
mov esi, dword [ebp - 0x2c]
jbe 0x654ee6
mov ebx, dword [eax]
mov dword [ebp - 0x3c], ebx
mov ebx, dword [ebp + 8]
add esi, ebx
mov edx, dword [ebx + edi]
mov eax, dword [ebx + ecx]
mov ebx, esi
mov esi, eax
sub esi, edx
mov ecx, dword [ebp - 0x50]
cmp esi, ecx
jae 0x654f2d
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx edx, byte [ebp - 0x24]
mov byte [esp + 4], dl
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov ecx, ebx
call fcn.0052d5f0
mov edi, dword [ebp - 0x20]
jmp 0x654f71
mov dword [ebp - 0x28], eax
lea eax, [edx + ecx]
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp + 8]
mov dword [edi + esi], eax
cmp byte [0xb533c8], 0
mov eax, dword [ebx]
cmovne ebx, eax
mov esi, ecx
mov ecx, dword [ebp - 0x20]
cmp dword [ebp - 0x28], ecx
mov edi, ecx
cmova ebx, eax
add edx, ebx
push esi
push dword [ebp - 0x3c]
push edx
call fcn.0077cce0
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov byte [ebx + eax], 0
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax - 0x6c]
mov ecx, dword [0xb53264]
mov edx, ecx
xor edx, eax
and ecx, eax
lea eax, [edx + ecx*2]
cmp eax, edi
mov ebx, dword [ebp + 8]
jbe 0x655012
mov ecx, dword [ebp - 0x30]
mov esi, dword [ecx]
lea edi, [eax + 1]
mov ebx, dword [ebp - 0x44]
mov ecx, ebx
xor ecx, 0xb729c734
cmp edi, ecx
jbe 0x654fdc
mov ecx, dword [esi - 4]
mov edx, ebx
xor edx, 0x48d63737
add edx, esi
sub edx, ecx
mov esi, ebx
xor esi, 0xb729c8eb
cmp edx, esi
jae 0x655028
mov edx, ebx
xor edx, 0xb729c8ef
add eax, edx
mov dword [ebp - 0x10], 0xffffffff
mov edi, eax
mov dword [ebp - 0x20], ecx
jmp 0x654fdf
mov dword [ebp - 0x20], esi
xor ebx, 0x6993b01c
mov eax, dword [0xb29eb8]
mov esi, dword [ebp - 0x4c]
add esi, dword [0xb29ea8]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
mov ecx, dword [ebp - 0x20]
mov edx, edi
push ebx
call esi
add esp, 4
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x168
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], 0
call fcn.00748ef1
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
mov eax, dword [0xb29ebc]
mov esi, dword [0xb29ea4]
or esi, dword [ebp - 0x28]
sub esi, dword [ebp - 0x48]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x6c]
call esi
add esp, 0x10
pop ebp
ret