Function at 0x1003821a
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x10059bc4
call fcn.10058864
sub esp, 0x168
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x10038a88
mov esi, dword [ebp + 0x10]
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x10038a09
lea eax, [ebp - 0xc0]
xor ebx, ebx
push eax
push 0x1000
lea ecx, [ebp - 0x78]
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
call fcn.10023c7e
mov dword [ebp - 4], ebx
mov edi, 0x6c3b
mov eax, dword [ebp - 0x74]
sub eax, dword [ebp - 0x78]
push dword [ebp - 0x78]
sar eax, 1
push eax
push edi
push 0x8ba0
call fcn.10011306
pop ecx
pop ecx
call eax
push dword [ebp - 0x78]
lea ecx, [ebp - 0xa4]
call fcn.10014001
push 0xc370
mov byte [ebp - 4], 1
call fcn.100237f6
cmp dword [ebp - 0x90], 8
pop ecx
movzx edx, ax
lea ecx, [ebp - 0xa4]
cmovae ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xc4], edx
cmp word [ecx + eax*2 - 2], dx
je 0x100382e4
push edx
push ecx
lea ecx, [ebp - 0xa4]
call fcn.10017392
push 0x3b71
push 1
lea eax, [ebp - 0xa4]
mov edx, 0x2b8b
push eax
push 0x796
push 1
push 0xcae
push 1
push 0x17a2
mov ecx, 0x1150
call fcn.10037b58
add esp, 0x20
lea eax, [ebp - 0xa4]
cmp dword [ebp - 0x90], 8
cmovae eax, dword [ebp - 0xa4]
push ebx
push eax
push edi
push 0xab05
call fcn.10011306
pop ecx
pop ecx
call eax
lea eax, [ebp - 0xc4]
mov edx, 0x2e00
push eax
push ecx
push 0x5f1d
push ecx
push 0x52b1
lea eax, [ebp - 0xa4]
mov ecx, 0x779c
push eax
push 1
call fcn.10037d40
add esp, 0x1c
mov dword [ebp - 0x8c], ebx
lea eax, [ebp - 0x8c]
mov dl, 1
mov ecx, 0x1e3b
push 1
push eax
push esi
push 0x575c
push 1
push 0x55d1
push 0x5306
push 0x6bcb
push 0x750
call fcn.1003798b
add esp, 0x24
mov byte [ebp - 0x19], bl
mov eax, ebx
mov dword [ebp - 0x2c], ebx
cmp eax, 0x12c
jae 0x100389fe
lea eax, [ebp - 0xa4]
push eax
lea ecx, [ebp - 0xf0]
call fcn.10013fd9
push 0x10
pop edx
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 2
call fcn.10029e0f
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 3
push eax
push 1
lea eax, [ebp - 0xf0]
mov edx, 0x33e5
push 1
push eax
mov cl, 1
call fcn.10037ecc
mov dword [ebp - 0x18], 0x2650
add esp, 0x10
cmp dword [ebp - 0x18], 0x931
jge 0x100385cb
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x3c]
push eax
push str._ld__ld
call fcn.100401eb
add esp, 0xc
mov dword [ebp - 0x6c], ebx
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x68], ebx
xorps xmm0, xmm0
mov dword [ebp - 0x64], ebx
lea ecx, [ebp - 0x6c]
movlpd qword [ebp - 0x12c], xmm0
push eax
push dword [ebp - 0x3c]
call fcn.10039cd4
mov byte [ebp - 4], 4
mov esi, ebx
mov eax, dword [ebp - 0x5c]
add eax, eax
test eax, eax
jle 0x10038490
lea eax, [ebp - 0x24]
push eax
push 0x10063a60
call fcn.100401eb
mov eax, dword [ebp - 0x24]
inc esi
pop ecx
pop ecx
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + eax*8 - 8], 1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + eax*8 - 4], ebx
mov eax, dword [ebp - 0x5c]
add eax, eax
cmp esi, eax
jl 0x1003845e
push dword [ebp - 0x3c]
lea ecx, [ebp - 0xd8]
call fcn.1003990e
xor edi, edi
mov byte [ebp - 4], 5
mov esi, dword [ebp - 0x3c]
inc edi
cmp esi, edi
jle 0x100384f8
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x54]
push eax
push str._ld__ld
call fcn.100401eb
mov eax, dword [ebp - 0x54]
lea ecx, [ebp - 0x4c]
add esp, 0xc
dec eax
dec dword [ebp - 0x4c]
mov dword [ebp - 0x54], eax
push ecx
imul ecx, eax, 0xc
add ecx, dword [ebp - 0xd8]
call fcn.1003997a
imul ecx, dword [ebp - 0x4c], 0xc
lea eax, [ebp - 0x54]
push eax
add ecx, dword [ebp - 0xd8]
call fcn.1003997a
mov esi, dword [ebp - 0x3c]
inc edi
cmp edi, esi
jl 0x100384ac
lea eax, [ebp - 0x60]
mov dword [ebp - 0x60], ebx
push eax
lea eax, [esi + 0x1f]
mov dword [ebp - 0x88], ebx
shr eax, 5
lea ecx, [ebp - 0x88]
push eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
call fcn.10039eb3
mov dword [ebp - 0x7c], ebx
push esi
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
call fcn.10039bb3
mov byte [ebp - 4], 7
lea eax, [ebp - 0xcc]
push dword [ebp - 0x5c]
xorps xmm0, xmm0
lea edx, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x6c]
movlpd qword [ebp - 0xcc], xmm0
push eax
lea eax, [ebp - 0x88]
xor ecx, ecx
push eax
call fcn.10038135
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
push str._lld_n
call fcn.1004041f
add esp, 0x1c
mov dword [ebp - 0x7c], ebx
cmp dword [ebp - 0x88], 0
je 0x100385a4
push dword [ebp - 0x88]
call fcn.10040587
pop ecx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
lea ecx, [ebp - 0xd8]
call fcn.10039c38
mov byte [ebp - 4], 3
cmp dword [ebp - 0x6c], 0
je 0x100385cb
push dword [ebp - 0x6c]
call fcn.10040587
pop ecx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
push 0x65
pop eax
push 2
mov ecx, ebx
mov dword [ebp - 0x38], 0x34b01
mov dword [ebp - 0x34], 0xce8c02
mov word [ebp - 0x30], 0x24b
mov byte [ebp - 0x2e], 0x56
mov word [ebp - 0xba], ax
pop esi
mov dword [ebp - 0x58], ecx
cmp esi, 4
jne 0x10038605
push 3
pop ecx
push 5
mov dword [ebp - 0x58], ecx
pop esi
jmp 0x10038646
movzx edx, byte [ebp + esi - 0x37]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x3a]
movzx ecx, word [ebp + eax*2 - 0xbc]
mov eax, ecx
and eax, edx
add eax, eax
sub ecx, eax
movzx eax, byte [ebp + esi - 0x38]
add ecx, edx
mov word [ebp + eax*2 - 0xbc], cx
lea eax, [ebp - 0x58]
push eax
sub esp, 0xc
mov cl, 1
call fcn.10037a96
mov ecx, dword [ebp - 0x58]
add esp, 0x10
add esi, 2
cmp esi, 0xb
jb 0x100385f5
xor eax, eax
mov dword [ebp - 0x130], 7
mov word [ebp - 0xb4], ax
lea ecx, [ebp - 0x144]
mov word [ebp - 0x144], ax
lea eax, [ebp - 0xbc]
push eax
mov dword [ebp - 0x134], ebx
call fcn.10014735
push ecx
push ecx
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0xf0]
call fcn.100298d2
push ebx
push 1
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 3
call fcn.100147bd
xor eax, eax
lea edi, [ebp - 0xbc]
cmp dword [ebp - 0xdc], 8
stosd dword es:[edi], eax
push ebx
push 0x80
push 2
stosd dword es:[edi], eax
push ebx
push ebx
push 0x40000000
stosw word es:[edi], ax
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
mov edi, 0x6c3b
push eax
push edi
push 0x6fb8
call fcn.10011306
pop ecx
pop ecx
call eax
mov esi, eax
cmp esi, 0xffffffff
je 0x10038733
push ebx
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 0x8c]
mov eax, dword [ebp + 0x10]
push dword [eax]
push esi
push edi
push 0x9617
call fcn.10011306
pop ecx
pop ecx
call eax
push esi
test eax, eax
push edi
push 0xbff3
setne bl
call fcn.10011306
pop ecx
pop ecx
call eax
test bl, bl
jne 0x1003875f
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x15c]
call fcn.100147bd
push ebx
push 1
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 1
call fcn.100147bd
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
jmp 0x100383ac
push 0x22
pop eax
xor ebx, ebx
mov dword [ebp - 0x20], 0xc4014d00
push 2
mov ecx, ebx
mov word [ebp - 0x28], ax
pop esi
mov dword [ebp - 0x50], ecx
cmp esi, 2
jne 0x10038783
push esi
pop ecx
mov dword [ebp - 0x50], ecx
jmp 0x100387c3
movzx edx, byte [ebp + esi - 0x1f]
mov eax, esi
sub eax, ecx
push 0x4ef7
movzx eax, byte [ebp + eax - 0x22]
movzx eax, word [ebp + eax*2 - 0x28]
mov ecx, eax
and eax, edx
or ecx, edx
lea edx, [ebp - 0x50]
sub ecx, eax
movzx eax, byte [ebp + esi - 0x20]
push ecx
push ebx
push 0x7fe0
push ecx
mov word [ebp + eax*2 - 0x28], cx
call fcn.100380d4
mov ecx, dword [ebp - 0x50]
add esp, 0x14
add esi, 2
cmp esi, 4
jb 0x10038777
xor eax, eax
mov dword [ebp - 0xf4], 7
mov word [ebp - 0x26], ax
lea ecx, [ebp - 0x108]
mov word [ebp - 0x108], ax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0xf8], ebx
call fcn.10014735
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 9
push eax
push ecx
push 1
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x28], ebx
push eax
push ecx
mov edx, 0x7500
call fcn.100380d4
add esp, 0x14
mov dword [ebp - 0x48], 0x2009e01
mov dword [ebp - 0x44], 0x6770203
mov ecx, ebx
mov dword [ebp - 0x40], 0x7c030d02
push 0x20
pop eax
push 2
mov word [ebp - 0xae], ax
pop esi
cmp esi, 4
jne 0x1003884d
push esi
pop ecx
push 6
pop esi
jmp 0x1003887a
movzx edx, byte [ebp + esi - 0x47]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x4a]
movzx eax, word [ebp + eax*2 - 0xb0]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [ebp + esi - 0x48]
mov word [ebp + eax*2 - 0xb0], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xc
jb 0x10038841
xor eax, eax
mov dword [ebp - 0x110], 7
mov word [ebp - 0xa8], ax
lea ecx, [ebp - 0x124]
mov word [ebp - 0x124], ax
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0x114], ebx
call fcn.10014735
push ecx
push ecx
lea eax, [ebp - 0x124]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x108]
call fcn.100298d2
push ebx
push 1
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 9
call fcn.100147bd
xor eax, eax
lea edi, [ebp - 0xb0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0x18], 0xe9
cmp dword [ebp - 0x18], 0x1dd
jle 0x1003896b
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x1aea
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x2c], 0x7e1e
mov edi, ebx
lea eax, [esi + edi]
cdq
lea ecx, [ebp - 0x174]
push edx
push eax
call fcn.10001ade
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038938
mov eax, dword [eax]
push eax
call fcn.1004041f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x174]
call fcn.10014649
inc edi
cmp edi, 0x79a3
jl 0x1003891d
dec esi
dec dword [ebp - 0x2c]
jne 0x1003891b
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x3647
jl 0x10038911
push 0x4705
push ecx
push 1
lea eax, [ebp - 0x19]
mov edx, 0x5164
push eax
push ecx
push ecx
mov ecx, 0x5b76
call fcn.10037b01
add esp, 0x18
cmp dword [ebp - 0x18], 0x34
jge 0x1003899c
push str.ozvw_vvmcibxq_fqnfp_cyxlfmrms_pniiwt_vlpzwlhq
call fcn.1004041f
pop ecx
lea edx, [ebp - 0xa4]
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x108]
call fcn.10036128
mov ecx, dword [ebp + 0x1c]
push ebx
push 1
mov dword [ecx], eax
lea ecx, [ebp - 0x108]
call fcn.100147bd
push ebx
push 1
lea ecx, [ebp - 0x15c]
call fcn.100147bd
push ebx
push 1
lea ecx, [ebp - 0xf0]
call fcn.100147bd
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.100147bd
lea ecx, [ebp - 0x78]
call fcn.10023d05
jmp 0x10038aab
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 2
jmp 0x100389e3
mov dword [ebp - 0x18], 0x11f7
cmp dword [ebp - 0x18], 0x141f
jle 0x10038a44
xor ebx, ebx
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10072098
cdq
push edx
push eax
call fcn.10013ec4
inc edi
cmp edi, 0x15c4
jl 0x10038a1f
inc esi
cmp esi, 0x4feb
jl 0x10038a1d
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x18], 0x1021
mov dword [eax], 1
jge 0x10038a6c
mov edx, str.yoyrlos_kgl_qnrtmfz_gttnrum_fmmgnzc_hjuilcqw_mndwum_dohss_xezxvnpk_nlvyxaxdw
mov ecx, 0x10072098
call fcn.1001684d
jmp 0x10038aab
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x10038aab
xor ebx, ebx
push ebx
push ebx
push 0x1606
push 0x1947
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret