Function at 0x4164f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5866de
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x5e5c10]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov esi, ecx
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0xb8], eax
call fcn.0046d9b4
xor edi, edi
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], edi
call fcn.0046d9b4
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.0046d9b4
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.0046d9b4
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 3
call fcn.0046d9b4
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 4
call fcn.0046d9b4
push 0xa
push 0x80020004
lea ecx, [ebp - 0x100]
mov byte [ebp - 4], 5
call fcn.0046724d
push edi
push 0x5b9284
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 6
call fcn.0046e502
test eax, eax
jne 0x41663e
call fcn.00419720
push edi
push edi
push 0x5b92a8
call fcn.00459c74
lea ecx, [ebp - 0x100]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 4
call fcn.0046dab7
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 3
call fcn.0046dab7
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.0046dab7
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.0046dab7
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0
call fcn.0046dab7
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.0046dab7
xor al, al
jmp 0x416d98
lea edx, [ebp - 0x9c]
push edx
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 0x79], 0
call fcn.00416380
lea ecx, [ebp - 0x88]
push ecx
push 0x5b92fc
lea edx, [ebp - 0x80]
mov byte [ebp - 4], 7
push edx
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x88], edi
call fcn.00418de0
push eax
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 8
call fcn.0040c2f0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4166ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x9c]
push ecx
push 0x5b9300
call fcn.004183f0
add esp, 8
test al, al
je 0x4166c9
mov byte [ebp - 0x79], 1
push edi
push 0x5e7380
push edi
push edi
push 4
lea edx, [ebp - 0x98]
push 0x22e
push edx
call fcn.0046e4a0
push edi
push 0x5e737c
push edi
push edi
push 4
lea eax, [ebp - 0x98]
push 0x4ba
push eax
call fcn.0046e4a0
push edi
lea ecx, [ebp - 0x80]
push ecx
push 9
push 2
lea edx, [ebp - 0x98]
push 0x23c
push edx
call fcn.0046e4a0
mov eax, dword [ebp - 0x80]
add esp, 0x50
push 1
push eax
lea ecx, [ebp - 0xc8]
call fcn.0046dd29
lea ecx, [ebp - 0xc8]
mov eax, 0x5e7088
mov byte [ebp - 4], 9
mov edx, dword [esi]
push ecx
mov ecx, eax
call fcn.00416470
push 1
push eax
lea ecx, [ebp - 0x90]
call fcn.0046dd29
mov dword [ebp - 4], 7
jmp 0x4167a7
push 0
lea edx, [ebp - 0x80]
push edx
push 9
push 2
lea eax, [ebp - 0x90]
push 0x1e5
push eax
call fcn.0046e4a0
mov ecx, dword [ebp - 0x80]
add esp, 0x18
push 1
push ecx
lea ecx, [ebp - 0xc0]
call fcn.0046dd29
mov bl, 0xb
mov byte [ebp - 4], bl
mov edi, dword [esi + 4]
mov edx, 8
push edi
mov word [ebp - 0xb4], dx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0xac], eax
test eax, eax
jne 0x416809
test edi, edi
je 0x416809
push 0x8007000e
call fcn.00578270
lea eax, [ebp - 0xb4]
push eax
push 0x5e73c4
lea ecx, [ebp - 0x80]
push ecx
push 9
push 2
lea edx, [ebp - 0xc0]
push 0xaa
push edx
mov byte [ebp - 4], 0xc
call fcn.0046e4a0
add esp, 0x1c
lea eax, [ebp - 0xb4]
push eax
mov byte [ebp - 4], bl
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [ebp - 0x80]
push 1
push ecx
lea ecx, [ebp - 0xa4]
call fcn.0046dd29
mov dword [ebp - 4], 7
jmp 0x41690e
mov ecx, dword [0x5b9308]
mov dx, word [0x5b930c]
push 0x5e
lea eax, [ebp - 0x72]
push 0
push eax
mov dword [ebp - 0x78], ecx
mov word [ebp - 0x74], dx
call fcn.005632e0
mov ecx, dword [ebp - 0xb8]
add esp, 0xc
push 0xc
push ecx
lea ecx, [ebp - 0x118]
call fcn.0046767a
mov byte [ebp - 4], 0xf
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
test edi, edi
je 0x4169be
test ecx, ecx
je 0x4169be
cmp ecx, 0x1a
jle 0x4169a4
mov eax, 0x4ec4ec4f
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
imul edx, edx, 0x1a
sub ecx, edx
lea eax, [eax + 0x40]
movzx eax, ax
jne 0x416984
mov ecx, 0x41
jmp 0x41698a
add ecx, 0x40
movzx ecx, cx
push edi
movzx ecx, cx
push ecx
push eax
lea eax, [ebp - 0x78]
push str._c_c_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
jmp 0x4169be
add ecx, 0x40
movzx ecx, cx
push edi
push ecx
lea edx, [ebp - 0x78]
push str._c_d
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xec], ecx
lea edx, [ebp - 0x78]
mov ecx, 8
push edx
mov dword [ebp - 0xe4], eax
mov word [ebp - 0xd8], cx
call ebx
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x416a1a
push 0x8007000e
call fcn.00578270
mov eax, 8
mov byte [ebp - 4], 0x10
push 0x5b932c
mov word [ebp - 0xb4], ax
call fcn.00578310
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0xd8]
push ecx
lea edx, [ebp - 0xb4]
push edx
push 0x5e73b8
lea eax, [ebp - 0xb8]
push eax
push 9
push 2
lea ecx, [ebp - 0xa4]
push 0xc5
push ecx
mov byte [ebp - 4], 0x11
call fcn.0046e4a0
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
add esp, 0x20
lea edx, [ebp - 0xb4]
push edx
call edi
lea eax, [ebp - 0xd8]
push eax
mov byte [ebp - 4], 0xf
call edi
mov ecx, dword [ebp - 0xb8]
push 1
push ecx
lea ecx, [ebp - 0xe0]
call fcn.0046dd29
lea edx, [ebp - 0xf0]
push edx
push 0x5e7384
push 0
push 0
push 4
lea eax, [ebp - 0xe0]
push 0x56c
push eax
call fcn.0046e4a0
add esp, 0x1c
cmp byte [ebp - 0x79], 0
je 0x416b54
mov ecx, dword [esi]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x416afe
push 0
push 0
push 0
push 1
lea edx, [ebp - 0x90]
push 0x11b
push edx
call fcn.0046e4a0
add esp, 0x18
jmp 0x416cae
mov esi, dword [esi]
mov eax, 8
push esi
mov word [ebp - 0xd8], ax
call ebx
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x416b27
test esi, esi
je 0x416b27
push 0x8007000e
call fcn.00578270
lea eax, [ebp - 0x100]
lea ecx, [ebp - 0xd8]
lea edx, [ebp - 0x90]
mov byte [ebp - 4], 0x12
call fcn.00416420
lea ecx, [ebp - 0xd8]
push ecx
mov byte [ebp - 4], 0xf
call edi
jmp 0x416cae
mov edx, dword [esi]
push edx
lea ecx, [ebp - 0x88]
call fcn.00401990
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x88]
push 0x2e
push eax
call fcn.00561166
add esp, 8
test eax, eax
jne 0x416b80
or eax, 0xffffffff
jmp 0x416b88
sub eax, dword [ebp - 0x88]
sar eax, 1
push eax
lea ecx, [ebp - 0x84]
push ecx
lea ecx, [ebp - 0x88]
call fcn.004183c0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x84]
push str..xls
push edx
mov edi, 0x33
call fcn.00560913
add esp, 8
test eax, eax
jne 0x416bbf
lea edi, [eax + 0x38]
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x416bea
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x90]
push 0x11b
push ecx
call fcn.0046e4a0
add esp, 0x18
jmp 0x416c5c
mov edx, 3
mov word [ebp - 0xb4], dx
mov dword [ebp - 0xac], edi
mov byte [ebp - 4], 0x15
mov esi, dword [esi]
mov eax, 8
push esi
mov word [ebp - 0xd8], ax
call ebx
mov dword [ebp - 0xd0], eax
test eax, eax
jne 0x416c29
test esi, esi
je 0x416c29
push 0x8007000e
call fcn.00578270
lea eax, [ebp - 0xb4]
lea ecx, [ebp - 0xd8]
lea edx, [ebp - 0x90]
mov byte [ebp - 4], 0x16
call fcn.00416420
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0xd8]
push ecx
call esi
lea edx, [ebp - 0xb4]
push edx
call esi
mov byte [ebp - 4], 0x13
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416c82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416ca8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0xa4]
call fcn.0046dab7
lea ecx, [ebp - 0xc0]
call fcn.0046dab7
lea ecx, [ebp - 0x90]
call fcn.0046dab7
lea ecx, [ebp - 0xc8]
call fcn.0046dab7
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x98]
push 0x12e
push ecx
call fcn.0046e4a0
add esp, 0x18
lea ecx, [ebp - 0x98]
call fcn.0046dab7
lea edx, [ebp - 0x118]
push edx
call edi
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x416d30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x100]
push ecx
call edi
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 4
call fcn.0046dab7
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 3
call fcn.0046dab7
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.0046dab7
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.0046dab7
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0
call fcn.0046dab7
lea ecx, [ebp - 0x98]
mov dword [ebp - 4], 0xffffffff
call fcn.0046dab7
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0055fd94
mov esp, ebp
pop ebp
ret