Function at 0x447640
Capabilities:
Hash data using sha1
Initialize hashing via wincrypt

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x88
mov r13d, dword [0x0072612c]
mov rsi, rcx
mov rcx, r8
mov r12, r8
mov ebx, edx
call sym.DSA_get0_engine
mov edx, r13d
mov rcx, rax
call sym.ENGINE_get_ex_data
lea rdx, str.Called_CAPI_dsa_do_sign___n
mov rcx, rax
call sym.CAPI_trace
mov edx, dword [0x00726124]
mov rcx, r12
call sym.DSA_get_ex_data
mov r12, rax
test rax, rax
je 0x447b60
cmp ebx, 0x14
jne 0x447930
mov rcx, qword [rax + 8]
lea rax, [rsp + 0x38]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, 0x8004
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x447ac0
xor r9d, r9d
mov rcx, qword [rsp + 0x38]
mov r8, rsi
mov edx, 2
call qword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
test eax, eax
je 0x447990
lea rax, [rsp + 0x34]
lea r13, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov edx, dword [r12 + 0x18]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x34], 0x28
mov qword [rsp + 0x20], r13
call qword [sym.imp.ADVAPI32.dll_CryptSignHashW]
test eax, eax
je 0x447a30
call sym.BN_new
mov r14, rax
call sym.BN_new
mov r15, rax
test r14, r14
je 0x4478e8
test rax, rax
je 0x4478e8
movzx eax, byte [rsp + 0x50]
movzx edx, byte [rsp + 0x63]
mov r8, r14
mov rcx, r13
mov byte [rsp + 0x50], dl
movzx edx, byte [rsp + 0x62]
mov byte [rsp + 0x63], al
movzx eax, byte [rsp + 0x51]
mov byte [rsp + 0x51], dl
movzx edx, byte [rsp + 0x61]
mov byte [rsp + 0x62], al
movzx eax, byte [rsp + 0x52]
mov byte [rsp + 0x52], dl
movzx edx, byte [rsp + 0x60]
mov byte [rsp + 0x61], al
movzx eax, byte [rsp + 0x53]
mov byte [rsp + 0x53], dl
movzx edx, byte [rsp + 0x5f]
mov byte [rsp + 0x60], al
movzx eax, byte [rsp + 0x54]
mov byte [rsp + 0x54], dl
movzx edx, byte [rsp + 0x5e]
mov byte [rsp + 0x5f], al
movzx eax, byte [rsp + 0x55]
mov byte [rsp + 0x55], dl
movzx edx, byte [rsp + 0x5d]
mov byte [rsp + 0x5e], al
movzx eax, byte [rsp + 0x56]
mov byte [rsp + 0x56], dl
movzx edx, byte [rsp + 0x5c]
mov byte [rsp + 0x5d], al
movzx eax, byte [rsp + 0x57]
mov byte [rsp + 0x57], dl
mov byte [rsp + 0x5c], al
movzx eax, byte [rsp + 0x58]
movzx edx, byte [rsp + 0x5b]
rol word [rsp + 0x59], 8
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x58], dl
mov edx, 0x14
call sym.BN_bin2bn
test rax, rax
je 0x4478e8
movzx eax, byte [rsp + 0x64]
movzx edx, byte [rsp + 0x77]
lea rcx, [rsp + 0x64]
mov r8, r15
mov byte [rsp + 0x64], dl
movzx edx, byte [rsp + 0x76]
mov byte [rsp + 0x77], al
movzx eax, byte [rsp + 0x65]
mov byte [rsp + 0x65], dl
movzx edx, byte [rsp + 0x75]
mov byte [rsp + 0x76], al
movzx eax, byte [rsp + 0x66]
mov byte [rsp + 0x66], dl
movzx edx, byte [rsp + 0x74]
mov byte [rsp + 0x75], al
movzx eax, byte [rsp + 0x67]
mov byte [rsp + 0x67], dl
movzx edx, byte [rsp + 0x73]
mov byte [rsp + 0x74], al
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0x68], dl
movzx edx, byte [rsp + 0x72]
mov byte [rsp + 0x73], al
movzx eax, byte [rsp + 0x69]
mov byte [rsp + 0x69], dl
movzx edx, byte [rsp + 0x71]
mov byte [rsp + 0x72], al
movzx eax, byte [rsp + 0x6a]
mov byte [rsp + 0x6a], dl
movzx edx, byte [rsp + 0x70]
mov byte [rsp + 0x71], al
movzx eax, byte [rsp + 0x6b]
mov byte [rsp + 0x6b], dl
mov byte [rsp + 0x70], al
movzx eax, byte [rsp + 0x6c]
movzx edx, byte [rsp + 0x6f]
rol word [rsp + 0x6d], 8
mov byte [rsp + 0x6f], al
mov byte [rsp + 0x6c], dl
mov edx, 0x14
call sym.BN_bin2bn
test rax, rax
je 0x4478e8
call sym.DSA_SIG_new
mov r12, rax
test rax, rax
je 0x4478e8
mov r8, r15
mov rdx, r14
mov rcx, rax
call sym.DSA_SIG_set0
jmp 0x4478fb
mov rcx, r14
xor r12d, r12d
call sym.BN_free
mov rcx, r15
call sym.BN_free
mov rcx, r13
mov edx, 0x28
call sym.OPENSSL_cleanse
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rax, r12
add rsp, 0x88
pop rbx
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [0x0082840c]
test r8d, r8d
je 0x447a20
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0x76
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x403
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
jmp 0x447913
mov edx, dword [0x0082840c]
test edx, edx
je 0x447b50
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
lea r13, [rsp + 0x50]
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0x67
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x410
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, [0x0075bb79]
mov edx, 0xa
mov rcx, r13
mov r9d, eax
call sym.BIO_snprintf
mov r8, r13
mov ecx, 2
lea rdx, str.Error_code_0x
call sym.ERR_add_error_data
jmp 0x4478fb
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x447940
mov eax, dword [0x0082840c]
test eax, eax
je 0x447bb8
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
lea rbx, [rsp + 0x46]
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0x72
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x418
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, [0x0075bb79]
mov edx, 0xa
mov rcx, rbx
mov r9d, eax
call sym.BIO_snprintf
mov r8, rbx
mov ecx, 2
lea rdx, str.Error_code_0x
call sym.ERR_add_error_data
jmp 0x4478fb
mov ecx, dword [0x0082840c]
test ecx, ecx
je 0x447bd0
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
xor r12d, r12d
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
lea rbx, [rsp + 0x50]
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0x64
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x409
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, [0x0075bb79]
mov edx, 0xa
mov rcx, rbx
mov r9d, eax
call sym.BIO_snprintf
mov r8, rbx
mov ecx, 2
lea rdx, str.Error_code_0x
call sym.ERR_add_error_data
jmp 0x447913
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x44799e
mov r9d, dword [0x0082840c]
test r9d, r9d
je 0x447be0
call sym.ERR_new
lea r8, str.ERR_CAPI_error
mov edx, 0x5c
lea rcx, str..._openssl_3.1.1_engines_e_capi_err.c
call sym.ERR_set_debug
mov ecx, dword [0x0082840c]
xor r8d, r8d
mov edx, 0x66
call sym.ERR_set_error
xor r8d, r8d
mov edx, 0x3fe
lea rcx, str..._openssl_3.1.1_engines_e_capi.c
call sym.ERR_set_debug
jmp 0x447913
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x447a3e
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x447ace
call sym.ERR_get_next_error_library
mov dword [0x0082840c], eax
jmp 0x447b6c