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

Disassembly:
sub esp, 0x2c
push ebx
mov ebx, dword [esp + 0x3c]
push ebp
push esi
mov esi, dword [esp + 0x3c]
xor ebp, ebp
push edi
mov edi, dword [esp + 0x54]
cmp ebx, 5
jae 0x1000c9b2
push str.Data_is_too_short
push 0xfffffffffffffff6
push esi
call fcn.10013940
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, dword [edi]
test eax, eax
jne 0x1000c9c8
call sub.libcrypto_3.dll_BN_new
mov dword [edi + 0x70], eax
mov dword [edi], 2
jmp 0x1000c9d1
cmp eax, 2
jne 0x1000cedc
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
inc eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x3c], ebx
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10013ad0
add esp, 0xc
test eax, eax
je 0x1000ca14
push str.Unexpected_key_length
push 0xfffffffffffffff2
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
mov eax, dword [esp + 0x2c]
push esi
mov dword [esi + 0x64], eax
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esi + 0x60], eax
test eax, eax
jne 0x1000ca43
push str.Unable_to_allocate_memory_for_a_copy_of_the_host_key
push 0xfffffffffffffffa
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
push dword [esi + 0x64]
push dword [esp + 0x2c]
push eax
call sub.VCRUNTIME140.dll_memcpy
lea eax, [esp + 0x54]
push eax
call fcn.10002500
add esp, 0x10
test eax, eax
je 0x1000ca92
push dword [esi + 0x64]
push dword [esi + 0x60]
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0
lea eax, [esi + 0x68]
push eax
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
add esp, 0x1c
mov eax, 1
jmp 0x1000ca94
xor eax, eax
mov dword [esi + 0x78], eax
lea eax, [esp + 0x48]
push eax
call fcn.10003580
add esp, 4
test eax, eax
je 0x1000cad9
push dword [esi + 0x64]
push dword [esi + 0x60]
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0
lea eax, [esi + 0x7c]
push eax
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
add esp, 0x1c
mov eax, 1
jmp 0x1000cadb
xor eax, eax
mov dword [esi + 0x90], eax
lea eax, [esp + 0x48]
push eax
call fcn.100035d0
add esp, 4
test eax, eax
je 0x1000cb26
push dword [esi + 0x64]
push dword [esi + 0x60]
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0
lea eax, [esi + 0x94]
push eax
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
add esp, 0x1c
mov eax, 1
jmp 0x1000cb28
xor eax, eax
mov dword [esi + 0xb4], eax
lea ecx, [esi + 0x5c]
mov eax, dword [esi + 0x58]
push ecx
push dword [esi + 0x64]
push dword [esi + 0x60]
mov eax, dword [eax + 8]
push esi
call eax
add esp, 0x10
test eax, eax
je 0x1000cb5f
push str.Unable_to_initialize_hostkey_importer
push 0xfffffffffffffff6
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.10013ad0
add esp, 0xc
test eax, eax
jne 0x1000c9fd
cmp dword [esp + 0x14], 0x20
je 0x1000cb9c
push str.Unexpected_curve25519_server_public_key_length
push 0xfffffffffffffff6
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
lea eax, [edi + 0x88]
push eax
lea ecx, [edi + 0x7c]
push ecx
lea eax, [esp + 0x38]
push eax
call fcn.10013ad0
add esp, 0xc
test eax, eax
je 0x1000cbcf
push str.Unexpected_curve25519_server_sig_length
push 0xfffffffffffffff6
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
push dword [esp + 0x20]
lea ebx, [edi + 0x70]
push dword [esp + 0x54]
push ebx
call fcn.10001090
add esp, 0xc
test eax, eax
je 0x1000cbfe
push str.Unable_to_create_ECDH_shared_secret
push 0xfffffffffffffffb
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
push dword [ebx]
call sub.libcrypto_3.dll_BN_num_bits
push dword [ebx]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, 5
mov dword [edi + 0x84], eax
call sub.libcrypto_3.dll_BN_num_bits
add esp, 8
and eax, reloc.WS2_32.dll_getsockopt
jns 0x1000cc32
dec eax
or eax, 0xfffffff8
add eax, 1
je 0x1000cc3a
dec dword [edi + 0x84]
mov eax, dword [esi + 4]
push esi
push dword [edi + 0x84]
call eax
mov ecx, eax
add esp, 8
mov dword [edi + 0x78], ecx
test ecx, ecx
jne 0x1000cc69
push str.Unable_to_allocate_buffer_for_K
push 0xfffffffffffffffa
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
mov eax, dword [edi + 0x84]
sub eax, 4
push eax
push ecx
call fcn.10013d60
push dword [ebx]
call sub.libcrypto_3.dll_BN_num_bits
add esp, 0xc
and eax, reloc.WS2_32.dll_getsockopt
jns 0x1000cc8f
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [edi + 0x78]
add ecx, 4
test eax, eax
jne 0x1000cca1
mov byte [ecx], al
mov ecx, dword [edi + 0x78]
add ecx, 5
mov eax, dword [ebx]
push ecx
push eax
call sub.libcrypto_3.dll_BN_bn2bin
lea eax, [esp + 0x50]
push eax
mov dword [edi + 0x8c], eax
call fcn.100035d0
mov ecx, dword [esi + 0xf0]
lea ebx, [edi + 0x10]
add esp, 0xc
test ecx, ecx
je 0x1000cd1f
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000ccd0
sub ecx, edx
lea eax, [ecx - 2]
push eax
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x58]
call sub.libcrypto_3.dll_EVP_DigestUpdate
mov edx, dword [esi + 0xf0]
add esp, 0x14
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000cd01
sub ecx, dword [esp + 0x24]
lea eax, [ecx - 2]
push eax
push edx
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000cd46
push 0x19
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x58]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x19
push str.SSH_2.0_libssh2_1.9.0_DEV
push dword [esp + 0x64]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x20
mov ecx, dword [esi + 0xb8]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000cd50
sub ecx, edx
push ecx
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x58]
call sub.libcrypto_3.dll_EVP_DigestUpdate
mov edx, dword [esi + 0xb8]
add esp, 0x14
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000cd80
sub ecx, dword [esp + 0x24]
push ecx
push edx
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0xf8]
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x64]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0xf8]
push dword [esi + 0xf4]
push dword [esp + 0x70]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0xc0]
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x84]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x40
push dword [esi + 0xc0]
push dword [esi + 0xbc]
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x64]
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x64]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x64]
push dword [esi + 0x60]
push dword [esp + 0x70]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x84]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x40
push 0x20
push dword [esp + 0x50]
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esp + 0x20]
push ebx
call fcn.10013d60
push 4
push ebx
push dword [esp + 0x64]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esp + 0x34]
push dword [esp + 0x44]
push dword [esp + 0x70]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [edi + 0x84]
push dword [edi + 0x78]
push dword [esp + 0x7c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0
push ebx
push dword [esp + 0x88]
call sub.libcrypto_3.dll_EVP_DigestFinal
add esp, 0x44
push dword [esp + 0x48]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov eax, dword [esi + 0x58]
lea ecx, [esi + 0x5c]
push ecx
push 0x20
push ebx
push dword [edi + 0x88]
push dword [edi + 0x7c]
push esi
mov eax, dword [eax + 0x14]
call eax
add esp, 0x1c
test eax, eax
je 0x1000cece
push str.Unable_to_verify_hostkey_signature
push 0xfffffffffffffff5
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
lea ecx, [edi + 0x50]
mov dword [edi], 3
mov byte [ecx], 0x15
jmp 0x1000cee4
lea ecx, [edi + 0x50]
cmp eax, 3
jne 0x1000cf1b
push 0
push 0
push 1
push ecx
push esi
call fcn.1001f6b0
add esp, 0x14
cmp eax, 0xffffffdb
je 0x1000cf49
test eax, eax
je 0x1000cf13
push str.Unable_to_send_NEWKEYS_message
push eax
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
mov dword [edi], 5
jmp 0x1000cf24
cmp eax, 5
jne 0x1000d80b
lea eax, [edi + 0x90]
push eax
push 0
push 0
push 0
lea eax, [edi + 0x5c]
push eax
lea ebx, [edi + 0xc]
push ebx
push 0x15
push esi
call fcn.10014f60
add esp, 0x20
cmp eax, 0xffffffdb
jne 0x1000cf56
pop edi
pop esi
pop ebp
mov eax, 0xffffffdb
pop ebx
add esp, 0x2c
ret
test eax, eax
je 0x1000cf70
push str.Timed_out_waiting_for_NEWKEYS
push eax
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
or dword [esi + 0x34], 2
mov eax, dword [esi + 0xc]
push esi
push dword [ebx]
call eax
add esp, 8
cmp dword [esi + 0x48], ebp
jne 0x1000cfc3
mov eax, dword [esi + 4]
push esi
push 0x20
call eax
add esp, 8
mov dword [esi + 0x48], eax
test eax, eax
jne 0x1000cfad
push str.Unable_to_allxcocate_buffer_for_SHA_digest
push 0xfffffffffffffffa
push esi
call fcn.10013940
add esp, 0xc
mov ebp, eax
jmp 0x1000d80b
movups xmm0, xmmword [edi + 0x10]
movups xmmword [eax], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [eax + 0x10], xmm0
mov dword [esi + 0x4c], 0x20
mov eax, dword [esi + 0xfc]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1000cfdd
lea eax, [esi + 0x100]
push eax
push esi
call ecx
add esp, 8
mov eax, dword [esi + 0xfc]
cmp dword [eax + 0x18], ebp
je 0x1000d254
mov dword [esp + 0x28], ebp
xor ebx, ebx
mov dword [esp + 0x2c], ebp
mov eax, dword [eax + 0xc]
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x1000d338
mov eax, dword [esi + 0xfc]
cmp dword [eax + 0xc], ebx
jbe 0x1000d0d9
mov ebp, dword [esp + 0x14]
lea eax, [edi + 0x84]
mov dword [esp + 0x18], eax
lea eax, [edi + 0x78]
mov dword [esp + 0x1c], eax
lea eax, [edi + 0x10]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x48]
push eax
call fcn.100035d0
mov eax, dword [esp + 0x20]
push dword [edi]
push dword [eax]
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
push dword [esp + 0x34]
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d082
push ebx
push ebp
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d0a4
push 1
push str.ACBDEF
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov eax, dword [esi + 0xfc]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [eax + 0xc]
jb 0x1000d041
mov edi, dword [esp + 0x54]
xor ebp, ebp
jmp 0x1000d0f7
lea eax, [edi + 0x10]
lea edx, [edi + 0x84]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xfc]
lea ecx, [edi + 0x78]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov eax, dword [eax + 0x10]
xor ebx, ebx
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x1000d321
mov ecx, dword [esi + 0xfc]
cmp dword [ecx + 0x10], ebx
jbe 0x1000d1c6
mov edi, dword [esp + 0x18]
mov ebp, eax
nop word [eax + eax]
lea eax, [esp + 0x10]
push eax
call fcn.100035d0
mov eax, dword [esp + 0x20]
push dword [edi]
push dword [eax]
push dword [esp + 0x1c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
push dword [esp + 0x34]
push dword [esp + 0x28]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d171
push ebx
push ebp
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d193
push 1
push 0x10027c14
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x24]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x1c]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov ecx, dword [esi + 0xfc]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [ecx + 0x10]
jb 0x1000d130
mov edi, dword [esp + 0x54]
xor ebp, ebp
mov ebx, dword [esp + 0x24]
lea eax, [esi + 0x100]
push eax
push 1
lea eax, [esp + 0x34]
push eax
push ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x28]
mov eax, dword [ecx + 0x18]
push ecx
push esi
call eax
add esp, 0x20
test eax, eax
je 0x1000d20e
mov eax, dword [esi + 0xc]
push esi
push dword [esp + 0x18]
call eax
mov eax, dword [esi + 0xc]
push esi
push ebx
call eax
add esp, 0x10
mov ebp, 0xfffffffb
jmp 0x1000d80b
cmp dword [esp + 0x28], 0
je 0x1000d234
mov eax, dword [esi + 0xfc]
push dword [eax + 0xc]
push dword [esp + 0x18]
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push dword [esp + 0x20]
call eax
add esp, 0x10
cmp dword [esp + 0x2c], 0
je 0x1000d254
mov eax, dword [esi + 0xfc]
push dword [eax + 0x10]
push ebx
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 0xc4]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x1000d26e
lea eax, [esi + 0xc8]
push eax
push esi
call ecx
add esp, 8
mov eax, dword [esi + 0xc4]
cmp dword [eax + 0x18], 0
je 0x1000d4f9
mov dword [esp + 0x28], 0
xor ebx, ebx
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0xc]
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x1000d32e
mov eax, dword [esi + 0xc4]
cmp dword [eax + 0xc], ebx
jbe 0x1000d397
mov ebp, dword [esp + 0x14]
lea eax, [edi + 0x84]
mov dword [esp + 0x20], eax
lea eax, [edi + 0x78]
mov dword [esp + 0x1c], eax
lea eax, [edi + 0x10]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], eax
nop dword [eax + eax]
lea eax, [esp + 0x48]
push eax
call fcn.100035d0
mov eax, dword [esp + 0x20]
push dword [edi]
push dword [eax]
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
push dword [esp + 0x2c]
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d340
push ebx
push ebp
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d362
mov eax, dword [esi + 0xc]
push esi
push dword [esp + 0x18]
call eax
add esp, 8
mov ebp, 0xfffffffb
jmp 0x1000d80b
or ebp, 0xffffffff
jmp 0x1000d80b
push 1
push 0x10027c18
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov eax, dword [esi + 0xc4]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [eax + 0xc]
jb 0x1000d2e0
mov edi, dword [esp + 0x54]
xor ebp, ebp
jmp 0x1000d3b5
lea eax, [edi + 0x10]
lea edx, [edi + 0x84]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc4]
lea ecx, [edi + 0x78]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov eax, dword [eax + 0x10]
xor ebx, ebx
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1000d321
mov ecx, dword [esi + 0xc4]
cmp dword [ecx + 0x10], ebx
jbe 0x1000d486
mov edi, dword [esp + 0x20]
mov ebp, eax
nop dword [eax + eax]
lea eax, [esp + 0x10]
push eax
call fcn.100035d0
mov eax, dword [esp + 0x20]
push dword [edi]
push dword [eax]
push dword [esp + 0x1c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
push dword [esp + 0x2c]
push dword [esp + 0x28]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d431
push ebx
push ebp
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d453
push 1
push 0x10027c1c
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x24]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x18]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x1c]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov ecx, dword [esi + 0xc4]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [ecx + 0x10]
jb 0x1000d3f0
mov edi, dword [esp + 0x54]
xor ebp, ebp
mov ebx, dword [esp + 0x2c]
lea eax, [esi + 0xc8]
push eax
push 0
lea eax, [esp + 0x2c]
push eax
push ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x28]
mov eax, dword [ecx + 0x18]
push ecx
push esi
call eax
add esp, 0x20
test eax, eax
jne 0x1000d1f0
cmp dword [esp + 0x28], eax
je 0x1000d4d9
mov eax, dword [esi + 0xc4]
push dword [eax + 0xc]
push dword [esp + 0x18]
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push dword [esp + 0x20]
call eax
add esp, 0x10
cmp dword [esp + 0x24], 0
je 0x1000d4f9
mov eax, dword [esi + 0xc4]
push dword [eax + 0x10]
push ebx
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 0x104]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x1000d513
lea ebx, [esi + 0x10c]
push ebx
push esi
call eax
add esp, 8
mov eax, dword [esi + 0x104]
cmp dword [eax + 0xc], 0
je 0x1000d639
mov dword [esp + 0x2c], 0
xor ebx, ebx
mov eax, dword [eax + 8]
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x1000d32e
mov ecx, dword [esi + 0x104]
cmp dword [ecx + 8], ebx
jbe 0x1000d5f9
mov ebp, eax
nop word [eax + eax]
lea eax, [esp + 0x48]
push eax
call fcn.100035d0
push dword [edi + 0x84]
push dword [edi + 0x78]
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
lea eax, [edi + 0x10]
push eax
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d5a2
push ebx
push ebp
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d5c4
push 1
push 0x10027c20
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov ecx, dword [esi + 0x104]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [ecx + 8]
jb 0x1000d560
mov eax, dword [esp + 0x20]
xor ebp, ebp
jmp 0x1000d5ff
mov ecx, dword [esi + 0x104]
lea edx, [esi + 0x10c]
push edx
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0x10
cmp dword [esp + 0x2c], 0
je 0x1000d639
mov eax, dword [esi + 0x104]
mov ebx, dword [esp + 0x20]
push dword [eax + 8]
push ebx
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 0xcc]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x1000d653
lea ebx, [esi + 0xd4]
push ebx
push esi
call eax
add esp, 8
mov eax, dword [esi + 0xcc]
cmp dword [eax + 0xc], 0
je 0x1000d779
mov dword [esp + 0x2c], 0
xor ebx, ebx
mov eax, dword [eax + 8]
add eax, 0x20
push esi
push eax
mov eax, dword [esi + 4]
call eax
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x1000d32e
mov ecx, dword [esi + 0xcc]
cmp dword [ecx + 8], ebx
jbe 0x1000d739
mov ebp, eax
nop word [eax + eax]
lea eax, [esp + 0x48]
push eax
call fcn.100035d0
push dword [edi + 0x84]
push dword [edi + 0x78]
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push 0x20
lea eax, [edi + 0x10]
push eax
push dword [esp + 0x60]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x1c
test ebx, ebx
je 0x1000d6e2
push ebx
push ebp
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0xc
jmp 0x1000d704
push 1
push 0x10027c24
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestUpdate
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [esp + 0x5c]
call sub.libcrypto_3.dll_EVP_DigestUpdate
add esp, 0x18
push 0
lea eax, [ebx + ebp]
push eax
push dword [esp + 0x50]
call sub.libcrypto_3.dll_EVP_DigestFinal
push dword [esp + 0x54]
call sub.libcrypto_3.dll_EVP_MD_CTX_free
mov ecx, dword [esi + 0xcc]
add ebx, 0x20
add esp, 0x10
cmp ebx, dword [ecx + 8]
jb 0x1000d6a0
mov eax, dword [esp + 0x20]
xor ebp, ebp
jmp 0x1000d73f
mov ecx, dword [esi + 0xcc]
lea edx, [esi + 0xd4]
push edx
lea edx, [esp + 0x30]
push edx
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0x10
cmp dword [esp + 0x2c], 0
je 0x1000d779
mov eax, dword [esi + 0xcc]
mov ebx, dword [esp + 0x20]
push dword [eax + 8]
push ebx
call fcn.10013a30
mov eax, dword [esi + 0xc]
push esi
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 0x110]
test eax, eax
je 0x1000d799
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x1000d799
lea eax, [esi + 0x114]
push eax
push 1
push esi
call ecx
add esp, 0xc
mov eax, dword [esi + 0x110]
test eax, eax
je 0x1000d7c1
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1000d7c1
lea eax, [esi + 0x114]
push eax
push 1
push esi
call ecx
add esp, 0xc
test eax, eax
jne 0x1000d204
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x1000d7e1
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x1000d7e1
lea eax, [esi + 0xdc]
push eax
push 0
push esi
call ecx
add esp, 0xc
mov eax, dword [esi + 0xd8]
test eax, eax
je 0x1000d80b
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1000d80b
lea eax, [esi + 0xdc]
push eax
push 0
push esi
call ecx
add esp, 0xc
mov ecx, 0xfffffffb
test eax, eax
cmovne ebp, ecx
push dword [edi + 0x70]
call sub.libcrypto_3.dll_BN_clear_free
mov eax, dword [edi + 0x78]
add esp, 4
mov dword [edi + 0x70], 0
test eax, eax
je 0x1000d835
push esi
push eax
mov eax, dword [esi + 0xc]
call eax
add esp, 8
mov dword [edi + 0x78], 0
mov dword [edi], 0
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret