Function at 0x454e4a
Capabilities:
Check if file exists

Disassembly:
push 0xd4
mov eax, 0x5e39ec
call fcn.0046d2ba
mov eax, dword [ebp + 8]
xor ecx, ecx
leave
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xdc], ecx
push ecx
mov dword [ebp - 4], ecx
xor eax, eax
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x28]
push 0x5e87f0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.00402650
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 1
call fcn.0047e7d4
call fcn.00473925
test al, al
je 0x454ebe
invalid
js 0x454ee4
cmp byte [ecx], bh
push esi
push ss
insb byte es:[edi], dx
xchg esi, eax
xor eax, 0x644b8c61
popfd
jno 0x454e8f
and esp, dword [ebx - 0x4f37496f]
mov ebp, 0xd1c6c9a8
call fcn.004732f2
test al, al
je 0x454edf
nop
jp 0x454e5d
into
movsb byte es:[edi], byte [esi]
sub dword [edx - 0xfa888c5], 0x55
in eax, dx
or dh, dl
xchg ebx, eax
iretd
call fcn.004739af
test al, al
je 0x454efc
mov edx, 0xde8a520b
jns 0x454f65
pushal
mov dr1, ebx
sbb al, 0xce
dec ebp
mov dword [0x654cb456], eax
mov ah, 0x83
jge 0x454f1f
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
or byte [ebp + 0x430f0c45], cl
inc ebp
or al, 0x50
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4551d7
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
xor ebx, ebx
push ebx
push 0x80
push 4
inc ebp
or al, 0x33
fist dword [ebx + 0x68]
add byte [eax], 0
add byte [edx + 4], ch
push ebx
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xc8], eax
cmp eax, 0xffffffff
jne 0x454f66
mov ecx, dword [ebp - 0xcc]
push 0x5e87f0
call fcn.00403b30
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.0041f8c0
push ebx
jmp 0x4551f4
add al, ch
inc edx
jecxz 0x454f6b
call fcn.004732ad
add byte [eax + eax*8 - 0x7838e68c], al
sbb al, 0x5d
and byte [ebx + 0x7041005b], dh
test al, al
je 0x454f88
mov dword [edi - 0x4cdfa2e4], 0x7041005b
jl 0x454f9a
shr bl, cl
invalid
call fcn.00473742
test al, al
je 0x454fa8
mov byte [0xbab08fb1], al
in eax, dx
push esi
xor esi, dword [ebx]
invalid
call fcn.004732ad
test al, al
je 0x454fc8
inc esi
xor dh, byte [ecx + 0x2d]
fidivr word [edx + 0xc2696df]
xor eax, 0x78f9db5a
dec esi
mov edi, 0xae3cef24
push ds
xor dh, byte [ebx]
fist dword [ebx - 1]
mov ch, 0x38
xor ebx, ebx
push ebx
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xd0], eax
inc eax
push eax
mov dword [ebp - 0xd8], eax
call fcn.0046ce17
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
je 0x454f45
call fcn.0047362e
test al, al
je 0x455022
rol edi, 0xbb
mov cs, word [esi]
mov edi, 0xfe817b25
int 0x2b
push ds
mov edi, 0x3ce83f2e
mov word [ebx + eax + 0x7a], fs
sbb dword [edi], esi
push ds
adc edx, ecx
lcall 0xf3e8, 0x9a37a3d0
in al, 1
add byte [eax + eax*8 + 0x25771774], al
call fcn.0047351a
test al, al
je 0x455042
ja 0x455052
jecxz 0x455095
pop esi
call 0x9faec002
or ecx, dword [edx - 0x1e]
push esi
xlatb
or bh, ah
invalid
call fcn.004733c1
test al, al
je 0x455062
pop ss
ret
ret
push dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd4]
push 0
push esi
call fcn.004830b0
add esp, 0xc
lea eax, [ebp - 0xe0]
push 0
push eax
push dword [ebp - 0xd0]
push esi
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00473337
test al, al
je 0x4550bb
stc
movsd dword es:[edi], dword [esi]
mov ecx, 0x43f5463f
ljmp 0x9ec2
call fcn.00473673
call fcn.00473673
test al, al
je 0x4550dd
push ebp
cmp edx, dword [esp]
dec eax
imul esp, dword [ecx + 0x58], 0xc57c9602
cdq
sub edx, dword [edx + 0x6d]
adc al, 0x2f
das
and ebx, esp
sub edx, 0xe8bf1c1e
scasb al, byte es:[edi]
jecxz 0x4550e2
call fcn.00473490
add byte [eax + eax*8 - 0x1afbe78c], al
test al, al
je 0x4550fe
add al, 0xe5
sbb edx, esi
dec esi
pop ds
add al, 0x37
insb byte es:[edi], dx
pop eax
push ecx
fdivr st(0)
test byte [eax - 0x6d], al
jge 0x4550ba
or eax, 0xf4d308c8
sbb eax, 0xff38b5ff
invalid
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd4]
lea ecx, [ebp - 0xc4]
push ebx
call fcn.0047f18f
push ebx
call fcn.0046ce20
pop ecx
call fcn.0047344b
test al, al
je 0x455142
cli
in eax, dx
loopne 0x4550d5
inc ebx
aad 0xde
hlt
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xc4]
call fcn.0047e9dd
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
call fcn.00457dcb
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.0040ca30
call fcn.00473925
test al, al
je 0x455193
invalid
add dword [ebp + 0x45c6a84d], ecx
cld
add al, 0xe8
mov edi, 0xe8fffb78
scasd eax, dword es:[edi]
out 1, eax
add byte [eax + eax*8 - 0x63dee68c], al
int3
and dword [esp + ecx*8 + 0x77fe0041], ebx
hlt
call fcn.004736fd
test al, al
je 0x4551b5
and al, 0x12
loope 0x455149
jbe 0x455213
sahf
push esp
mov eax, dword [ecx + 0x59]
mov ebx, 0xa19352c
inc ecx
jo 0x455164
popal
inc edx
js 0x455201
push 0xd07d8314
add byte [esi + 0x10], dh
cmp dword [ebp - 0x30], 0
jbe 0x4551cb
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00402530
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.0041f8c0
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0x28]
push eax
call fcn.00454193
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.0041f8c0
push 0
push 1
lea ecx, [ebp + 0xc]
call fcn.0041f8c0
mov eax, dword [ebp - 0xcc]
call fcn.0046d264
ret
invalid
mov eax, dword [0x676314]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x61c]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, 0x208
mov dword [ebp - 0x628], esi
push edi
push 0
push eax
mov dword [ebp - 0x624], ebx
call fcn.004830b0
push edi
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.004830b0
lea eax, [ebp - 0x61c]
push esi
push eax
pop ebx
fiadd word [edx]
add byte [ebp - 0x61b7b], cl
call dword [esi + 0x50]
call fcn.004917a3
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.004917a3
add esp, 0x28
call fcn.00473856
test al, al
je 0x45528f
dec eax
invalid
call fcn.0047351a
test al, al
je 0x4552ac
invalid
call fcn.004733c1
test al, al
je 0x4552c9
jo 0x455251
sub edx, dword [edx + 0xdc85092]
mov esp, 0x8cde6bd
cmp dword [ecx + edx*8 + 0x59d78718], edi
rcr dword [eax], 1
xchg edi, edx
pop ecx
lea eax, [ebp - 0x61c]
push eax
call fcn.0048fc0c
lea eax, [ebp - 0x414]
push eax
call fcn.0048fc0c
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x61c]
push eax
call fcn.0049185b
add esp, 0x10
test eax, eax
je 0x455593
push dword [ebp - 0x628]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x455593
call fcn.0047337c
test al, al
je 0x45532c
xchg ecx, edx
jbe 0x4552c4
push eax
call 0xd3ad6445
lodsd eax, dword [esi]
cmp esp, dword [edx - 0x172f8227]
loop 0x455331
call fcn.0047355f
add byte [eax + eax*8 + 0x28d91074], al
test al, al
je 0x455345
fldcw word [eax]
xor eax, 0x6416d3ed
jg 0x45535c
inc edi
jo 0x455335
pop edx
loope 0x4552dc
pop esi
call fcn.00473811
test al, al
je 0x455363
or al, 0x65
test byte [0xe3c5a39d], cl
aad 0x8e
insd dword es:[edi], dx
lodsd eax, dword [esi]
dec ebx
xchg esp, eax
sub eax, 0xd5940c3
and ebp, eax
and dword [ebp - 0x620], 0
call fcn.00473811
test al, al
je 0x455387
invalid
call fcn.0047396a
test al, al
je 0x4553a1
fistp word [edx]
sub byte [ecx + eax*8], al
leave
aam 0xf3
push esi
and ebx, dword [ebp - 0x59]
clc
ljmp 0xe09d
mov ebx, dword [ebp - 0x620]
call fcn.0047362e
test al, al
je 0x4553d2
leave
push cs
push ds
pushfd
and al, 0x70
push es
mov dword [edx + ebx*8 + 0x10], edx
das
push edx
out 0x28, al
dec esi
sbb edx, dword [ecx + ebp*8]
sub ch, byte [ebx]
sbb al, 0x77
mov dl, 0x91
pop esp
dec esp
int3
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.004830b0
mov edi, dword [ebp - 0x624]
lea eax, [ebp - 0x20c]
add esp, 0xc
test ebx, ebx
jne 0x45540e
stc
invalid
push str..ccc
push edi
push 0x5ebf3c
push eax
call fcn.00407e70
add esp, 0x10
jmp 0x455423
push ebx
push str..ccc
push edi
push str._s_s_d
push eax
call fcn.00407e70
add esp, 0x14
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x455441
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.004735a4
test al, al
je 0x45545a
add byte [eax + eax*8 - 0x6f35ef8c], al
aaa
dec edi
dec edi
inc edi
insd dword es:[edi], dx
aam 0xcb
xor eax, 0xf423ae6e
jbe 0x4553e8
retf 0x3790
lea eax, [ebp - 0x20c]
push eax
push edi
call fcn.0048fa36
pop ecx
pop ecx
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.00473856
test al, al
je 0x455493
test esp, esi
std
invalid
add eax, ebx
and dh, byte [edx - 0x59]
wait
xchg edx, ebp
sar byte [edx + 0x416c46e3], 2
xchg ecx, eax
inc ebp
rcr byte [ebx], cl
popal
call fcn.0047351a
test al, al
je 0x4554b0
lodsd eax, dword [esi]
arpl word [ecx + 0x58f0bcdf], di
mov ch, dl
xlatb
inc eax
out dx, eax
out dx, al
mov ebx, 0x2450b6f7
jne 0x455445
call fcn.004733c1
test al, al
je 0x4554cd
invalid
push 0
push dword [ebp - 0x624]
push dword [ebp - 0x628]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x45555d
call fcn.0047337c
test al, al
je 0x4554fe
mov byte [0x3f0cdf1f], al
xchg ecx, eax
mov eax, 0xf7caf76f
pop ss
inc esp
xchg ebp, eax
mov bh, 0x1d
call fcn.0047355f
test al, al
je 0x455517
invalid
int1
dec edx
rol byte [ebx - 0xa17c1b0], 0xe2
add dword [eax], eax
call fcn.00473811
test al, al
je 0x455535
arpl word [ebp + 0x7d], si
inc ecx
sbb byte [ebp - 0xa], dl
sbb eax, 0xb6281a3a
sbb eax, 0x361677e4
mov esi, 0x56a5d31
push 5
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, dword [ebp - 0x620]
cmp ebx, 0xa
jge 0x455593
inc ebx
mov dword [ebp - 0x620], ebx
jmp 0x4553a7
call fcn.0047362e
test al, al
je 0x455582
pop ebx
sub ecx, esi
mov eax, 0x1c2fed03
in al, 0x50
and dh, byte [edx]
push 0xffffffffffffffcb
cmp edi, dword [ecx + 7]
aas
jno 0x4555cb
jecxz 0x455511
cmp eax, 0xbe555f56
push 5
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046ce06
mov esp, ebp
pop ebp
ret
clc
dec dword [edi]
test cl, al
add byte [eax], al
add al, ch