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

Disassembly:
mov eax, 0x64
call fcn.10228380
mov eax, dword [0x1033b254]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x74]
push ebx
mov ebx, dword [esp + 0x70]
push ebp
mov ebp, dword [esp + 0x70]
push esi
push edi
mov edi, dword [esp + 0x80]
xor esi, esi
push ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], eax
call fcn.100a0c90
push edi
push ebx
mov dword [esp + 0x3c], eax
call sym.libcrypto_3.dll_X509_check_private_key
add esp, 0xc
test eax, eax
jne 0x100a3144
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x159
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push esi
push 0x88
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.1022836f
add esp, 0x64
ret
push ebp
call fcn.100a49e0
mov ebp, eax
add esp, 4
mov dword [esp + 0x38], ebp
test ebp, ebp
je 0x100a39f4
call fcn.10098720
push eax
call sym.libcrypto_3.dll_ASN1_item_new
mov esi, eax
add esp, 4
test esi, esi
jne 0x100a3194
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x161
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x8000d
jmp 0x100a39ea
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebx
call sym.libcrypto_3.dll_X509_check_purpose
push ebx
call sym.libcrypto_3.dll_X509_up_ref
push edi
call sym.libcrypto_3.dll_EVP_PKEY_up_ref
mov eax, dword [esp + 0x44]
add esp, 0x14
mov dword [esi + 0x2c], eax
mov dword [esi + 0x20], edi
mov dword [esi + 0x1c], ebx
call sym.libcrypto_3.dll_EVP_MD_CTX_new
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 0
test eax, eax
jne 0x100a31f2
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x171
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x80006
jmp 0x100a39ea
test dword [esp + 0x88], 0x10000
je 0x100a3219
mov dword [esi], 3
cmp dword [ebp], 3
jge 0x100a3212
mov dword [ebp], 3
mov edi, 1
jmp 0x100a3221
xor edi, edi
mov dword [esi], 1
mov ebx, dword [esi + 4]
mov eax, edi
sub eax, 0
je 0x100a326e
sub eax, 1
je 0x100a3255
call sym.libcrypto_3.dll_ERR_new
push str.ossl_cms_set1_SignerIdentifier
push 0xbe
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x96
jmp 0x100a39ea
push dword [esp + 0x14]
lea eax, [ebx + 4]
push eax
call fcn.100a0e50
add esp, 8
test eax, eax
jne 0x100a3286
jmp 0x100a39f4
push dword [esp + 0x14]
lea eax, [ebx + 4]
push eax
call fcn.100a0d90
add esp, 8
test eax, eax
je 0x100a39f4
mov dword [ebx], edi
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x100a3335
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push eax
push ebx
call sym.libcrypto_3.dll_EVP_PKEY_get_default_digest_nid
add esp, 8
test eax, eax
jg 0x100a32e3
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x186
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push ebx
call sym.libcrypto_3.dll_EVP_PKEY_get_id
push eax
push str.pkey_nid_d
push 0x80
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x20
jmp 0x100a39f4
push dword [esp + 0x2c]
call sym.libcrypto_3.dll_OBJ_nid2sn
push eax
call sym.libcrypto_3.dll_EVP_get_digestbyname
mov ebx, eax
add esp, 8
mov dword [esp + 0x18], ebx
test ebx, ebx
jne 0x100a3335
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x18c
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push dword [esp + 0x38]
push str.default_md_nid_d
push 0x80
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x1c
jmp 0x100a39f4
push ebx
push dword [esi + 8]
call sym.libcrypto_3.dll_X509_ALGOR_set_md
push dword [ebp + 4]
xor edi, edi
call sym.libcrypto_3.dll_OPENSSL_sk_num
add esp, 0xc
test eax, eax
jle 0x100a339c
nop
push edi
push dword [ebp + 4]
call sym.libcrypto_3.dll_OPENSSL_sk_value
push eax
push 0
lea eax, [esp + 0x2c]
push 0
push eax
call sym.libcrypto_3.dll_X509_ALGOR_get0
push 0
push dword [esp + 0x38]
lea eax, [esp + 0x5c]
push 0x32
push eax
call sym.libcrypto_3.dll_OBJ_obj2txt
lea eax, [esp + 0x64]
push eax
push ebx
call sym.libcrypto_3.dll_EVP_MD_is_a
add esp, 0x30
test eax, eax
jne 0x100a339c
push dword [ebp + 4]
inc edi
call sym.libcrypto_3.dll_OPENSSL_sk_num
add esp, 4
cmp edi, eax
jl 0x100a3350
push dword [ebp + 4]
call sym.libcrypto_3.dll_OPENSSL_sk_num
add esp, 4
cmp edi, eax
jne 0x100a3416
call sym.libcrypto_3.dll_X509_ALGOR_new
mov edi, eax
test edi, edi
jne 0x100a33ca
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1a2
jmp 0x100a317e
push ebx
push edi
call sym.libcrypto_3.dll_X509_ALGOR_set_md
push edi
push dword [ebp + 4]
call sym.libcrypto_3.dll_OPENSSL_sk_push
add esp, 0x10
test eax, eax
jne 0x100a3416
push edi
call sym.libcrypto_3.dll_X509_ALGOR_free
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1a8
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x8000f
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x1c
jmp 0x100a39f4
mov eax, dword [esp + 0x88]
mov edi, eax
and edi, 0x40000
mov dword [esp + 0x1c], edi
jne 0x100a347d
push 0
push esi
call fcn.100a4750
add esp, 8
test eax, eax
jne 0x100a3476
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1ae
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push dword [esp + 0x30]
call sym.libcrypto_3.dll_EVP_PKEY_get_id
push eax
push str.pkey_nid_d
push 0xc3
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x20
jmp 0x100a39f4
mov eax, dword [esp + 0x88]
mov ecx, eax
and ecx, 0x100
mov dword [esp + 0x34], ecx
jne 0x100a38b1
cmp dword [esi + 0xc], 0
jne 0x100a34bc
call sym.libcrypto_3.dll_OPENSSL_sk_new_null
mov dword [esi + 0xc], eax
test eax, eax
jne 0x100a34b5
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1ba
jmp 0x100a39d9
mov eax, dword [esp + 0x88]
test eax, 0x200
jne 0x100a3570
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
call sym.libcrypto_3.dll_CMS_add_standard_smimecap
mov ebx, dword [esp + 0x14]
mov edi, eax
add esp, 4
test edi, edi
je 0x100a352e
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
push ebx
call sym.libcrypto_3.dll_i2d_X509_ALGORS
add esp, 8
test eax, eax
jg 0x100a3504
xor edi, edi
jmp 0x100a352e
push eax
push dword [esp + 0x14]
push 0x10
push 0xa7
push esi
call sym.libcrypto_3.dll_CMS_signed_add1_attr_by_NID
push 0x467
push str.cryptocmscms_sd.c
push dword [esp + 0x2c]
mov edi, eax
call sym.libcrypto_3.dll_CRYPTO_free
add esp, 0x20
push sym.libcrypto_3.dll_X509_ALGOR_free
push ebx
call sym.libcrypto_3.dll_OPENSSL_sk_pop_free
add esp, 8
test edi, edi
jne 0x100a3565
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1c7
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x8002e
jmp 0x100a39ea
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
test eax, 0x100000
je 0x100a3747
test ebx, ebx
je 0x100a366e
push 0x10284b98
push ebx
call sym.libcrypto_3.dll_EVP_MD_is_a
add esp, 8
test eax, eax
jne 0x100a366e
push 1
push eax
push dword [esp + 0x1c]
push ebx
call sym.libcrypto_3.dll_OSSL_ESS_signing_cert_v2_new_init
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x100a39f4
push 0
push ebp
call sym.libcrypto_3.dll_i2d_ESS_SIGNING_CERT_V2
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
jle 0x100a3661
push 0x13d
push str.cryptocmscms_sd.c
push eax
call sym.libcrypto_3.dll_CRYPTO_malloc
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100a3661
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edi
push eax
push ebp
call sym.libcrypto_3.dll_i2d_ESS_SIGNING_CERT_V2
add esp, 8
call sym.libcrypto_3.dll_ASN1_STRING_new
mov ebx, eax
test ebx, ebx
je 0x100a3648
push dword [esp + 0x28]
push edi
push ebx
call sym.libcrypto_3.dll_ASN1_STRING_set
add esp, 0xc
test eax, eax
je 0x100a3648
push 0x147
push str.cryptocmscms_sd.c
push edi
call sym.libcrypto_3.dll_CRYPTO_free
push 0xffffffffffffffff
push ebx
push 0x10
push 0x43e
push esi
call sym.libcrypto_3.dll_CMS_signed_add1_attr_by_NID
push ebx
mov edi, eax
call sym.libcrypto_3.dll_ASN1_STRING_free
add esp, 0x24
push ebp
call sym.libcrypto_3.dll_ESS_SIGNING_CERT_V2_free
jmp 0x100a3735
push ebx
call sym.libcrypto_3.dll_ASN1_STRING_free
push 0x144
push str.cryptocmscms_sd.c
push edi
call sym.libcrypto_3.dll_CRYPTO_free
add esp, 0x10
push ebp
xor edi, edi
call sym.libcrypto_3.dll_ESS_SIGNING_CERT_V2_free
jmp 0x100a3735
push 1
push 0
push dword [esp + 0x1c]
call sym.libcrypto_3.dll_OSSL_ESS_signing_cert_new_init
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x100a39f4
push 0
push ebp
call sym.libcrypto_3.dll_i2d_ESS_SIGNING_CERT
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jle 0x100a372d
push 0x124
push str.cryptocmscms_sd.c
push eax
call sym.libcrypto_3.dll_CRYPTO_malloc
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100a372d
lea eax, [esp + 0x28]
mov dword [esp + 0x28], edi
push eax
push ebp
call sym.libcrypto_3.dll_i2d_ESS_SIGNING_CERT
add esp, 8
call sym.libcrypto_3.dll_ASN1_STRING_new
mov ebx, eax
test ebx, ebx
je 0x100a3714
push dword [esp + 0x10]
push edi
push ebx
call sym.libcrypto_3.dll_ASN1_STRING_set
add esp, 0xc
test eax, eax
je 0x100a3714
push 0x12e
push str.cryptocmscms_sd.c
push edi
call sym.libcrypto_3.dll_CRYPTO_free
push 0xffffffffffffffff
push ebx
push 0x10
push 0xdf
push esi
call sym.libcrypto_3.dll_CMS_signed_add1_attr_by_NID
push ebx
mov edi, eax
call sym.libcrypto_3.dll_ASN1_STRING_free
add esp, 0x24
jmp 0x100a372f
push ebx
call sym.libcrypto_3.dll_ASN1_STRING_free
push 0x12b
push str.cryptocmscms_sd.c
push edi
call sym.libcrypto_3.dll_CRYPTO_free
add esp, 0x10
xor edi, edi
push ebp
call sym.libcrypto_3.dll_ESS_SIGNING_CERT_free
add esp, 4
test edi, edi
je 0x100a39f4
mov eax, dword [esp + 0x88]
test eax, 0x8000
je 0x100a38ad
mov ebp, dword [esp + 0x20]
push dword [ebp]
call sym.libcrypto_3.dll_OBJ_obj2nid
add esp, 4
cmp eax, 0x16
je 0x100a3806
call sym.libcrypto_3.dll_ERR_new
push str.cms_get0_signed
push 0x1e
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x6c
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x18
xor ebp, ebp
push ebp
xor ebx, ebx
call sym.libcrypto_3.dll_OPENSSL_sk_num
add esp, 4
test eax, eax
jle 0x100a37e1
nop
push ebx
push ebp
call sym.libcrypto_3.dll_OPENSSL_sk_value
mov edi, eax
add esp, 8
cmp edi, esi
je 0x100a37d3
push edi
call sym.libcrypto_3.dll_CMS_signed_get_attr_count
add esp, 4
test eax, eax
js 0x100a37d3
mov eax, dword [edi + 8]
push dword [eax]
mov eax, dword [esi + 8]
push dword [eax]
call sym.libcrypto_3.dll_OBJ_cmp
add esp, 8
test eax, eax
je 0x100a3815
push ebp
inc ebx
call sym.libcrypto_3.dll_OPENSSL_sk_num
add esp, 4
cmp ebx, eax
jl 0x100a37a0
call sym.libcrypto_3.dll_ERR_new
push str.cms_copy_messageDigest
push 0xab
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x83
jmp 0x100a39ea
mov ebp, dword [ebp + 4]
test ebp, ebp
je 0x100a378e
mov ebp, dword [ebp + 0x14]
jmp 0x100a3790
push 4
push 0xfffffffffffffffd
push 0x33
call sym.libcrypto_3.dll_OBJ_nid2obj
add esp, 4
push eax
push edi
call sym.libcrypto_3.dll_CMS_signed_get0_data_by_OBJ
add esp, 0x10
test eax, eax
jne 0x100a3853
call sym.libcrypto_3.dll_ERR_new
push str.cms_copy_messageDigest
push 0xa0
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x72
jmp 0x100a39ea
push 0xffffffffffffffff
push eax
push 4
push 0x33
push esi
call sym.libcrypto_3.dll_CMS_signed_add1_attr_by_NID
add esp, 0x14
test eax, eax
je 0x100a39f4
mov ebx, dword [esp + 0x20]
push esi
push ebx
call fcn.100a49b0
add esp, 8
test eax, eax
je 0x100a39f4
mov eax, dword [esp + 0x88]
test eax, 0x44000
jne 0x100a38a7
push esi
call sym.libcrypto_3.dll_CMS_SignerInfo_sign
add esp, 4
test eax, eax
je 0x100a39f4
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x1c]
jmp 0x100a38b5
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
test al, 2
jne 0x100a38de
push dword [esp + 0x14]
push ebx
call sym.libcrypto_3.dll_CMS_add1_cert
add esp, 8
test eax, eax
jne 0x100a38de
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x1ee
jmp 0x100a354f
test edi, edi
je 0x100a3990
mov ebx, dword [esp + 0x30]
push ebx
call fcn.100a0c80
add esp, 4
cmp dword [esp + 0x34], 0
je 0x100a3946
push eax
push dword [esi + 0x20]
push ebx
call fcn.100a0c70
add esp, 4
push eax
call sym.libcrypto_3.dll_EVP_PKEY_CTX_new_from_pkey
add esp, 0xc
mov dword [esi + 0x28], eax
test eax, eax
je 0x100a39f4
push eax
call sym.libcrypto_3.dll_EVP_PKEY_sign_init
add esp, 4
test eax, eax
jle 0x100a39f4
mov eax, dword [esp + 0x18]
push eax
push dword [esi + 0x28]
call sym.libcrypto_3.dll_EVP_PKEY_CTX_set_signature_md
add esp, 8
test eax, eax
jle 0x100a39f4
jmp 0x100a3990
push 0
push dword [esp + 0x28]
push eax
push ebx
call fcn.100a0c70
add esp, 4
push eax
mov eax, dword [esp + 0x28]
push eax
call sym.libcrypto_3.dll_EVP_MD_get0_name
add esp, 4
lea edi, [esi + 0x28]
push eax
push edi
push dword [esi + 0x24]
call sym.libcrypto_3.dll_EVP_DigestSignInit_ex
add esp, 0x1c
test eax, eax
jg 0x100a3980
mov dword [edi], 0
jmp 0x100a39f4
push 0x400
push dword [esi + 0x24]
call sym.libcrypto_3.dll_EVP_MD_CTX_set_flags
add esp, 8
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x14]
test eax, eax
jne 0x100a39a7
call sym.libcrypto_3.dll_OPENSSL_sk_new_null
mov dword [edi + 0x14], eax
test eax, eax
je 0x100a39ca
push esi
push eax
call sym.libcrypto_3.dll_OPENSSL_sk_push
add esp, 8
test eax, eax
je 0x100a39ca
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.1022836f
add esp, 0x64
ret
call sym.libcrypto_3.dll_ERR_new
push 0x1029748c
push 0x20e
push str.cryptocmscms_sd.c
call sym.libcrypto_3.dll_ERR_set_debug
push 0
push 0x8000f
push 0x2e
call sym.libcrypto_3.dll_ERR_set_error
add esp, 0x18
call fcn.10098720
push eax
push esi
call sym.libcrypto_3.dll_ASN1_item_free
mov ecx, dword [esp + 0x78]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1022836f
add esp, 0x64
ret