Function at 0x4a1a20
Capabilities:
Check if file exists
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73fca3
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x8312b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1f8], ecx
cmp dword [0x83ce48], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1f4], eax
jne 0x4a1baa
push 0x3a0
call fcn.006f4f3d
mov esi, eax
mov dword [ebp - 0x1f0], esi
push 2
mov dword [esi], vtable.XLDownloader.0
lea eax, [esi + 0x36c]
mov dword [esi + 0x2c], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x144], 0
mov dword [esi + 0x16c], 0
mov dword [esi + 0x194], 0
mov dword [esi + 0x1bc], 0
mov dword [esi + 0x1e4], 0
mov dword [esi + 0x20c], 0
mov dword [esi + 0x234], 0
mov dword [esi + 0x25c], 0
mov dword [esi + 0x284], 0
mov dword [esi + 0x2ac], 0
mov dword [esi + 0x2d4], 0
mov dword [esi + 0x2fc], 0
mov dword [esi + 0x324], 0
mov dword [esi + 0x354], 0
push eax
mov dword [esi + 0x360], 0
mov dword [esi + 0x364], 0
mov dword [esi + 0x368], 0
call fcn.00517b28
add esp, 0xc
mov dword [esi + 0x358], 0
mov dword [esi + 0x32c], 0
lea ecx, [esi + 0x35c]
mov dword [esi + 0x328], 0
mov eax, 1
xchg dword [ecx], eax
mov dword [0x83ce48], esi
lea eax, [ebp - 0xb8]
push eax
call fcn.004f94b0
push 8
push str.drivers_
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00460700
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x88], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
movq qword [ebp - 0x78], xmm0
mov word [eax], cx
lea ecx, [ebp - 0xb8]
call fcn.0044bf40
xor eax, eax
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
lea ecx, [ebp - 0x174]
call fcn.00453610
mov byte [ebp - 4], 9
call fcn.0045aa80
sub esp, 0x18
mov edi, eax
mov eax, dword [ebp - 0x1f4]
mov esi, esp
sub esp, 0x18
add eax, 4
mov ecx, esp
mov dword [ebp - 0x1f0], eax
push eax
call fcn.004609e0
xor edx, edx
mov ecx, esi
call fcn.004b5700
add esp, 0x18
lea eax, [ebp - 0x174]
mov ecx, edi
push eax
call fcn.0044c9d0
test al, al
je 0x4a1ff1
xor eax, eax
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 7
mov word [ebp - 0x1e4], ax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov byte [ebp - 0x1c4], 1
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], 7
mov word [ebp - 0x1bc], ax
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], 7
mov word [ebp - 0x1a4], ax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], 7
mov word [ebp - 0x18c], ax
sub esp, 0x18
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x174]
mov ecx, esp
push eax
call fcn.00460ac0
xor edx, edx
lea ecx, [ebp - 0x28]
call fcn.004b5540
mov esi, eax
add esp, 0x18
lea eax, [ebp - 0x1e4]
cmp eax, esi
je 0x4a1da3
mov ecx, eax
call fcn.0044bf40
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x1e4], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x1d4], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x28]
call fcn.0044bf40
mov edi, dword [ebp - 0x1f4]
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x1cc], 1
lea eax, [edi + 0x20]
cmp ecx, eax
je 0x4a1de0
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x4a1dd3
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x18c]
call fcn.0044bdc0
mov ecx, dword [ebp - 0x128]
mov eax, 0x4325c53f
mov esi, dword [ebp - 0x12c]
sub ecx, esi
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [edi + 0xd0]
lea eax, [ecx - 1]
cmp edx, eax
ja 0x4a1e49
test ecx, ecx
je 0x4a1e49
imul eax, edx, 0xf4
sub esp, 0x18
mov ecx, esp
add eax, 0x90
add eax, esi
push eax
call fcn.00460ac0
xor edx, edx
lea ecx, [ebp - 0x28]
call fcn.004b5540
add esp, 0x18
lea ecx, [ebp - 0xa0]
push eax
call fcn.004608a0
lea ecx, [ebp - 0x28]
call fcn.0044bf40
lea eax, [ebp - 0xa0]
mov edx, 0x7f28e4
push eax
lea ecx, [ebp - 0x28]
call fcn.00466bb0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x40]
cmp eax, esi
je 0x4a1e94
mov ecx, eax
call fcn.0044bf40
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x30], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x28]
call fcn.0044bf40
push 0xe
push 0x7f28f8
lea ecx, [ebp - 0x40]
call fcn.00460700
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.004609e0
lea ecx, [ebp - 0x58]
call fcn.0049de20
add esp, 0x18
test al, al
jne 0x4a206a
mov ecx, dword [ebp - 0x128]
mov eax, 0x4325c53f
mov esi, dword [ebp - 0x12c]
sub ecx, esi
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [edi + 0xd0]
lea eax, [ecx - 1]
cmp edx, eax
ja 0x4a1f33
test ecx, ecx
je 0x4a1f33
imul eax, edx, 0xf4
sub esp, 0x18
mov ecx, esp
add eax, 0x48
add eax, esi
push eax
call fcn.00460ac0
xor edx, edx
lea ecx, [ebp - 0x28]
call fcn.004b5540
add esp, 0x18
lea ecx, [ebp - 0xa0]
push eax
call fcn.004608a0
lea ecx, [ebp - 0x28]
call fcn.0044bf40
lea eax, [ebp - 0xa0]
mov edx, str._url_:__
push eax
lea ecx, [ebp - 0x28]
call fcn.00466bb0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x40]
cmp eax, esi
je 0x4a1f7e
mov ecx, eax
call fcn.0044bf40
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x40], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x30], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x28]
call fcn.0044bf40
push 0xe
push str.____os_:_x86_
lea ecx, [ebp - 0x40]
call fcn.00460700
sub esp, 0x18
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.004609e0
lea ecx, [ebp - 0x58]
call fcn.0049de20
add esp, 0x18
test al, al
jne 0x4a206a
call fcn.0045b8d0
push ecx
push 0x18
mov ecx, eax
call fcn.004e15d0
lea ecx, [ebp - 0x18c]
call fcn.0044bf40
lea ecx, [ebp - 0x1a4]
call fcn.0044bf40
lea ecx, [ebp - 0x1bc]
call fcn.0044bf40
lea ecx, [ebp - 0x1e4]
call fcn.0044bf40
mov byte [ebp - 0x1e5], 0
lea ecx, [ebp - 0x174]
call fcn.004536b0
lea ecx, [ebp - 0xa0]
call fcn.0044bf40
lea ecx, [ebp - 0xd0]
call fcn.0044bf40
lea ecx, [ebp - 0x58]
call fcn.0044bf40
lea ecx, [ebp - 0x40]
call fcn.0044bf40
lea ecx, [ebp - 0x70]
call fcn.0044bf40
lea ecx, [ebp - 0xb8]
call fcn.0044bf40
lea ecx, [ebp - 0x88]
call fcn.0044bf40
mov al, byte [ebp - 0x1e5]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006f4f1e
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0xd0]
lea ecx, [ebp - 0x1a4]
cmp dword [ebp - 0x74], 8
push dword [ebp - 0x78]
mov dword [ebp - 0x1c0], eax
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
call fcn.0044bdc0
sub esp, 0x18
lea eax, [ebp - 0xa0]
mov ecx, esp
push eax
call fcn.004609e0
lea ecx, [ebp - 0x28]
call fcn.004ad800
mov esi, eax
add esp, 0x18
lea eax, [ebp - 0x70]
cmp eax, esi
je 0x4a20e6
mov ecx, eax
call fcn.0044bf40
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [esi + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
movq qword [ebp - 0x60], xmm0
mov word [esi], ax
lea ecx, [ebp - 0x28]
call fcn.0044bf40
lea eax, [ebp - 0x70]
push eax
lea edx, [ebp - 0x88]
lea ecx, [ebp - 0x28]
call fcn.0048dde0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x1bc]
cmp eax, esi
je 0x4a2140
mov ecx, eax
call fcn.0044bf40
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x1bc], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x1ac], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x28]
call fcn.0044bf40
cmp dword [ebp - 0x1a8], 8
lea eax, [ebp - 0x1bc]
cmovae eax, dword [ebp - 0x1bc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4a21c9
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 0xb
mov ecx, dword [edi + 0xcc]
test ecx, ecx
je 0x4a2199
mov eax, dword [ecx]
lea edx, [ebp - 0x28]
push edx
lea edx, [ebp - 0x1e4]
push edx
call dword [eax + 0x20]
mov edi, dword [ebp - 0x1f8]
mov eax, dword [edi]
mov esi, dword [eax + 0x20]
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
mov ecx, esp
push dword [ebp - 0x1f0]
call fcn.004609e0
mov ecx, edi
call esi
lea ecx, [ebp - 0x28]
call fcn.0044bf40
jmp 0x4a23b5
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmovae eax, dword [ebp - 0x58]
push eax
call esi
push 0x7f294c
call esi
mov esi, dword [0x83ce48]
test esi, esi
jne 0x4a2333
push 0x3a0
call fcn.006f4f3d
mov esi, eax
mov dword [ebp - 0x1ec], esi
push 2
mov dword [esi], vtable.XLDownloader.0
lea eax, [esi + 0x36c]
mov dword [esi + 0x2c], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x144], 0
mov dword [esi + 0x16c], 0
mov dword [esi + 0x194], 0
mov dword [esi + 0x1bc], 0
mov dword [esi + 0x1e4], 0
mov dword [esi + 0x20c], 0
mov dword [esi + 0x234], 0
mov dword [esi + 0x25c], 0
mov dword [esi + 0x284], 0
mov dword [esi + 0x2ac], 0
mov dword [esi + 0x2d4], 0
mov dword [esi + 0x2fc], 0
mov dword [esi + 0x324], 0
mov dword [esi + 0x354], 0
push eax
mov dword [esi + 0x360], 0
mov dword [esi + 0x364], 0
mov dword [esi + 0x368], 0
call fcn.00517b28
add esp, 0xc
mov dword [esi + 0x358], 0
mov dword [esi + 0x32c], 0
lea eax, [esi + 0x35c]
mov dword [esi + 0x328], 0
mov ecx, 1
xchg dword [eax], ecx
mov dword [0x83ce48], esi
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1ec], esp
push eax
call fcn.0044c260
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x88]
cmp dword [ebp - 0x74], 8
cmovae eax, dword [ebp - 0x88]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1f0], esp
push eax
call fcn.0044c260
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
cmovae eax, dword [ebp - 0x58]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.0044c260
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.004f8e90
test al, al
je 0x4a1fc5
mov eax, dword [ebp - 0x1c8]
mov dword [edi + 0xc8], eax
lea ecx, [ebp - 0x18c]
call fcn.0044bf40
lea ecx, [ebp - 0x1a4]
call fcn.0044bf40
lea ecx, [ebp - 0x1bc]
call fcn.0044bf40
lea ecx, [ebp - 0x1e4]
call fcn.0044bf40
mov byte [ebp - 0x1e5], 1
jmp 0x4a1ff8