Function at 0x423900
Capabilities:
Get hostname
Query or enumerate registry value

Disassembly:
movsx eax, byte [0x46d5e8]
add eax, 0x27
sub esp, 0x3c
cdq
sub eax, edx
push ebp
sar eax, 1
mov byte [0x46d5e8], al
push esi
lea eax, [esp + 0xc]
push edi
push eax
push 0xf003f
push 0
push str.SOFTWAREyywk_
mov ebp, ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x423b55
lea ecx, [esp + 0x10]
push ebx
push ecx
mov ecx, 0x471960
call fcn.00420d60
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
lea eax, [ebp + 0x1c5]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push edx
push eax
lea eax, [esp + 0x20]
mov esi, 0x104
push eax
push 0
push str.docpath
push ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x28], esi
call ebx
test eax, eax
je 0x4239b6
lea edi, [ebp + 0xc0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
lea edi, [ebp + 0x1c5]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x104
lea eax, [esp + 0x10]
lea ecx, [ebp + 0x2e9]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push ecx
push edx
push 0
push str.BkPicture
push eax
mov dword [esp + 0x28], esi
call ebx
lea ecx, [esp + 0x10]
lea edx, [ebp + 0x3ed]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push edx
push eax
push 0
push str.BkPicPath
push ecx
mov byte [ebp + 0x3ec], 0
mov dword [esp + 0x28], esi
call ebx
lea edx, [esp + 0x10]
lea eax, [ebp + 0x2c9]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0
mov edi, 0x20
push str.PlayerName
push edx
mov byte [ebp + 0x4f0], 0
mov dword [esp + 0x28], edi
call ebx
mov ecx, dword [ebp + 0x530]
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push ecx
push edx
push 0
mov esi, 0x30
push 0x46d470
push eax
mov byte [ebp + 0x2e8], 0
mov dword [esp + 0x28], esi
call ebx
mov eax, dword [esp + 0x10]
cmp eax, esi
jae 0x423a75
mov ecx, dword [ebp + 0x530]
mov byte [eax + ecx], 0
jmp 0x423a7f
mov edx, dword [ebp + 0x530]
mov byte [edx + 0x2f], 0
lea eax, [esp + 0x10]
lea ecx, [ebp + 0x4f8]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push ecx
push edx
push 0
push str.User
push eax
mov dword [esp + 0x28], esi
call ebx
mov eax, dword [esp + 0x10]
pop ebx
cmp eax, esi
jae 0x423ab5
mov byte [eax + ebp + 0x4f8], 0
jmp 0x423abc
mov byte [ebp + 0x527], 0
lea ecx, [esp + 0x18]
lea edx, [esp + 0x28]
push ecx
push edx
mov dword [esp + 0x20], edi
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
mov eax, dword [esp + 0x18]
mov byte [esp + 0x47], 0
test eax, eax
jbe 0x423b55
mov eax, dword [ebp + 0x530]
push eax
call fcn.004051b0
mov edi, eax
xor ecx, ecx
add esp, 4
cmp edi, ecx
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x20], 1
mov byte [esp + 0x21], 2
mov byte [esp + 0x22], 0x40
mov byte [esp + 0x23], 0x20
mov byte [esp + 0x24], 8
mov byte [esp + 0x25], 0x10
jle 0x423b55
mov eax, ecx
xor edx, edx
div dword [esp + 0x18]
mov esi, 6
mov dl, byte [esp + edx + 0x28]
mov byte [esp + 0x1c], dl
mov eax, dword [esp + 0x1c]
cdq
idiv esi
mov eax, dword [ebp + 0x530]
lea esi, [ecx + eax]
mov al, byte [ecx + eax]
mov dl, byte [esp + edx + 0x20]
test al, dl
jne 0x423b4a
or al, dl
jmp 0x423b4e
not dl
and al, dl
inc ecx
mov byte [esi], al
cmp ecx, edi
jl 0x423b16
movsx eax, byte [0x46d610]
mov ecx, dword [esp + 0x10]
add eax, 0x27
cdq
sub eax, edx
push ecx
sar eax, 1
mov byte [0x46d610], al
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0x530]
pop edi
pop esi
mov dl, byte [eax + 0x20]
mov cl, byte [eax + 2]
mov byte [eax + 2], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0x20], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0x17]
mov cl, byte [eax + 7]
mov byte [eax + 7], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0x17], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0x12]
mov cl, byte [eax + 0x1d]
mov byte [eax + 0x1d], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0x12], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0x2a]
mov cl, byte [eax + 0x1f]
mov byte [eax + 0x1f], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0x2a], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0xc]
mov cl, byte [eax + 0x24]
mov byte [eax + 0x24], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0xc], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0x21]
mov cl, byte [eax + 0x28]
mov byte [eax + 0x28], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0x21], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0xf]
mov cl, byte [eax + 0x19]
mov byte [eax + 0x19], dl
mov eax, dword [ebp + 0x530]
mov byte [eax + 0xf], cl
mov eax, dword [ebp + 0x530]
mov dl, byte [eax + 0x14]
mov cl, byte [eax + 5]
mov byte [eax + 5], dl
mov eax, dword [ebp + 0x530]
pop ebp
mov byte [eax + 0x14], cl
add esp, 0x3c
ret