Function at 0x10009940
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x1004308f
mov eax, dword fs:[0]
push eax
sub esp, 0x8ac
mov eax, dword [0x10054020]
xor eax, esp
mov dword [esp + 0x8a8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10054020]
xor eax, esp
push eax
lea eax, [esp + 0x8c0]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8d0]
mov ebp, dword [esp + 0x8d4]
mov dword [esp + 0x24], ecx
xor esi, esi
mov ecx, ebp
lea edx, [esp + 0x98]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], esi
call fcn.1000a0e0
lea edx, [esp + 0x98]
mov dword [esp + 0x8c8], esi
push edx
mov ebx, str.info
lea esi, [esp + 0x64]
call fcn.1000a380
add esp, 4
lea eax, [esp + 0x98]
push eax
mov ebx, str.data
lea esi, [esp + 0x80]
mov byte [esp + 0x8cc], 1
call fcn.1000a380
add esp, 4
mov byte [esp + 0x8c8], 2
mov eax, dword [esp + 0x64]
mov edi, 8
cmp dword [esp + 0x78], edi
jae 0x10009a04
lea eax, [esp + 0x64]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push eax
call esi
cmp dword [esp + 0x94], edi
mov ebx, eax
mov eax, dword [esp + 0x80]
jae 0x10009a26
lea eax, [esp + 0x80]
push eax
call esi
cmp ebx, 0xffffffff
je 0x10009d66
cmp eax, 0xffffffff
je 0x10009d66
test bl, 0x11
jne 0x10009d66
test al, 0x11
jne 0x10009d66
push 0x800
lea ecx, [esp + 0xba]
push 0
push ecx
mov word [esp + 0xc0], 0
call sub.MSVCR80.dll_memset
mov eax, dword [esp + 0x70]
add esp, 0xc
cmp dword [esp + 0x78], edi
jae 0x10009a7b
lea eax, [esp + 0x64]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x400
lea edx, [esp + 0xbc]
push edx
push str.false
push str.isContinue
push str.RCDownloadResume
call edi
add eax, 0xffffffff
cmp eax, 0x3fe
ja 0x10009b8c
lea edx, [esp + 0xb4]
lea eax, [esp + 0x28]
call fcn.10001ec0
mov esi, eax
mov edx, str.false
lea eax, [esp + 0x44]
mov byte [esp + 0x8c8], 3
call fcn.10001ec0
mov ecx, eax
mov eax, esi
mov byte [esp + 0x8c8], 4
call fcn.1000a430
lea ecx, [esp + 0x44]
mov bl, al
call fcn.10001f30
lea ecx, [esp + 0x28]
mov byte [esp + 0x8c8], 2
call fcn.10001f30
test bl, bl
je 0x10009b33
mov eax, dword [esp + 0x20]
mov byte [eax], 0
lea ecx, [esp + 0x7c]
call fcn.10001f30
lea ecx, [esp + 0x60]
call fcn.10001f30
lea ecx, [esp + 0x98]
call fcn.10001f30
mov al, 1
jmp 0x10009ddc
lea edx, [esp + 0xb4]
lea eax, [esp + 0x44]
call fcn.10001ec0
mov esi, eax
mov edx, str.true
lea eax, [esp + 0x28]
mov byte [esp + 0x8c8], 5
call fcn.10001ec0
mov ecx, eax
mov eax, esi
mov byte [esp + 0x8c8], 6
call fcn.1000a470
lea ecx, [esp + 0x28]
mov bl, al
call fcn.10001f30
lea ecx, [esp + 0x44]
mov byte [esp + 0x8c8], 2
call fcn.10001f30
test bl, bl
je 0x10009baf
lea ecx, [esp + 0x7c]
call fcn.10001f30
lea ecx, [esp + 0x60]
call fcn.10001f30
lea ecx, [esp + 0x98]
call fcn.10001f30
jmp 0x10009dda
mov eax, dword [esp + 0x64]
mov esi, 8
cmp dword [esp + 0x78], esi
jae 0x10009bc2
lea eax, [esp + 0x64]
push eax
push 0x400
lea ecx, [esp + 0xbc]
push ecx
push 0x10047a94
push str.fileUrl
push str.RCDownloadResume
call edi
add eax, 0xffffffff
cmp eax, 0x3fe
ja 0x10009c1a
lea edx, [esp + 0xb4]
lea eax, [esp + 0x28]
call fcn.10001ec0
mov byte [esp + 0x8c8], 7
mov ecx, ebp
mov dword [esp + 0x14], 1
call fcn.1000a470
test al, al
jne 0x10009c1a
xor bl, bl
jmp 0x10009c1c
mov bl, 1
test byte [esp + 0x14], 1
je 0x10009c2c
lea ecx, [esp + 0x28]
call fcn.10001f30
test bl, bl
jne 0x10009b8c
cmp dword [esp + 0x78], esi
mov eax, dword [esp + 0x64]
jae 0x10009c42
lea eax, [esp + 0x64]
push eax
push 0x400
lea edx, [esp + 0xbc]
push edx
push 0x10047a94
push str.totalLength
push str.RCDownloadResume
call edi
add eax, 0xffffffff
cmp eax, 0x3fe
ja 0x10009b8c
lea eax, [esp + 0xb4]
call fcn.100224d0
mov ebp, edx
mov esi, eax
or eax, ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
je 0x10009b8c
cmp dword [esp + 0x78], 8
mov eax, dword [esp + 0x64]
jae 0x10009c9e
lea eax, [esp + 0x64]
push eax
push 0x400
lea ecx, [esp + 0xbc]
push ecx
push 0x10047a94
push str.totalRead
push str.RCDownloadResume
call edi
add eax, 0xffffffff
cmp eax, 0x3fe
ja 0x10009b8c
lea eax, [esp + 0xb4]
call fcn.100224d0
mov edi, eax
mov ebx, edx
mov edx, edi
or edx, ebx
je 0x10009b8c
cmp ebx, ebp
ja 0x10009b8c
jb 0x10009cf7
cmp edi, esi
ja 0x10009b8c
mov ebp, dword [esp + 0x24]
cmp dword [ebp + 0x18], 8
lea esi, [ebp + 4]
jb 0x10009d08
mov eax, dword [esi]
jmp 0x10009d0a
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, 8
cmp dword [ebp + 0x18], eax
jb 0x10009d1d
mov esi, dword [esi]
cmp dword [esp + 0x94], eax
mov eax, dword [esp + 0x80]
jae 0x10009d34
lea eax, [esp + 0x80]
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x10009b8c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov byte [eax], 1
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
jmp 0x10009b0e
cmp dword [esp + 0x94], edi
jb 0x10009d7f
mov eax, dword [esp + 0x80]
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor esi, esi
mov ebx, 8
cmp dword [esp + 0x78], ebx
mov edi, 7
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], esi
mov word [esp + 0x80], si
jb 0x10009db4
mov ecx, dword [esp + 0x64]
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp dword [esp + 0xb0], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], esi
mov word [esp + 0x64], si
jb 0x10009dda
mov edx, dword [esp + 0x9c]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor al, al
mov ecx, dword [esp + 0x8c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x8a8]
xor ecx, esp
call fcn.1003ec9d
add esp, 0x8b8
ret 8