Function at 0x401520
Capabilities:
Query or enumerate registry value

Disassembly:
jmp 0x401520
sub esp, 0x368
mov eax, dword [0x42d664]
xor eax, esp
mov dword [esp + 0x364], eax
push ebx
push esi
push edi
push 0x31
xor edi, edi
lea eax, [esp + 0x21]
push edi
push eax
mov byte [esp + 0x28], 0
call fcn.00405be0
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push edi
push str.SOFTWAREARLSmartAdaptorPKCS11_PROVIDERSProvider_0VendorDefined
mov ebx, 4
push 0x80000002
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4015c1
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x14]
push eax
push edi
push edi
push str.Attribute_101
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0x14]
push edx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x4015c1
cmp dword [esp + 0x10], edi
jbe 0x4015c1
mov dword [0x4302ac], 6
mov dword [0x42d2f4], 1
lea eax, [esp + 0x18]
push eax
push edi
push edi
push edi
call sub.WinSCard.dll_SCardEstablishContext
test eax, eax
je 0x4015ef
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x364]
xor ecx, esp
call fcn.00405bd0
add esp, 0x368
ret
mov ecx, dword [esp + 0x18]
push ebp
push ecx
call fcn.00401046
add esp, 4
test eax, eax
jne 0x401718
xor ebp, ebp
cmp byte [0x430998], 0
je 0x401718
mov esi, 0x430998
lea esp, [esp]
mov edx, str.AKS_ifdh_0
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x401647
test al, al
je 0x401643
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x401647
add ecx, 2
add edx, 2
test al, al
jne 0x401627
xor eax, eax
jmp 0x40164c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x401680
mov edx, str.AKS_ifdh_1
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x401677
test al, al
je 0x401673
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x401677
add ecx, 2
add edx, 2
test al, al
jne 0x401657
xor eax, eax
jmp 0x40167c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x401690
mov dword [0x4302ac], ebx
mov dword [0x42d2e4], 1
mov edx, str.Algorithmic_Research_Minikey_0
mov ecx, esi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4016b7
test al, al
je 0x4016b3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4016b7
add ecx, 2
add edx, 2
test al, al
jne 0x401697
xor eax, eax
jmp 0x4016bc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4016f0
mov ecx, str.Algorithmic_Research_Minikey_1
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4016e7
test dl, dl
je 0x4016e3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4016e7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4016c7
xor eax, eax
jmp 0x4016ec
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x4016ff
mov eax, 1
mov dword [0x4302ac], eax
mov dword [0x42d2cc], eax
inc ebp
mov edx, ebp
shl edx, 6
cmp byte [edx + 0x430998], 0
lea esi, [edx + 0x430998]
jne 0x401620
mov eax, dword [esp + 0x1c]
push eax
call sub.WinSCard.dll_SCardReleaseContext
xor esi, esi
lea ebp, [esi + 0x32]
jmp 0x401730
push esi
push str.SOFTWAREARLSmartAdaptorPKCS11_PROVIDERSProvider_
lea ecx, [esp + 0x1ec]
push str._s_d
push ecx
call fcn.00405c5a
lea edx, [esp + 0x1f4]
push edx
push 0x80000002
call fcn.0040105f
add esp, 0x18
test eax, eax
je 0x4017b2
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push str.Module
lea edx, [esp + 0x1f0]
push edx
push 0x80000002
mov dword [esp + 0x24], ebp
mov byte [esp + 0x34], 0
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x4017b2
lea eax, [esp + 0x20]
push eax
call fcn.0040100a
lea ecx, [esp + 0x24]
push str.CARDOS_PKCS11.DLL
push ecx
call fcn.004054a0
add esp, 0xc
test eax, eax
jne 0x4017be
inc esi
cmp esi, 0xd
jl 0x401730
jmp 0x4017d2
mov dword [0x4302ac], 2
mov dword [0x42d2d4], 1
xor bl, bl
mov dword [esp + 0x10], ebp
xor esi, esi
lea ebx, [ebx]
push esi
push str.SOFTWAREARLSmartAdaptorReader_ProvidersProvider_
lea edx, [esp + 0x124]
push str._s_d
push edx
call fcn.00405c5a
lea eax, [esp + 0x12c]
push eax
push 0x80000002
call fcn.0040105f
add esp, 0x18
test eax, eax
je 0x4018c4
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
push str.Module
lea eax, [esp + 0x128]
push eax
push 0x80000002
mov dword [esp + 0x24], ebp
mov byte [esp + 0x34], 0
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401878
lea ecx, [esp + 0x20]
push ecx
call fcn.0040100a
lea edx, [esp + 0x24]
push str.CSAFE32.DLL
push edx
call fcn.004054a0
add esp, 0xc
test eax, eax
je 0x401878
mov dword [0x4302ac], edi
mov dword [0x42d2c4], 1
mov bl, 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push str.Module64
lea edx, [esp + 0x128]
push edx
push 0x80000002
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x4018c0
lea eax, [esp + 0x20]
push eax
call fcn.0040100a
lea ecx, [esp + 0x24]
push str.CSAFE32W64.DLL
push ecx
call fcn.004054a0
add esp, 0xc
test eax, eax
jne 0x4018d0
test bl, bl
jne 0x4018e0
inc esi
cmp esi, 0xd
jl 0x4017e0
jmp 0x4018e0
mov dword [0x4302ac], edi
mov dword [0x42d2c4], 1
xor bl, bl
xor esi, esi
mov dword [esp + 0x10], ebp
lea edi, [esi + 0xb]
jmp 0x4018f0
push esi
push str.SOFTWAREARLSmartAdaptorReader_ProvidersProvider_
lea edx, [esp + 0x5c]
push str._s_d
push edx
call fcn.00405c5a
lea eax, [esp + 0x64]
push eax
push 0x80000002
call fcn.0040105f
add esp, 0x18
test eax, eax
je 0x4019c8
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
push str.Module
lea eax, [esp + 0x60]
push eax
push 0x80000002
mov dword [esp + 0x24], ebp
mov byte [esp + 0x34], 0
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x40197f
lea ecx, [esp + 0x20]
push ecx
call fcn.0040100a
lea edx, [esp + 0x24]
push str.ARSPE.DLL
push edx
call fcn.004054a0
add esp, 0xc
test eax, eax
je 0x40197f
mov dword [0x4302ac], edi
mov dword [0x42d31c], 1
mov bl, 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push str.Module64
lea edx, [esp + 0x60]
push edx
push 0x80000002
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x4019c4
lea eax, [esp + 0x20]
push eax
call fcn.0040100a
lea ecx, [esp + 0x24]
push str.ARSPE64.DLL
push ecx
call fcn.004054a0
add esp, 0xc
test eax, eax
jne 0x4019d4
test bl, bl
jne 0x4019e4
inc esi
cmp esi, 0xd
jl 0x4018f0
jmp 0x4019e4
mov dword [0x4302ac], edi
mov dword [0x42d31c], 1
xor esi, esi
mov dword [esp + 0x10], ebp
lea ebx, [esi + 1]
lea ecx, [ecx]
push esi
push str.SOFTWAREARLSmartAdaptorReader_ProvidersProvider_
lea edx, [esp + 0x2b4]
push str._s_d
push edx
call fcn.00405c5a
lea eax, [esp + 0x2bc]
push eax
push 0x80000002
call fcn.0040105f
add esp, 0x18
test eax, eax
je 0x401a72
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push edx
push str.Module
lea eax, [esp + 0x2b8]
push eax
push 0x80000002
mov dword [esp + 0x24], ebp
mov byte [esp + 0x34], 0
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401a72
lea ecx, [esp + 0x20]
push ecx
call fcn.0040100a
lea edx, [esp + 0x24]
push str.COSIGN.DLL
push edx
call fcn.004054a0
add esp, 0xc
test eax, eax
jne 0x401a7f
add esi, ebx
cmp esi, 0xd
jl 0x4019f0
jmp 0x401a8f
mov dword [0x4302ac], 0xc
mov dword [0x42d324], ebx
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
push str.ServerMode
push str.SoftwareARLSmartAdaptorMainParameters
mov edi, 4
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
lea esi, [edi - 1]
test eax, eax
je 0x401ad8
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401ad8
test al, 1
jbe 0x401ad8
mov dword [0x4302ac], esi
mov dword [0x42d2dc], ebx
push str.SOFTWAREARLCryptoki_CSP
push 0x80000002
call fcn.0040105f
add esp, 8
test eax, eax
je 0x401b14
push str.SOFTWAREMicrosoftCryptographyDefaultsProviderAR_Base_Cryptographic_Provider
push 0x80000002
call fcn.0040105f
add esp, 8
test eax, eax
je 0x401b14
mov dword [0x4302ac], 9
mov dword [0x42d30c], ebx
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push eax
push str.Attribute_306
push str.SoftwareARLSmartAdaptorSC_PROVIDERSProvider_0VendorDefined
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401b68
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401b68
push eax
push 0x428290
push 0x42d330
mov dword [0x42ef3c], 0
mov dword [0x42d32c], ebx
call fcn.00405c5a
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push str.Attribute_307
push str.SoftwareARLSmartAdaptorSC_PROVIDERSProvider_0VendorDefined
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401bb8
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401bb8
push eax
push 0x428290
push 0x42d36c
mov dword [0x42ef3c], ebx
mov dword [0x42d368], ebx
call fcn.00405c5a
add esp, 0xc
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push ecx
push str.Attribute_312
push str.SoftwareARLSmartAdaptorSC_PROVIDERSProvider_0VendorDefined
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401c0c
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401c0c
push eax
push 0x428290
push 0x42d3a8
mov dword [0x42ef3c], 2
mov dword [0x42d3a4], ebx
call fcn.00405c5a
add esp, 0xc
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push eax
push str.AuthToSign
push str.SoftwareARLCryptoki_CSPParameters
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401c5c
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401c5c
push eax
push 0x428290
push 0x42d3e4
mov dword [0x42ef3c], esi
mov dword [0x42d3e0], ebx
call fcn.00405c5a
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push str.LoginCount
push str.SoftwareARLCryptoki_CSPParameters
push 0x80000002
mov dword [esp + 0x24], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401cac
mov eax, dword [esp + 0x14]
test eax, eax
jbe 0x401cac
push eax
push 0x428290
push 0x42d420
mov dword [0x42ef3c], edi
mov dword [0x42d41c], ebx
call fcn.00405c5a
add esp, 0xc
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x24]
push ecx
push str.DefaultSlotName
push str.SoftwareARLCryptoki_CSPParameters
push 0x80000002
mov dword [esp + 0x24], ebp
mov byte [esp + 0x34], 0
call fcn.0040106e
add esp, 0x14
pop ebp
test eax, eax
je 0x401d04
cmp dword [esp + 0x10], 0
jbe 0x401d04
mov dword [0x42ef3c], 5
mov dword [0x42d458], ebx
xor eax, eax
mov cl, byte [esp + eax + 0x1c]
mov byte [eax + 0x42d45c], cl
add eax, ebx
test cl, cl
jne 0x401cf4
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x14]
push eax
push str.Attribute_303
push str.SoftwareARLSmartAdaptorSC_PROVIDERSProvider_0VendorDefined
push 0x80000002
mov dword [esp + 0x20], edi
call fcn.0040106e
add esp, 0x14
test eax, eax
je 0x401d58
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x401d58
push eax
push 0x428290
push 0x42d498
mov dword [0x42ef3c], 6
mov dword [0x42d494], ebx
call fcn.00405c5a
add esp, 0xc
mov ecx, dword [esp + 0x370]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00405bd0
add esp, 0x368
ret