Function at 0x5e7cc0
Capabilities:
Initialize hashing via wincrypt

Disassembly:
push edi
push esi
push ebx
sub esp, 0x40
mov edi, dword [0x7ed96c]
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x50]
mov dword [esp], esi
call sym._RSA_get0_engine
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._ENGINE_get_ex_data
mov dword [esp + 4], str.Called_CAPI_rsa_sign___n
mov dword [esp], eax
call sym._CAPI_trace
mov eax, dword [0x7ed968]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._RSA_get_ex_data
test eax, eax
je 0x5e8083
cmp ebx, 0x72
mov edi, eax
je 0x5e7fb0
jle 0x5e7dd0
cmp ebx, 0x2a1
je 0x5e7fa0
cmp ebx, 0x2a2
je 0x5e7f90
cmp ebx, 0x2a0
je 0x5e7f80
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0x36]
mov dword [esp + 8], 0x83b597
mov dword [esp + 4], 0xa
mov dword [esp], ebx
call sym._BIO_snprintf
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e7d79
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp], eax
mov dword [esp + 0x10], 0x363
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x7e
mov dword [esp + 4], 0x70
call sym._ERR_put_error
mov dword [esp + 8], ebx
mov dword [esp + 4], str.NID0x
mov ebx, 0xffffffff
mov dword [esp], 2
call sym._ERR_add_error_data
add esp, 0x40
mov eax, ebx
pop ebx
pop esi
pop edi
ret
cmp ebx, 4
je 0x5e7fc0
cmp ebx, 0x40
mov eax, 0x8004
jne 0x5e7d46
mov esi, esi
lea edi, [edi]
lea edx, [esp + 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp + 0x10], edx
mov eax, dword [edi + 4]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
sub esp, 0x14
test eax, eax
je 0x5e8000
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptSetHashParam]
sub esp, 0x10
test eax, eax
jne 0x5e7ef0
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e7e66
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp + 0x10], 0x372
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x67
lea ebx, [esp + 0x36]
mov dword [esp], eax
mov dword [esp + 4], 0x70
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
mov ebx, 0xffffffff
mov dword [esp], 2
call sym._ERR_add_error_data
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
sub esp, 4
add esp, 0x40
mov eax, ebx
pop ebx
pop esi
pop edi
ret
mov dword [esp], esi
call sym._RSA_size
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptSignHashW]
sub esp, 0x18
test eax, eax
je 0x5e7fd0
mov edi, dword [esp + 0x30]
mov ecx, edi
shr ecx, 1
je 0x5e7f69
mov eax, dword [esp + 0x5c]
lea esi, [edi - 1]
lea edx, [eax + esi]
sub esi, ecx
add esi, eax
movzx ecx, byte [eax]
movzx ebx, byte [edx]
sub edx, 1
add eax, 1
mov byte [eax - 1], bl
mov byte [edx + 1], cl
cmp edx, esi
jne 0x5e7f53
mov eax, dword [esp + 0x60]
mov ebx, 1
mov dword [eax], edi
jmp 0x5e7ed1
mov eax, 0x800c
jmp 0x5e7df0
mov eax, 0x800e
jmp 0x5e7df0
mov eax, 0x800d
jmp 0x5e7df0
mov eax, 0x8008
jmp 0x5e7df0
mov eax, 0x8003
jmp 0x5e7df0
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e7fe3
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp + 0x10], 0x37a
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x72
jmp 0x5e7e7e
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e8013
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
lea ebx, [esp + 0x36]
mov dword [esp], eax
mov dword [esp + 0x10], 0x36b
mov dword [esp + 0xc], str.engines_e_capi.c
mov dword [esp + 8], 0x64
mov dword [esp + 4], 0x70
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
mov ebx, 0xffffffff
mov dword [esp], 2
call sym._ERR_add_error_data
jmp 0x5e7ee1
mov eax, dword [0x9475b4]
test eax, eax
jne 0x5e8096
call sym._ERR_get_next_error_library
mov dword [0x9475b4], eax
mov dword [esp + 0x10], 0x343
mov dword [esp + 0xc], str.engines_e_capi.c
mov ebx, 0xffffffff
mov dword [esp + 8], 0x66
mov dword [esp + 4], 0x70
mov dword [esp], eax
call sym._ERR_put_error
jmp 0x5e7ee1