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

Disassembly:
push 0xffffffffffffffff
push 0x6954a6
mov eax, dword fs:[0]
push eax
sub esp, 0x8b4
mov eax, dword [0x78f694]
xor eax, esp
mov dword [esp + 0x8b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x78f694]
xor eax, esp
push eax
lea eax, [esp + 0x8c8]
mov dword fs:[0], eax
mov eax, dword [esp + 0x8e4]
mov edx, dword [esp + 0x8d8]
mov ebp, dword [esp + 0x8ec]
mov esi, dword [esp + 0x8dc]
mov ebx, dword [esp + 0x8e0]
mov edi, ecx
mov ecx, dword [esp + 0x8e8]
mov dword [esp + 0x44], ecx
mov ecx, dword [ecx + 4]
mov dword [eax], 0
cmp byte [edi + 0xc4], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ecx
je 0x59f6c1
test esi, esi
je 0x59f6af
lea ecx, [esp + 0x850]
call fcn.00485650
push esi
push 0x75a568
lea ecx, [esp + 0x858]
mov dword [esp + 0x8d8], 0
call fcn.00487ce0
push 0x6d44cc
lea ecx, [esp + 0x854]
call fcn.00485300
test al, al
jne 0x59f678
push 0x6d44cc
lea ecx, [esp + 0x854]
call fcn.00485280
lea ecx, [esp + 0x850]
call fcn.00483ec0
mov edx, dword [esp + 0x28]
push eax
push edx
push 0x7000a8
mov ecx, edi
call fcn.0059be00
lea ecx, [esp + 0x850]
mov dword [esp + 0x8d0], 0xffffffff
call fcn.00485710
jmp 0x59f6c1
push 0x6d44cc
push edx
push 0x7000a8
mov ecx, edi
call fcn.0059be00
call sub.KERNEL32.dll_GetTickCount
add dword [edi + 0x468], 1
lea esi, [edi + 0x540]
mov ecx, esi
mov dword [edi + 0x45c], eax
mov dword [esp + 0x1c], ebx
call fcn.00467d60
cmp dword [edi + 0xad8], 0
je 0x59f775
cmp byte [edi + 0x4ec], 0
je 0x59f70e
push ebp
push esi
lea ecx, [edi + 0x4f0]
call fcn.005a59d0
mov byte [edi + 0x4ec], 0
mov eax, dword [edi + 0x5e8]
test eax, eax
mov byte [esp + 0x1c], 0
je 0x59f72b
add eax, 0xffffffff
mov byte [esp + 0x1c], 1
mov dword [edi + 0x5e8], eax
mov eax, dword [esp + 0x1c]
push 0
push ebp
push esi
push eax
push ebx
lea ecx, [edi + 0x4f0]
call fcn.005a5ad0
mov ecx, ebx
call fcn.00544a30
cmp byte [esp + 0x1c], 0
mov ebx, eax
jne 0x59f771
cmp ebx, 0x40
jbe 0x59f771
mov ecx, esi
call fcn.00544a30
mov ecx, ebx
shr ecx, 3
add eax, ecx
cmp eax, ebx
jbe 0x59f771
mov dword [edi + 0x5e8], 0x10
mov dword [esp + 0x1c], esi
mov eax, dword [edi + 0xb00]
cmp eax, 1
mov ebx, 8
je 0x59f7a8
cmp eax, 2
je 0x59f7a8
cmp eax, 0xc
je 0x59f7a8
cmp eax, 9
je 0x59f7a8
cmp eax, 0xa
je 0x59f7a8
cmp eax, 0xb
je 0x59f7a8
cmp eax, 3
je 0x59f7a8
cmp eax, 4
jne 0x59f7ad
mov ebx, 0x10
mov ecx, dword [esp + 0x1c]
call fcn.00544a30
mov esi, dword [edi + 0xb00]
xor edx, edx
cmp esi, 0xd
setne dl
lea ecx, [eax + 5]
mov dword [esp + 0x34], eax
mov eax, ecx
sub edx, 1
and edx, 4
sub eax, edx
add eax, 4
xor edx, edx
div ebx
mov eax, ebx
sub eax, edx
xor edx, edx
div ebx
add edx, 4
lea esi, [ecx + edx]
cmp esi, 0x10
mov dword [esp + 0x14], edx
jae 0x59f804
cmp dword [edi + 0xb00], 0xd
je 0x59f804
add edx, ebx
mov dword [esp + 0x14], edx
add esi, ebx
mov eax, dword [esp + 0x20]
lea edx, [esi - 4]
lea ebx, [edi + 0x578]
mov ecx, ebx
mov dword [esp + 0x24], edx
mov dword [eax], esi
call fcn.00467d60
mov eax, dword [edi + 0xb00]
cmp eax, 0xd
jne 0x59f94d
lea eax, [esi + 0x10]
push eax
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.0046cbb0
mov esi, eax
mov eax, dword [esp + 0x24]
mov ecx, eax
shr ecx, 0x18
mov byte [esi], cl
mov edx, eax
mov ecx, eax
shr ecx, 8
shr edx, 0x10
mov byte [esi + 2], cl
mov byte [esi + 1], dl
mov byte [esi + 3], al
mov eax, dword [edi + 0x664]
push eax
push 4
push esi
lea ebp, [edi + 0x187c]
push ebp
mov ecx, edi
mov dword [esp + 0x38], esi
call fcn.005987c0
mov ecx, 4
mov eax, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], eax
cmp dword [ebp + 0x40], 0x40
jb 0x59f8a4
push ebp
call fcn.00598340
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
add esp, 4
cmp dword [ebp + 0x40], 0x40
jae 0x59f8c9
test ecx, ecx
je 0x59f8cd
mov edx, dword [ebp + 0x40]
mov dl, byte [edx + ebp + 0x44]
xor byte [eax], dl
add dword [ebp + 0x40], 1
add eax, 1
sub ecx, 1
cmp dword [ebp + 0x40], 0x40
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
jb 0x59f8a4
test ecx, ecx
jne 0x59f887
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
mov byte [esi + 4], al
call fcn.00467d80
push eax
lea edx, [esi + 5]
push edx
call fcn.00630200
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
lea ecx, [esi + eax + 5]
push ecx
push edx
call fcn.0048cb00
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
add esp, 0x14
lea esi, [edi + 0x1900]
add ecx, 4
call fcn.00598770
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + 0x664]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
add edx, 4
push edx
push eax
mov ecx, ebp
call fcn.0059a5f0
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, ebx
call fcn.00467d90
mov ebp, dword [esp + 0x38]
jmp 0x59fa83
test eax, eax
push ebx
je 0x59fa50
mov edx, dword [esp + 0x28]
push edx
call fcn.005cd100
mov eax, dword [esp + 0x1c]
add esp, 8
push eax
mov ecx, ebx
call fcn.00468d30
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, ebx
call fcn.0046ad20
mov edx, dword [esp + 0x14]
push ebx
push edx
call fcn.0048d0b0
lea esi, [edi + 0x55c]
add esp, 8
mov ecx, esi
call fcn.00467d60
cmp dword [edi + 0xb1c], 0
jne 0x59f9b5
mov eax, dword [ebp]
mov edx, dword [eax + 0x14]
push str.No_output_encryptor_
mov ecx, ebp
call edx
xor al, al
jmp 0x59fc8f
push ebp
push esi
mov ecx, ebx
call fcn.00544a30
push eax
mov ecx, ebx
call fcn.00467d80
push eax
lea eax, [edi + 0xbb4]
push eax
lea ecx, [edi + 0x1198]
push ecx
mov ecx, dword [edi + 0xb1c]
call fcn.00538d50
mov ecx, esi
call fcn.00544a30
mov ecx, ebx
mov esi, eax
call fcn.00544a30
cmp esi, eax
je 0x59fa83
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
push str.Size_of_encrypted_data_changed_
mov ecx, ebp
call eax
mov ecx, ebx
call fcn.00544a30
push eax
push str.unencryptedPacketSize
mov ecx, ebp
call fcn.004b14c0
lea ecx, [edi + 0x55c]
call fcn.00544a30
push eax
push str.encryptedPacketSize
mov ecx, ebp
call fcn.004b14c0
push 0x6d44cc
push str.Failed_to_encrypt.
push str.TRAN
mov ecx, edi
call fcn.0059be00
xor al, al
jmp 0x59fc8f
mov ecx, dword [esp + 0x28]
push ecx
call fcn.005cd100
mov edx, dword [esp + 0x1c]
add esp, 8
push edx
mov ecx, ebx
call fcn.00468d30
mov eax, dword [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.0046ad20
mov ecx, dword [esp + 0x14]
push ebx
push ecx
call fcn.0048d0b0
add esp, 8
cmp dword [edi + 0xb00], 0xd
je 0x59fbb1
lea ecx, [edi + 0x524]
call fcn.00467d60
xor esi, esi
cmp dword [edi + 0xae4], esi
je 0x59fb6f
movzx edx, byte [edi + 0x667]
mov cl, byte [edi + 0x665]
mov al, byte [edi + 0x666]
mov byte [esp + 0x14], dl
movzx edx, byte [edi + 0x664]
mov byte [esp + 0x16], cl
lea ecx, [esp + 0x48]
mov byte [esp + 0x15], al
mov byte [esp + 0x17], dl
call fcn.004687c0
lea eax, [esp + 0x14]
mov ecx, ebx
mov dword [esp + 0x8d0], 1
mov dword [esp + 0x84c], 3
mov dword [esp + 0x4c], esi
mov dword [esp + 0x44c], esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x450], 4
call fcn.00467d80
mov ecx, ebx
mov dword [esp + 0x54], eax
call fcn.00544a30
mov ecx, dword [edi + 0x1a80]
mov dword [esp + 0x454], eax
push ebp
lea eax, [edi + 0x524]
push eax
lea esi, [edi + 0x1aa0]
push ecx
mov ecx, esi
call fcn.00544a30
push eax
mov ecx, esi
call fcn.00467d80
push eax
lea edx, [esp + 0x5c]
push edx
call fcn.004faa50
add esp, 0x18
lea ecx, [esp + 0x48]
mov dword [esp + 0x8d0], 0xffffffff
call fcn.004687e0
cmp dword [edi + 0xb00], 0
je 0x59fb86
lea eax, [edi + 0x55c]
push eax
mov ecx, ebx
call fcn.00468cc0
lea esi, [edi + 0x524]
mov ecx, esi
call fcn.00544a30
test eax, eax
je 0x59fbb1
cmp dword [edi + 0xae4], 6
jne 0x59fba9
push 8
mov ecx, esi
call fcn.00467fc0
push esi
mov ecx, ebx
call fcn.0046ad20
mov esi, dword [edi + 0x66c]
test esi, esi
je 0x59fbc8
cmp esi, 0xbb8
jae 0x59fbc8
mov esi, 0xbb8
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x59fbd7
mov byte [eax + 0x94], 1
mov ecx, dword [esp + 0x44]
push ecx
push ebp
lea edx, [esp + 0x34]
push edx
push esi
push 0
mov ecx, ebx
mov dword [esp + 0x40], 0
call fcn.00544a30
push eax
push ebx
lea ecx, [edi + 0x46c]
call fcn.005a7470
test al, al
mov byte [esp + 0x1b], al
jne 0x59fc58
cmp dword [esp + 0x2c], 0
jbe 0x59fc49
mov ecx, ebx
call fcn.00544a30
push eax
push str.packetSize
mov ecx, ebp
call fcn.004b14c0
mov eax, dword [esp + 0x2c]
push eax
push str.numBytesSent
mov ecx, ebp
call fcn.004b14c0
push esi
push str.idleTimeoutMs
mov ecx, ebp
call fcn.004b14c0
push str.Failed_to_send_entire_SSH_packet.
jmp 0x59fc4e
push str.SSH_SendBytes_failed.
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
mov ecx, ebp
call eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x59fc67
mov byte [eax + 0x94], 0
add dword [edi + 0x664], 1
cmp byte [esp + 0x1b], 0
jne 0x59fc8b
push 0x6d44cc
push str.Failed_to_send.
push str.TRAN
mov ecx, edi
call fcn.0059be00
mov al, byte [esp + 0x1b]
mov ecx, dword [esp + 0x8c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x8b0]
xor ecx, esp
call fcn.0062cbd3
add esp, 0x8c0
ret 0x18