Function at 0x5191f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x580ed0
mov eax, dword fs:[0]
push eax
sub esp, 0x654
mov eax, dword [0x641030]
xor eax, esp
mov dword [esp + 0x650], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x641030]
xor eax, esp
push eax
lea eax, [esp + 0x668]
mov dword fs:[0], eax
mov eax, dword [esp + 0x67c]
mov esi, dword [esp + 0x680]
mov edi, dword [esp + 0x678]
push str.loadOpenSshKeyV1
mov dword [esp + 0x38], ecx
push esi
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], eax
call fcn.00437740
push 0xe
xor ebx, ebx
push str.openssh_key_v1
mov ecx, edi
mov dword [esp + 0x678], ebx
call fcn.00448750
test al, al
je 0x519cfa
mov ecx, edi
call fcn.0051d090
cmp eax, 0x10
jb 0x519cfa
lea ecx, [esp + 0x1c8]
mov dword [esp + 0x14], 0xf
call fcn.0042d110
lea ecx, [esp + 0x1c8]
push ecx
lea edx, [esp + 0x18]
push edx
push edi
mov byte [esp + 0x67c], 1
call fcn.0054c7f0
add esp, 0xc
mov ecx, esi
test al, al
jne 0x5192e2
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.no_cipher_name
call edx
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x670], bl
call fcn.0042d1d0
jmp 0x519d08
lea eax, [esp + 0x1c8]
push eax
push str.cipherName
call fcn.004370f0
lea ecx, [esp + 0x23c]
call fcn.0042d110
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x18]
push edx
push edi
mov byte [esp + 0x67c], 2
call fcn.0054c7f0
add esp, 0xc
mov ecx, esi
test al, al
jne 0x51935c
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.no_kdf_name
call edx
lea ecx, [esp + 0x23c]
mov byte [esp + 0x670], 1
call fcn.0042d1d0
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x670], bl
call fcn.0042d1d0
jmp 0x519d08
lea eax, [esp + 0x23c]
push eax
push str.kdfName
call fcn.004370f0
lea ecx, [esp + 0x3c]
call fcn.00447240
push esi
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x1c]
push edx
push edi
mov byte [esp + 0x680], 3
call fcn.0054c8a0
add esp, 0x10
test al, al
jne 0x5193e2
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.no_kdf_options
mov ecx, esi
call edx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x670], 2
call fcn.004479b0
lea ecx, [esp + 0x23c]
mov byte [esp + 0x670], 1
call fcn.0042d1d0
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x670], bl
call fcn.0042d1d0
jmp 0x519d08
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x18]
push ecx
push edi
mov dword [esp + 0x34], ebx
call fcn.0054c9e0
add esp, 0xc
test al, al
jne 0x51940d
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.no_num_keys
mov ecx, esi
call eax
jmp 0x5193a5
mov ecx, dword [esp + 0x28]
push ecx
push str.numKeys
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x58]
call fcn.00447240
lea ecx, [esp + 0xac]
mov byte [esp + 0x670], 4
call fcn.00447240
mov byte [esp + 0x670], 5
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x28], ebx
jbe 0x519488
lea ebp, [esp + 0x58]
cmp dword [esp + 0x18], ebx
jbe 0x51945e
lea ebp, [esp + 0xac]
mov ecx, ebp
call fcn.00446f40
push esi
push ebp
lea edx, [esp + 0x1c]
push edx
push edi
call fcn.0054c8a0
add esp, 0x10
test al, al
je 0x5194e8
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x28]
jb 0x51944d
lea ecx, [esp + 0x58]
call fcn.0051d090
push eax
push str.szPubKey
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x74]
call fcn.00447240
push esi
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x1c]
push ecx
push edi
mov byte [esp + 0x680], 6
call fcn.0054c8a0
add esp, 0x10
test al, al
jne 0x519520
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.error_parsing_encrypted_private_keys
mov ecx, esi
call eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x670], 5
call fcn.004479b0
jmp 0x5194f6
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.error_parsing_public_key
mov ecx, esi
call edx
lea ecx, [esp + 0xac]
mov byte [esp + 0x670], 4
call fcn.004479b0
lea ecx, [esp + 0x58]
mov byte [esp + 0x670], 3
call fcn.004479b0
jmp 0x5193a5
lea ecx, [esp + 0x74]
call fcn.0051d090
push eax
push str.szEncryptedPrivKeys
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x90]
call fcn.00447240
push str.bcrypt
lea ecx, [esp + 0x240]
mov byte [esp + 0x674], 7
mov dword [esp + 0x30], ebx
call fcn.0042f160
test al, al
je 0x519641
push esi
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x24], ebx
call fcn.0054c8a0
add esp, 0x10
test al, al
jne 0x5195c2
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.error_parsing_bcrypt_salt
mov ecx, esi
call eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x670], 6
call fcn.004479b0
lea ecx, [esp + 0x74]
mov byte [esp + 0x670], 5
call fcn.004479b0
jmp 0x5194f6
lea ecx, [esp + 0x90]
call fcn.0051d090
push eax
push str.bcryptSaltLen
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.0054c9e0
add esp, 0xc
test al, al
jne 0x51962e
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.error_parsing_bcrypt_rounds
mov ecx, esi
call eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x670], 6
call fcn.004479b0
lea ecx, [esp + 0x74]
mov byte [esp + 0x670], 5
call fcn.004479b0
jmp 0x5194f6
mov ecx, dword [esp + 0x2c]
push ecx
push str.bcryptRounds
mov ecx, esi
call fcn.004373b0
jmp 0x51965a
push str.none
lea ecx, [esp + 0x240]
call fcn.0042f160
test al, al
je 0x519ce7
lea ecx, [esp + 0x2b0]
call fcn.0042d110
lea edx, [esp + 0x2b0]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x60]
push ecx
mov byte [esp + 0x67c], 8
mov dword [esp + 0x20], ebx
call fcn.0054c7f0
add esp, 0xc
test al, al
jne 0x5196b7
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.no_public_key_type
mov ecx, esi
call eax
lea ecx, [esp + 0x2b0]
mov byte [esp + 0x670], 7
call fcn.0042d1d0
jmp 0x519598
lea ecx, [esp + 0x2b0]
push ecx
push str.publicKeyType
mov ecx, esi
call fcn.004370f0
lea ecx, [esp + 0xe4]
call fcn.00447240
push esi
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x64]
push ecx
mov byte [esp + 0x680], 9
call fcn.0054c8a0
add esp, 0x10
test al, al
jne 0x519739
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.error_parsing_public_key_bytes
mov ecx, esi
call eax
lea ecx, [esp + 0xe4]
mov byte [esp + 0x670], 8
call fcn.004479b0
lea ecx, [esp + 0x2b0]
mov byte [esp + 0x670], 7
call fcn.0042d1d0
jmp 0x519598
lea ecx, [esp + 0xe4]
call fcn.0051d090
push eax
push str.publicKeyByteLen
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0xc8]
call fcn.00447240
push str.none
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x674], 0xa
call fcn.0042f160
test al, al
je 0x519791
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0xcc]
call fcn.00449d90
jmp 0x519ad5
push esi
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1d4]
push ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x48], 0x20
mov dword [esp + 0x28], 0x10
call fcn.00519030
lea ecx, [esp + 0x324]
call fcn.005500f0
lea ecx, [esp + 0x100]
mov byte [esp + 0x670], 0xb
call fcn.00447240
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
push esi
lea eax, [esp + 0x104]
push eax
lea ebp, [edx + edi]
push ebp
push ecx
lea ecx, [esp + 0xa0]
mov byte [esp + 0x680], 0xc
call fcn.0051d090
push eax
lea ecx, [esp + 0xa4]
call fcn.00446f60
mov ecx, dword [esp + 0x44]
push eax
call fcn.0040fe80
mov ecx, dword [esp + 0x48]
push eax
call fcn.0040f7f0
push eax
lea ecx, [esp + 0x344]
call fcn.005507d0
test al, al
jne 0x51988c
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.bcryptPbkdf_failed.
mov ecx, esi
call eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x670], 0xb
call fcn.004479b0
lea ecx, [esp + 0x324]
mov byte [esp + 0x670], 0xa
call fcn.00550170
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 9
call fcn.004479b0
jmp 0x51970c
lea ecx, [esp + 0x100]
call fcn.0051d090
push eax
push str.symKeyIvSize
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0x100]
call fcn.0051d090
cmp eax, ebp
je 0x519904
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Bcrypt_produced_wrong_number_of_bytes.
mov ecx, esi
call eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x670], 0xb
call fcn.004479b0
lea ecx, [esp + 0x324]
mov byte [esp + 0x670], 0xa
call fcn.00550170
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 9
call fcn.004479b0
jmp 0x51970c
lea ecx, [esp + 0x138]
call fcn.004da2b0
lea ecx, [esp + 0x3d4]
mov byte [esp + 0x670], 0xd
call fcn.004d9e50
push str._cbc
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x674], 0xe
call fcn.0042cde0
test al, al
je 0x519957
push 2
lea ecx, [edi*8]
mov dword [esp + 0x140], ebx
push ecx
jmp 0x5199e8
push str._gcm
lea ecx, [esp + 0x1cc]
call fcn.0042ef80
test al, al
je 0x519979
mov dword [esp + 0x13c], 6
jmp 0x5199de
push str.chacha
lea ecx, [esp + 0x1cc]
call fcn.0042ef80
test al, al
je 0x5199a8
push 0x1bc
lea eax, [edi*8]
mov dword [esp + 0x140], 7
push eax
jmp 0x5199e8
push str.3des
lea ecx, [esp + 0x1cc]
call fcn.0042ce80
test al, al
je 0x5199d3
push 0x309
lea ecx, [edi*8]
mov dword [esp + 0x140], ebx
push ecx
jmp 0x5199e8
mov dword [esp + 0x13c], 3
push 2
lea edx, [edi*8]
push edx
lea ecx, [esp + 0x140]
call fcn.004da5c0
lea ecx, [esp + 0x100]
call fcn.00446f60
mov ebp, eax
push edi
push ebp
lea ecx, [esp + 0x150]
call fcn.00448260
mov eax, dword [esp + 0x18]
push eax
add edi, ebp
push edi
lea ecx, [esp + 0x170]
call fcn.00448260
push esi
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x144]
push eax
lea ecx, [esp + 0x3e4]
call fcn.004ddd30
test al, al
jne 0x519a85
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_decrypt_private_keys.
mov ecx, esi
call eax
lea ecx, [esp + 0x3d4]
mov byte [esp + 0x670], 0xd
call fcn.004d9ed0
lea ecx, [esp + 0x138]
mov byte [esp + 0x670], 0xc
call fcn.004da360
jmp 0x51984b
lea ecx, [esp + 0x3d4]
mov byte [esp + 0x670], 0xd
call fcn.004d9ed0
lea ecx, [esp + 0x138]
mov byte [esp + 0x670], 0xc
call fcn.004da360
lea ecx, [esp + 0x100]
mov byte [esp + 0x670], 0xb
call fcn.004479b0
lea ecx, [esp + 0x324]
mov byte [esp + 0x670], 0xa
call fcn.00550170
lea ecx, [esp + 0xc8]
call fcn.0051d090
cmp eax, 8
jae 0x519b26
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.checkints_not_present.
mov ecx, esi
call eax
lea ecx, [esp + 0xc8]
call fcn.0051d090
push eax
push str.privKeysSize
mov ecx, esi
call fcn.004373b0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 9
call fcn.004479b0
jmp 0x51970c
lea ecx, [esp + 0xc8]
call fcn.00446f60
mov edi, eax
mov ecx, dword [edi]
cmp ecx, dword [edi + 4]
lea ebp, [edi + 4]
je 0x519b6c
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.checkints_are_not_equal.
mov ecx, esi
call eax
push 4
push edi
push str.checkint_1
mov ecx, esi
call fcn.00436910
push 4
push ebp
push str.checkint_2
mov ecx, esi
call fcn.00436910
jmp 0x519af4
lea ecx, [esp + 0x11c]
mov dword [esp + 0x14], 8
call fcn.00447240
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 0xf
call fcn.0051d090
sub eax, 8
push eax
add edi, 8
push edi
lea ecx, [esp + 0x124]
call fcn.00448260
mov ecx, dword [esp + 0x34]
push esi
push ecx
lea edx, [esp + 0x124]
push edx
call fcn.0054d270
add esp, 0xc
test al, al
jne 0x519bfd
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_load_private_key_blob...
mov ecx, esi
call edx
lea ecx, [esp + 0x11c]
mov byte [esp + 0x670], 0xa
call fcn.004479b0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 9
call fcn.004479b0
jmp 0x51970c
lea ecx, [esp + 0x11c]
mov byte [esp + 0x670], 0xa
call fcn.004479b0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x670], 9
call fcn.004479b0
lea ecx, [esp + 0xe4]
mov byte [esp + 0x670], 8
call fcn.004479b0
lea ecx, [esp + 0x2b0]
mov byte [esp + 0x670], 7
call fcn.0042d1d0
lea ecx, [esp + 0x90]
mov byte [esp + 0x670], 6
call fcn.004479b0
lea ecx, [esp + 0x74]
mov byte [esp + 0x670], 5
call fcn.004479b0
lea ecx, [esp + 0xac]
mov byte [esp + 0x670], 4
call fcn.004479b0
lea ecx, [esp + 0x58]
mov byte [esp + 0x670], 3
call fcn.004479b0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x670], 2
call fcn.004479b0
lea ecx, [esp + 0x23c]
mov byte [esp + 0x670], 1
call fcn.0042d1d0
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x670], bl
call fcn.0042d1d0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x670], 0xffffffff
call fcn.004377b0
mov al, 1
jmp 0x519d1e
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Unknown_kdf_name.
mov ecx, esi
call edx
jmp 0x519598
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Key_must_begin_with_openssh_key_v1
mov ecx, esi
call edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x670], 0xffffffff
call fcn.004377b0
xor al, al
mov ecx, dword [esp + 0x668]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x650]
xor ecx, esp
call fcn.005550b0
add esp, 0x660
ret 0xc