Function at 0x443b40
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73bf19
mov eax, dword fs:[0]
push eax
sub esp, 0x788
mov eax, dword [0x899944]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov al, byte [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x1c]
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 0x6b9], al
mov eax, dword [ebp + 0x18]
push str.downloadFileByName
mov dword [ebp - 0x6c0], ecx
push esi
lea ecx, [ebp - 0x794]
mov dword [ebp - 0x6c8], ebx
mov dword [ebp - 0x6d0], edx
mov dword [ebp - 0x6cc], eax
call fcn.00474ef0
xor edi, edi
cmp byte [ebp - 0x6b9], 0
mov dword [ebp - 4], edi
jne 0x443bd0
movzx ecx, byte [ebx + 0xbc1]
push ecx
push str.PreserveDate
mov ecx, esi
call fcn.00474a80
call sub.KERNEL32.dll_GetTickCount
cmp byte [ebp - 0x6b9], 0
mov dl, byte [ebx + 0x1aac]
mov dword [ebp - 0x714], eax
mov dword [ebp - 0x6d4], edi
mov byte [ebp - 0x6c1], 0
mov byte [ebp - 0x6bb], 0
mov dword [ebp - 0x6f0], edi
mov dword [ebp - 0x6ec], edi
mov dword [ebp - 0x6dc], edi
mov dword [ebp - 0x6d8], edi
mov byte [ebp - 0x6ba], dl
mov byte [ebx + 0x1aac], 0
jne 0x443c82
mov eax, dword [ebp - 0x6c0]
push eax
push str.fromFilePath
mov ecx, esi
call fcn.00474840
mov ecx, dword [ebp - 0x6d0]
push ecx
push str.toFilePath
mov ecx, esi
call fcn.00474840
cmp byte [esi + 0xad], 0
je 0x443c82
mov ecx, dword [ebp - 0x6c0]
call fcn.00405670
push eax
push str.fromFilePathUtf8_QP
mov ecx, esi
call fcn.004742a0
mov ecx, dword [ebp - 0x6d0]
call fcn.00405670
push eax
push str.toFilePathUtf8_QP
mov ecx, esi
call fcn.004742a0
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x708], edi
mov dword [ebp - 0x704], edi
mov dword [ebp - 0x6e4], edi
mov dword [ebp - 0x6e0], edi
mov byte [ebp - 0x6b5], 0
mov byte [ebp - 0x700], 1
mov byte [ebp - 0x6fc], 0
call fcn.00403e00
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 1
call fcn.00403e00
push str.readOnly
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 2
call fcn.00406b60
lea ecx, [ebp - 0x59c]
call fcn.00403e00
push str.openExisting
lea ecx, [ebp - 0x59c]
mov byte [ebp - 4], 3
call fcn.00406b60
lea ecx, [ebp - 0x6b4]
call fcn.00403e00
mov byte [ebp - 4], 4
call sub.KERNEL32.dll_GetTickCount
mov edx, dword [esi]
push 1
mov dword [ebp - 0x6e8], eax
mov eax, dword [edx + 0x24]
push str.OpenRemoteFile
mov ecx, esi
call eax
lea ecx, [ebp - 0x36c]
mov dword [ebp - 0x718], edi
call fcn.00403e00
lea ecx, [ebp - 0x36c]
push ecx
mov ecx, dword [ebp - 0x6cc]
lea edx, [ebp - 0x718]
push edx
lea eax, [ebp - 0x6b4]
push eax
push ecx
push esi
lea edx, [ebp - 0x128]
push edx
mov edx, dword [ebp - 0x6c0]
lea eax, [ebp - 0x59c]
push eax
mov eax, dword [ebp - 0x6b9]
lea ecx, [ebp - 0x484]
push ecx
push edx
push eax
mov ecx, ebx
mov byte [ebp - 4], 5
call fcn.004418e0
cmp byte [ebp - 0x6b9], 0
mov byte [ebp - 0x6b5], al
jne 0x443da4
mov ecx, dword [ebp - 0x6e8]
push ecx
push str.timeToOpenMs
mov ecx, esi
call fcn.00474590
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
cmp byte [ebp - 0x6b5], 0
je 0x44469a
mov edi, dword [ebp - 0x6c8]
cmp byte [edi + 0xbba], 0
jne 0x443e48
call sub.KERNEL32.dll_GetTickCount
mov edx, dword [esi]
push 1
mov ebx, eax
mov eax, dword [edx + 0x24]
push str.FetchRemoteFileAttributes
mov ecx, esi
call eax
cmp byte [edi + 0xbc1], 0
je 0x443df0
mov byte [ebp - 0x700], 0
mov ecx, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x700]
push esi
push ecx
lea edx, [ebp - 0x6c1]
push edx
mov edx, dword [ebp - 0x6b9]
push eax
push 0
push 1
lea ecx, [ebp - 0x36c]
push ecx
push edx
mov ecx, edi
call fcn.0043cab0
cmp byte [ebp - 0x6b9], 0
mov edi, eax
mov dword [ebp - 0x6d4], edi
jne 0x443e3d
push ebx
push str.timeToFetchAttrMs
mov ecx, esi
call fcn.00474590
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
mov ecx, esi
call edx
jmp 0x443e4e
mov edi, dword [ebp - 0x6d4]
mov al, byte [ebp - 0x6ba]
mov ebx, dword [ebp - 0x6c8]
mov byte [ebx + 0x1aac], al
test edi, edi
jne 0x443e86
cmp byte [ebx + 0xbba], 0
jne 0x443ed0
cmp byte [ebp - 0x6b9], 0
jne 0x443eea
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Remote_file_size_is_unknown_because_attributes_could_not_be_retrieved.
mov ecx, esi
call eax
jmp 0x443ed9
cmp byte [edi + 0xd], 0
je 0x443f9c
cmp byte [edi + 0xe], 1
jne 0x443f64
cmp byte [ebp - 0x6b9], 0
jne 0x443eb7
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
push ecx
push edx
push str.remoteFileSize
mov ecx, esi
call fcn.00474b60
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
mov byte [ebp - 0x6bb], 1
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x6ec], ecx
cmp byte [ebp - 0x6b9], 0
jne 0x443eea
movzx ecx, byte [ebp + 0x14]
push ecx
push str.resumeFlag
mov ecx, esi
call fcn.00474a80
cmp byte [ebp + 0x14], 0
je 0x444064
mov edi, dword [ebp - 0x6d0]
push esi
mov ecx, edi
call fcn.00405670
push eax
call fcn.004ab2f0
add esp, 8
mov dword [ebp - 0x6c0], eax
test eax, eax
jne 0x443fbc
push eax
mov ecx, edi
call fcn.00405670
push eax
call fcn.00427ed0
add esp, 8
test al, al
jne 0x44414f
push esi
mov ecx, edi
call fcn.00405670
push eax
call fcn.004ab1c0
add esp, 8
mov dword [ebp - 0x6c0], eax
test eax, eax
jne 0x444178
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_create_output_file_on_local_filesystem.
mov ecx, esi
call eax
jmp 0x44414f
cmp byte [ebp - 0x6b9], 0
mov byte [edi + 0xd], 0
mov byte [ebp - 0x6bb], 0
jne 0x443eea
cmp byte [esi + 0xad], 0
je 0x443ed9
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.The_SFTP_server_responded_with_invalid_file_information.
mov ecx, esi
call eax
jmp 0x443ed9
cmp byte [ebp - 0x6b9], 0
jne 0x443eea
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.SFTP_server_did_not_provide_remote_file_size.
mov ecx, esi
call eax
jmp 0x443ed9
push esi
mov ecx, eax
call fcn.004aafa0
mov edi, edx
mov ebx, eax
mov dword [ebp - 0x708], ebx
mov dword [ebp - 0x704], edi
test edi, edi
jg 0x443fec
jl 0x443fde
test ebx, ebx
jae 0x443fec
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_get_local_file_size_for_resuming_download.
mov ecx, esi
call eax
cmp byte [ebp - 0x6b9], 0
jne 0x444003
push edi
push ebx
push str.startingLocalFileSize
mov ecx, esi
call fcn.00474b60
cmp edi, dword [ebp - 0x6ec]
jl 0x444178
jg 0x44401d
cmp ebx, dword [ebp - 0x6f0]
jb 0x444178
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Local_file_size_is_already_equal_or_greater_than_remote_file_size
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x6cc]
mov eax, dword [ebp - 0x6b9]
push esi
push ecx
mov ecx, dword [ebp - 0x6c8]
lea edx, [ebp - 0x128]
push edx
push eax
mov byte [ebp - 0x6b5], 1
call fcn.00438580
mov dword [ebp - 0x6dc], ebx
mov dword [ebp - 0x6d8], edi
jmp 0x444570
cmp byte [ebp - 0x6b9], 0
je 0x44411a
cmp byte [ebx + 0x14d0], 0
jne 0x44411a
lea ecx, [ebp - 0x254]
call fcn.00420de0
mov ebx, dword [ebp - 0x6d0]
lea ecx, [ebp - 0x254]
push ecx
mov ecx, ebx
mov byte [ebp - 4], 6
call fcn.00405670
push eax
call fcn.004ab1c0
mov edi, eax
add esp, 8
mov dword [ebp - 0x6c0], edi
test edi, edi
jne 0x444109
lea ecx, [ebp - 0x19c]
call fcn.0040ac30
push esi
lea edx, [ebp - 0x19c]
push edx
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.00405670
push eax
call fcn.0048b970
add esp, 0xc
test al, al
je 0x4440fa
push esi
mov ecx, ebx
call fcn.00405670
push eax
call fcn.004ab1c0
add esp, 8
mov edi, eax
mov dword [ebp - 0x6c0], eax
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 6
call fcn.0040acf0
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 5
call fcn.00420e00
jmp 0x444137
mov ecx, dword [ebp - 0x6d0]
push esi
call fcn.00405670
push eax
call fcn.004ab1c0
mov edi, eax
add esp, 8
mov dword [ebp - 0x6c0], edi
test edi, edi
jne 0x444178
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_create_output_file_on_local_filesystem.
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x6c8]
mov eax, dword [ebp - 0x6cc]
mov edx, dword [ebp - 0x6b9]
push esi
push eax
lea ecx, [ebp - 0x128]
push ecx
push edx
mov ecx, ebx
call fcn.00438580
mov byte [ebp - 0x6b5], 0
jmp 0x44459c
cmp byte [ebp - 0x6bb], 0
mov byte [ebp - 0x6b5], 1
je 0x4441d1
mov edi, dword [ebp - 0x6f0]
sub edi, dword [ebp - 0x708]
mov ebx, dword [ebp - 0x6ec]
sbb ebx, dword [ebp - 0x704]
cmp byte [ebp - 0x6b9], 0
jne 0x4441b7
push ebx
push edi
push str.numBytesToDownload
mov ecx, esi
call fcn.00474b60
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6ec]
mov dword [ebp - 0x6dc], eax
mov dword [ebp - 0x6d8], ecx
jmp 0x4441f2
xor ebx, ebx
xor edi, edi
mov byte [ebp - 0x6fc], 1
cmp byte [ebp - 0x6b9], bl
jne 0x4441f2
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Reading_until_end_of_file..
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x6cc]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x44421a
cmp byte [ebp - 0x6b9], 0
jne 0x44421a
push esi
push ebx
push edi
call fcn.004882b0
mov edx, dword [ebp - 0x6c0]
mov byte [edx + 0x28], 1
mov edx, dword [ebp - 0x6cc]
xor eax, eax
cmp byte [ebp - 0x6bb], al
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6e0], eax
lea ecx, [ebp - 0x6e4]
push ecx
mov ecx, dword [ebp - 0x6fc]
push esi
push edx
sete al
mov byte [ebp - 0x6e8], al
mov eax, dword [ebp - 0x6c0]
mov edx, dword [ebp - 0x6e8]
push eax
mov eax, dword [ebp - 0x704]
push ecx
mov ecx, dword [ebp - 0x708]
push edx
push ebx
push edi
push eax
mov eax, dword [ebp - 0x6b9]
push ecx
mov ecx, dword [ebp - 0x6c8]
lea edx, [ebp - 0x128]
push edx
push eax
call fcn.004416a0
cmp byte [ebp - 0x6bb], 0
mov byte [ebp - 0x6b5], al
je 0x4442e1
cmp edi, dword [ebp - 0x6e4]
jne 0x4442a3
cmp ebx, dword [ebp - 0x6e0]
je 0x4442e1
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Num_bytes_sent_to_output_was_not_equal_to_the_expected_number.
mov ecx, esi
call eax
push ebx
push edi
push str.numBytesExpected
mov ecx, esi
call fcn.00474b60
mov ecx, dword [ebp - 0x6e0]
mov edx, dword [ebp - 0x6e4]
push ecx
push edx
push str.numBytesSentToOutput
mov ecx, esi
call fcn.00474b60
xor al, al
mov byte [ebp - 0x6b5], al
cmp dword [ebp - 0x6d4], 0
je 0x444518
mov ecx, dword [ebp - 0x6c8]
cmp byte [ecx + 0xbc1], 0
je 0x444518
test al, al
je 0x444518
lea ecx, [ebp - 0x788]
call fcn.00424940
lea ecx, [ebp - 0x6f8]
call fcn.00424940
lea ecx, [ebp - 0x710]
call fcn.00424940
lea ecx, [ebp - 0x778]
call fcn.00424860
lea ecx, [ebp - 0x758]
mov byte [ebp - 4], 8
call fcn.00424860
lea ecx, [ebp - 0x738]
mov byte [ebp - 4], 9
call fcn.00424860
mov edi, dword [ebp - 0x6d4]
lea edx, [ebp - 0x738]
push edx
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.004a4c40
mov bl, al
lea eax, [ebp - 0x778]
push eax
mov ecx, edi
call fcn.004a4ce0
lea ecx, [ebp - 0x758]
push ecx
mov ecx, edi
mov byte [ebp - 0x6bc], al
call fcn.004a4d80
cmp byte [ebp - 0x6b9], 0
mov byte [ebp - 0x6ba], al
jne 0x444429
movzx edx, bl
push edx
push str.hasLastModifiedDate
mov ecx, esi
call fcn.00474a80
movzx eax, byte [ebp - 0x6bc]
push eax
push str.hasCreateDate
mov ecx, esi
call fcn.00474a80
movzx ecx, byte [ebp - 0x6ba]
push ecx
push str.hasLastAccessDate
mov ecx, esi
call fcn.00474a80
test bl, bl
je 0x4443f1
lea edx, [ebp - 0x738]
push edx
push str.lastModified
mov ecx, esi
call fcn.00474c40
cmp byte [ebp - 0x6bc], 0
je 0x44440d
lea eax, [ebp - 0x778]
push eax
push str.createDate
mov ecx, esi
call fcn.00474c40
cmp byte [ebp - 0x6ba], 0
je 0x444429
lea ecx, [ebp - 0x758]
push ecx
push str.lastAccess
mov ecx, esi
call fcn.00474c40
cmp byte [ebp - 0x6bc], 0
jne 0x444448
test bl, bl
je 0x444448
lea edx, [ebp - 0x738]
push edx
lea ecx, [ebp - 0x778]
call fcn.00437a10
cmp byte [ebp - 0x6ba], 0
jne 0x444467
test bl, bl
je 0x44446b
lea eax, [ebp - 0x738]
push eax
lea ecx, [ebp - 0x758]
call fcn.00437a10
test bl, bl
jne 0x44447d
cmp byte [ebp - 0x6bc], 0
jne 0x44447d
cmp byte [ebp - 0x6ba], 0
je 0x4444eb
lea ecx, [ebp - 0x710]
push ecx
lea ecx, [ebp - 0x738]
call fcn.00424c80
lea edx, [ebp - 0x788]
push edx
lea ecx, [ebp - 0x778]
call fcn.00424c80
lea eax, [ebp - 0x6f8]
push eax
lea ecx, [ebp - 0x758]
call fcn.00424c80
cmp byte [ebp - 0x6b9], 0
jne 0x4444ca
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Setting_file_times...
mov ecx, esi
call eax
push esi
lea ecx, [ebp - 0x710]
push ecx
mov ecx, dword [ebp - 0x6c0]
lea edx, [ebp - 0x6f8]
push edx
lea eax, [ebp - 0x788]
push eax
call fcn.004aabc0
lea ecx, [ebp - 0x738]
mov byte [ebp - 4], 9
call fcn.00424820
lea ecx, [ebp - 0x758]
mov byte [ebp - 4], 8
call fcn.00424820
lea ecx, [ebp - 0x778]
mov byte [ebp - 4], 5
call fcn.00424820
mov ecx, dword [ebp - 0x6c8]
mov ecx, dword [ecx + 0x1cf0]
test ecx, ecx
je 0x444570
push esi
call fcn.00497cf0
test al, al
je 0x444570
call sub.KERNEL32.dll_GetTickCount
mov edx, dword [ebp - 0x6cc]
mov ecx, dword [ebp - 0x6b9]
push esi
mov edi, eax
push edx
lea eax, [ebp - 0x128]
push eax
push ecx
mov ecx, dword [ebp - 0x6c8]
call fcn.00438580
cmp byte [ebp - 0x6b9], 0
jne 0x444570
push edi
push str.timeToCloseHandleMs
mov ecx, esi
call fcn.00474590
mov edi, dword [ebp - 0x6c0]
test edi, edi
je 0x44459c
cmp byte [ebp - 0x6b9], 0
jne 0x444591
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Closing_local_output_file...
mov ecx, esi
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
push 1
mov ecx, edi
call eax
cmp byte [ebp - 0x6bb], 0
je 0x444663
cmp byte [ebp - 0x6b5], 0
je 0x444663
cmp byte [ebp - 0x6b9], 0
jne 0x4445cd
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Verifying_local_output_file_size...
mov ecx, esi
call eax
mov edx, dword [ebp - 0x6c8]
mov eax, dword [ebp - 0x6d0]
lea ecx, [ebp - 0x6b5]
push ecx
add edx, 0x904
push edx
push eax
call fcn.00429320
add esp, 0xc
cmp byte [ebp - 0x6b9], 0
mov edi, eax
mov ebx, edx
jne 0x444625
push ebx
push edi
push str.localFileSizeAfterDownload
mov ecx, esi
call fcn.00474b60
mov ecx, dword [ebp - 0x6d8]
mov edx, dword [ebp - 0x6dc]
push ecx
push edx
push str.expectedFileSizeAfterDownload
mov ecx, esi
call fcn.00474b60
cmp edi, dword [ebp - 0x6dc]
jne 0x444635
cmp ebx, dword [ebp - 0x6d8]
je 0x44464c
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Local_file_size_not_equal_to_the_expected_size_
mov ecx, esi
call edx
mov byte [ebp - 0x6b5], 0
jmp 0x444663
cmp byte [ebp - 0x6b9], 0
jne 0x444663
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.Good._The_local_file_is_the_expected_size.
mov ecx, esi
call edx
cmp byte [ebp - 0x6c1], 0
je 0x44467e
mov ecx, dword [ebp - 0x6d4]
test ecx, ecx
je 0x44467e
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
cmp byte [ebp - 0x6b5], 0
je 0x44469a
mov eax, dword [ebp - 0x6cc]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x44469a
push esi
call fcn.004885d0
cmp byte [ebp - 0x6b9], 0
jne 0x4446b6
mov ecx, dword [ebp - 0x714]
push ecx
push str.totalTimeMs
mov ecx, esi
call fcn.00474590
mov bl, byte [ebp - 0x6b5]
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 4
call fcn.00403e90
lea ecx, [ebp - 0x6b4]
mov byte [ebp - 4], 3
call fcn.00403e90
lea ecx, [ebp - 0x59c]
mov byte [ebp - 4], 2
call fcn.00403e90
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 1
call fcn.00403e90
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0
call fcn.00403e90
lea ecx, [ebp - 0x794]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0070bb4c
mov esp, ebp
pop ebp
ret 0x18