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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x73bae6
mov eax, dword fs:[0]
push eax
sub esp, 0x314
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 + 0xc]
mov edx, dword [ebp + 0x2c]
mov esi, dword [ebp + 0x30]
mov edi, dword [ebp + 0x34]
mov dword [ebp - 0x308], ecx
mov ecx, dword [ebp + 0x28]
push str.newDownloadLoop
mov dword [ebp - 0x310], ecx
push esi
lea ecx, [ebp - 0x31c]
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x30c], edx
call fcn.00474ef0
cmp byte [esi + 0xad], 0
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 4], 0
je 0x441155
cmp byte [ebp + 8], 0
jne 0x441155
mov eax, dword [ebp + 0x10]
push ebx
push eax
push str.offset64
mov ecx, esi
call fcn.00474b60
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
push ecx
push edx
push str.numBytesToDownload
mov ecx, esi
call fcn.00474b60
movzx eax, byte [ebp + 0x24]
push eax
push str.readUntilEnd
mov ecx, esi
call fcn.00474a80
mov eax, dword [ebp - 0x308]
cmp dword [eax + 0x1cf0], 0
je 0x441362
cmp byte [ebp + 0x24], 0
mov dword [edi], 0
mov dword [edi + 4], 0
jne 0x4411a9
mov ecx, dword [ebp + 0x18]
or ecx, dword [ebp + 0x1c]
jne 0x4411a9
push 1
lea ecx, [eax + 0x8d8]
call fcn.0042d2e0
lea ecx, [ebp - 0x31c]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
mov al, 1
jmp 0x441421
lea ecx, [ebp - 0x300]
call fcn.00437a90
mov eax, dword [ebp - 0x308]
mov edx, dword [eax + 0x1cf0]
mov ecx, dword [ebp - 0x310]
mov dword [ebp - 0x28c], ecx
mov ecx, dword [eax + 0x1cf4]
mov dword [ebp - 0x2f0], edx
lea edx, [eax + 0x1d30]
mov dword [ebp - 0x2f4], eax
mov eax, dword [eax + 0x1b08]
mov dword [ebp - 0x2d4], ecx
xor ecx, ecx
mov byte [ebp - 4], 1
mov dword [ebp - 0x288], edi
mov dword [ebp - 0x284], edx
mov dword [ebp - 0x2d8], ecx
cmp eax, 0xabcd0123
jne 0x441217
mov dword [ebp - 0x2dc], ecx
jmp 0x44122b
mov dword [ebp - 0x2dc], eax
cmp eax, ecx
jne 0x44122b
mov dword [ebp - 0x2dc], 0x1499700
mov ecx, dword [ebp - 0x320]
push 0x76760c
call fcn.00404b50
push eax
lea ecx, [ebp - 0x280]
call fcn.004142b0
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x308]
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x258], eax
mov dword [ebp - 0x250], eax
mov al, byte [ebp + 0x20]
mov byte [ebp - 0x22c], al
mov eax, dword [edi + 0x1cf0]
mov dword [ebp - 0x240], edx
mov dl, byte [ebp + 0x24]
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x23c], ecx
mov byte [ebp - 0x238], dl
mov bl, 1
test eax, eax
je 0x4412b0
mov ecx, dword [edi + 0x1cf4]
push ecx
lea ecx, [eax + 0x320]
call fcn.0048f690
mov dword [ebp - 0x2ec], eax
mov eax, dword [edi + 0x1cf0]
xor ecx, ecx
mov dword [ebp - 0x260], 0x3ff3
mov dword [ebp - 0x25c], ecx
cmp eax, ecx
je 0x441329
cmp byte [edi + 0xbba], cl
je 0x441301
mov dword [ebp - 0x260], 0x7ff3
mov dword [ebp - 0x25c], ecx
cmp byte [esi + 0xad], cl
je 0x441329
cmp byte [ebp + 8], cl
jne 0x441329
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Using_larger_max_FXP_request_size__32755__for_IBM_mainframe.
mov ecx, esi
call eax
jmp 0x441329
push str.SSH_2.0_OpenSSH_5.
lea ecx, [eax + 0x5ac]
call fcn.0040aa00
test al, al
je 0x441329
mov dword [ebp - 0x260], 0x1c6f
mov dword [ebp - 0x25c], 0
cmp byte [edi + 0xbba], 0
je 0x44133c
mov dword [ebp - 0xa8], 3
mov edi, dword [ebp - 0x30c]
push esi
push edi
lea ecx, [ebp - 0x300]
call fcn.0043c060
test al, al
jne 0x44137b
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 0
call fcn.00437c30
lea ecx, [ebp - 0x31c]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
xor al, al
jmp 0x441421
mov eax, dword [ebp - 0x308]
mov ecx, dword [eax + 0x1b08]
push esi
push edi
push ecx
mov ecx, dword [eax + 0x1cf0]
call fcn.00498290
cmp byte [edi + 0x11], 0
jne 0x441353
jmp 0x4413a0
cmp byte [ebp - 0x238], 0
jne 0x4413b7
mov edx, dword [ebp - 0x240]
or edx, dword [ebp - 0x23c]
je 0x4413c6
cmp byte [ebp - 0x248], 0
jne 0x4413c6
cmp byte [ebp - 0x2e], 0
je 0x44143f
mov edx, dword [ebp - 0xa8]
xor eax, eax
test edx, edx
je 0x4413e5
lea ecx, [ebp - 0x220]
cmp byte [ecx], 0
je 0x44143f
inc eax
add ecx, 0x20
cmp eax, edx
jb 0x4413d8
test bl, bl
je 0x4413fe
cmp byte [ebp - 0x2e], 0
je 0x4413fe
mov eax, dword [ebp - 0x2c]
cmp eax, 2
je 0x4413fc
cmp eax, 0xa
jne 0x4413fe
xor bl, bl
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 0
call fcn.00437c30
lea ecx, [ebp - 0x31c]
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 0x30
push esi
mov ecx, edi
call fcn.004a71f0
test al, al
jne 0x4413fc
lea ecx, [ebp - 0xa4]
call fcn.0042a210
test eax, eax
jne 0x441544
mov edx, dword [ebp - 0xa8]
test edx, edx
je 0x441544
lea ecx, [ebp - 0x220]
cmp byte [ecx], 0
je 0x441484
inc eax
add ecx, 0x20
cmp eax, edx
jb 0x441472
jmp 0x441544
lea ecx, [ebp - 0x68]
call fcn.0042a210
test eax, eax
jne 0x4414ad
call fcn.00413880
mov edi, eax
test edi, edi
je 0x441353
push 0x10108
mov ecx, edi
call fcn.00413a50
jmp 0x4414b7
lea ecx, [ebp - 0x68]
call fcn.0042a710
mov edi, eax
test edi, edi
je 0x441353
lea ecx, [ebp - 0xa4]
call fcn.0042a210
test eax, eax
jne 0x4414e4
lea ecx, [ebp - 0x88]
call fcn.0042a210
mov byte [ebp - 0x310], 0
test eax, eax
je 0x4414eb
mov byte [ebp - 0x310], 1
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x308]
mov ecx, dword [ecx + 0x1cf0]
push esi
push ebx
push 5
push eax
push edi
call fcn.00498e40
push edi
test al, al
jne 0x44152c
lea ecx, [ebp - 0x68]
call fcn.0042a590
mov ecx, ebx
call fcn.004a7130
test al, al
jne 0x4413fc
jmp 0x441542
lea ecx, [ebp - 0xa4]
call fcn.0042a590
call sub.KERNEL32.dll_GetTickCount
mov dword [ebp - 0x2f8], eax
mov edi, ebx
push esi
push edi
lea ecx, [ebp - 0x300]
call fcn.00433cf0
mov bl, al
test bl, bl
je 0x4415f8
push esi
mov ecx, edi
call fcn.004a71f0
test al, al
jne 0x4413fc
push esi
push edi
lea edx, [ebp - 0x301]
push edx
lea ecx, [ebp - 0x300]
call fcn.0043ca20
mov bl, al
test bl, bl
je 0x44160b
push esi
mov ecx, edi
call fcn.004a71f0
test al, al
jne 0x4413fc
mov eax, dword [ebp - 0x2ec]
test eax, eax
je 0x4413fc
mov ecx, dword [ebp - 0x308]
cmp dword [ecx + 0x1cf0], 0
je 0x4413fc
cmp byte [eax + 0xed], 0
jne 0x441631
cmp byte [eax + 0xec], 0
jne 0x441631
call sub.KERNEL32.dll_GetTickCount
sub eax, dword [ebp - 0x2f8]
cmp eax, 0xea60
ja 0x44161e
cmp eax, 0x4e20
jbe 0x4413a0
push 0xa
call fcn.004213c0
add esp, 4
jmp 0x4413a0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.checkProcessSshPayloads_failed.
mov ecx, esi
call eax
jmp 0x4413fe
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.checkProcessFxpMessage_failed.
mov ecx, esi
call eax
jmp 0x4413fe
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Did_nothing_for_60_seconds_
mov ecx, esi
call eax
jmp 0x4413fc
push esi
push edi
lea ecx, [ebp - 0x300]
call fcn.00433cf0
lea ecx, [ebp - 0x88]
xor edi, edi
call fcn.0042a210
test eax, eax
je 0x4413fc
mov ebx, dword [ebp - 0x30c]
push esi
push ebx
lea ecx, [ebp - 0x301]
push ecx
lea ecx, [ebp - 0x300]
call fcn.0043ca20
inc edi
cmp edi, 0x28
jg 0x4413fc
push esi
mov ecx, ebx
call fcn.004a71f0
test al, al
jne 0x4413fc
lea ecx, [ebp - 0x88]
call fcn.0042a210
test eax, eax
jne 0x441653
jmp 0x4413fc