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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov esi, dword [0x7ed96c]
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
call sym._DSA_get0_engine
mov dword [esp + 4], esi
mov dword [esp], eax
call sym._ENGINE_get_ex_data
mov dword [esp + 4], str.Called_CAPI_dsa_do_sign___n
mov dword [esp], eax
call sym._CAPI_trace
mov eax, dword [0x7ed964]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._DSA_get_ex_data
test eax, eax
je 0x5e6860
cmp dword [esp + 0x84], 0x14
jne 0x5e6780
mov ebx, eax
lea eax, [esp + 0x24]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8004
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
sub esp, 0x14
test eax, eax
je 0x5e67d0
mov eax, dword [esp + 0x80]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
sub esp, 0x10
test eax, eax
jne 0x5e64b0
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e641e
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
lea esi, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x10], 0x403
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x67
xor ebx, ebx
mov dword [esp + 4], 0x72
call sym._ERR_put_error
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 8], 0x83b39d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xa
mov dword [esp], esi
call sym._BIO_snprintf
mov dword [esp + 8], esi
mov dword [esp + 4], str.Error_code_0x
mov dword [esp], 2
call sym._ERR_add_error_data
mov dword [esp + 4], 0x28
mov dword [esp], esi
call sym._OPENSSL_cleanse
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
sub esp, 4
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x28]
lea esi, [esp + 0x38]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x28], 0x28
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov eax, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptSignHashW]
sub esp, 0x18
test eax, eax
je 0x5e66e0
call sym._BN_new
mov edi, eax
call sym._BN_new
test edi, edi
mov ebp, eax
je 0x5e6760
test eax, eax
je 0x5e6760
movzx eax, byte [esp + 0x38]
movzx edx, byte [esp + 0x4b]
mov byte [esp + 0x4b], al
mov byte [esp + 0x38], dl
movzx eax, byte [esp + 0x39]
movzx edx, byte [esp + 0x4a]
mov byte [esp + 0x4a], al
mov byte [esp + 0x39], dl
movzx eax, byte [esp + 0x3a]
movzx edx, byte [esp + 0x49]
mov byte [esp + 0x49], al
mov byte [esp + 0x3a], dl
movzx eax, byte [esp + 0x3b]
movzx edx, byte [esp + 0x48]
mov byte [esp + 0x48], al
mov byte [esp + 0x3b], dl
movzx eax, byte [esp + 0x3c]
movzx edx, byte [esp + 0x47]
mov byte [esp + 0x47], al
mov byte [esp + 0x3c], dl
movzx eax, byte [esp + 0x3d]
movzx edx, byte [esp + 0x46]
mov byte [esp + 0x46], al
mov byte [esp + 0x3d], dl
movzx eax, byte [esp + 0x3e]
movzx edx, byte [esp + 0x45]
mov byte [esp + 0x45], al
mov byte [esp + 0x3e], dl
movzx eax, byte [esp + 0x3f]
movzx edx, byte [esp + 0x44]
mov byte [esp + 0x44], al
mov byte [esp + 0x3f], dl
movzx eax, byte [esp + 0x40]
movzx edx, byte [esp + 0x43]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x14
mov dword [esp], esi
mov byte [esp + 0x40], dl
mov byte [esp + 0x43], al
movzx edx, byte [esp + 0x42]
movzx eax, byte [esp + 0x41]
mov byte [esp + 0x41], dl
mov byte [esp + 0x42], al
call sym._BN_bin2bn
test eax, eax
je 0x5e6760
movzx eax, byte [esp + 0x4c]
movzx edx, byte [esp + 0x5f]
mov byte [esp + 0x5f], al
mov byte [esp + 0x4c], dl
movzx eax, byte [esp + 0x4d]
movzx edx, byte [esp + 0x5e]
mov byte [esp + 0x5e], al
mov byte [esp + 0x4d], dl
movzx eax, byte [esp + 0x4e]
movzx edx, byte [esp + 0x5d]
mov byte [esp + 0x5d], al
mov byte [esp + 0x4e], dl
movzx eax, byte [esp + 0x4f]
movzx edx, byte [esp + 0x5c]
mov byte [esp + 0x5c], al
mov byte [esp + 0x4f], dl
movzx eax, byte [esp + 0x50]
movzx edx, byte [esp + 0x5b]
mov byte [esp + 0x5b], al
mov byte [esp + 0x50], dl
movzx eax, byte [esp + 0x51]
movzx edx, byte [esp + 0x5a]
mov byte [esp + 0x5a], al
mov byte [esp + 0x51], dl
movzx eax, byte [esp + 0x52]
movzx edx, byte [esp + 0x59]
mov byte [esp + 0x59], al
mov byte [esp + 0x52], dl
movzx eax, byte [esp + 0x53]
movzx edx, byte [esp + 0x58]
mov byte [esp + 0x58], al
mov byte [esp + 0x53], dl
movzx eax, byte [esp + 0x54]
movzx edx, byte [esp + 0x57]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x14
mov byte [esp + 0x57], al
movzx eax, byte [esp + 0x55]
mov byte [esp + 0x54], dl
movzx edx, byte [esp + 0x56]
mov byte [esp + 0x56], al
lea eax, [esp + 0x4c]
mov byte [esp + 0x55], dl
mov dword [esp], eax
call sym._BN_bin2bn
test eax, eax
je 0x5e6760
call sym._DSA_SIG_new
test eax, eax
mov ebx, eax
je 0x5e6760
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._DSA_SIG_set0
jmp 0x5e6486
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e66f3
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
lea ebx, [esp + 0x2e]
mov dword [esp], eax
mov dword [esp + 0x10], 0x40b
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x72
mov dword [esp + 4], 0x72
call sym._ERR_put_error
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x83b39d
mov dword [esp + 4], 0xa
call sym._BIO_snprintf
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Error_code_0x
xor ebx, ebx
mov dword [esp], 2
call sym._ERR_add_error_data
jmp 0x5e6486
mov dword [esp], edi
xor ebx, ebx
call sym._BN_free
mov dword [esp], ebp
call sym._BN_free
jmp 0x5e6486
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e6793
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp], eax
mov dword [esp + 0x10], 0x3f6
xor ebx, ebx
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x76
mov dword [esp + 4], 0x72
call sym._ERR_put_error
add esp, 0x6c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x9475b4]
test eax, eax
je 0x5e6850
lea ebx, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x10], 0x3fc
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x64
mov dword [esp + 4], 0x72
call sym._ERR_put_error
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x83b39d
mov dword [esp + 4], 0xa
call sym._BIO_snprintf
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Error_code_0x
xor ebx, ebx
mov dword [esp], 2
call sym._ERR_add_error_data
jmp 0x5e64a6
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
jmp 0x5e67d9
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e6873
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov eax, dword [0x9475b4]
mov dword [esp + 0x10], 0x3f1
xor ebx, ebx
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x66
mov dword [esp + 4], 0x72
mov dword [esp], eax
call sym._ERR_put_error
jmp 0x5e64a6