Function at 0x405954
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffe9c
mov edi, 0x445378
mov esi, 0x445a28
mov ecx, 5
push edi
lea edi, [esp + 4]
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 5
push edi
lea edi, [esp + 0x18]
mov esi, 0x445a3c
mov ebp, 0x44648c
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 5
push edi
lea edi, [esp + 0x2c]
mov esi, 0x445a50
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 5
push edi
lea edi, [esp + 0x40]
mov esi, 0x445a64
rep movsd dword es:[edi], dword [esi]
pop edi
mov ecx, 5
push edi
lea edi, [esp + 0x54]
mov esi, 0x445a78
rep movsd dword es:[edi], dword [esi]
pop edi
call fcn.004058e4
mov ebx, eax
xor esi, esi
push 0
lea eax, [ebx + 0x869]
push eax
push 8
lea edx, [esp + 0xc]
push edx
call fcn.0040a7d4
add esp, 0x10
lea ecx, [ebx + 0x2b91]
push 0
push ecx
push 4
lea eax, [esp + 0x20]
push eax
call fcn.0040a7d4
add esp, 0x10
push eax
call fcn.00405a1e
fistp dword [edx]
lahf
pop edi
jo 0x4059dc
hlt
xchg esp, eax
mov byte [0xc720eb12], al
jecxz 0x405a8a
or dword [edi], 0x14
mov bh, 0xdd
wait
in eax, 0xcf
pushal
wait
jne 0x405a1f
cmp edi, dword [edi]
neg byte [eax - 0x7d]
pop eax
add eax, 0x3e
jmp eax
invalid
scasb al, byte es:[edi]
mov eax, 0x45d95198
mov edx, ecx
in al, dx
push es
or cl, byte [esi]
pop ss
sbb dword [ecx], edi
dec esp
xchg esi, ecx
les ebp, ss:[ebp + 0x45]
push eax
test edi, esi
stosd dword es:[edi], eax
pop eax
push 0
lea edx, [ebx + 0x2f7d]
push edx
push 4
lea ecx, [esp + 0x34]
push ecx
call fcn.0040a7d4
add esp, 0x10
lea eax, [ebx + 0xd6]
push 0
push eax
push 4
lea edx, [esp + 0x48]
push edx
call fcn.0040a7d4
add esp, 0x10
je 0x405a83
jne 0x405a83
inc ebp
push cs
enter 0xf66, 0xffffffffffffffa7
xor edx, edi
js 0x405aaa
test ah, 0xc2
fst qword [ebx]
push 0
lea ecx, [ebx + 0x9f7]
push ecx
push 0xc
lea eax, [esp + 0x5c]
add byte [ecx + 0x6a], dl
or al, 0x8d
inc esp
and al, 0x5c
push eax
call fcn.0040a7d4
add esp, 0x10
les edx, [eax]
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x40]
push ecx
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x20]
push edx
mov edx, esi
lea ecx, [esp + 0x10]
lea eax, [ebp + 0x770]
shl edx, 2
push ecx
push eax
add edx, 0x450130
push edx
call fcn.0043b0a8
add esp, 0x1c
mov ecx, esi
shl ecx, 8
add ecx, edi
push 0x100
push 0
push ecx
call fcn.0042d220
add esp, 0xc
mov edx, esi
lea eax, [ebx + 0x55b]
shl edx, 8
push 1
push eax
add edx, edi
push 0
push edx
call fcn.0040a7d4
add esp, 0x10
mov eax, esi
shl eax, 8
lea ecx, [ebp + 0x781]
push ecx
add eax, edi
push eax
call sub.KERNEL32.DLL_lstrcatA
add ebx, 0x64
inc esi
cmp esi, 2
jl 0x4059cb
push edi
mov esi, 0x445a8c
lea edi, [esp + 0x68]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
pop edi
je 0x405b40
jne 0x405b40
mov eax, dword [0x17fc3fbd]
xchg esi, eax
insd dword es:[edi], dx
lahf
push 0x100
lea eax, [esp + 0x68]
push eax
call sub.KERNEL32.DLL_GetSystemDirectoryA
lea edx, [ebp + 0x786]
push edx
lea ecx, [esp + 0x68]
push ecx
call fcn.0042d2c4
add esp, 8
mov eax, 0x445678
mov esi, eax
xor eax, eax
push edi
lea edi, [esp + 0x68]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
push edi
push 0x445678
call fcn.0042d2c4
add esp, 8
mov eax, 0x445778
mov esi, eax
xor eax, eax
push edi
lea edi, [esp + 0x68]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
lea eax, [edi + 0x100]
push eax
push 0x445778
call fcn.0042d2c4
add esp, 8
add esp, 0x164
pop ebp
pop edi
pop esi
pop ebx
ret