Function at 0x455be0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x483de8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7a4
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x730]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 0x10], esp
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, byte [edx + 1]
and ecx, 3
cmp al, 0x3a
rep movsb byte es:[edi], byte [esi]
je 0x455e98
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [ebp - 0x230]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [ebp - 4], 0
mov edx, ecx
mov esi, edi
mov edi, ebx
mov bl, 0x5c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x230]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp eax, ecx
jge 0x455c95
mov edx, ecx
sub edx, eax
mov dl, byte [ebp + edx - 0x230]
cmp dl, bl
mov byte [ebp + eax - 0x430], dl
jne 0x455c92
cmp eax, 2
jge 0x455c95
inc eax
jmp 0x455c73
sub ecx, eax
xor edx, edx
mov edi, ecx
cmp edx, edi
jge 0x455cb0
mov cl, byte [ebp + edx - 0x230]
mov byte [ebp + edx - 0x630], cl
inc edx
jmp 0x455c9b
mov byte [ebp + edi - 0x630], 0
xor esi, esi
cmp esi, eax
jge 0x455ce0
lea edx, [ebp + esi - 0x22f]
mov dl, byte [edx + edi]
cmp dl, bl
je 0x455cd5
mov byte [ebp + esi - 0x430], dl
jne 0x455cdd
mov byte [ebp + esi - 0x430], 0
inc esi
jmp 0x455cba
mov byte [ebp + eax - 0x430], 0
lea edi, [ebp - 0x430]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx - 1]
mov cl, 0x2e
test eax, eax
jle 0x455d0d
cmp byte [ebp + eax - 0x430], cl
je 0x455d0d
dec eax
jmp 0x455cfd
push str.directory
mov ecx, 0x65cd80
mov byte [ebp + eax - 0x42c], 0
call fcn.00479641
push 0xa
mov ecx, eax
call fcn.00479456
push 0x401430
mov ecx, eax
call fcn.00401410
cmp byte [ebp - 0x62e], bl
je 0x455d4e
mov byte [ebp - 0x62e], bl
mov byte [ebp - 0x62d], 0
lea eax, [ebp - 0x630]
mov ecx, 0x65cd80
push eax
call fcn.00479641
push 0xa
mov ecx, eax
call fcn.00479456
push 0x401430
mov ecx, eax
call fcn.00401410
push str.file
mov ecx, 0x65cd80
call fcn.00479641
push 0xa
mov ecx, eax
call fcn.00479456
push 0x401430
mov ecx, eax
call fcn.00401410
lea ecx, [ebp - 0x430]
push ecx
mov ecx, 0x65cd80
call fcn.00479641
push 0xa
mov ecx, eax
call fcn.00479456
push 0x401430
mov ecx, eax
call fcn.00401410
lea edi, [ebp - 0x630]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
cmp eax, esi
jge 0x455de1
cmp byte [ebp + eax - 0x630], 0x3a
je 0x455de1
inc eax
jmp 0x455dd0
xor edx, edx
mov ecx, esi
sub ecx, eax
inc ecx
cmp edx, ecx
jge 0x455e00
lea ecx, [edx + eax]
inc edx
mov cl, byte [ebp + ecx - 0x631]
mov byte [ebp + edx - 0x131], cl
jmp 0x455de3
mov edx, esi
sub edx, eax
cmp eax, esi
mov byte [ebp + edx - 0x12f], 0
jne 0x455e3d
lea eax, [ebp - 0x7b0]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [ebp - 0x7b0]
lea edx, [ebp - 0x130]
push ecx
push 0x48b2f4
push edx
call fcn.0047a8f8
add esp, 0xc
lea eax, [ebp - 0x430]
lea ecx, [ebp - 0x130]
push eax
push ecx
lea edx, [ebp - 0x730]
push 0x4966e0
push edx
call fcn.0047a8f8
add esp, 0x10
mov ecx, 0x65cd80
push str.new::
call fcn.00479641
lea ecx, [ebp - 0x730]
push ecx
mov ecx, eax
call fcn.00479641
push 0xa
mov ecx, eax
call fcn.00479456
push 0x401430
mov ecx, eax
call fcn.00401410
mov dword [ebp - 4], 0xffffffff
lea edx, [ebp - 0x730]
lea ecx, [ebp - 0x30]
push edx
call fcn.004020d0
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 2
call fcn.004022a0
cmp eax, 1
jbe 0x45607d
lea ecx, [ebp - 0x30]
xor ebx, ebx
call fcn.00402160
push eax
mov ecx, 0x65cd80
call fcn.00479641
push 0x401430
push 0xa
mov ecx, eax
call fcn.00479456
mov ecx, eax
call fcn.00401410
lea ecx, [ebp - 0x30]
call fcn.00402160
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 4
jge 0x455f52
push str.cant_get_name....
mov ecx, 0x65cd80
call fcn.00479641
push 0x401430
push 0xa
mov ecx, eax
call fcn.00479456
mov ecx, eax
call fcn.00401410
jmp 0x455f57
mov ebx, 1
lea ecx, [ebp - 0x30]
call fcn.00402240
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x455f71
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402210
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x455f8b
inc ebx
lea ecx, [ebp - 0x30]
call fcn.004021e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x455fa5
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402270
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x455fbf
inc ebx
lea ecx, [ebp - 0x30]
call fcn.004021b0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x456003
lea ecx, [ebp - 0x30]
call fcn.004021b0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc ebx
rep movsb byte es:[edi], byte [esi]
jmp 0x456026
mov edi, 0x491b90
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x30]
call fcn.00402130
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x456040
inc ebx
lea ecx, [ebp - 0x30]
call fcn.00402100
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jle 0x45605a
inc ebx
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
call fcn.004020f0
mov ax, bx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, 0x491b90
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 4], 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x30]
call fcn.004020f0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
or ax, 0xffff
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret