Function at 0x4f9599
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x7c
mov eax, 0x52401a
call fcn.0051d3a0
mov dword [ebp - 0x78], edx
mov ebx, ecx
mov dword [ebp - 0x7c], ebx
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x68]
mov ecx, dword [ebx]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x70], eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
call fcn.004dcef0
test eax, eax
jns 0x4f95fc
mov ecx, eax
call fcn.004bd249
jmp 0x4f9cd7
mov ecx, dword [ebx + 8]
lea edx, [ebp - 0x5c]
call fcn.004dcef0
test eax, eax
js 0x4f95f0
lea esi, [ebp - 0x68]
xor eax, eax
lea edi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp - 0x5c]
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, 0x41036c
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
push 3
pop edx
call fcn.004dd16f
test eax, eax
jns 0x4f9652
mov ecx, eax
call fcn.004bd249
mov ebx, eax
jmp 0x4f9cc2
mov eax, dword [0x531b58]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x5352c4]
mov ecx, 0x531b58
call esi
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x4f968b
test eax, 0xffff0000
jne 0x4f968b
movzx eax, ax
lea ecx, [ebp - 0x6c]
push eax
call fcn.004fd474
jmp 0x4f9694
push eax
lea ecx, [ebp - 0x6c]
call fcn.004fd3cd
mov edi, dword [ebp - 0x6c]
mov edx, edi
mov esi, dword [ebp - 0x3c]
mov ecx, esi
call fcn.004fdd61
mov ebx, eax
test ebx, ebx
jns 0x4f96bc
mov dword [ebp - 0x58], 0x130
mov dword [ebp - 0x54], 0x43ab38
jmp 0x4f9ca3
push dword [esi + 0x18]
call dword [sym.imp.imagehlp.dll_ImageNtHeader]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x4f96df
mov dword [ebp - 0x58], 0x133
mov dword [ebp - 0x54], 0x43ab98
jmp 0x4f9c9e
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
push 0xe
push ebx
push dword [esi + 0x18]
call dword [sym.imp.imagehlp.dll_ImageDirectoryEntryToData]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c90
cmp dword [ebp - 0x40], ebx
je 0x4f9c90
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x88], ebx
test ecx, ecx
jne 0x4f9737
mov ebx, 0x80070057
mov eax, ebx
shr eax, 0x1f
test al, al
jne 0x4f9724
int3
mov dword [ebp - 0x58], 0x143
mov dword [ebp - 0x54], 0x43abb8
jmp 0x4f9ca3
lea eax, [ebp - 0x74]
push eax
call fcn.004fe34b
mov ebx, eax
test ebx, ebx
js 0x4f971a
mov ecx, dword [ebp - 0x74]
lea edx, [ebp - 0x88]
call fcn.004fe26d
mov ebx, eax
test ebx, ebx
js 0x4f971a
push dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov ecx, esi
call fcn.004f9279
push dword [esi]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x4f97ea
push 5
push 0x43aba8
push dword [esi]
call fcn.0050d93d
add esp, 0xc
test eax, eax
je 0x4f97a3
push 5
push 0x43ac3c
push dword [esi]
call fcn.0050d93d
add esp, 0xc
test eax, eax
jne 0x4f97ea
mov ebx, dword [ebp - 0x80]
mov ecx, ebx
push 0x43ac28
call fcn.004f9279
push esi
mov ecx, ebx
call fcn.004f9218
mov ecx, 0x43ac4c
call fcn.004f90d1
mov dword [ebp - 0x78], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x78]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x78]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
jmp 0x4f9cba
mov ebx, dword [ebp - 0x3c]
mov al, byte [ebx + 0x10]
mov ebx, dword [ebx + 0x10]
and al, 1
shr ebx, 1
and ebx, 0xffffff01
mov byte [ebp - 0x4d], al
mov dword [ebp - 0x74], ebx
test al, al
je 0x4f990c
lea ecx, [edi - 0x10]
call fcn.004fd4e5
push ecx
add eax, 0x10
push ecx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
call fcn.004fd175
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x4f9cdf
mov ecx, esi
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4f9858
test dx, dx
je 0x4f9854
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4f9858
add eax, 4
add ecx, 4
test dx, dx
jne 0x4f9832
xor eax, eax
jmp 0x4f985d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4f9901
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4f9901
mov ecx, dword [ebp - 0x70]
mov edx, esi
call fcn.004fdd61
mov ebx, eax
test ebx, ebx
jns 0x4f98b7
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x43aa88
mov dword [ebp - 0x5c], 0x43ab00
mov dword [ebp - 0x58], 0x167
mov dword [ebp - 0x54], 0x43ac60
call fcn.004de872
lea ecx, [esi - 0x10]
call fcn.004f92ae
jmp 0x4f9cba
mov eax, dword [ebp - 0x70]
push dword [eax + 0x18]
call dword [sym.imp.imagehlp.dll_ImageNtHeader]
mov ebx, eax
test ebx, ebx
je 0x4f9901
and dword [ebp - 0x3c], 0
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x70]
push 0xe
push 0
push dword [eax + 0x18]
call dword [sym.imp.imagehlp.dll_ImageDirectoryEntryToData]
test eax, eax
je 0x4f9901
cmp dword [ebp - 0x3c], 0
je 0x4f9901
mov dword [ebp - 0x6c], ebx
mov bl, byte [eax + 0x10]
mov eax, dword [eax + 0x10]
and bl, 1
shr eax, 1
and al, 1
mov byte [ebp - 0x4d], bl
mov byte [ebp - 0x74], al
lea ecx, [esi - 0x10]
call fcn.004f92ae
mov al, byte [ebp - 0x4d]
mov esi, dword [ebp - 0x6c]
movzx ecx, word [esi + 0x18]
mov edx, ecx
mov dword [ebp - 0x70], edx
mov edx, 0x20b
cmp cx, dx
je 0x4f997b
mov edx, 0x10b
cmp cx, dx
je 0x4f997b
mov esi, dword [ebp - 0x7c]
mov eax, dword [esi + 0x80]
mov ebx, dword [eax]
test ebx, ebx
je 0x4f9963
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
push ecx
push ecx
push 0x41b418
push 0xc1010015
push ecx
push eax
push dword [esi + 0x84]
mov ecx, ebx
call dword [0x5352c4]
call ebx
mov dword [ebp - 0x58], 0x191
mov dword [ebp - 0x54], 0x43acb8
mov ebx, 0x8000ffff
jmp 0x4f9ca3
mov ecx, 0x43acb0
test al, al
jne 0x4f9989
mov ecx, 0x43acd4
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
mov ebx, dword [ebp - 0x80]
lea eax, [ebp - 0x3c]
push eax
mov ecx, ebx
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, 0x43acd0
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp byte [ebp - 0x74], 0
mov ecx, 0x43acfc
jne 0x4f99e9
mov ecx, 0x43ace0
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, 0x43acd0
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, 0x20b
mov ecx, 0x43ad20
cmp word [ebp - 0x70], ax
jne 0x4f9a4b
mov ecx, 0x43ad14
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, 0x43acd0
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
movzx eax, word [esi + 4]
mov ecx, 0x8664
mov dword [ebp - 0x84], 0x14c
mov esi, 0x43ad30
mov edx, 0x200
cmp ax, word [ebp - 0x84]
jne 0x4f9ac2
mov ecx, esi
jmp 0x4f9aff
cmp ax, dx
jne 0x4f9ace
mov ecx, 0x43ad28
jmp 0x4f9aff
cmp ax, cx
jne 0x4f9ada
mov ecx, 0x43ad38
jmp 0x4f9aff
mov ecx, 0x1c4
cmp ax, cx
jne 0x4f9aeb
mov ecx, 0x43ad34
jmp 0x4f9aff
mov ecx, 0xaa64
cmp ax, cx
mov ecx, 0x43ad54
je 0x4f9aff
mov ecx, 0x43ad40
call fcn.004f90d1
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x4f9c89
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.004f9218
push dword [ebp - 0x3c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0x74]
xor edx, edx
mov eax, 0x20b
cmp word [ebp - 0x70], ax
movzx eax, cl
sete dl
add eax, eax
or edx, eax
movzx eax, byte [ebp - 0x4d]
shl eax, 2
or edx, eax
jmp dword [edx*4 + 0x4f9ce9]
mov ecx, 0x8007000e
jmp 0x4f9ce4
mov dword [ebp - 0x58], 0x13a
mov dword [ebp - 0x54], 0x43ab78
mov ebx, 0x80070057
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x43aa88
mov dword [ebp - 0x5c], 0x43ab00
call fcn.004de872
lea ecx, [edi - 0x10]
call fcn.004f92ae
mov dword [ebp - 4], 0xa
lea ecx, [ebp - 0x4c]
call fcn.00442e33
or dword [ebp - 4], 0xffffffff
mov eax, ebx
call fcn.0051d34a
ret 0x10
mov ecx, 0x80004005
call fcn.004edf94
dec ebx
wait
dec edi
add byte [esi - 0x65], dh
dec edi
add bl, ah
wait
dec edi
add byte [esi - 0x64], al
dec edi
add bl, ah
wait
dec edi
add byte [esi - 0x65], dh
dec edi
add bl, ah
wait
dec edi
add byte [esi - 0x64], al
dec edi
invalid