Function at 0x41f5fc
Capabilities:
Delete file

Disassembly:
push ebp
sub esp, 0x504
lea ebp, [esp - 4]
mov eax, dword [0x4c1c50]
xor eax, ebp
mov dword [ebp + 0x504], eax
push 0x170
mov eax, 0x496540
call fcn.00470906
and dword [ebp - 0x10], 0
mov esi, ecx
push str.DownloadThread___starting
lea ecx, [ebp - 0x38]
call fcn.0044e280
and dword [ebp - 4], 0
lea eax, [ebp - 0x38]
push eax
call fcn.00404620
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x38]
call fcn.0044e260
jmp 0x41fe68
cmp dword [esi + 0x6ec], 0
je 0x41fe77
mov eax, dword [esi + 0x6e0]
xor ebx, ebx
mov dword [esi + 0x684], ebx
mov dword [esi + 0x688], ebx
mov dword [esi + 0x6bc], ebx
mov edi, dword [eax + 8]
lea ecx, [esi + 0x6dc]
call fcn.0044f3c0
lea ecx, [ebp - 0xd4]
call fcn.004163b2
lea eax, [ebp - 0xd4]
mov dword [esi + 0x6f0], eax
lea eax, [ebp - 0x104]
push eax
mov ecx, esi
mov dword [ebp - 4], 1
mov dword [esi + 0x6f4], edi
call fcn.004184e8
push ebx
push eax
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 2
call fcn.00417729
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 4
call fcn.0044e260
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ebx, [edi + 0x64]
push ebx
mov dword [edi + 0x28], eax
lea eax, [ebp - 0xf4]
push str.download_thread:_downloading:
push eax
call fcn.0044eb90
push eax
mov byte [ebp - 4], 5
call fcn.00404620
add esp, 0x10
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 4
call fcn.0044e260
cmp byte [ebx + 7], 0xff
mov eax, dword [esi + 0x30]
mov ecx, ebx
jne 0x41f723
mov ecx, dword [ebx]
xor edx, edx
test eax, eax
push 0
setne dl
lea eax, [ebp - 0x90]
push edx
push dword [esi + 0xb40]
push edi
push ecx
push eax
push esi
push esi
lea ecx, [ebp - 0xd4]
call fcn.00416a11
mov dword [ebp - 0x30], eax
test eax, eax
jns 0x41f83c
push str.first_download_failed__trying_second
lea ecx, [ebp - 0x58]
call fcn.0044e280
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 6
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.0044e260
lea eax, [edi + 0x6c]
push eax
lea eax, [ebp - 0xdc]
push str.trying_backup_
push eax
call fcn.0044eb90
push eax
mov byte [ebp - 4], 7
call fcn.00404620
add esp, 0x10
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 4
call fcn.0044e260
lea eax, [edi + 0x6c]
push eax
push ebx
call fcn.004012a1
pop ecx
pop ecx
test al, al
je 0x41f81c
mov ecx, dword [esi + 0x30]
lea eax, [edi + 0x6c]
cmp byte [eax + 7], 0xff
jne 0x41f7ca
mov eax, dword [eax]
xor edx, edx
test ecx, ecx
push 0
setne dl
lea ecx, [ebp - 0xd4]
push edx
push dword [esi + 0xb40]
push edi
push eax
lea eax, [ebp - 0x90]
push eax
push esi
push esi
call fcn.00416a11
push str.download_thread:_failed
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x30], eax
call fcn.0044e280
lea eax, [ebp - 0x98]
push eax
mov byte [ebp - 4], 8
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x98]
jmp 0x41f863
push str.download_thread:_worked_second_try
lea ecx, [ebp - 0x70]
call fcn.0044e280
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 4], 9
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x70]
jmp 0x41f863
push str.download_thread:_worked_first_try
lea ecx, [ebp - 0xa8]
call fcn.0044e280
lea eax, [ebp - 0xa8]
push eax
mov byte [ebp - 4], 0xa
call fcn.00404620
pop ecx
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 4
call fcn.0044e260
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x2c], eax
xor eax, eax
mov dword [esi + 0x6f0], eax
mov dword [esi + 0x6f4], eax
cmp dword [edi + 4], eax
jne 0x41f891
cmp dword [esi + 0x34], eax
jne 0x41fe4a
push 0x3ff
mov byte [ebp + 0x104], al
lea eax, [ebp + 0x105]
push 0
push eax
call fcn.00470280
lea eax, [edi + 0xbc]
add esp, 0xc
cmp byte [eax + 7], 0xff
jne 0x41f8bb
mov eax, dword [eax]
cmp byte [ebx + 7], 0xff
jne 0x41f8c3
mov ebx, dword [ebx]
lea ecx, [edi + 0x3c]
cmp byte [ecx + 7], 0xff
mov dword [ebp - 0x3c], ecx
jne 0x41f8d1
mov ecx, dword [ecx]
push eax
push dword [ebp - 0xc8]
lea eax, [ebp + 0x104]
push ebx
push ecx
push str.Package_URL___s____s__Status_Code___d__Launch___s
push eax
call fcn.0047176b
add esp, 0x18
lea eax, [ebp + 0x104]
push eax
lea ecx, [ebp - 0x50]
call fcn.0044e280
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0xb
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
call fcn.0044e260
xor ebx, ebx
cmp dword [ebp - 0x30], ebx
jl 0x41fe8a
cmp dword [ebp - 0xc0], ebx
je 0x41fe4a
push str.download_thread:_success
lea ecx, [ebp - 0x68]
call fcn.0044e280
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x13
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 4
call fcn.0044e260
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x90]
call fcn.00418495
lea ebx, [edi + 0x7c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x14
call fcn.0044e310
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 4
call fcn.0044e260
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x90]
call fcn.00418495
push eax
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0x15
call fcn.004573e0
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea eax, [ebp - 0x14c]
push eax
lea ecx, [ebp - 0x17c]
call fcn.00457340
push 0x4a39dc
push eax
mov byte [ebp - 4], 0x18
call fcn.00401283
pop ecx
pop ecx
lea ecx, [ebp - 0x14c]
mov byte [ebp - 0x19], al
mov byte [ebp - 4], 0x17
call fcn.0044e260
cmp byte [ebp - 0x19], 0
je 0x41faed
push ebx
lea eax, [ebp - 0x144]
push str.download_thread:_exe_
push eax
call fcn.0044eb90
push eax
mov byte [ebp - 4], 0x19
call fcn.00404620
add esp, 0x10
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x17
call fcn.0044e260
call fcn.0041ceee
test al, al
jne 0x41fd9e
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x17c]
call fcn.004572c0
cmp byte [eax + 7], 0xff
mov byte [ebp - 4], 0x1a
jne 0x41fa4e
mov eax, dword [eax]
lea ecx, [ebp + 4]
push 0
mov dword [ebp], ecx
push eax
lea ecx, [ebp]
call fcn.00404aa0
push dword [ebp]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1b
call fcn.004084e0
lea eax, [ebp + 4]
mov byte [ebp - 4], 0x1d
cmp dword [ebp], eax
je 0x41fa83
push dword [ebp]
call fcn.004721a0
pop ecx
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x1e
call fcn.0044e260
push str.download_thread:_checking_dig_sig
lea ecx, [ebp - 0xa0]
call fcn.0044e280
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x1f
call fcn.00404620
pop ecx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x1e
call fcn.0044e260
push 0x4a29e0
push dword [ebp - 0x40]
call fcn.0040d665
pop ecx
pop ecx
test eax, eax
jne 0x41ffa7
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x17
call fcn.004011bc
jmp 0x41fd9e
lea eax, [ebp - 0xfc]
push eax
lea ecx, [ebp - 0x17c]
call fcn.00457340
or dword [ebp - 0x10], 1
push 0x4a29dc
push eax
mov byte [ebp - 4], 0x23
call fcn.00401283
pop ecx
pop ecx
test al, al
jne 0x41fb4a
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x17c]
call fcn.00457340
or dword [ebp - 0x10], 2
push 0x4a2a08
push eax
mov dword [ebp - 4], 0x24
call fcn.00401283
pop ecx
pop ecx
test al, al
jne 0x41fb4a
xor bl, bl
jmp 0x41fb4c
mov bl, 1
test byte [ebp - 0x10], 2
mov dword [ebp - 4], 0x23
je 0x41fb68
and dword [ebp - 0x10], 0xfffffffd
lea ecx, [ebp - 0x13c]
call fcn.0044e260
test byte [ebp - 0x10], 1
mov dword [ebp - 4], 0x17
je 0x41fb84
and dword [ebp - 0x10], 0xfffffffe
lea ecx, [ebp - 0xfc]
call fcn.0044e260
test bl, bl
je 0x41fd9e
push str.download_thread:_extensino_rup_or_cab
lea ecx, [ebp - 0x60]
call fcn.0044e280
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 0x25
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea ecx, [edi + 0x74]
call fcn.00401219
test al, al
jne 0x42004d
push str.download_thread:_extracting
lea ecx, [ebp - 0x48]
call fcn.0044e280
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0x26
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea eax, [ebp - 0x10c]
push eax
mov ecx, esi
call fcn.004184e8
mov ebx, eax
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x27
call fcn.00418495
cmp byte [ebx + 7], 0xff
mov byte [ebp - 4], 0x28
jne 0x41fc1c
mov ebx, dword [ebx]
cmp byte [eax + 7], 0xff
jne 0x41fc24
mov eax, dword [eax]
push ebx
push eax
lea eax, [esi + 4]
push eax
call fcn.004180c9
add esp, 0xc
lea ecx, [ebp - 0x12c]
mov ebx, eax
mov byte [ebp - 4], 0x27
call fcn.0044e260
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x17
call fcn.0044e260
test ebx, ebx
js 0x42004d
lea ecx, [ebp - 0x38]
call fcn.0044e010
lea eax, [ebp - 0x38]
push eax
push ecx
push ecx
mov eax, esp
mov dword [ebp - 0x30], esp
push eax
mov ecx, esi
mov byte [ebp - 4], 0x2e
call fcn.004184e8
mov ecx, esi
call fcn.004189b5
lea ecx, [ebp - 0x38]
call fcn.00401219
lea ecx, [esi + 0xe4]
test al, al
jne 0x41fcfe
call fcn.00401219
test al, al
jne 0x41fcab
push 0x4a0a8c
lea ecx, [esi + 0xe4]
call fcn.0044e6e0
push str._id
push dword [ebp - 0x3c]
lea eax, [ebp - 0x11c]
push eax
call fcn.0044eb40
lea ecx, [ebp - 0x38]
push ecx
push eax
lea eax, [ebp - 0x134]
push eax
mov byte [ebp - 4], 0x2f
call fcn.0044eaf0
add esp, 0x18
push eax
lea ecx, [esi + 0xe4]
mov byte [ebp - 4], 0x30
call fcn.0044e7c0
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x2f
call fcn.0044e260
lea ecx, [ebp - 0x11c]
jmp 0x41fd44
call fcn.00401219
test al, al
jne 0x41fd17
push 0x4a0a8c
lea ecx, [esi + 0xe4]
call fcn.0044e6e0
push str._id
push dword [ebp - 0x3c]
lea eax, [ebp - 0xe4]
push eax
call fcn.0044eb40
add esp, 0xc
push eax
lea ecx, [esi + 0xe4]
mov byte [ebp - 4], 0x31
call fcn.0044e7c0
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0x2e
call fcn.0044e260
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.004184e8
lea ecx, [edi + 0x74]
push ecx
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x32
call fcn.0044eaf0
add esp, 0xc
push eax
lea ecx, [edi + 0x7c]
mov byte [ebp - 4], 0x33
call fcn.0044e310
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x32
call fcn.0044e260
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x2e
call fcn.0044e260
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x17
call fcn.0044e260
push str.download_thread:_downloaded__TRUE
lea ecx, [ebp - 0x24]
mov dword [edi + 0xc], 1
call fcn.0044e280
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x34
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea ebx, [edi + 0x7c]
cmp byte [ebx + 7], 0xff
mov eax, ebx
jne 0x41fdd9
mov eax, dword [ebx]
push 0
push eax
call fcn.004040b0
mov dword [edi + 0x24], eax
push str.main
add edi, 0x4c
push edi
call fcn.00401283
add esp, 0x10
test al, al
je 0x41fe0e
mov eax, dword [ebp - 0xc4]
push ebx
lea ecx, [esi + 0x64]
mov dword [esi + 0x1d0], eax
call fcn.0044e310
lea ecx, [esi + 0x690]
call fcn.00401219
test al, al
jne 0x41fe2d
push 0x4a31b0
lea ecx, [esi + 0x690]
call fcn.0044e6e0
push dword [ebp - 0x3c]
lea ecx, [esi + 0x690]
call fcn.0044e7c0
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 4
call fcn.004572b0
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.00417793
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.004166cb
mov ecx, esi
call fcn.0041980f
test eax, eax
jne 0x41f655
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x69c], eax
xor edi, edi
jmp 0x420158
cmp dword [esi + 0x14], ebx
jne 0x41ff52
lea ecx, [esi + 0xc]
call fcn.00401219
add edi, 0x3c
test al, al
push edi
lea eax, [ebp - 0x2c]
jne 0x41feda
push str.actionerrorvaluelocal_
push eax
call fcn.0044eb90
push str._missing
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0xc
call fcn.0044eb40
add esp, 0x18
mov edx, dword [esi]
push ebx
push eax
mov ecx, esi
mov byte [ebp - 4], 0xd
call dword [edx + 0x10]
mov byte [ebp - 4], 0xc
jmp 0x41ff3e
push str.actionerrorvalue
push eax
call fcn.0044eb90
cmp dword [ebp - 0x30], 0x800705b4
jne 0x41ff17
push str._timeout
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0xe
call fcn.0044eb40
add esp, 0x18
mov edx, dword [esi]
push ebx
push eax
mov ecx, esi
mov byte [ebp - 4], 0xf
call dword [edx + 0x10]
mov byte [ebp - 4], 0xe
jmp 0x41ff3e
push str._missing
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x10
call fcn.0044eb40
add esp, 0x18
mov edx, dword [esi]
push ebx
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call dword [edx + 0x10]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x18]
call fcn.0044e260
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.0044e260
lea ecx, [esi + 0x1f8]
call fcn.00413884
push str.download_thread:_exiting
lea ecx, [ebp - 0x24]
call fcn.0044e280
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x12
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 4
call fcn.0044e260
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.00417793
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd4]
call fcn.004166cb
jmp 0x4201e6
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x17c]
call fcn.004572c0
cmp byte [eax + 7], 0xff
mov byte [ebp - 4], 0x20
jne 0x41ffc2
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x1e
call fcn.0044e260
add edi, 0x3c
push edi
lea eax, [ebp - 0x2c]
push str.actionerrorvalue
push eax
call fcn.0044eb90
push str._invalid
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x21
call fcn.0044eb40
add esp, 0x18
mov edx, dword [esi]
push 0
push eax
mov ecx, esi
mov byte [ebp - 4], 0x22
call dword [edx + 0x10]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x21
call fcn.0044e260
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1e
call fcn.0044e260
lea ecx, [esi + 0x1f8]
call fcn.00413884
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.004011bc
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 4
call fcn.004572b0
jmp 0x41ff84
push str.download_thread:_failure
lea ecx, [ebp - 0x24]
call fcn.0044e280
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x29
call fcn.00404620
pop ecx
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x90]
call fcn.00418495
cmp byte [eax + 7], 0xff
mov byte [ebp - 4], 0x2a
jne 0x42008f
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea ecx, [esi + 0xe4]
call fcn.00401219
test al, al
jne 0x4200c1
push 0x4a0a8c
lea ecx, [esi + 0xe4]
call fcn.0044e6e0
push str._id
add edi, 0x3c
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.0044eb40
add esp, 0xc
push eax
lea ecx, [esi + 0xe4]
mov byte [ebp - 4], 0x2b
call fcn.0044e7c0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x17
call fcn.0044e260
push edi
lea eax, [ebp - 0x2c]
push str.actionerrorvalue
push eax
call fcn.0044eb90
push str._invalid
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x2c
call fcn.0044eb40
add esp, 0x18
mov edx, dword [esi]
push 0
push eax
mov ecx, esi
mov byte [ebp - 4], 0x2d
call dword [edx + 0x10]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x2c
call fcn.0044e260
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x17
call fcn.0044e260
lea ecx, [esi + 0x1f8]
call fcn.00413884
jmp 0x420039
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x38], edi
jne 0x42014d
lea ecx, [ebp - 0x24]
cmp dword [esi + 0x14], edi
jne 0x420195
push str.download_thread:_setting_m_bDownloaded__T
call fcn.0044e280
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 4], 0x35
call fcn.00404620
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x24]
call fcn.0044e260
mov dword [esi + 0x40], 1
jmp 0x4201bc
push str.download_thread:_did_not_set_m_bDownloaded__T
call fcn.0044e280
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 4], 0x36
call fcn.00404620
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x24]
call fcn.0044e260
push str.download_thread:_exiting_2
lea ecx, [ebp - 0x48]
call fcn.0044e280
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 4], 0x37
call fcn.00404620
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x48]
call fcn.0044e260
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x504]
xor ecx, ebp
call fcn.00470483
add ebp, 0x508
leave
ret