Function at 0x1005c050
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c8533
mov eax, dword fs:[0]
push eax
sub esp, 0x32c
mov eax, dword [0x1022b584]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x298], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x280], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x27c], 0
push 5
mov dword [ebp - 0x278], ecx
mov ecx, eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
push str.start
mov dword [ebp - 4], 0
mov dword [ebp - 0x260], eax
mov byte [eax], 0
call fcn.1000cf00
mov dword [ebp - 4], 0
mov dword [ebp - 0x27c], 1
call fcn.1000ed90
mov ecx, eax
test ecx, ecx
je 0x1005ce51
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x264], esi
mov ecx, dword [0x1022e5d4]
mov dword [ebp - 4], 1
test ecx, ecx
jne 0x1005c17e
push 0x102251f0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x1022e5d4], 0
jne 0x1005c165
push 0x1c
call fcn.10179990
mov edi, eax
add esp, 4
mov dword [ebp - 0x274], edi
test edi, edi
je 0x1005c15d
lea ecx, [edi + 4]
mov dword [edi], vtable._BaseModule::CCriticalSection.0
push ecx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x1005c15f
xor edi, edi
mov dword [0x1022e5d4], edi
push 0x102251f0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x1022e5d4]
test ecx, ecx
jne 0x1005c17e
xor eax, eax
jmp 0x1005c1f8
mov eax, dword [0x1022e5d0]
test eax, eax
jne 0x1005c1f8
mov eax, dword [ecx]
push ecx
call dword [eax]
cmp dword [0x1022e5d0], 0
jne 0x1005c1e8
push 0x1c
call fcn.10179990
mov ecx, eax
add esp, 4
mov dword [ebp - 0x274], ecx
test ecx, ecx
je 0x1005c1da
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x1005c1dc
xor ecx, ecx
xchg dword [ebp - 0x25c], eax
mov dword [0x1022e5d0], ecx
mov eax, dword [0x1022e5d4]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [0x1022e5d0]
push 1
mov ecx, eax
call fcn.1005b900
or edi, 0xffffffff
test eax, eax
jne 0x1005c21f
mov ecx, dword [ebp - 0x260]
push 0xd
push str.net_init_fail
call fcn.1000cf00
jmp 0x1005cdfd
lea eax, [ebp - 0x290]
push eax
call fcn.1004d070
add esp, 4
mov ecx, dword [eax]
add esi, 0xfffffff0
mov byte [ebp - 4], 2
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x1005c28f
cmp dword [esi + 0xc], 0
jl 0x1005c280
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1005c280
push edx
call fcn.100121a0
add esp, 4
mov dword [ebp - 0x25c], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1005c275
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x25c]
add eax, 0x10
mov dword [ebp - 0x264], eax
jmp 0x1005c28f
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x264]
call fcn.1000f6e0
mov edx, dword [ebp - 0x290]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005c2b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x268]
push 1
push eax
call fcn.1016f450
add esp, 8
push 6
push str.Basic_
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 3
call fcn.1001bd10
mov eax, dword [ebp - 0x268]
lea ecx, [ebp - 0x264]
push dword [eax - 0xc]
push eax
call fcn.1001bd10
push 1
push 0x101d3558
lea ecx, [ebp - 0x264]
call fcn.1001bd10
mov esi, dword [ebp - 0x264]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1005c3c6
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov dword [ebp - 0x25c], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1005c3c6
push dword [ebp - 0x25c]
lea eax, [ebp - 0x258]
push eax
call fcn.1005e600
add esp, 8
push 0xa
push str.temp_fail_
push 0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.1005e420
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x27c], 3
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x240], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x240]
push eax
movq qword [ebp - 0x230], xmm0
call fcn.1005be50
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
call fcn.10007310
jmp 0x1005cddc
call fcn.1000ed90
mov ecx, eax
test ecx, ecx
je 0x1005ce5b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x28c], eax
mov eax, 0x101d1840
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x28c]
test eax, 0xffff0000
jne 0x1005c406
movzx eax, ax
push eax
call fcn.1000f350
jmp 0x1005c412
push 0
push 0x101d1840
call fcn.1000f6e0
lea eax, [ebp - 0x28c]
mov byte [ebp - 4], 6
push eax
push dword [ebp - 0x298]
lea eax, [ebp - 0x270]
push eax
call fcn.1004c420
add esp, 0xc
mov edx, dword [ebp - 0x28c]
mov eax, edi
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005c453
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esi - 0x10]
lea eax, [esi - 0x10]
mov byte [ebp - 4], 9
mov dword [ebp - 0x274], eax
test ecx, ecx
je 0x1005c474
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, eax
test ecx, ecx
jne 0x1005c48c
call fcn.1000ed90
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
call eax
mov ecx, eax
test ecx, ecx
je 0x1005ce65
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esi - 0xc]
mov dword [ebp - 0x27c], 5
mov dword [ebp - 0x294], ecx
lea edi, [eax + 0x10]
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x290], edi
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x25c], eax
lea edx, [ecx + eax]
test edx, edx
js 0x1005ce6f
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x1005c4f2
push edx
lea ecx, [ebp - 0x290]
call fcn.1000f500
mov edi, dword [ebp - 0x290]
mov edx, dword [ebp - 0x294]
lea eax, [edx + edx]
push eax
push esi
push eax
push edi
call fcn.1000e380
mov eax, dword [ebp - 0x25c]
add eax, eax
push eax
push dword [ebp - 0x284]
push eax
mov eax, dword [ebp - 0x294]
lea eax, [edi + eax*2]
push eax
call fcn.1000e380
mov eax, dword [ebp - 0x294]
add esp, 0x20
add eax, dword [ebp - 0x25c]
cmp eax, dword [edi - 8]
jg 0x1005ce6f
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
lea edx, [edi - 0x10]
lea eax, [esi - 0x10]
mov dword [ebp - 0x25c], edx
cmp edx, eax
je 0x1005c5bf
mov esi, dword [ebp - 0x274]
cmp dword [esi + 0xc], ecx
jl 0x1005c5a4
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1005c5a4
push edx
call fcn.100121a0
or edi, 0xffffffff
mov dword [ebp - 0x274], eax
add esp, 4
lea edx, [esi + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1005c593
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x274]
mov edx, dword [ebp - 0x25c]
lea esi, [eax + 0x10]
mov dword [ebp - 0x264], esi
jmp 0x1005c5c2
push dword [edi - 0xc]
lea ecx, [ebp - 0x264]
push edi
call fcn.1000f6e0
mov esi, dword [ebp - 0x264]
mov edx, dword [ebp - 0x25c]
or edi, 0xffffffff
mov dword [ebp - 0x27c], 1
mov eax, edi
mov byte [ebp - 4], 8
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005c5e4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1005c6a5
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov dword [ebp - 0x274], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1005c6a5
push dword [ebp - 0x274]
lea eax, [ebp - 0x258]
push eax
call fcn.1005e600
add esp, 8
push 0xc
push str.delete_fail_
push 0
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.1005e420
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x27c], 9
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x240], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x240]
push eax
movq qword [ebp - 0x230], xmm0
call fcn.1005be50
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
call fcn.10007310
jmp 0x1005cdbb
call fcn.1000ed90
mov ecx, eax
test ecx, ecx
je 0x1005ce79
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x26c], eax
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x20
mov dword [ebp - 0x274], eax
call fcn.10179990
add esp, 4
mov dword [ebp - 0x284], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x1005c6f5
mov ecx, eax
call fcn.10035e20
jmp 0x1005c6f7
xor eax, eax
push dword [ebp - 0x2a0]
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 0xb
push eax
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
call fcn.10035c60
push dword [ebp - 0x278]
mov ecx, dword [ebp - 0x288]
lea eax, [ebp - 0x264]
push dword [ebp + 0x18]
mov byte [ebp - 4], 0xd
push eax
mov eax, dword [ebp - 0x298]
mov dword [ebp - 0x25c], 0
push dword [eax]
call fcn.100369c0
test eax, eax
lea ecx, [ebp - 0x26c]
mov eax, dword [ebp - 0x288]
je 0x1005c771
mov dword [ebp - 0x25c], 1
add eax, 0x14
jmp 0x1005c774
add eax, 0x1c
push eax
call fcn.1002c110
mov ecx, dword [ebp - 0x284]
mov byte [ebp - 4], 0xb
test ecx, ecx
je 0x1005c7a9
mov eax, edi
lock xadd dword [ecx + 4], eax
jne 0x1005c7a9
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x284]
mov eax, edi
lock xadd dword [ecx + 8], eax
jne 0x1005c7a9
mov eax, dword [ecx]
call dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x274]
cmp dword [ebp - 0x25c], 0
jne 0x1005c906
cmp eax, dword [ebp + 0x18]
jb 0x1005c8da
call fcn.100a97a0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1005c8ce
push 0x10
push str.DownloadFile.cpp
lea ecx, [ebp - 0x240]
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], al
call fcn.1000cf00
push 3
push 0x101d1fdc
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], 0
call fcn.1000cf00
mov byte [ebp - 4], 0xf
call fcn.100a97a0
mov dword [ebp - 0x278], eax
lea ecx, [ebp - 0x338]
push 0x78
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.10007f90
mov edi, eax
push str.error_DownloadFile__
push edi
mov byte [ebp - 4], 0x10
call fcn.1000fad0
test esi, esi
mov ecx, 0x101d2100
cmovne ecx, esi
push ecx
push edi
call fcn.1000fad0
push str._:_timeout
push edi
call fcn.1000fad0
mov ecx, dword [ebp - 0x278]
add esp, 0x18
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x338]
call fcn.10008e90
lea ecx, [ebp - 0x258]
call fcn.10007310
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0xb
call fcn.10007310
or edi, 0xffffffff
push 0xc
push str.timeout_fail
jmp 0x1005cd8f
mov edi, dword [ebp - 0x26c]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005c8e5
sub ecx, edx
push ecx
mov ecx, dword [ebp - 0x260]
push edi
call fcn.1000cf00
lea edx, [edi - 0x10]
or edi, 0xffffffff
jmp 0x1005cda3
lea eax, [ebp - 0x20]
xorps xmm0, xmm0
push eax
push esi
movups xmmword [ebp - 0x20], xmm0
call fcn.10035200
add esp, 8
test eax, eax
jne 0x1005ca34
call fcn.100a97a0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1005ca28
push 0x10
push str.DownloadFile.cpp
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], al
call fcn.1000cf00
push 3
push 0x101d1fdc
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
call fcn.1000cf00
mov byte [ebp - 4], 0x12
call fcn.100a97a0
mov dword [ebp - 0x278], eax
lea ecx, [ebp - 0x338]
push 0x84
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.10007f90
mov edi, eax
push str.error_DownloadFile__
push edi
mov byte [ebp - 4], 0x13
call fcn.1000fad0
test esi, esi
mov ecx, 0x101d2100
cmovne ecx, esi
push ecx
push edi
call fcn.1000fad0
push str._:_calc_md5
push edi
call fcn.1000fad0
mov ecx, dword [ebp - 0x278]
add esp, 0x18
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x338]
call fcn.10008e90
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xb
call fcn.10007310
or edi, 0xffffffff
push 0xd
push str.calc_md5_fail
jmp 0x1005cd8f
push 0x208
lea eax, [ebp - 0x228]
push 0
push eax
call fcn.1018d4b0
push 0x104
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10035050
add esp, 0x18
test eax, eax
jne 0x1005cb79
call fcn.100a97a0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1005cb6d
push 0x10
push str.DownloadFile.cpp
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], al
call fcn.1000cf00
push 3
push 0x101d1fdc
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
call fcn.1000cf00
mov byte [ebp - 4], 0x15
call fcn.100a97a0
mov dword [ebp - 0x278], eax
lea ecx, [ebp - 0x338]
push 0x8b
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.10007f90
mov edi, eax
push str.error_DownloadFile__
push edi
mov byte [ebp - 4], 0x16
call fcn.1000fad0
test esi, esi
mov ecx, 0x101d2100
cmovne ecx, esi
push ecx
push edi
call fcn.1000fad0
push str._:_digest_md5
push edi
call fcn.1000fad0
mov ecx, dword [ebp - 0x278]
add esp, 0x18
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x338]
call fcn.10008e90
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xb
call fcn.10007310
or edi, 0xffffffff
push 0xf
push str.digest_md5_fail
jmp 0x1005cd8f
lea eax, [ebp - 0x228]
push eax
mov eax, dword [ebp - 0x280]
push dword [eax]
call fcn.1019694f
add esp, 8
test eax, eax
je 0x1005ccaa
call fcn.100a97a0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1005cc9e
push 0x10
push str.DownloadFile.cpp
lea ecx, [ebp - 0x258]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], al
call fcn.1000cf00
push 3
push 0x101d1fdc
lea ecx, [ebp - 0x240]
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x22c], 0xf
mov byte [ebp - 0x240], 0
call fcn.1000cf00
mov byte [ebp - 4], 0x18
call fcn.100a97a0
mov dword [ebp - 0x280], eax
lea ecx, [ebp - 0x338]
push 0x92
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.10007f90
mov edi, eax
push str.error_DownloadFile__
push edi
mov byte [ebp - 4], 0x19
call fcn.1000fad0
test esi, esi
mov ecx, 0x101d2100
cmovne ecx, esi
push ecx
push edi
call fcn.1000fad0
push str._:_invalid
push edi
call fcn.1000fad0
mov ecx, dword [ebp - 0x280]
add esp, 0x18
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x338]
call fcn.10008e90
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 0xb
call fcn.10007310
or edi, 0xffffffff
push 0x10
push str.compare_md5_fail
jmp 0x1005cd8f
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x29c]
push 0
push dword [eax]
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1005cd51
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.1005e600
add esp, 8
push 0xa
push str.copy_fail_
push 0
mov ecx, eax
mov byte [ebp - 4], 0x1a
call fcn.1005e420
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x27c], 0x11
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x240], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x240]
push eax
movq qword [ebp - 0x230], xmm0
call fcn.1005be50
lea ecx, [ebp - 0x240]
call fcn.10007310
lea ecx, [ebp - 0x258]
call fcn.10007310
jmp 0x1005cd9a
mov eax, dword [ebp - 0x29c]
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
mov ecx, str.recheck_fail
mov edx, str.succ
cmove edx, ecx
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x280], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005cd80
sub ecx, dword [ebp - 0x280]
push ecx
push edx
mov ecx, dword [ebp - 0x260]
call fcn.1000cf00
mov edx, dword [ebp - 0x26c]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005cdbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x270]
mov eax, edi
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005cddc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x268]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1005cdfd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
je 0x1005ce15
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1005ce15
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x1005ce2e
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x260]
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.101799ce
mov esp, ebp
pop ebp
ret 0x18
push 0x80004005
call fcn.10009b10
push 0x80004005
call fcn.10009b10
push 0x80004005
call fcn.10009b10
push 0x80070057
call fcn.10009b10
push 0x80004005
call fcn.10009b10
int3