Function at 0x402a00
Capabilities:
Create new key via cryptacquirecontext
Import public key

Disassembly:
mov r11, rsp
push rbp
push rdi
lea rbp, [r11 - 0x4f]
sub rsp, 0x98
mov rax, qword [0x004fb010]
xor rax, rsp
mov qword [rbp + 0x1f], rax
xor edi, edi
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x18], r12
lea rax, str.SHA256
mov qword [r11 - 0x20], r14
mov rbx, r8
mov qword [r11 - 0x28], r15
mov r14d, edi
mov r15, rcx
mov qword [rbp + 0xf], rdi
lea edx, [rdi + 0x7c]
mov qword [rbp + 0x17], rdi
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
mov dword [rbp - 0x19], edi
mov dword [rbp - 0x15], edi
mov qword [rbp - 9], rdi
mov qword [rbp - 0x11], rdi
mov qword [rbp - 1], rax
mov dword [rbp + 7], 8
call fcn.004036d0
lea r12, [0x004b9ba0]
mov r8d, 0x263
lea r9, str.Start_to_verify_signature_WINCNG_VERIFY___r_n
lea ecx, [rdi + 4]
lea rdx, [r12 + rax*2]
call fcn.0044a600
test r15, r15
je 0x402f3c
test rbx, rbx
je 0x402f3c
lfence
lea rax, [rbp - 0x19]
mov r9d, 0x126
mov qword [rsp + 0x38], rax
lea r8, [0x004fb3d6]
mov qword [rsp + 0x30], rdi
lea edx, [rdi + 8]
mov qword [rsp + 0x28], rdi
mov ecx, 0x10001
mov dword [rsp + 0x20], edi
call qword [sym.imp.CRYPT32.dll_CryptDecodeObjectEx]
test eax, eax
jne 0x402b15
lea edx, [rdi + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov r8d, 0x27e
lea r9, str.Failed_to_parse_public_key._Error_0x_.8X_r_n
mov dword [rsp + 0x20], eax
lea ecx, [rdi + 4]
call fcn.0044a600
jmp 0x402f3c
mov edx, dword [rbp - 0x19]
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalAlloc]
mov r14, rax
test rax, rax
je 0x402f3c
lfence
lea rax, [rbp - 0x19]
mov r9d, 0x126
mov qword [rsp + 0x38], rax
lea r8, [0x004fb3d6]
mov qword [rsp + 0x30], r14
mov edx, 8
mov qword [rsp + 0x28], rdi
mov ecx, 0x10001
mov dword [rsp + 0x20], edi
call qword [sym.imp.CRYPT32.dll_CryptDecodeObjectEx]
test eax, eax
jne 0x402ba3
lea edx, [rax + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.Failed_to_parse_public_key._Error_0x_.8X_r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x28c
call fcn.0044a600
jmp 0x402f3c
mov r9d, 1
mov dword [rsp + 0x20], edi
xor r8d, r8d
lea rcx, [rbp + 0xf]
xor edx, edx
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptAcquireContextW]
test eax, eax
jne 0x402d15
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x80090016
jne 0x402c32
mov r9d, 1
mov dword [rsp + 0x20], 8
xor r8d, r8d
lea rcx, [rbp + 0xf]
xor edx, edx
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptAcquireContextW]
test eax, eax
jne 0x402d15
lea edx, [rax + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.CryptAcquireContext_CRYPT_NEWKEYSET__failed._err0x_x._r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x2a0
call fcn.0044a600
jmp 0x402f3c
cmp eax, 2
jne 0x402cd7
lea r9d, [rax - 1]
mov dword [rsp + 0x20], 0x28
xor r8d, r8d
lea rdx, str.ASUSSIG
lea rcx, [rbp + 0xf]
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptAcquireContextW]
test eax, eax
jne 0x402d15
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x8009000f
jne 0x402d15
mov r9d, 1
mov dword [rsp + 0x20], 0x20
xor r8d, r8d
lea rdx, str.ASUSSIG
lea rcx, [rbp + 0xf]
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptAcquireContextW]
test eax, eax
jne 0x402d15
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edx, 0x7c
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
mov ebx, eax
call fcn.004036d0
lea r9, str.CryptAcquireContext_CRYPT_MACHINE_KEYSET__failed._err0x_x._r_n
mov dword [rsp + 0x20], ebx
mov ecx, 4
mov r8d, 0x2ba
lea rdx, [r12 + rax*2]
call fcn.0044a600
jmp 0x402f3c
mov edx, 0x7c
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.CryptAcquireContext_failed._err0x_x._r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x2c5
call fcn.0044a600
jmp 0x402f3c
mov rcx, qword [rbp + 0xf]
lea r9, [rbp + 0x17]
mov r8, r14
mov edx, 0x10001
call qword [sym.imp.CRYPT32.dll_CryptImportPublicKeyInfo]
test eax, eax
jne 0x402d6b
lea edx, [rax + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.CryptImportPublicKeyInfo_failed._err0x_x._r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x2d0
call fcn.0044a600
jmp 0x402f3c
mov rcx, qword [rbp + 0x17]
lea rax, [rbp - 0x15]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rdi
lea r8d, [r9 + 6]
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptExportKey]
test eax, eax
jne 0x402dcc
lea edx, [rax + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.CryptExportKey_failed._err0x_x._r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x2d9
call fcn.0044a600
jmp 0x402f3c
mov ecx, dword [rbp - 0x15]
mov qword [rsp + 0xc8], rsi
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemAlloc]
mov rsi, rax
test rax, rax
je 0x402f34
mov rcx, qword [rbp + 0x17]
lea rax, [rbp - 0x15]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rsi
lea r8d, [r9 + 6]
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptExportKey]
test eax, eax
jne 0x402e4a
lea edx, [rax + 0x7c]
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.CryptExportKey_failed._err0x_x._r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x2e5
call fcn.0044a600
jmp 0x402f2b
xor r9d, r9d
lea r8, str.Microsoft_Primitive_Provider
lea rdx, [0x004b9ec0]
lea rcx, [rbp - 9]
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
or eax, 0x10000000
jl 0x402f2b
mov rcx, qword [rbp - 9]
lea r8, [rbp - 0x11]
mov rdx, rsi
call fcn.00402660
or eax, 0x10000000
jl 0x402f2b
mov rcx, qword [rbp - 0x11]
test rcx, rcx
je 0x402f2b
mov dword [rsp + 0x30], 8
lea rdx, [rbp - 1]
mov dword [rsp + 0x28], 0x100
mov r9d, 0x20
mov r8, rbx
mov qword [rsp + 0x20], r15
call qword [sym.imp.bcrypt.dll_BCryptVerifySignature]
mov ecx, eax
or eax, 0x10000000
jl 0x402f2b
test ecx, ecx
mov edx, 0x7c
lea rcx, str.C:Usersjk_kanDesktopGerritSWMgrAsusSoftwareManagerAsusSoftwareManagerGiftBoxServiceGiftBoxServiceAluIndexVerify.cpp
je 0x402f08
call fcn.004036d0
mov rbx, rax
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
lea rdx, [r12 + rbx*2]
mov ecx, 4
lea r9, str.BCryptVerifySignature_failed._Error_0x_.8X_r_n
mov dword [rsp + 0x20], eax
mov r8d, 0x315
call fcn.0044a600
jmp 0x402f2b
mov edi, 1
call fcn.004036d0
lea r9, str.Index_verfify_success_r_n
mov r8d, 0x31e
lea ecx, [rdi + 3]
lea rdx, [r12 + rax*2]
call fcn.0044a600
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov rsi, qword [rsp + 0xc8]
mov rcx, qword [rbp - 0x11]
mov r15, qword [rsp + 0x80]
mov r12, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb8]
test rcx, rcx
je 0x402f63
call qword [sym.imp.bcrypt.dll_BCryptDestroyKey]
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x402f74
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
test r14, r14
je 0x402f82
mov rcx, r14
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov rcx, qword [rbp + 0x17]
mov r14, qword [rsp + 0x88]
test rcx, rcx
je 0x402f99
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptDestroyKey]
mov rcx, qword [rbp + 0xf]
test rcx, rcx
je 0x402faa
xor edx, edx
call qword [sym.imp.api_ms_win_security_cryptoapi_l1_1_0.dll_CryptReleaseContext]
mov eax, edi
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.00479310
add rsp, 0x98
pop rdi
pop rbp
ret