Function at 0x140025c48
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
mov r11, rsp
push r14
sub rsp, 0x230
mov qword [r11 - 0x188], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 + 0x18], rdi
mov rax, qword [0x140078790]
xor rax, rsp
mov qword [rsp + 0x220], rax
xor r8d, r8d
lea rdx, str.::CreateHostKey
lea rcx, [r11 - 0x108]
call fcn.14002de00
nop
lea r8, str.beginning_of_function
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
lea rcx, [rsp + 0x48]
call fcn.1400039b8
nop
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x48]
call fcn.140009b88
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140003374
nop
lea r8, str.Host_ID_received
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
call fcn.1400290dc
xor r14d, r14d
test eax, eax
js 0x140025ef2
lea rcx, [rsp + 0xf0]
call fcn.140002fd4
nop
lea rax, vtable.CCryptBlob_struct__CRYPTOAPI_BLOB__class__heap_allocator_.0
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x128], r14
mov qword [rsp + 0x128], r14
mov dword [rsp + 0x120], r14d
lea rcx, [rsp + 0xf0]
call fcn.140028018
mov ebx, eax
test eax, eax
jns 0x140025e9c
lea r8, str.Cannot_get_TPM_data_from_registry...
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x20], 0x20
lea r9d, [r14 + 0x18]
lea r8, str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140025d98
call fcn.140007048
mov ebx, eax
jmp 0x140025d9b
mov ebx, r14d
mov rcx, qword [rsp + 0x40]
test ebx, ebx
js 0x140025e17
test rcx, rcx
je 0x140025dc1
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
test eax, eax
jne 0x140025dbc
call fcn.140007048
jmp 0x140025dc1
mov qword [rsp + 0x40], r14
lea rcx, [rsp + 0xf0]
call fcn.1400239ec
nop
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140025de9
call fcn.140009640
mov qword [rsp + 0xd0], r14
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140025dfe
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
lea rcx, [rsp + 0x130]
call fcn.14002e7a8
mov eax, ebx
jmp 0x1400262de
test rcx, rcx
je 0x140025e34
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
test eax, eax
jne 0x140025e2f
call fcn.140007048
jmp 0x140025e34
mov qword [rsp + 0x40], r14
call fcn.140026f94
mov ebx, eax
lea rcx, [rsp + 0xf0]
test eax, eax
js 0x140025e95
call fcn.1400239ec
nop
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140025e67
call fcn.140009640
mov qword [rsp + 0xd0], r14
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140025e7c
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
lea rcx, [rsp + 0x130]
call fcn.14002e7a8
mov eax, ebx
jmp 0x1400262de
call fcn.1400239ec
jmp 0x140025ef2
lea rcx, [rsp + 0xf0]
call fcn.1400239ec
nop
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140025ec4
call fcn.140009640
mov qword [rsp + 0xd0], r14
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140025ed9
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
lea rcx, [rsp + 0x130]
call fcn.14002e7a8
mov eax, ebx
jmp 0x1400262de
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x20], 0x20
mov r9d, 0x18
lea r8, str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140025f2c
call fcn.140007048
mov ebx, eax
jmp 0x140025f2f
mov ebx, r14d
mov dword [rsp + 0x20], ebx
mov r9, qword [rsp + 0xd0]
lea r8, str.Context__ls_opened_with_error_0x_X
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
test ebx, ebx
js 0x140025fbf
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140025f77
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
test eax, eax
jne 0x140025f72
call fcn.140007048
jmp 0x140025f77
mov qword [rsp + 0x38], r14
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140025f91
call fcn.140009640
mov qword [rsp + 0xd0], r14
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140025fa6
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
lea rcx, [rsp + 0x130]
call fcn.14002e7a8
mov eax, ebx
jmp 0x1400262de
mov dword [rsp + 0x20], 0x28
mov r9d, 0x18
lea r8, str.Microsoft_Enhanced_RSA_and_AES_Cryptographic_Provider
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x140025ff8
call fcn.140007048
mov ebx, eax
mov dword [rsp + 0x30], eax
jmp 0x140025fff
mov ebx, r14d
mov dword [rsp + 0x30], ebx
test ebx, ebx
jns 0x14002600a
mov ecx, ebx
call fcn.140032390
mov qword [rsp + 0x60], r14
mov qword [rsp + 0xd8], r14
lea r9, [rsp + 0xd8]
mov edx, 1
mov r8d, 0x8000000
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptGenKey]
test eax, eax
jne 0x140026060
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, 0x1fff0000
je 0x14002604d
mov ecx, eax
call fcn.140032390
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
call fcn.140032390
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x60], rax
lea r8, str.CCryptContext_created
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x78], xmm1
mov qword [rsp + 0x88], r14
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.14000ab64
lea rax, vtable.ATL::CAccessToken.0
mov qword [rsp + 0x90], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
mov qword [rsp + 0xa8], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x40]
mov edx, 8
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x140026109
lea rcx, [rsp + 0x90]
mov rax, qword [rsp + 0x90]
call qword [rax + VariantCopy]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x1a0]
call fcn.140003f94
nop
xor r9d, r9d
lea r8d, [r9 + 1]
lea rdx, [rsp + 0x1a0]
lea rcx, [rsp + 0x90]
call fcn.1400023ac
mov r8d, 0xf003f
lea rdx, [rsp + 0x1a8]
lea rcx, [rsp + 0x80]
call fcn.140005ef4
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x68]
test eax, eax
js 0x14002617b
xor r9d, r9d
mov r8, rsi
lea edx, [r9 + 1]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
test eax, eax
jne 0x14002617b
call fcn.140007048
mov r9d, 1
mov r8, rdi
lea edx, [r9 + 7]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptSetProvParam]
test eax, eax
jne 0x14002619c
call fcn.140007048
mov r9d, 2
mov r8, rdi
lea edx, [r9 + 6]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptSetProvParam]
test eax, eax
jne 0x1400261bd
call fcn.140007048
mov r9d, 4
mov r8, rdi
lea edx, [r9 + 4]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_CryptSetProvParam]
test eax, eax
jne 0x1400261df
call fcn.140007048
nop
lea rcx, [rsp + 0x1a0]
call fcn.14000501c
nop
lea rcx, [rsp + 0x90]
call fcn.140004880
nop
xor edx, edx
mov rcx, rdi
call fcn.1400331f8
mov rcx, qword [rsp + 0x70]
call fcn.140037ab4
mov rcx, qword [rsp + 0x78]
call fcn.140037ab4
mov rcx, rsi
call fcn.140037ab4
mov rcx, qword [rsp + 0x88]
call fcn.140037ab4
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140026244
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov qword [rsp + 0x60], r14
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140026266
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
test eax, eax
jne 0x140026261
call fcn.140007048
jmp 0x140026266
mov qword [rsp + 0x38], r14
lea r8, str.end_function
xor edx, edx
lea rcx, [rsp + 0x130]
call fcn.140030824
nop
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x140026297
call fcn.140009640
mov qword [rsp + 0xd0], r14
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400262ac
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x50], r14d
jmp 0x1400262b7
mov r8d, ebx
lea rdx, [0x14004ee5e]
lea rcx, [rsp + 0x130]
call fcn.140030b9c
nop
lea rcx, [rsp + 0x130]
call fcn.14002e7a8
mov eax, ebx
mov rcx, qword [rsp + 0x220]
xor rcx, rsp
call fcn.140033cb0
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop r14
ret