Function at 0x10026f30
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
push ebp
lea ebp, [esp - 0xac]
sub esp, 0xac
push 0xffffffffffffffff
push 0x1023e7d5
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x1030fff4]
xor eax, ebp
mov dword [ebp + 0xa8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp + 0xb4]
mov ecx, dword [ebp + 0xc4]
mov esi, dword [ebp + 0xc8]
mov ebx, dword [ebp + 0xd0]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0xcc]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x11]
push eax
push 0
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x28], ebx
call fcn.1000cc42
mov eax, dword [ebx]
and dword [ebx], 0
test eax, eax
je 0x10026fb5
push eax
mov ecx, ebx
call fcn.1000d83d
lea eax, [ebp - 0x11]
xor ebx, ebx
push eax
push ebx
mov ecx, esi
call fcn.1000cc42
push 0x24
call fcn.1014ecdb
pop ecx
mov edx, eax
xor eax, eax
push 9
pop ecx
mov edi, edx
rep stosd dword es:[edi], eax
mov ecx, edx
call fcn.10024df3
mov dword [ebp - 0x10], eax
push ebx
push ebx
push 0x102614cc
push eax
mov dword [ebp - 4], ebx
call sub.bcrypt.dll_BCryptOpenAlgorithmProvider
mov esi, eax
test esi, esi
js 0x100275cf
push ebx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x2c], ebx
push eax
push 4
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x38], ebx
push eax
mov eax, dword [ebp - 0x10]
push str.BlockLength
push dword [eax]
call sub.bcrypt.dll_BCryptGetProperty
mov esi, eax
test esi, esi
jns 0x10027052
push str.InternalError
lea ecx, [ebp + 0x90]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x78]
mov byte [ebp - 4], 3
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_Failed_to_get_symmetric_block_length____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 4
jmp 0x100275fc
mov eax, dword [ebp + 0xb8]
mov byte [ebp - 0x24], bl
sub eax, ebx
je 0x100270bb
sub eax, 1
je 0x100270ae
sub eax, 1
je 0x1002709d
push str.InternalError
lea ecx, [ebp + 0x90]
call fcn.100047be
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_Unsupported_symmetric_algorithm.
lea ecx, [ebp + 0x78]
mov byte [ebp - 4], 5
call fcn.100047be
lea eax, [ebp + 0x90]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp + 0x78]
jmp 0x10027603
mov edi, dword [ebp - 0x2c]
mov ebx, str.ChainingModeCBC
mov dword [ebp - 0x34], edi
mov byte [ebp - 0x24], 1
jmp 0x100270c4
mov edi, dword [ebp - 0x2c]
mov ebx, str.ChainingModeCBC
mov dword [ebp - 0x34], edi
jmp 0x100270c4
and dword [ebp - 0x34], 0
mov ebx, str.ChainingModeECB
and dword [ebp - 0x3c], 0
lea eax, [ebp - 0x38]
push 0
push eax
push 4
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x10]
push str.ObjectLength
push dword [eax]
call sub.bcrypt.dll_BCryptGetProperty
mov esi, eax
test esi, esi
jns 0x1002711e
push str.InternalError
lea ecx, [ebp + 0x78]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x90]
mov byte [ebp - 4], 7
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_Failed_to_get_symmetric_key_size____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 8
lea ecx, [ebp + 0x78]
jmp 0x10027602
mov edi, dword [ebp - 0x3c]
xor esi, esi
mov dword [ebp + 0x9c], esi
mov dword [ebp + 0xa0], esi
mov dword [ebp + 0xa4], esi
test edi, edi
je 0x10027184
cmp edi, 0x7fffffff
ja 0x1002761a
lfence
lfence
push edi
cmp edi, 0x1000
jb 0x1002715b
call fcn.100038ad
jmp 0x10027160
call fcn.1014ecdb
pop ecx
push edi
lea esi, [eax + edi]
mov dword [ebp + 0x9c], eax
push 0
push eax
mov dword [ebp + 0xa4], esi
call fcn.10008a17
add esp, 0xc
mov dword [ebp + 0xa0], esi
xor esi, esi
mov ecx, dword [ebp - 0x10]
lea eax, [ebp + 0x9c]
push eax
lea ecx, [ecx + 0xc]
call fcn.1014ecdb
mov ecx, dword [ebp + 0x9c]
test ecx, ecx
je 0x100271e5
mov eax, dword [ebp + 0xa4]
sub eax, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
cmp eax, 0x1000
jb 0x100271ca
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10006a87
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
call fcn.1014ecdb
pop ecx
pop ecx
mov dword [ebp + 0x9c], esi
mov dword [ebp + 0xa0], esi
mov dword [ebp + 0xa4], esi
mov eax, dword [ebp - 0x5c]
cmp eax, 0x7fffffff
jbe 0x10027223
push str.InternalError
lea ecx, [ebp + 0x78]
call fcn.100047be
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_Session_key_size_too_large.
lea ecx, [ebp + 0x90]
mov byte [ebp - 4], 9
call fcn.100047be
mov byte [ebp - 4], 0xa
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x90]
jmp 0x10027603
push eax
lea eax, [ebp - 0x58]
push eax
lfence
call fcn.10025cf8
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x58]
push esi
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
push edx
push dword [ebp - 0x58]
mov byte [ebp - 4], 0xb
push ecx
push dword [eax + 0xc]
lea ecx, [eax + 4]
push ecx
push dword [eax]
call sub.bcrypt.dll_BCryptGenerateSymmetricKey
mov esi, eax
test esi, esi
jns 0x10027291
push str.InternalError
lea ecx, [ebp + 0x78]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x90]
mov byte [ebp - 4], 0xc
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_Failed_to_generate_session_key____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0xd
jmp 0x10027116
mov eax, dword [ebp - 0x10]
push 0
push 0x20
push ebx
push str.ChainingMode
push dword [eax + 4]
call sub.bcrypt.dll_BCryptSetProperty
mov esi, eax
test esi, esi
jns 0x100272de
push str.InternalError
lea ecx, [ebp + 0x78]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x90]
mov byte [ebp - 4], 0xe
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_Failed_to_set_symmetric_algorithm_chaining_mode____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0xf
jmp 0x10027116
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x58]
push eax
mov edi, dword [edi]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x58]
push eax
mov edx, dword [edi]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x10256524]
mov ecx, edi
call esi
mov eax, dword [ebp + 0xbc]
xor ebx, ebx
mov byte [ebp - 4], 0x10
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], ebx
sub eax, ebx
je 0x10027349
sub eax, 1
je 0x1002734f
push str.InternalError
lea ecx, [ebp + 0x78]
call fcn.100047be
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_Invalid_padding_specified
lea ecx, [ebp + 0x90]
mov byte [ebp - 4], 0x11
call fcn.100047be
mov byte [ebp - 4], 0x12
jmp 0x10027214
push 4
pop ecx
mov dword [ebp - 0x1c], ecx
xor eax, eax
lea edi, [ebp - 0x70]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc0]
sub eax, ebx
je 0x10027399
sub eax, 1
je 0x10027390
push str.InternalError
lea ecx, [ebp + 0x78]
call fcn.100047be
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_Invalid_padding_hash_algorithm_specified
lea ecx, [ebp + 0x90]
mov byte [ebp - 4], 0x13
call fcn.100047be
mov byte [ebp - 4], 0x14
jmp 0x10027214
mov dword [ebp - 0x70], 0x102619f0
jmp 0x100273a0
mov dword [ebp - 0x70], 0x102619e4
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x30]
push ecx
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x70]
push ecx
push eax
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x4c]
mov eax, dword [eax + 4]
push dword [eax + 4]
call sub.bcrypt.dll_BCryptEncrypt
mov esi, eax
test esi, esi
jns 0x100273fd
push str.InternalError
lea ecx, [ebp + 0x78]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x90]
mov byte [ebp - 4], 0x15
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_failed_to_get_required_size_of_buffer____08x_n
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x16
jmp 0x10027116
mov esi, dword [ebp - 0x30]
mov eax, ebx
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp + 0x9c], edi
mov dword [ebp + 0xa0], eax
mov dword [ebp + 0xa4], ebx
test esi, esi
je 0x10027470
cmp esi, 0x7fffffff
ja 0x1002761a
lfence
lfence
push esi
cmp esi, 0x1000
jb 0x1002743f
call fcn.100038ad
jmp 0x10027444
call fcn.1014ecdb
mov edi, eax
pop ecx
push esi
push 0
lea eax, [edi + esi]
mov dword [ebp + 0x9c], edi
mov ebx, eax
mov dword [ebp - 0x18], eax
push edi
mov dword [ebp + 0xa4], ebx
call fcn.10008a17
lea eax, [edi + esi]
add esp, 0xc
mov dword [ebp + 0xa0], eax
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x30]
lfence
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
sub eax, edi
sub ecx, dword [ebp - 0x4c]
push edx
push eax
push edi
push 0
push 0
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x20]
push ecx
push dword [ebp - 0x4c]
mov eax, dword [eax + 4]
push dword [eax + 4]
call sub.bcrypt.dll_BCryptEncrypt
mov esi, eax
test esi, esi
jns 0x100274d7
push str.InternalError
lea ecx, [ebp + 0x78]
lfence
call fcn.100047be
push esi
lea eax, [ebp]
mov byte [ebp - 4], 0x18
push str.BCrypt_failed_to_encrypt_buffer____08x_n
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 0x19
jmp 0x10027116
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x64]
push eax
push edi
call fcn.1000895e
push dword [ebp - 0x34]
lea eax, [ebp - 0x7c]
push eax
call fcn.10025cf8
pop ecx
pop ecx
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
push dword [ebp - 0x78]
mov byte [ebp - 4], 0x1a
push dword [ebp - 0x7c]
call fcn.1000895e
push 0x1c
call fcn.1014ecdb
pop ecx
mov dword [ebp - 0x40], eax
push dword [ebp - 0x24]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x1b
push dword [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.1014ecdb
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx]
mov dword [ebp - 0x28], ecx
mov dword [edx], eax
test ecx, ecx
je 0x1002754f
mov eax, dword [ecx]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x10256524]
mov ecx, dword [ebp - 0x28]
call esi
lea ecx, [ebp - 0x7c]
call fcn.10008811
test edi, edi
je 0x10027589
sub ebx, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
cmp ebx, 0x1000
jb 0x10027580
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.10006a87
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
pop ecx
pop ecx
push ebx
push edi
call fcn.1014ecdb
pop ecx
pop ecx
lea ecx, [ebp - 0x4c]
call fcn.10008811
lea ecx, [ebp - 0x58]
call fcn.10008811
cmp dword [ebp - 0x10], 0
je 0x100275aa
push dword [ebp - 0x10]
lea ecx, [ebp - 0x10]
call fcn.10024fa7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xa8]
xor ecx, ebp
call fcn.10236000
add ebp, 0xac
leave
ret 0x20
push str.InternalError
lea ecx, [ebp + 0x90]
lfence
call fcn.100047be
push esi
lea eax, [ebp + 0x78]
mov byte [ebp - 4], 1
push str.Win32RsaCryptoProvider::CreateSealedKeyWriter:_BCrypt_Failed_to_open_symmetric_algorithm_provider____08x
push eax
call fcn.1000d1e8
add esp, 0xc
mov byte [ebp - 4], 2
lea ecx, [ebp + 0x90]
push ecx
push eax
lea ecx, [ebp + 0x18]
call fcn.1014ecdb
push 0x102e88c4
lea eax, [ebp + 0x18]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.10009a88
int3