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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x744c6a
mov eax, dword fs:[0]
push eax
sub esp, 0x744
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 eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x1c]
mov edi, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x6c4], eax
mov eax, dword [ebp + 0x20]
push str.fetchDirListing2
mov dword [ebp - 0x6bc], ecx
push esi
lea ecx, [ebp - 0x6e4]
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x6c8], eax
call fcn.00474ef0
lea ecx, [edi + 0x508]
mov dword [ebp - 4], 0
mov byte [edi + 0x7c1], 0
call fcn.0040a400
lea ecx, [edi + 0x4d8]
call fcn.00476a00
lea ecx, [edi + 0x4ec]
call fcn.0042a7a0
cmp byte [edi + 0x23], 0
jne 0x4c59c7
push ebx
push esi
push 1
push 0
push 1
mov ecx, edi
call fcn.004bff30
test al, al
je 0x4c5a6c
mov edx, dword [ebp + 0x14]
lea ecx, [ebp - 0x6e8]
push ecx
push esi
push ebx
push edx
mov ecx, edi
mov byte [ebp - 0x6e8], 0
call fcn.004beb60
test al, al
je 0x4c5a6c
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [ebp - 0x6c8]
mov dword [ebp - 0x70c], eax
call fcn.0040a400
lea ecx, [ebp - 0x6d4]
call fcn.00449010
mov edx, dword [ebp - 0x6d8]
push esi
push ebx
lea eax, [ebp - 0x6b4]
push eax
mov eax, dword [ebp - 0x6e8]
lea ecx, [ebp - 0x6d4]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
push eax
push ecx
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.004c43d0
test al, al
jne 0x4c5a85
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_setup_data_connection_for_dir_listing.
mov ecx, esi
call eax
cmp byte [ebx + 0x11], 0
jne 0x4c5a5d
mov ecx, dword [ebp + 0x14]
push esi
push ebx
push ecx
mov ecx, edi
call fcn.004bdfe0
lea ecx, [ebp - 0x6d4]
mov byte [ebp - 4], 0
call fcn.00449330
lea ecx, [ebp - 0x6e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
xor al, al
jmp 0x4c657d
mov edx, dword [ebp - 0x6c4]
push edx
lea ecx, [ebp - 0x16c]
call fcn.0040ac70
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x6bc]
mov edx, dword [ebp - 0x6c4]
push esi
push ebx
push eax
push ecx
push edx
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.004c0940
lea ecx, [ebp - 0x16c]
test al, al
jne 0x4c5acb
mov byte [ebp - 4], 1
call fcn.0040acf0
jmp 0x4c5a5d
push str.MLSD
mov byte [ebp - 0x6b3], 0
call fcn.0040aa00
test al, al
je 0x4c5ae7
mov byte [ebp - 0x6b3], 1
push str.NLST
lea ecx, [ebp - 0x16c]
mov byte [ebp - 0x6b5], 0
call fcn.0040aa00
test al, al
je 0x4c5b09
mov byte [ebp - 0x6b5], 1
lea ecx, [ebp - 0xf8]
mov byte [ebp - 0x6b4], 0
mov byte [ebp - 0x6b2], 0
mov byte [ebp - 0x6b1], 0
mov dword [ebp - 0x6c4], 0
call fcn.0040ac30
push esi
push ebx
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x6c4]
push ecx
lea edx, [ebp - 0x6b1]
push edx
lea eax, [ebp - 0x6b2]
push eax
mov eax, dword [ebp - 0x6e8]
lea ecx, [ebp - 0x6b4]
push ecx
lea edx, [ebp - 0x6e9]
push edx
mov edx, dword [ebp - 0x6d8]
push 1
push eax
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x6d4]
push ecx
push edx
push 3
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.004c0710
test al, al
jne 0x4c5be8
cmp dword [ebp - 0x6c4], 0x226
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8]
jne 0x4c5c7a
mov byte [edi + 0x7c1], 1
call fcn.0040acf0
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], 1
call fcn.0040acf0
lea ecx, [ebp - 0x6d4]
mov byte [ebp - 4], 0
call fcn.00449330
lea ecx, [ebp - 0x6e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
mov al, 1
jmp 0x4c657d
mov eax, dword [ebp - 0x6cc]
test eax, eax
je 0x4c5c70
add eax, 0xffffff84
mov dword [ebp - 0x6c0], eax
je 0x4c5c70
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x6bc], 0
call fcn.0040ac30
cmp byte [ebp - 0x6b2], 0
mov byte [ebp - 4], 4
jne 0x4c5c93
cmp byte [ebp - 0x6b1], 0
jne 0x4c5c93
mov eax, dword [ebp + 0x14]
push esi
push ebx
lea ecx, [ebp - 0x84]
push ecx
lea edx, [ebp - 0x6bc]
push edx
push eax
mov ecx, edi
call fcn.004b80e0
test al, al
jne 0x4c5cb1
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x594]
push ecx
push edx
push 0
mov ecx, dword [ebp - 0x6c0]
push 1
call fcn.005481b0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 3
call fcn.0040acf0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8]
call fcn.0040acf0
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], 1
call fcn.0040acf0
jmp 0x4c5a5d
mov eax, dword [ebp - 0x6c4]
lea ecx, [ebp - 0xf8]
push ecx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x6bc], eax
call fcn.0040c200
mov eax, dword [ebp - 0x6bc]
lea edx, [eax - 0x64]
cmp edx, 0x63
jbe 0x4c5cd8
cmp eax, 0x226
je 0x4c5cdf
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x594]
push eax
push ecx
push 1
jmp 0x4c5c54
cmp eax, 0x226
jne 0x4c5d1e
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x594]
mov ecx, dword [ebp - 0x6c0]
push edx
push eax
push 1
push 1
call fcn.005481b0
lea ecx, [ebp - 0x84]
mov byte [edi + 0x7c1], 1
mov byte [ebp - 4], 3
call fcn.0040acf0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8]
jmp 0x4c5bac
cmp eax, 0xc8
jl 0x4c5daf
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x594]
push ecx
mov ecx, dword [ebp - 0x6c0]
push edx
push 1
push 1
call fcn.005481b0
lea ecx, [ebp - 0x84]
mov byte [edi + 0x7c1], 1
mov byte [ebp - 4], 3
call fcn.0040acf0
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 2
call fcn.0040acf0
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], 1
call fcn.0040acf0
lea ecx, [ebp - 0x6d4]
mov byte [ebp - 4], 0
call fcn.00449330
lea ecx, [ebp - 0x6e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
cmp dword [ebp - 0x6bc], 0x12c
jge 0x4c5a7e
mov al, 1
jmp 0x4c657d
cmp byte [ebp - 0x6e8], 0
je 0x4c5e0c
mov eax, dword [ebp - 0x6c0]
mov ecx, dword [ebp - 0x6d8]
mov edx, dword [ebp + 0x14]
push esi
push ebx
push eax
push ecx
push 3
push edx
mov ecx, edi
call fcn.004b79a0
test al, al
jne 0x4c5e0c
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x590]
mov esi, dword [ebp - 0x6c0]
push eax
push ecx
push 0
push 1
mov ecx, esi
call fcn.005481b0
lea ecx, [esi + 0x7c]
call fcn.00449240
mov dword [ebp - 0x6cc], 0
jmp 0x4c5c61
lea ecx, [ebp - 0x2f8]
call fcn.00403e00
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 5
call fcn.00403e00
push 0x76789c
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 6
call fcn.00406b60
cmp byte [edi + 0x4d5], 0
je 0x4c5e7a
lea ecx, [edi + 0xb04]
push str._r_n_DirListingCharset:
call fcn.0040cbf0
lea ecx, [edi + 0x7c8]
call fcn.00409d90
push eax
lea ecx, [edi + 0xb04]
call fcn.0040cbf0
push 0x7b455c
lea ecx, [edi + 0xb04]
call fcn.0040cbf0
xor eax, eax
lea ecx, [ebp - 0x708]
mov byte [ebp - 0x6b6], 0
mov dword [ebp - 0x710], eax
mov dword [ebp - 0x718], eax
mov dword [ebp - 0x714], eax
call fcn.0040fe80
lea edx, [ebp - 0x708]
push edx
lea ecx, [ebp - 0x6b0]
mov byte [ebp - 4], 7
call fcn.004aa410
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
push 1
push str.readFtpDataChannel
mov ecx, esi
mov byte [ebp - 4], 8
call edx
push esi
lea eax, [ebp - 0x718]
push eax
mov eax, dword [edi + 0x594]
lea ecx, [ebp - 0x710]
push ecx
lea edx, [ebp - 0x6b6]
push edx
push ebx
push 0
push eax
push 0x1000
lea ecx, [ebp - 0x6b0]
push ecx
mov ecx, dword [ebp - 0x6c0]
call fcn.00546260
cmp byte [ebp + 0x14], 0
je 0x4c5f10
cmp byte [esi + 0xad], 0
je 0x4c5f28
lea ecx, [ebp - 0x708]
call fcn.004033b0
push eax
push str.dirListSize
mov ecx, esi
call fcn.00474a80
mov edx, dword [esi]
mov eax, dword [edx + 0x28]
mov ecx, esi
call eax
cmp byte [ebp - 0x6b6], 0
je 0x4c5f89
push str.LIST_output_failed.
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
lea ecx, [ebp - 0x6b0]
mov byte [ebp - 4], 7
call fcn.004aa4b0
lea ecx, [ebp - 0x708]
mov byte [ebp - 4], 6
call fcn.004105c0
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 5
call fcn.00403e90
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 4
call fcn.00403e90
jmp 0x4c5c61
cmp byte [ebx + 0x11], 0
je 0x4c5f96
push str.LIST_aborted_by_application.
jmp 0x4c5f3f
cmp byte [ebx + 0x12], 0
je 0x4c5faa
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.LIST_read_fatal_error
mov ecx, esi
call eax
cmp byte [ebx + 0x10], 0
je 0x4c5fbe
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.LIST_read_timeout
mov ecx, esi
call eax
cmp byte [edi + 0x4d5], 0
je 0x4c6054
lea ecx, [edi + 0xb04]
push str.listing_size_
call fcn.0040cbf0
lea ecx, [ebp - 0x708]
call fcn.004033b0
push eax
lea ecx, [edi + 0xb04]
call fcn.0040f770
push 0x76785c
lea ecx, [edi + 0xb04]
call fcn.0040cbf0
lea ecx, [ebp - 0x708]
call fcn.004033b0
test eax, eax
je 0x4c6054
lea ecx, [ebp - 0x1e0]
call fcn.0040ac30
lea ecx, [ebp - 0x1e0]
push ecx
lea ecx, [ebp - 0x708]
mov byte [ebp - 4], 9
call fcn.004033b0
push eax
push 0
push str.quoted_printable
lea ecx, [ebp - 0x708]
call fcn.00414260
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 8
call fcn.0040acf0
cmp byte [edi + 0x21], 0
je 0x4c6130
cmp byte [ebp + 0x14], 0
je 0x4c606d
cmp byte [esi + 0xad], 0
je 0x4c6093
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Received_a_MODE_Z_compressed_directory_listing.
mov ecx, esi
call eax
lea ecx, [ebp - 0x708]
call fcn.004033b0
push eax
push str.CompressedSize
mov ecx, esi
call fcn.00474a80
cmp byte [edi + 0x4d5], 0
je 0x4c60ac
push str.Received_a_MODE_Z_compressed_directory_listing._r_n
lea ecx, [edi + 0xb04]
call fcn.0040cbf0
lea ecx, [ebp - 0x750]
call fcn.0040fe80
lea ecx, [ebp - 0x708]
push ecx
lea ecx, [ebp - 0x750]
mov byte [ebp - 4], 0xa
call fcn.00412840
lea ecx, [ebp - 0x708]
call fcn.0040fb90
mov edx, dword [edi + 0x590]
push esi
push edx
push ebx
push 0
lea eax, [ebp - 0x708]
push eax
lea ecx, [ebp - 0x750]
push ecx
push 1
call fcn.005103a0
add esp, 0x1c
test al, al
jne 0x4c6121
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Decompress_directory_listing_failed.
mov ecx, esi
call eax
lea ecx, [ebp - 0x750]
mov byte [ebp - 4], 8
call fcn.004105c0
jmp 0x4c5f48
lea ecx, [ebp - 0x750]
mov byte [ebp - 4], 8
call fcn.004105c0
push 0x20
push 0
lea ecx, [ebp - 0x708]
call fcn.0040feb0
cmp byte [esi + 0xad], 0
je 0x4c618b
lea ecx, [ebp - 0x1e0]
call fcn.0040ac30
lea ecx, [ebp - 0x708]
push ecx
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 0xb
call fcn.0040d9a0
lea edx, [ebp - 0x1e0]
push edx
push str.rawListingQP
mov ecx, esi
call fcn.004743b0
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 8
call fcn.0040acf0
lea ecx, [edi + 0x7c8]
push str.utf_8
call fcn.0040c6b0
test al, al
jne 0x4c622d
lea ecx, [ebp - 0x528]
call fcn.00403e00
lea ecx, [edi + 0x7c8]
mov byte [ebp - 4], 0xc
call fcn.00409d90
push eax
lea eax, [ebp - 0x708]
push eax
lea ecx, [ebp - 0x528]
call fcn.00407ae0
lea ecx, [ebp - 0x528]
call fcn.00405c50
test al, al
jne 0x4c620a
lea ecx, [ebp - 0x528]
call fcn.00405670
mov ecx, dword [ebp - 0x6c8]
push eax
call fcn.0040c0a0
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 8
call fcn.00403e90
jmp 0x4c6297
lea ecx, [ebp - 0x708]
push ecx
mov ecx, dword [ebp - 0x6c8]
call fcn.0040d9a0
lea ecx, [ebp - 0x528]
mov byte [ebp - 4], 8
call fcn.00403e90
jmp 0x4c6297
lea ecx, [ebp - 0x708]
call fcn.004033b0
lea ecx, [ebp - 0x708]
mov dword [ebp - 0x6d8], eax
call fcn.00410a20
lea ecx, [ebp - 0x708]
call fcn.004033b0
cmp eax, dword [ebp - 0x6d8]
jae 0x4c6285
cmp byte [esi + 0xad], 0
je 0x4c6285
lea ecx, [ebp - 0x708]
call fcn.004033b0
mov ecx, dword [ebp - 0x6d8]
sub ecx, eax
push ecx
push str.numUtf8CombiningMarks
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x6c8]
lea edx, [ebp - 0x708]
push edx
call fcn.0040d9a0
lea ecx, [ebp - 0x734]
call fcn.0042b220
mov ecx, dword [ebp - 0x6c8]
push 0
push 0
push 0xa
lea eax, [ebp - 0x734]
push eax
mov byte [ebp - 4], 0xd
call fcn.0040e490
cmp byte [ebp - 0x6b3], 0
je 0x4c630d
cmp byte [ebp + 0x14], 0
je 0x4c62d6
cmp byte [esi + 0xad], 0
je 0x4c62fc
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.parsing_MLSD_listing...
mov ecx, esi
call eax
lea ecx, [ebp - 0x734]
call fcn.0042a210
push eax
push str.NumDirListingLines
mov ecx, esi
call fcn.00474a80
push esi
lea ecx, [ebp - 0x734]
push ecx
mov ecx, edi
call fcn.004bd6d0
jmp 0x4c633c
cmp byte [ebp - 0x6b5], 0
je 0x4c6327
push esi
lea edx, [ebp - 0x734]
push edx
mov ecx, edi
call fcn.004bd8e0
jmp 0x4c633c
mov ecx, dword [ebp + 0x14]
push 0
push esi
lea eax, [ebp - 0x734]
push eax
push ecx
mov ecx, edi
call fcn.004bda40
lea ecx, [ebp - 0x734]
call fcn.0042a800
mov edx, dword [ebp - 0x6c8]
push edx
lea ecx, [edi + 0x508]
call fcn.0040c010
cmp byte [edi + 0x4d5], 0
je 0x4c6374
mov eax, dword [ebp - 0x6c8]
push eax
lea ecx, [edi + 0xb04]
call fcn.0040cc60
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x590]
push ecx
mov ecx, dword [ebp - 0x6c0]
push edx
push 1
push 1
call fcn.005481b0
cmp byte [ebp - 0x6b1], 0
jne 0x4c63c0
mov edx, dword [ebp + 0x14]
push esi
push ebx
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x6bc]
push ecx
push edx
mov ecx, edi
call fcn.004b80e0
mov ebx, dword [ebp - 0x6bc]
mov byte [ebp - 0x6b2], al
jmp 0x4c63df
mov ebx, dword [ebp - 0x6c4]
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x84]
call fcn.0040c200
mov byte [ebp - 0x6b2], 1
lea ecx, [ebx - 0xc8]
cmp ecx, 0x63
jbe 0x4c641c
mov byte [ebp - 0x6b1], 0
cmp ebx, 0x1c2
jne 0x4c6400
push str.No_such_file
jmp 0x4c640d
cmp ebx, 0x226
jne 0x4c6423
push str.not_exist
lea ecx, [ebp - 0x84]
call fcn.0040c4b0
test al, al
je 0x4c6423
mov byte [ebp - 0x6b1], 1
cmp byte [ebp - 0x6b2], 0
je 0x4c6477
cmp byte [ebp - 0x6b1], 0
jne 0x4c64b0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Final_reply_indicates_an_error.
mov ecx, esi
call eax
lea ecx, [ebp - 0x84]
push ecx
push str.ftpReply
mov ecx, esi
call fcn.00474890
push ebx
push str.statusCode2
mov ecx, esi
call fcn.00474a80
lea ecx, [ebp - 0x734]
mov byte [ebp - 4], 8
call fcn.0042acd0
jmp 0x4c5f48
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_read_control_channel_final_reply.
mov ecx, esi
call eax
lea ecx, [ebp - 0x84]
call fcn.00409da0
test eax, eax
je 0x4c64b7
mov edi, dword [esi]
lea ecx, [ebp - 0x84]
call fcn.00409d90
mov edx, dword [edi + 0x2c]
push eax
push str.ftpReply
mov ecx, esi
call edx
jmp 0x4c64b7
mov byte [edi + 0x7c1], 1
cmp byte [ebp + 0x14], 0
je 0x4c64c6
cmp byte [esi + 0xad], 0
je 0x4c64de
call sub.KERNEL32.dll_GetTickCount
sub eax, dword [ebp - 0x70c]
mov ecx, esi
push eax
push str.ListTimeMS
call fcn.00474a80
lea ecx, [ebp - 0x734]
mov byte [ebp - 4], 8
call fcn.0042acd0
lea ecx, [ebp - 0x6b0]
mov byte [ebp - 4], 7
call fcn.004aa4b0
lea ecx, [ebp - 0x708]
mov byte [ebp - 4], 6
call fcn.004105c0
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 5
call fcn.00403e90
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 4
call fcn.00403e90
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 3
call fcn.0040acf0
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 2
call fcn.0040acf0
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], 1
call fcn.0040acf0
lea ecx, [ebp - 0x6d4]
mov byte [ebp - 4], 0
call fcn.00449330
lea ecx, [ebp - 0x6e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
mov al, byte [ebp - 0x6b2]
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 0x1c