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

Disassembly:
push 0x74
mov eax, 0x5447b3
call fcn.0052c05f
mov dword [ebp - 0x78], edx
mov esi, ecx
mov dword [ebp - 0x7c], esi
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x68]
mov ecx, dword [esi]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x74], eax
xor eax, eax
mov dword [ebp - 0x48], 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.004f6230
test eax, eax
jns 0x5141d8
mov ecx, eax
call fcn.004d36b0
jmp 0x5149d0
mov ecx, dword [esi + 8]
lea edx, [ebp - 0x5c]
call fcn.004f6230
test eax, eax
js 0x5141cc
lea esi, [ebp - 0x68]
xor eax, eax
lea edi, [ebp - 0x34]
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 - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, 0x40ee24
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x34]
push eax
push 3
pop edx
call fcn.004f64bf
test eax, eax
jns 0x514240
mov ecx, eax
call fcn.004d36b0
mov esi, eax
and dword [ebp - 4], 0
lea ecx, [ebp - 0x44]
call fcn.00443839
or dword [ebp - 4], 0xffffffff
mov eax, esi
jmp 0x5149d0
mov eax, dword [0x551a20]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x5552f8]
mov ecx, 0x551a20
call esi
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x514279
test eax, 0xffff0000
jne 0x514279
movzx eax, ax
lea ecx, [ebp - 0x6c]
push eax
call fcn.005184fc
jmp 0x514282
push eax
lea ecx, [ebp - 0x6c]
call fcn.0051844d
mov esi, dword [ebp - 0x6c]
mov edx, esi
mov ecx, dword [ebp - 0x50]
call fcn.00518dfd
mov edi, eax
test edi, edi
jns 0x5142ce
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x43a7b0
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x130
mov dword [ebp - 0x54], 0x43a860
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 1
jmp 0x5149c2
mov edi, dword [ebp - 0x50]
push dword [edi + 0x18]
call dword [sym.imp.imagehlp.dll_ImageNtHeader]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x51431f
mov edi, 0x80070057
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x133
mov dword [ebp - 0x54], 0x43a8c0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 2
jmp 0x5149c2
lea eax, [ebp - 0x48]
push eax
push 0xe
push 0
push dword [edi + 0x18]
call dword [sym.imp.imagehlp.dll_ImageDirectoryEntryToData]
mov dword [ebp - 0x70], eax
test eax, eax
je 0x514989
cmp dword [ebp - 0x48], 0
je 0x514989
mov ecx, dword [edi + 0x18]
and dword [ebp - 0x50], 0
and dword [ebp - 0x80], 0
test ecx, ecx
jne 0x514392
mov edi, 0x80070057
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x43a7b0
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x143
mov dword [ebp - 0x54], 0x43a8e0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 4
jmp 0x5149c2
lea eax, [ebp - 0x50]
push eax
call fcn.005194b6
mov edi, eax
test edi, edi
js 0x514359
mov ecx, dword [ebp - 0x50]
lea edx, [ebp - 0x80]
call fcn.005193d2
mov edi, eax
test edi, edi
js 0x514359
push dword [ebp - 0x80]
mov edi, dword [ebp - 0x38]
mov ecx, edi
call fcn.00513db1
push dword [edi]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x514450
push 5
push 0x43a8d0
push dword [edi]
call fcn.0052a625
add esp, 0xc
test eax, eax
je 0x5143f9
push 5
push 0x43a964
push dword [edi]
call fcn.0052a625
add esp, 0xc
test eax, eax
jne 0x514450
push 0x43a950
mov ecx, ebx
call fcn.00513db1
push edi
mov ecx, ebx
call fcn.00513d13
push 0x43a974
lea ecx, [ebp - 0x78]
call fcn.00513d7a
lea eax, [ebp - 0x78]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x78]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x44]
call fcn.00443839
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x5149d0
mov eax, dword [ebp - 0x70]
mov cl, byte [eax + 0x10]
mov eax, dword [eax + 0x10]
and cl, 1
shr eax, 1
and eax, 0xffffff01
mov byte [ebp - 0x49], cl
mov dword [ebp - 0x50], eax
test cl, cl
je 0x51459b
lea eax, [esi - 0x10]
mov ecx, eax
mov dword [ebp - 0x70], eax
call fcn.00518577
push ecx
add eax, 0x10
push ecx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], eax
call fcn.005181f8
mov edi, dword [ebp - 0x38]
test edi, edi
je 0x5149d8
mov ecx, edi
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x5144c3
test dx, dx
je 0x5144bf
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x5144c3
add eax, 4
add ecx, 4
test dx, dx
jne 0x51449d
xor eax, eax
jmp 0x5144c8
sbb eax, eax
or eax, 1
test eax, eax
je 0x514590
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x514590
mov ecx, dword [ebp - 0x74]
mov edx, edi
call fcn.00518dfd
mov dword [ebp - 0x38], eax
test eax, eax
jns 0x514541
push eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0x43a7b0
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x167
mov dword [ebp - 0x54], 0x43a988
call fcn.004f7c89
lea ecx, [edi - 0x10]
call fcn.00513dec
mov ecx, dword [ebp - 0x70]
call fcn.00513dec
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x44]
call fcn.00443839
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x38]
jmp 0x5149d0
mov eax, dword [ebp - 0x74]
push dword [eax + 0x18]
call dword [sym.imp.imagehlp.dll_ImageNtHeader]
mov dword [ebp - 0x70], eax
test eax, eax
je 0x514590
and dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x74]
push 0xe
push 0
push dword [eax + 0x18]
call dword [sym.imp.imagehlp.dll_ImageDirectoryEntryToData]
mov ecx, eax
test ecx, ecx
je 0x514590
cmp dword [ebp - 0x38], 0
je 0x514590
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x6c], eax
mov al, byte [ecx + 0x10]
and al, 1
mov byte [ebp - 0x49], al
mov eax, dword [ecx + 0x10]
shr eax, 1
and al, 1
mov byte [ebp - 0x50], al
lea ecx, [edi - 0x10]
call fcn.00513dec
mov cl, byte [ebp - 0x49]
mov edi, dword [ebp - 0x6c]
movzx eax, word [edi + 0x18]
mov edx, eax
mov dword [ebp - 0x74], edx
mov edx, 0x20b
cmp ax, dx
je 0x514630
mov edx, 0x10b
cmp ax, dx
je 0x514630
mov edi, dword [ebp - 0x7c]
mov eax, dword [edi + 0x80]
mov ebx, dword [eax]
test ebx, ebx
je 0x5145f2
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
push ecx
push ecx
push 0x419be0
push 0xc1010015
push ecx
push eax
push dword [edi + 0x84]
mov ecx, ebx
call dword [0x5552f8]
call ebx
mov edi, 0x8000ffff
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x191
mov dword [ebp - 0x54], 0x43a9e0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 7
jmp 0x5149c2
test cl, cl
lea ecx, [ebp - 0x38]
je 0x51463e
push 0x43a9d8
jmp 0x514643
push 0x43a9fc
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x43a9f8
lea ecx, [ebp - 0x38]
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp byte [ebp - 0x50], 0
lea ecx, [ebp - 0x38]
je 0x51468d
push 0x43aa24
jmp 0x514692
push 0x43aa08
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x43a9f8
lea ecx, [ebp - 0x38]
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, 0x20b
lea ecx, [ebp - 0x38]
cmp word [ebp - 0x74], ax
je 0x5146e1
push 0x43aa48
jmp 0x5146e6
push 0x43aa3c
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x43a9f8
lea ecx, [ebp - 0x38]
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
movzx eax, word [edi + 4]
mov ecx, 0x8664
mov dword [ebp - 0x70], 0x14c
mov edi, 0x43aa58
mov edx, 0x200
cmp ax, word [ebp - 0x70]
jne 0x514743
push edi
jmp 0x514782
cmp ax, dx
jne 0x51474f
push 0x43aa50
jmp 0x514782
cmp ax, cx
jne 0x51475b
push 0x43aa60
jmp 0x514782
mov ecx, 0x1c4
cmp ax, cx
jne 0x51476c
push 0x43aa5c
jmp 0x514782
mov ecx, 0xaa64
cmp ax, cx
jne 0x51477d
push 0x43aa7c
jmp 0x514782
push 0x43aa68
lea ecx, [ebp - 0x38]
call fcn.00513d7a
lea eax, [ebp - 0x38]
mov ecx, ebx
push eax
call fcn.00513d13
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0x50]
xor edx, edx
mov eax, 0x20b
cmp word [ebp - 0x74], ax
movzx eax, cl
sete dl
add eax, eax
or edx, eax
movzx eax, byte [ebp - 0x49]
shl eax, 2
or edx, eax
jmp dword [edx*4 + 0x5149e2]
push edi
mov ecx, dword [ebp - 0x78]
call fcn.00513db1
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 0xb
jmp 0x51443d
mov eax, dword [ebp - 0x6c]
mov ecx, 0x200
movzx eax, word [eax + 4]
cmp ax, cx
jne 0x5147fb
mov eax, 0x43aa50
jmp 0x51480a
mov ecx, 0x8664
cmp ax, cx
jne 0x51480d
mov eax, 0x43aa60
push eax
jmp 0x5147c7
mov edi, dword [ebp - 0x7c]
mov eax, dword [edi + 0x80]
mov ebx, dword [eax]
test ebx, ebx
je 0x514844
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
push ecx
push ecx
push 0x419be0
push 0xc1010016
push ecx
push eax
push dword [edi + 0x84]
mov ecx, ebx
call dword [0x5552f8]
call ebx
mov edi, 0x8000ffff
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x1d7
mov dword [ebp - 0x54], 0x43a9e0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 8
jmp 0x5149c2
mov eax, dword [ebp - 0x6c]
mov edx, 0x14c
cmp word [eax + 4], dx
je 0x514905
mov edi, dword [ebp - 0x7c]
mov eax, dword [edi + 0x80]
mov ebx, dword [eax]
test ebx, ebx
je 0x5148c7
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
push ecx
push ecx
push 0x419be0
push 0xc1010017
push ecx
push eax
push dword [edi + 0x84]
mov ecx, ebx
call dword [0x5552f8]
call ebx
mov edi, 0x8000ffff
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x1ee
mov dword [ebp - 0x54], 0x43a9e0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 9
jmp 0x5149c2
test cl, cl
jne case.0x5147bf.0
mov edi, 0x43aaac
jmp case.0x5147bf.0
mov edi, dword [ebp - 0x7c]
mov eax, dword [edi + 0x80]
mov ebx, dword [eax]
test ebx, ebx
je 0x51494e
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
xor ecx, ecx
push ecx
push ecx
push 0x419be0
push 0xc1010018
push ecx
push eax
push dword [edi + 0x84]
mov ecx, ebx
call dword [0x5552f8]
call ebx
mov edi, 0x8000ffff
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x20a
mov dword [ebp - 0x54], 0x43a9e0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 0xa
jmp 0x5149c2
mov edi, 0x80070057
mov dword [ebp - 0x60], 0x43a7b0
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x43a828
mov dword [ebp - 0x58], 0x13a
mov dword [ebp - 0x54], 0x43a8a0
call fcn.004f7c89
lea ecx, [esi - 0x10]
call fcn.00513dec
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x44]
call fcn.00443839
or dword [ebp - 4], 0xffffffff
mov eax, edi
call fcn.0052bffc
ret 0x10
mov ecx, 0x80004005
call fcn.005085b4
mov byte [edi + 0x51], 0
jecxz 5327407
push ecx
add byte [edx + 0x17005148], al
dec ecx
push ecx
add byte [edx - 0x1cffaeb8], al
inc edi
push ecx
add byte [edx + 0x17005148], al
dec ecx
push ecx
add ah, cl
int3
sal bl, 0xab
push 8
pop ecx
lea edi, [ebp - 0x60]
rep stosd dword es:[edi], eax
and dword [ebp - 4], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x68]
push ebx
mov ecx, esi
call fcn.0051417e
mov esi, eax
mov dword [ebp - 0x64], esi
mov dword [ebp - 4], 0xfffffffe
call fcn.00514a78
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 8