Function at 0x140093a88
Capabilities:
Hash data via bcrypt

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rdi, qword [rbp + 0x70]
xor r13d, r13d
mov r14d, r9d
mov r12, r8
mov r15, rdx
mov rbx, rcx
mov esi, r13d
cmp dword [rdi], r13d
jne 0x140093c08
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x88], r13
mov qword [rdi + 0x50], r13
call fcn.14009f934
mov qword [rdi + 0x58], rax
call fcn.14009f934
mov qword [rdi + 0x60], rax
call fcn.14009f934
mov qword [rdi + 0x68], rax
call fcn.14009f934
lea rcx, [rdi + 0xc8]
lea r8d, [r13 + 0x10]
xor edx, edx
mov qword [rdi + 0x70], rax
call qword [sym.imp.msvcrt.dll_memset]
mov rcx, qword [rdi + 0x58]
mov edx, r14d
call fcn.14009f99c
mov r8, qword [rdi + 0x58]
mov rcx, qword [rdi + 0x60]
mov r9, r12
mov rdx, r15
call fcn.14009fa48
mov rcx, qword [rdi + 0x60]
mov r9d, dword [rcx + 8]
add r9d, 6
mov qword [rdi + 0x38], r9
call fcn.14009fd10
test al, 7
je 0x140093b53
lea rax, [r9 - 1]
mov qword [rdi + 0x38], rax
mov rcx, qword [rdi + 0x38]
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov qword [rdi + 8], rax
test rax, rax
jne 0x140093b72
lea rax, str.Out_of_memory_error
jmp 0x140094396
mov cl, byte [rbp + 0x50]
mov byte [rax], cl
mov edx, dword [rdi + 0x38]
mov rcx, qword [rdi + 8]
sub edx, 5
mov byte [rcx + 4], dl
mov eax, edx
shr eax, 0x18
mov byte [rcx + 1], al
mov eax, edx
shr eax, 0x10
mov byte [rcx + 2], al
mov eax, edx
shr eax, 8
mov byte [rcx + 3], al
mov r9, qword [rdi + 0x60]
mov rcx, r9
call fcn.14009fd10
test al, 7
je 0x140093bcf
mov rcx, qword [rdi + 8]
add rcx, 5
je 0x140093c02
test r9, r9
je 0x140093c02
mov rdx, qword [r9]
test rdx, rdx
je 0x140093c02
cmp dword [r9 + 8], r13d
jbe 0x140093c02
mov r8d, dword [r9 + 8]
jmp 0x140093bfc
mov rax, qword [rdi + 8]
mov byte [rax + 5], r13b
mov rcx, qword [rdi + 8]
mov rax, qword [rdi + 0x60]
add rcx, 6
je 0x140093c02
test rax, rax
je 0x140093c02
mov rdx, qword [rax]
test rdx, rdx
je 0x140093c02
cmp dword [rax + 8], r13d
jbe 0x140093c02
mov r8d, dword [rax + 8]
call qword [sym.imp.msvcrt.dll_memcpy]
mov dword [rdi], 2
cmp dword [rdi], 2
mov r14d, 0xffffffdb
jne 0x140093c4e
mov r8, qword [rdi + 0x38]
mov rdx, qword [rdi + 8]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], r13
call fcn.14009d87c
cmp eax, r14d
jne 0x140093c38
mov eax, r14d
jmp 0x140094cd7
test eax, eax
je 0x140093c48
lea rcx, str.Unable_to_send_KEX_init_message
jmp 0x14009434f
mov dword [rdi], 3
cmp dword [rdi], 3
jne 0x140093c85
test byte [rbx + 0x80], 1
je 0x140093c7f
lea rdx, [rdi + 0xd8]
mov rcx, rbx
call fcn.140097f00
cmp eax, r14d
je 0x140093c30
test eax, eax
jle 0x14009435c
and dword [rbx + 0x80], 0xfffffffe
mov dword [rdi], 4
cmp dword [rdi], 4
mov r15d, SafeArrayGetElement
jne 0x1400942da
mov dl, byte [rbp + 0x58]
lea rax, [rdi + 0xc8]
lea r9, [rdi + 0x40]
lea r8, [rdi + 0x10]
mov rcx, rbx
mov qword [rsp + 0x38], rax
call fcn.140097e0c
cmp eax, r14d
je 0x140093c30
test eax, eax
je 0x140093cd0
lea rax, str.Timed_out_waiting_for_KEX_reply
lea esi, [r15 - 0x1d]
jmp 0x14009439b
mov rdx, qword [rdi + 0x10]
inc rdx
mov qword [rdi + 0x78], rdx
movzx ecx, byte [rdx]
movzx eax, byte [rdx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
mov rdx, rbx
shl ecx, 8
or ecx, eax
mov dword [rbx + 0xb8], ecx
add qword [rdi + 0x78], 4
mov ecx, dword [rbx + 0xb8]
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov qword [rbx + 0xb0], rax
test rax, rax
jne 0x140093d28
lea rax, str.Unable_to_allocate_memory_for_a_copy_of_the_host_key
jmp 0x140094396
mov r8d, dword [rbx + 0xb8]
mov rdx, qword [rdi + 0x78]
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memcpy]
mov eax, dword [rbx + 0xb8]
xor r9d, r9d
add qword [rdi + 0x78], rax
mov rdx, qword [0x14017a1b0]
lea r8d, [r9 + 0x10]
lea rcx, [rbp - 0x20]
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
test eax, eax
je 0x140093d9d
mov r8d, dword [rbx + 0xb8]
mov rdx, qword [rbx + 0xb0]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
lea rdx, [rbx + 0xbc]
lea rcx, [rbp - 0x20]
call fcn.14009ef14
mov dword [rbx + 0xcc], 1
jmp 0x140093da4
mov dword [rbx + 0xcc], r13d
mov rdx, qword [0x14017a1b8]
lea rcx, [rbp - 0x20]
xor r9d, r9d
mov r8d, r15d
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
mov r8d, dword [rbx + 0xb8]
mov rdx, qword [rbx + 0xb0]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
lea rdx, [rbx + 0xd0]
lea rcx, [rbp - 0x20]
call fcn.14009ef14
mov rax, qword [rbx + 0xa0]
mov r8d, dword [rbx + 0xb8]
mov rdx, qword [rbx + 0xb0]
lea r13, [rbx + 0xa8]
mov rcx, rbx
mov r9, r13
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
test eax, eax
je 0x140093e24
lea rax, str.Unable_to_initialize_hostkey_importer
mov esi, 0xfffffff6
jmp 0x14009439b
mov r8, qword [rdi + 0x78]
movzx eax, byte [r8]
movzx ecx, byte [r8 + 1]
add r8, 4
shl eax, 8
or ecx, eax
movzx eax, byte [r8 - 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 - 1]
mov qword [rdi + 0x80], r8
shl ecx, 8
or rcx, rax
mov qword [rdi + 0x98], rcx
mov edx, dword [rdi + 0x98]
add rcx, r8
mov qword [rdi + 0x78], rcx
mov rcx, qword [rdi + 0x68]
call fcn.14009fd4c
mov rdx, qword [rdi + 0x78]
mov r8, qword [rdi + 0x58]
movzx eax, byte [rdx + 1]
movzx ecx, byte [rdx]
mov r9, r12
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or rcx, rax
lea rax, [rdx + 4]
mov rdx, qword [rdi + 0x68]
mov qword [rdi + 0xa8], rcx
mov rcx, qword [rdi + 0x70]
mov qword [rdi + 0x78], rax
mov qword [rdi + 0x90], rax
call fcn.14009fa48
mov rcx, qword [rdi + 0x70]
mov r9d, dword [rcx + 8]
add r9d, 5
mov qword [rdi + 0xa0], r9
call fcn.14009fd10
test al, 7
je 0x140093ee7
lea rax, [r9 - 1]
mov qword [rdi + 0xa0], rax
mov rcx, qword [rdi + 0xa0]
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov rdx, rax
mov qword [rdi + 0x88], rax
test rax, rax
jne 0x140093f0f
lea rax, str.Unable_to_allocate_buffer_for_K
jmp 0x140094396
mov ecx, dword [rdi + 0xa0]
mov r12d, 4
sub ecx, r12d
mov eax, ecx
mov byte [rdx + 3], cl
shr eax, 0x18
mov byte [rdx], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 1], al
mov eax, ecx
shr eax, 8
mov byte [rdx + 2], al
mov r9, qword [rdi + 0x70]
mov rcx, r9
call fcn.14009fd10
test al, 7
je 0x140093f6d
mov rcx, qword [rdi + 0x88]
add rcx, r12
je 0x140093fa5
test r9, r9
je 0x140093fa5
mov rdx, qword [r9]
test rdx, rdx
je 0x140093fa5
cmp dword [r9 + 8], esi
jbe 0x140093fa5
mov r8d, dword [r9 + 8]
jmp 0x140093f9f
mov rax, qword [rdi + 0x88]
mov byte [rax + 4], sil
mov rcx, qword [rdi + 0x88]
mov rax, qword [rdi + 0x70]
add rcx, 5
je 0x140093fa5
test rax, rax
je 0x140093fa5
mov rdx, qword [rax]
test rdx, rdx
je 0x140093fa5
cmp dword [rax + 8], esi
jbe 0x140093fa5
mov r8d, dword [rax + 8]
call qword [sym.imp.msvcrt.dll_memcpy]
mov rdx, qword [0x14017a1b8]
and dword [rsp + 0x20], esi
xor r9d, r9d
lea r15, [rdi + 0xb0]
lea r8d, [r9 + 0x14]
mov rcx, r15
call fcn.14009ee14
mov rcx, qword [rbx + 0x158]
test rcx, rcx
je 0x140094029
call qword [sym.imp.msvcrt.dll_strlen]
lea r14, [rdi + 0x20]
xor r9d, r9d
sub eax, 2
mov r8d, r12d
mov rdx, r14
mov ecx, eax
mov byte [r14 + 3], al
shr ecx, 0x18
mov byte [r14], cl
mov ecx, eax
shr ecx, 0x10
mov byte [r14 + 1], cl
mov ecx, eax
shr ecx, 8
mov byte [r14 + 2], cl
mov rcx, qword [r15]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbx + 0x158]
call qword [sym.imp.msvcrt.dll_strlen]
mov rdx, qword [rbx + 0x158]
lea r8d, [rax - 2]
jmp 0x140094053
lea r14, [rdi + 0x20]
xor r9d, r9d
mov r8d, r12d
mov dword [r14], 0x15000000
mov rcx, qword [r15]
mov rdx, r14
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, reloc.SHELL32.dll_ILIsEqual
lea rdx, str.SSH_2.0_libssh2_2.0.0
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbx + 0xe8]
call qword [sym.imp.msvcrt.dll_strlen]
xor r9d, r9d
mov r8d, r12d
mov ecx, eax
mov byte [r14 + 3], al
mov rdx, r14
shr ecx, 0x18
mov byte [r14], cl
mov ecx, eax
shr ecx, 0x10
mov byte [r14 + 1], cl
mov ecx, eax
shr ecx, 8
mov byte [r14 + 2], cl
mov rcx, qword [r15]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbx + 0xe8]
call qword [sym.imp.msvcrt.dll_strlen]
mov rdx, qword [rbx + 0xe8]
mov rcx, qword [r15]
mov r8d, eax
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov ecx, dword [rbx + 0x168]
xor r9d, r9d
mov eax, ecx
mov byte [r14 + 3], cl
mov r8d, r12d
shr eax, 0x18
mov rdx, r14
mov byte [r14], al
mov eax, ecx
shr eax, 0x10
mov byte [r14 + 1], al
mov eax, ecx
shr eax, 8
mov byte [r14 + 2], al
mov rcx, qword [r15]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x168]
mov rdx, qword [rbx + 0x160]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov ecx, dword [rbx + 0xf8]
xor r9d, r9d
mov eax, ecx
mov byte [r14 + 3], cl
mov r8d, r12d
shr eax, 0x18
mov rdx, r14
mov byte [r14], al
mov eax, ecx
shr eax, 0x10
mov byte [r14 + 1], al
mov eax, ecx
shr eax, 8
mov byte [r14 + 2], al
mov rcx, qword [r15]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0xf8]
mov rdx, qword [rbx + 0xf0]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov ecx, dword [rbx + 0xb8]
mov eax, ecx
mov byte [r14 + 3], cl
shr eax, 0x18
mov byte [r14], al
mov eax, ecx
shr eax, 0x10
mov byte [r14 + 1], al
mov eax, ecx
shr eax, 8
xor r9d, r9d
mov byte [r14 + 2], al
mov rcx, qword [r15]
mov r8d, r12d
mov rdx, r14
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0xb8]
mov rdx, qword [rbx + 0xb0]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
cmp byte [rbp + 0x50], 0x20
jne 0x1400941dd
mov dword [r14], 0x40000
mov dword [rdi + 0x24], 0x60000
xor r9d, r9d
mov dword [rdi + 0x28], 0x80000
mov rcx, qword [r15]
lea r8d, [r9 + 0xc]
mov rdx, r14
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rdx, qword [rbp + 0x60]
test rdx, rdx
je 0x1400941f6
mov r8d, dword [rbp + 0x68]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rdi + 0x38]
mov rdx, qword [rdi + 8]
mov rcx, qword [r15]
dec r8d
inc rdx
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov ecx, dword [rdi + 0x98]
xor r9d, r9d
mov eax, ecx
mov byte [r14 + 3], cl
mov r8d, r12d
shr eax, 0x18
mov rdx, r14
mov byte [r14], al
mov eax, ecx
shr eax, 0x10
mov byte [r14 + 1], al
mov eax, ecx
shr eax, 8
mov byte [r14 + 2], al
mov rcx, qword [r15]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rdi + 0x98]
mov rdx, qword [rdi + 0x80]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [r15]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rdx, r14
mov rcx, r15
call fcn.14009ef14
mov rax, qword [rbx + 0xa0]
mov r8, qword [rdi + 0xa8]
mov rdx, qword [rdi + 0x90]
mov r15d, SafeArrayGetElement
mov r9, r14
mov rcx, rbx
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r15
call qword [rax + 0x20]
xor r13d, r13d
test eax, eax
je 0x1400942ca
lea rax, str.Unable_to_verify_hostkey_signature
lea esi, [r15 - 0x1f]
jmp 0x14009439b
mov byte [rdi + 0x34], reloc.SHELL32.dll_ILIsEqual
mov dword [rdi], 5
mov r14d, 0xffffffdb
cmp dword [rdi], 5
jne 0x140094313
xor r9d, r9d
lea rdx, [rdi + 0x34]
mov rcx, rbx
lea r8d, [r9 + 1]
mov qword [rsp + 0x20], r13
call fcn.14009d87c
cmp eax, r14d
je 0x140093c30
test eax, eax
je 0x14009430d
lea rcx, str.Unable_to_send_NEWKEYS_message
jmp 0x14009434f
mov dword [rdi], 6
cmp dword [rdi], 6
jne 0x140094c53
lea rax, [rdi + 0xc8]
lea r9, [rdi + 0x48]
lea r8, [rdi + 0x18]
mov dl, reloc.SHELL32.dll_ILIsEqual
mov rcx, rbx
mov qword [rsp + 0x38], rax
call fcn.140097e0c
cmp eax, 0xffffffdb
jne 0x140094344
jmp 0x140094cd7
test eax, eax
je 0x140094363
lea rcx, str.Timed_out_waiting_for_NEWKEYS
mov qword [rbx + 0x218], rcx
mov dword [rbx + 0x220], eax
mov esi, eax
jmp 0x140094c53
or dword [rbx + 0x68], 2
mov rcx, qword [rdi + 0x18]
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
cmp qword [rbx + 0x88], r13
jne 0x1400943c4
mov rdx, rbx
mov rcx, r15
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov qword [rbx + 0x88], rax
test rax, rax
jne 0x1400943ad
lea rax, str.Unable_to_allocate_buffer_for_SHA_digest
mov esi, 0xfffffffa
mov qword [rbx + 0x218], rax
mov dword [rbx + 0x220], esi
jmp 0x140094c53
lea rdx, [rdi + 0x20]
mov r8, r15
mov rcx, rax
call qword [sym.imp.msvcrt.dll_memcpy]
mov dword [rbx + 0x90], r15d
mov rax, qword [rbx + 0x170]
mov r8, qword [rax + 0x28]
test r8, r8
je 0x1400943e1
lea rdx, [rbx + 0x178]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x170]
cmp qword [rax + 0x18], r13
je 0x140094651
mov dword [rbp + 0x70], r13d
mov dword [rbp - 0x40], r13d
mov eax, dword [rax + 0xc]
add eax, 0x14
mov rdx, rbx
mov r15d, r13d
movsxd rcx, eax
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r14, rax
test rax, rax
je 0x14009471e
mov rcx, qword [rbx + 0x170]
cmp dword [rcx + 0xc], r13d
jbe 0x1400944db
mov rdx, qword [0x14017a1b8]
xor r9d, r9d
lea rcx, [rbp - 0x38]
lea r8d, [r9 + 0x14]
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
test r15d, r15d
je 0x140094489
mov r8d, r15d
mov rdx, r14
jmp 0x1400944b1
lea rdx, str.ACBDEF
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r15d
lea rcx, [rbp - 0x38]
add rdx, r14
call fcn.14009ef14
mov rax, qword [rbx + 0x170]
add r15d, 0x14
cmp r15d, dword [rax + 0xc]
jb 0x140094429
mov rax, qword [rbx + 0x170]
mov rdx, rbx
mov r12d, r13d
mov ecx, dword [rax + 0x10]
add ecx, 0x14
movsxd rcx, ecx
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r15, rax
test rax, rax
je 0x140094716
mov rcx, qword [rbx + 0x170]
cmp dword [rcx + 0x10], r13d
jbe 0x1400945c5
mov rdx, qword [0x14017a1b8]
and dword [rsp + 0x20], esi
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rcx, [rbp - 0x20]
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
test r12d, r12d
je 0x140094570
mov r8d, r12d
mov rdx, r15
jmp 0x140094598
lea rdx, [0x14012b9a0]
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r12d
lea rcx, [rbp - 0x20]
add rdx, r15
call fcn.14009ef14
mov rax, qword [rbx + 0x170]
add r12d, 0x14
cmp r12d, dword [rax + 0x10]
jb 0x140094511
xor r13d, r13d
mov r10, qword [rbx + 0x170]
lea rax, [rbx + 0x178]
lea r9, [rbp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x40]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov r8, r14
mov rdx, r10
mov rcx, rbx
mov qword [rsp + 0x20], r15
call qword [r10 + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
jne 0x14009489d
cmp dword [rbp + 0x70], r13d
je 0x14009462c
mov rax, qword [rbx + 0x170]
xor edx, edx
mov rcx, r14
movsxd r8, dword [rax + 0xc]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r14
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
cmp dword [rbp - 0x40], r13d
je 0x140094651
mov rax, qword [rbx + 0x170]
xor edx, edx
mov rcx, r15
movsxd r8, dword [rax + 0x10]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r15
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rax, qword [rbx + 0x100]
mov r8, qword [rax + 0x28]
test r8, r8
je 0x14009466e
lea rdx, [rbx + 0x108]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x100]
cmp qword [rax + 0x18], r13
je 0x1400948fe
mov dword [rbp + 0x70], r13d
mov dword [rbp - 0x40], r13d
mov eax, dword [rax + 0xc]
add eax, 0x14
mov rdx, rbx
mov r15d, r13d
movsxd rcx, eax
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r14, rax
test rax, rax
je 0x140094bf6
mov rcx, qword [rbx + 0x100]
cmp dword [rcx + 0xc], r13d
jbe 0x140094778
mov rdx, qword [0x14017a1b8]
xor r9d, r9d
lea rcx, [rbp - 0x20]
lea r8d, [r9 + 0x14]
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
test r15d, r15d
je 0x140094726
mov r8d, r15d
mov rdx, r14
jmp 0x14009474e
mov rcx, r14
jmp 0x1400948a9
or esi, 0xffffffff
jmp 0x140094c53
lea rdx, [0x14012b9a4]
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r15d
lea rcx, [rbp - 0x20]
add rdx, r14
call fcn.14009ef14
mov rax, qword [rbx + 0x100]
add r15d, 0x14
cmp r15d, dword [rax + 0xc]
jb 0x1400946b6
mov rax, qword [rbx + 0x100]
mov rdx, rbx
mov r12d, r13d
mov ecx, dword [rax + 0x10]
add ecx, 0x14
movsxd rcx, ecx
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r15, rax
test rax, rax
je 0x140094716
mov rcx, qword [rbx + 0x100]
cmp dword [rcx + 0x10], r13d
jbe 0x140094862
mov rdx, qword [0x14017a1b8]
and dword [rsp + 0x20], esi
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rcx, [rbp - 0x38]
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
test r12d, r12d
je 0x14009480d
mov r8d, r12d
mov rdx, r15
jmp 0x140094835
lea rdx, [0x14012b9a8]
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x38]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r12d
lea rcx, [rbp - 0x38]
add rdx, r15
call fcn.14009ef14
mov rax, qword [rbx + 0x100]
add r12d, 0x14
cmp r12d, dword [rax + 0x10]
jb 0x1400947ae
xor r13d, r13d
mov r10, qword [rbx + 0x100]
lea rax, [rbx + 0x108]
lea r9, [rbp + 0x70]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x40]
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], rax
mov r8, r14
mov rdx, r10
mov rcx, rbx
mov qword [rsp + 0x20], r15
call qword [r10 + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
je 0x1400948b4
mov rdx, rbx
mov rcx, r14
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rcx, r15
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
jmp 0x140094bf6
cmp dword [rbp + 0x70], r13d
je 0x1400948d9
mov rax, qword [rbx + 0x100]
xor edx, edx
mov rcx, r14
movsxd r8, dword [rax + 0xc]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r14
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
cmp dword [rbp - 0x40], r13d
je 0x1400948fe
mov rax, qword [rbx + 0x100]
xor edx, edx
mov rcx, r15
movsxd r8, dword [rax + 0x10]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r15
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rax, qword [rbx + 0x180]
mov r8, qword [rax + 0x20]
test r8, r8
je 0x14009491b
lea rdx, [rbx + 0x190]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x180]
cmp qword [rax + 0x10], r13
je 0x140094a51
mov dword [rbp + 0x70], r13d
mov eax, dword [rax + 0xc]
mov rdx, rbx
add eax, 0x14
mov r15d, r13d
movsxd rcx, eax
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r14, rax
test rax, rax
je 0x140094bf6
mov rcx, qword [rbx + 0x180]
cmp dword [rcx + 0xc], r13d
jbe 0x140094a11
mov rdx, qword [0x14017a1b8]
xor r9d, r9d
lea rcx, [rbp - 0x20]
lea r8d, [r9 + 0x14]
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
test r15d, r15d
je 0x1400949bf
mov r8d, r15d
mov rdx, r14
jmp 0x1400949e7
lea rdx, [0x14012b9ac]
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r15d
lea rcx, [rbp - 0x20]
add rdx, r14
call fcn.14009ef14
mov rax, qword [rbx + 0x180]
add r15d, 0x14
cmp r15d, dword [rax + 0xc]
jb 0x14009495f
mov rax, qword [rbx + 0x180]
lea r9, [rbx + 0x190]
lea r8, [rbp + 0x70]
mov rdx, r14
mov rcx, rbx
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
cmp dword [rbp + 0x70], r13d
je 0x140094a51
mov rax, qword [rbx + 0x180]
xor edx, edx
mov rcx, r14
movsxd r8, dword [rax + 0xc]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r14
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rax, qword [rbx + 0x110]
mov r8, qword [rax + 0x20]
test r8, r8
je 0x140094a6e
lea rdx, [rbx + 0x120]
mov rcx, rbx
call r8
mov rax, qword [rbx + 0x110]
cmp qword [rax + 0x10], r13
je 0x140094ba4
mov dword [rbp + 0x70], r13d
mov eax, dword [rax + 0xc]
mov rdx, rbx
add eax, 0x14
mov r15d, r13d
movsxd rcx, eax
call qword [rbx + reloc.OLEAUT32.dll_VariantClear]
mov r14, rax
test rax, rax
je 0x140094bf6
mov rcx, qword [rbx + 0x110]
cmp dword [rcx + 0xc], r13d
jbe 0x140094b64
mov rdx, qword [0x14017a1b8]
xor r9d, r9d
lea rcx, [rbp - 0x20]
lea r8d, [r9 + 0x14]
mov dword [rsp + 0x20], r13d
call fcn.14009ee14
mov r8d, dword [rdi + 0xa0]
mov rdx, qword [rdi + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rdx, [rdi + 0x20]
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
test r15d, r15d
je 0x140094b12
mov r8d, r15d
mov rdx, r14
jmp 0x140094b3a
lea rdx, [0x14012b9b0]
mov r8d, 1
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov rcx, qword [rbp - 0x20]
xor r9d, r9d
call qword [sym.imp.bcrypt.dll_BCryptHashData]
mov edx, r15d
lea rcx, [rbp - 0x20]
add rdx, r14
call fcn.14009ef14
mov rax, qword [rbx + 0x110]
add r15d, 0x14
cmp r15d, dword [rax + 0xc]
jb 0x140094ab2
mov rax, qword [rbx + 0x110]
lea r9, [rbx + 0x120]
lea r8, [rbp + 0x70]
mov rdx, r14
mov rcx, rbx
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
cmp dword [rbp + 0x70], r13d
je 0x140094ba4
mov rax, qword [rbx + 0x110]
xor edx, edx
mov rcx, r14
movsxd r8, dword [rax + 0xc]
call qword [sym.imp.msvcrt.dll_memset]
mov rdx, rbx
mov rcx, r14
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov rax, qword [rbx + 0x198]
test rax, rax
je 0x140094bcb
mov r9, qword [rax + 0x28]
test r9, r9
je 0x140094bcb
lea r8, [rbx + 0x1a0]
mov edx, 1
mov rcx, rbx
call r9
mov rax, qword [rbx + 0x198]
test rax, rax
je 0x140094bfd
mov r9, qword [rax + 0x10]
test r9, r9
je 0x140094bfd
lea r8, [rbx + 0x1a0]
mov edx, 1
mov rcx, rbx
call r9
test eax, eax
je 0x140094bfd
mov esi, 0xfffffffb
jmp 0x140094c53
mov rax, qword [rbx + 0x128]
test rax, rax
je 0x140094c21
mov r9, qword [rax + 0x28]
test r9, r9
je 0x140094c21
lea r8, [rbx + 0x130]
xor edx, edx
mov rcx, rbx
call r9
mov rax, qword [rbx + 0x128]
test rax, rax
je 0x140094c53
mov r9, qword [rax + 0x10]
test r9, r9
je 0x140094c53
lea r8, [rbx + 0x130]
xor edx, edx
mov rcx, rbx
call r9
mov ecx, esi
mov esi, 0xfffffffb
test eax, eax
cmovne ecx, esi
mov esi, ecx
mov rcx, qword [rdi + 0x58]
call fcn.14009fdf4
mov rcx, qword [rdi + 0x60]
and qword [rdi + 0x58], 0
call fcn.14009fdf4
mov rcx, qword [rdi + 0x68]
and qword [rdi + 0x60], 0
call fcn.14009fdf4
mov rcx, qword [rdi + 0x70]
and qword [rdi + 0x68], 0
call fcn.14009fdf4
mov rcx, qword [rdi + 8]
and qword [rdi + 0x70], 0
and qword [rdi + 0x50], 0
test rcx, rcx
je 0x140094ca4
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
and qword [rdi + 8], 0
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140094cb8
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
and qword [rdi + 0x10], 0
mov rcx, qword [rdi + 0x88]
test rcx, rcx
je 0x140094cd2
mov rdx, rbx
call qword [rbx + reloc.OLEAUT32.dll_SafeArrayGetElement]
and qword [rdi + 0x88], 0
and dword [rdi], 0
mov eax, esi
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret