Function at 0x41abf0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46a1e8
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push esi
push edi
mov eax, dword [0x4846a0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [0x484034]
mov edx, dword [eax + 0xc]
mov ecx, 0x484034
call edx
lea edi, [eax + 0x10]
mov dword [ebp - 0x10], edi
push ecx
mov byte [ebp - 4], 1
mov eax, esp
mov dword [ebp - 0x20], esp
push eax
mov ecx, str.adxloader.dll.manifest
call fcn.00401110
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0xc]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x1c], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.0041ccc0
mov byte [ebp - 4], 3
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
je 0x41acc6
cmp dword [esi + 0xc], ebx
lea edi, [esi + 0xc]
jl 0x41acb4
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41acb4
call fcn.00426710
mov dword [ebp - 0x1c], eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x41aca9
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x10
mov dword [ebp - 0x10], ecx
jmp 0x41acc3
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.00401330
xor ebx, ebx
mov edi, dword [ebp - 0x10]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ace9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41ad68
mov eax, dword [ebp + 8]
add eax, 0x118
push str.Cant_find_the_manifest_file.
push eax
mov ebx, 0x1d
call fcn.00401330
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ad2c
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ad52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [0x484034]
mov eax, dword [edx + 0xc]
mov ecx, 0x484034
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 4
mov edx, dword [0x484034]
mov eax, dword [edx + 0xc]
mov ecx, 0x484034
call eax
add eax, 0x10
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
xor edx, edx
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 7
call fcn.00442fe0
mov dword [ebp - 0x34], 8
lea ecx, [ebp - 0x58]
push ecx
push edi
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x5c]
mov byte [ebp - 4], 8
call fcn.00443080
add esp, 8
test al, al
je 0x41ade0
lea ecx, [ebp - 0x5c]
call fcn.004438e0
cmp al, bl
jne 0x41ae29
mov eax, dword [ebp + 8]
add eax, 0x118
push str.Failed_to_read_the_manifest_file.
push eax
mov ebx, 0x21
call fcn.00401330
lea eax, [ebp - 0x5c]
call fcn.00403da0
add edi, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x41ad2c
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
jmp 0x41ad2c
mov eax, str.configuration
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41ae80
mov edi, dword [ebp + 8]
add edi, 0x118
mov edx, str.Cant_find_the_configuration_section_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x5c]
call fcn.00403da0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ad2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41ad2c
lea eax, [ebp - 0x5c]
call fcn.004436e0
mov eax, 0x472db8
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
je 0x41b0b5
mov eax, esi
call fcn.004436e0
mov eax, str.application
call fcn.004433d0
test al, al
jne 0x41aebe
push str.application
mov ecx, esi
call fcn.004458d0
xor ecx, ecx
cmp dword [ebp - 0x50], ebx
mov eax, 0x475294
setne cl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ecx
call fcn.004433d0
test al, al
jne 0x41aeef
push 0x475294
mov ecx, esi
call fcn.004458d0
xor edx, edx
cmp dword [ebp - 0x50], ebx
mov eax, str.autoUpdateEnabled
setne dl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], edx
call fcn.004433d0
test al, al
jne 0x41af20
push str.autoUpdateEnabled
mov ecx, esi
call fcn.004458d0
xor eax, eax
cmp dword [ebp - 0x50], ebx
lea esi, [ebp - 0x5c]
setne al
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], eax
mov eax, str.installationUrl
call fcn.004433d0
test al, al
jne 0x41af51
push str.installationUrl
mov ecx, esi
call fcn.004458d0
xor ecx, ecx
cmp dword [ebp - 0x50], ebx
mov eax, str.additionalInstallationUrls
setne cl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ecx
call fcn.004433d0
test al, al
jne 0x41af82
push str.additionalInstallationUrls
mov ecx, esi
call fcn.004458d0
xor edx, edx
cmp dword [ebp - 0x50], ebx
mov eax, str.language
setne dl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], edx
call fcn.004433d0
test al, al
jne 0x41afb3
push str.language
mov ecx, esi
call fcn.004458d0
xor eax, eax
cmp dword [ebp - 0x50], ebx
lea esi, [ebp - 0x5c]
setne al
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], eax
mov eax, str.version
call fcn.004433d0
test al, al
jne 0x41afe4
push str.version
mov ecx, esi
call fcn.004458d0
xor ecx, ecx
cmp dword [ebp - 0x50], ebx
mov eax, str.productCode
setne cl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ecx
call fcn.004433d0
test al, al
jne 0x41b015
push str.productCode
mov ecx, esi
call fcn.004458d0
xor edx, edx
cmp dword [ebp - 0x50], ebx
mov eax, str.updaterAutoDownload
setne dl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], edx
call fcn.004433d0
test al, al
jne 0x41b046
push str.updaterAutoDownload
mov ecx, esi
call fcn.004458d0
xor eax, eax
cmp dword [ebp - 0x50], ebx
lea esi, [ebp - 0x5c]
setne al
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], eax
mov eax, str.silent
call fcn.004433d0
test al, al
jne 0x41b077
push str.silent
mov ecx, esi
call fcn.004458d0
xor ecx, ecx
cmp dword [ebp - 0x50], ebx
mov eax, str.appDataDirectory
setne cl
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ecx
call fcn.004433d0
test al, al
jne 0x41b0a8
push str.appDataDirectory
mov ecx, esi
call fcn.004458d0
lea eax, [ebp - 0x5c]
call fcn.00443720
jmp 0x41b257
lea edx, [ebp - 0x18]
push edx
mov ecx, str._msi__r_n_____application___r_n_____id___r_n_____autoUpdateEnabled___r_n_____installationUrl___r_n_____additionalInstallationUrls___r_n_____language___r_n_____version___r_n_____productCode___r_n_____updaterAutoDownload___r_n_____silent___r_n_____appDataDirectory___r_n____msi_
call fcn.00401110
mov eax, 0x472b1c
lea esi, [ebp - 0x5c]
mov byte [ebp - 4], 9
call fcn.004433d0
test al, al
je 0x41b174
mov eax, dword [ebp - 0x18]
push eax
mov ecx, 0x2000
mov edx, esi
call fcn.00445a90
test al, al
je 0x41b234
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
call fcn.00426710
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 0xa
cmp dword [esi - 0xc], ebx
jl 0x41b22c
push str._Signature
push esi
call fcn.0044fde9
add esp, 8
cmp eax, ebx
je 0x41b22c
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, ebx
jle 0x41b22c
mov ecx, edi
lea esi, [ebp - 0x1c]
lea edx, [ebp - 0x14]
call fcn.00421e50
mov bl, 0xb
mov eax, edi
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x14]
mov byte [ebp - 4], bl
call fcn.00421ef0
lea edi, [ebp - 0x14]
mov byte [ebp - 4], 0xc
call fcn.00421630
lea eax, [ebp - 0x20]
mov byte [ebp - 4], bl
call fcn.004245a0
mov ecx, edi
push ecx
jmp 0x41b1fd
mov edx, dword [ebp - 0x18]
push edx
xor ecx, ecx
lea edx, [ebp - 0x5c]
call fcn.00445a90
test al, al
je 0x41b234
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
call fcn.00426710
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 0xd
cmp dword [esi - 0xc], ebx
jl 0x41b22c
push str._msi_
push esi
call fcn.0044fde9
add esp, 8
cmp eax, ebx
je 0x41b22c
sub eax, esi
sar eax, 1
mov edi, eax
cmp edi, ebx
jle 0x41b22c
mov ecx, edi
lea esi, [ebp - 0x1c]
lea edx, [ebp - 0x14]
call fcn.00421e50
mov bl, 0xe
mov eax, edi
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x14]
mov byte [ebp - 4], bl
call fcn.00421ef0
lea edi, [ebp - 0x14]
mov byte [ebp - 4], 0xf
call fcn.00421630
lea eax, [ebp - 0x20]
mov byte [ebp - 4], bl
call fcn.004245a0
mov eax, edi
push eax
mov edx, 0x47558c
call fcn.004221e0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ebx, [ebp - 0x14]
call fcn.004249d0
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x5c]
call fcn.00442fe0
lea eax, [ebp - 0x1c]
call fcn.004245a0
xor ebx, ebx
lea eax, [ebp - 0x14]
call fcn.004245a0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b257
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x5c]
call fcn.00443720
mov eax, str.configuration
lea esi, [ebp - 0x5c]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ebx
call fcn.004433d0
test al, al
je 0x41ae3a
mov eax, esi
call fcn.004436e0
mov eax, 0x472db8
call fcn.004433d0
test al, al
jne 0x41b2c8
mov edx, str.Cant_find_the_msi_section_in_the_manifest_file.
mov edi, dword [ebp + 8]
add edi, 0x118
call fcn.004011b0
lea eax, [ebp - 0x5c]
call fcn.00403da0
lea eax, [ebp - 0x10]
call fcn.004245a0
lea eax, [ebp + 0xc]
call fcn.004245a0
jmp 0x41ad52
lea eax, [ebp - 0x5c]
call fcn.004436e0
mov eax, str.application
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b2e8
mov edx, str.Cant_find_the_application_element_in_the_manifest_file.
jmp 0x41b29d
mov eax, dword [0x487924]
add eax, 0xfffffff0
call fcn.00426710
add eax, 0x10
mov dword [ebp - 0x14], eax
lea edi, [ebp - 0x14]
mov byte [ebp - 4], 0x10
call fcn.00421df0
mov ecx, dword [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, 0x475294
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b34c
mov edi, dword [ebp + 8]
add edi, 0x118
mov edx, str.Cant_find_the_id_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov edx, dword [0x487940]
push edx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.autoUpdateEnabled
lea esi, [ebp - 0x5c]
call fcn.004433d0
mov edi, dword [ebp + 8]
test al, al
jne 0x41b394
add edi, 0x118
mov edx, str.Cant_find_the_autoUpdateEnabled_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
lea ecx, [ebp - 0x5c]
cmp byte [edi + 0x12f], bl
je 0x41b3a6
push 0x472e80
jmp 0x41b3ab
push 0x472d4c
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.installationUrl
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b3e6
add edi, 0x118
mov edx, str.Cant_find_the_installationUrl_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov eax, dword [0x48790c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.additionalInstallationUrls
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b42a
add edi, 0x118
mov edx, str.Cant_find_the_additionalInstallationUrls_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov ecx, dword [0x487948]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.language
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b46f
add edi, 0x118
mov edx, str.Cant_find_the_language_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov edx, dword [0x487910]
push edx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.version
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b4b4
add edi, 0x118
mov edx, str.Cant_find_the_version_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov eax, dword [0x48792c]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.productCode
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b4f8
add edi, 0x118
mov edx, str.Cant_find_the_productCode_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov ecx, dword [0x48791c]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.updaterAutoDownload
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b53d
add edi, 0x118
mov edx, str.Cant_find_the_updaterAutoDownload_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov edx, dword [0x487944]
push edx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.silent
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b582
add edi, 0x118
mov edx, str.Cant_find_the_silent_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov eax, dword [0x487964]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
lea eax, [ebp - 0x5c]
call fcn.00403e40
mov eax, str.appDataDirectory
lea esi, [ebp - 0x5c]
call fcn.004433d0
test al, al
jne 0x41b5c6
add edi, 0x118
mov edx, str.Cant_find_the_appDataDirectory_element_in_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov ecx, dword [edi + 0x94]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00444eb0
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x34]
push edx
push eax
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x5c]
call fcn.00443250
add esp, 8
test al, al
jne 0x41b60c
add edi, 0x118
mov edx, str.Cant_save_the_manifest_file.
call fcn.004011b0
lea eax, [ebp - 0x14]
call fcn.004245a0
jmp 0x41b2ab
mov eax, dword [ebp + 0xc]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 8], esp
mov esi, esp
call fcn.00426710
add eax, 0x10
mov dword [esi], eax
call fcn.0041b660
lea eax, [ebp - 0x14]
call fcn.004245a0
lea eax, [ebp - 0x5c]
call fcn.00403da0
lea eax, [ebp - 0x10]
call fcn.004245a0
lea eax, [ebp + 0xc]
call fcn.004245a0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8