Function at 0x47d9a0
Capabilities:
Query or enumerate registry value
Read .ini file
Resolve function by parsing pe exports
Set registry value

Disassembly:
mov eax, 0x13f8
call fcn.00466c40
push ebx
push ebp
mov ebp, dword [esp + 0x1408]
push esi
push edi
push 0x6edb4c
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47d9d1
mov esi, 0x6edb3c
jmp 0x47da89
push 0x6edb38
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47d9ed
mov esi, 0x6edb24
jmp 0x47da89
push 0x6edb20
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47da09
mov esi, 0x6edb10
jmp 0x47da89
push 0x6edb0c
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47da22
mov esi, 0x6edb00
jmp 0x47da89
push 0x6edafc
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47da3b
mov esi, 0x6edae8
jmp 0x47da89
push 0x6edae4
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47da54
mov esi, 0x6edacc
jmp 0x47da89
push 0x6edac8
push ebp
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47da6d
mov esi, 0x6edabc
jmp 0x47da89
push 0x6e6adc
push ebp
call fcn.0046686b
add esp, 8
mov esi, 0x6edaa8
test eax, eax
je 0x47da89
mov esi, 0x6eda98
mov edi, dword [esp + 0x140c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
lea eax, [esp + 0x10c]
push 0x100
push eax
push 0x7427d8
push 0x6eda94
push esi
call ebx
mov al, byte [esp + 0x108]
test al, al
jne 0x47dadc
push edi
lea ecx, [esp + 0x10c]
push 0x100
push ecx
mov esi, 0x6eda98
push 0x7427d8
push 0x6eda94
push esi
call ebx
push edi
lea edx, [esp + 0x60c]
push 0x100
push edx
push 0x7427d8
push 0x6eda8c
push esi
call ebx
push edi
lea eax, [esp + 0x50c]
push 0x100
push eax
push 0x7427d8
push 0x6eda80
push esi
call ebx
push edi
lea ecx, [esp + 0x30c]
push 0x100
push ecx
push 0x7427d8
push 0x6eda74
push esi
call ebx
push edi
lea edx, [esp + 0x70c]
push 0x100
push edx
push 0x7427d8
push 0x6eda6c
push esi
call ebx
push edi
lea eax, [esp + 0x40c]
push 0x100
push eax
push 0x7427d8
push 0x6eda60
push esi
call ebx
push edi
lea ecx, [esp + 0x100c]
push 0x400
push ecx
push 0x7427d8
push 0x6eda54
push esi
call ebx
push edi
lea edx, [esp + 0x20c]
push 0x400
push edx
push 0x7427d8
push 0x6eda4c
push esi
call ebx
push 3
lea eax, [esp + 0x10c]
push ebp
push eax
call fcn.00468f0b
add esp, 0xc
test eax, eax
je 0x47dbbd
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
lea ecx, [esp + 0x508]
push 0x6eda2c
push ecx
call fcn.0046686b
add esp, 8
test eax, eax
jne 0x47ddc7
mov ecx, 0x20
lea edi, [esp + 0x88]
lea edx, [esp + 0x208]
rep stosd dword es:[edi], eax
push edx
call fcn.00468c1a
mov eax, dword [esp + 0x20c]
add esp, 4
mov dword [esp + 0x88], eax
xor eax, eax
cmp eax, 2
mov ecx, 5
jl 0x47dc17
mov ecx, 6
lea ecx, [ecx + eax*2]
mov dl, byte [esp + ecx + 0x208]
mov bl, byte [esp + ecx + 0x209]
shl dl, 4
add dl, bl
sub dl, 0x51
mov byte [esp + eax + 0x8c], dl
inc eax
cmp eax, 4
jl 0x47dc08
mov edi, 0x6ed9f4
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x90]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x80
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x8c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x18]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
call fcn.0047e320
mov edx, dword [esp + 0x1424]
add esp, 0xc
test edx, edx
je 0x47dcc1
lea edi, [esp + 0x208]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1420]
test edx, edx
je 0x47dcf0
lea edi, [esp + 0x508]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ecx, ecx
lea esi, [esp + 0x14]
mov dl, byte [esi]
cmp ecx, 4
mov eax, 0xf
jl 0x47dd07
mov eax, 0x10
add eax, ecx
mov bl, byte [esp + eax + 0x208]
shl bl, 4
add bl, byte [esp + eax + 0x209]
sub bl, 0x51
cmp dl, bl
jne 0x47e0fc
add ecx, 2
add esi, 4
cmp ecx, 8
jl 0x47dcf6
mov edx, dword [esp + 0x141c]
test edx, edx
je 0x47dd5f
lea edi, [esp + 0x608]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1424]
test edx, edx
je 0x47dd8e
lea edi, [esp + 0x308]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x408]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, dword [esp + 0x1428]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x13f8
ret
lea edi, [esp + 0x708]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x50
je 0x47dde8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13f8
ret
xor edx, edx
lea esi, [esp + 0x708]
mov al, byte [esi]
cmp al, 0x39
movsx eax, al
jle 0x47ddff
sub eax, 0x37
jmp 0x47de02
sub eax, 0x30
mov cl, byte [esi + 1]
shl al, 4
cmp cl, 0x39
mov byte [esp + edx + 0x48], al
movsx ecx, cl
jle 0x47de19
sub ecx, 0x37
jmp 0x47de1c
sub ecx, 0x30
add al, cl
add esi, 2
mov byte [esp + edx + 0x48], al
inc edx
cmp edx, 0x28
jl 0x47ddf1
lea eax, [esp + 0x108]
lea ecx, [esp + 0x808]
push eax
push ecx
mov byte [esp + 0x810], 0
call fcn.0047d960
lea edx, [esp + 0x610]
lea eax, [esp + 0x810]
push edx
push eax
call fcn.0047d960
lea ecx, [esp + 0x518]
lea edx, [esp + 0x818]
push ecx
push edx
call fcn.0047d960
lea eax, [esp + 0x320]
lea ecx, [esp + 0x820]
push eax
push ecx
call fcn.0047d960
lea edx, [esp + 0x428]
lea eax, [esp + 0x828]
push edx
push eax
call fcn.0047d960
lea ecx, [esp + 0x1030]
lea edx, [esp + 0x830]
push ecx
push edx
call fcn.0047d960
lea eax, [esp + 0x78]
push 0x6ed800
push eax
lea edi, [esp + 0x840]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x844]
push ecx
call fcn.0047e410
add esp, 0x40
shl eax, 4
mov dword [esp + 0x24], eax
jne 0x47def3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
mov al, byte [esp + 0x308]
test al, al
je 0x47dfe9
lea edx, [esp + 0x10]
push edx
push 0xf003f
push 0
push 0x6ed9c8
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
lea eax, [esp + 0x114]
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x47df55
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, dword [esp + 0x1a]
mov edx, dword [esp + 0x16]
mov eax, dword [esp + 0x14]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
lea ecx, [esp + 0x34]
push 0x6ed9b8
push ecx
call fcn.0046778b
lea edx, [esp + 0x31c]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0046686b
add esp, 0x1c
test eax, eax
jl 0x47dfde
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x24]
push 4
push ecx
push 4
lea edx, [esp + 0x114]
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x1418]
test edx, edx
je 0x47e018
lea edi, [esp + 0x108]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x141c]
test edx, edx
je 0x47e047
lea edi, [esp + 0x608]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1420]
test edx, edx
je 0x47e076
lea edi, [esp + 0x508]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1424]
test edx, edx
je 0x47e0a5
lea edi, [esp + 0x308]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1428]
test edx, edx
je 0x47e0d4
lea edi, [esp + 0x408]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1414]
test eax, eax
je 0x47ddb7
lea ecx, [esp + 0x408]
push ecx
push eax
call fcn.0046686b
add esp, 8
test eax, eax
jle 0x47ddb7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret