Function at 0x40940a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov ebx, edx
mov edx, dword [ebp + 8]
lea esi, [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov ecx, esi
push dword [ebp + 0xc]
call fcn.00409355
pop eax
lea eax, [ebp - 0x34]
mov ecx, 0x800
xor edx, edx
mov dword [eax], 0x800
lea eax, [ebp - 0x38]
and dword [eax], 0
call fcn.00487eba
lea ecx, [ebp - 0x54]
mov esi, dword [esi + 4]
mov edi, edx
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
lea eax, [ebp - 0x34]
push eax
push edi
lea eax, [ebp - 0x38]
push eax
push 0
push esi
push ebx
call sub.advapi32.dll_RegQueryValueExW
cmp eax, 0xea
jne 0x40947e
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x54]
call fcn.0055bdc3
mov edi, dword [ebp - 0x50]
jmp 0x409455
mov ecx, edi
mov edi, eax
test eax, eax
mov dword [ebp - 0x24], ecx
jne 0x40949c
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x34]
mov edi, 0xde
cmp eax, 0xb
mov dword [ebp - 0x4c], ebx
jbe 0x4094cc
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
call fcn.00563c9c
mov ecx, dword [ebp - 0x20]
mov edx, esi
call fcn.00448e50
mov ebx, edi
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax], 0x80000000
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x54]
mov edx, esi
mov dword [ebp - 0x10], eax
call fcn.00448e50
cmp edi, 0x80000000
jne 0x4094e9
mov ecx, dword [ebp - 0x24]
jmp 0x4094b5
mov dword [ebp - 0x5c], edi
cmp byte [ebp - 0x10], 7
mov edi, dword [ebp - 0x24]
ja 0x4097b7
movzx eax, byte [ebp - 0x10]
mov ecx, 0x86
bt ecx, eax
jae 0x4097b7
mov eax, ebx
lea ecx, [ebp - 0x54]
mov edx, ebx
xor esi, esi
and eax, 0xfffffffe
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
shr edx, 2
add eax, edi
bt ebx, 1
adc edx, esi
mov dword [ebp - 0x14], eax
call fcn.0055bdc3
test si, si
je 0x409543
movzx eax, word [ebp - 0x30]
jmp 0x409552
cmp edi, dword [ebp - 0x14]
je 0x40967b
movzx eax, word [edi]
add edi, 2
mov ecx, eax
and ecx, 0xf800
cmp cx, 0xd800
jne 0x40956b
cmp ax, 0xdbff
jbe 0x409595
xor esi, esi
jmp 0x4095e5
movzx ebx, ax
cmp ax, 0x80
jae 0x4095bc
mov edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x54]
jne 0x409587
lea ecx, [ebp - 0x54]
call fcn.004d7c26
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
xor esi, esi
mov byte [eax + edx], bl
inc edx
mov dword [ebp - 0x4c], edx
jmp 0x409538
mov ecx, dword [ebp - 0x14]
cmp edi, ecx
je 0x4095e1
movzx ecx, word [edi]
add edi, 2
mov edx, ecx
add edx, 0x2000
cmp dx, 0xfc00
jae 0x4095f0
xor esi, esi
mov eax, ecx
mov word [ebp - 0x30], cx
inc esi
jmp 0x4095e5
and dword [ebp - 0x20], 0
cmp ebx, 0x800
jae 0x409610
mov eax, ebx
and bl, 0x3f
xor esi, esi
shr eax, 6
or bl, 0x80
or al, 0xc0
mov byte [ebp - 0x20], al
mov byte [ebp - 0x1f], bl
push 2
jmp 0x409633
xor esi, esi
mov edi, ecx
and dword [ebp - 0x20], 0
mov ebx, 0xfffd
jmp 0x409612
movzx ebx, cx
mov ecx, 0x3ff
and dword [ebp - 0x20], 0
and eax, ecx
and ebx, ecx
mov ecx, 0x10000
shl eax, 0xa
or ebx, eax
add ebx, ecx
cmp ebx, ecx
jae 0x40964a
xor esi, esi
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [ebp - 0x20], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [ebp - 0x1f], al
mov byte [ebp - 0x1e], bl
push 3
pop eax
lea eax, [ebp + eax - 0x20]
lea ecx, [ebp - 0x54]
lea edx, [ebp - 0x20]
push eax
call fcn.004d5e5b
pop eax
jmp 0x409538
mov eax, ebx
xor esi, esi
shr eax, 0x12
or al, 0xf0
mov byte [ebp - 0x20], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebp - 0x1f], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [ebp - 0x1e], al
mov byte [ebp - 0x1d], bl
push 4
jmp 0x409633
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x50]
inc eax
cmp eax, 1
je 0x409698
cmp byte [edi + eax - 2], 0
lea edx, [eax - 1]
mov eax, edx
je 0x409685
jmp 0x40969a
xor edx, edx
cmp byte [ebp - 0x10], 7
jne 0x409765
lea eax, [ebp - 0x20]
and dword [ebp - 0x3c], 0
mov dword [ebp - 0x58], ecx
xor ecx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x2c], edi
and dword [eax], 0
mov dword [eax + 4], 1
and dword [eax + 8], 0
mov eax, dword [ebp - 0x14]
lea edx, [edi + ecx]
mov dword [ebp - 0x30], ecx
mov ebx, 0
sub eax, ecx
mov ecx, edx
cmovb ecx, ebx
cmovae esi, eax
jb 0x409775
cmp eax, 7
ja 0x4096ff
xor eax, eax
xor ebx, ebx
cmp esi, ebx
je 0x40970c
cmp byte [ecx + ebx], 0
je 0x409710
inc ebx
jmp 0x4096f2
xor ecx, ecx
push eax
call fcn.004423f0
pop ecx
mov ebx, edx
jmp 0x409713
mov ebx, esi
jmp 0x409713
xor eax, eax
inc eax
cmp eax, 1
jne 0x409775
add ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov ecx, ebx
inc ecx
je 0x4096cb
cmp ecx, dword [ebp - 0x14]
ja 0x4096cb
add ebx, edi
cmp byte [ebx], 0
jne 0x4096cb
mov edx, dword [ebp - 0x10]
mov esi, ecx
add edx, edi
lea edi, [ebp - 0x20]
mov ecx, edi
push ebx
call fcn.004d5e5b
pop eax
mov ecx, edi
lea eax, [0x6d4b71]
mov edx, str._nC:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fzeroize_1.7.0_srclib.rsassertion_failed:_size___isize::MAX_as_usize
push eax
call fcn.004d5e5b
mov edi, dword [ebp - 0x2c]
mov ecx, esi
add esp, 4
mov dword [ebp - 0x10], ecx
jmp 0x4096cb
mov eax, dword [ebp - 0x28]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov edi, dword [ebp - 0x24]
mov dword [eax + 8], edx
jmp 0x4097cb
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
lea ebx, [ebp - 0x20]
mov ecx, ebx
add eax, esi
add edx, esi
push eax
call fcn.004d5e5b
pop eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x28]
movsd xmm0, qword [ebx]
mov edi, dword [ebp - 0x24]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x58]
movsd qword [ecx], xmm0
test eax, eax
je 0x4097cb
xor edx, edx
mov ecx, esi
inc edx
push eax
call fcn.00408833
pop eax
jmp 0x4097cb
mov eax, dword [ebp - 0x28]
and dword [eax + 4], 0
mov dword [eax + 8], 0xde
mov dword [eax], 0x80000000
mov ecx, dword [ebp - 0x5c]
mov edx, edi
call fcn.00563c9c
jmp 0x4094c4