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

Disassembly:
mov eax, 0x13f8
call fcn.00465d90
push ebx
push ebp
mov ebp, dword [esp + 0x1408]
push esi
push edi
push 0x6dbb4c
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cb71
mov esi, str.Foxit_SSH_Link
jmp 0x47cc29
push 0x6dbb38
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cb8d
mov esi, str.PDF_Text_Converter
jmp 0x47cc29
push 0x6dbb20
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cba9
mov esi, str.PDF_Text_Viewer
jmp 0x47cc29
push 0x6dbb0c
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cbc2
mov esi, str.WAC_Server
jmp 0x47cc29
push 0x6dbafc
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cbdb
mov esi, str.PDF_Page_Organizer
jmp 0x47cc29
push 0x6dbae4
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cbf4
mov esi, str.PDF_Page_Organizer_Pro
jmp 0x47cc29
push 0x6dbac8
push ebp
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cc0d
mov esi, str.PDF_Editor
jmp 0x47cc29
push 0x6d4adc
push ebp
call fcn.004659bb
add esp, 8
mov esi, 0x6dbaa8
test eax, eax
je 0x47cc29
mov esi, str.Foxit_License
mov edi, dword [esp + 0x140c]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push edi
lea eax, [esp + 0x10c]
push 0x100
push eax
push 0x730500
push 0x6dba94
push esi
call ebx
mov al, byte [esp + 0x108]
test al, al
jne 0x47cc7c
push edi
lea ecx, [esp + 0x10c]
push 0x100
push ecx
mov esi, str.Foxit_License
push 0x730500
push 0x6dba94
push esi
call ebx
push edi
lea edx, [esp + 0x60c]
push 0x100
push edx
push 0x730500
push str.Users
push esi
call ebx
push edi
lea eax, [esp + 0x50c]
push 0x100
push eax
push 0x730500
push str.Licensee
push esi
call ebx
push edi
lea ecx, [esp + 0x30c]
push 0x100
push ecx
push 0x730500
push str.ExpireDate
push esi
call ebx
push edi
lea edx, [esp + 0x70c]
push 0x100
push edx
push 0x730500
push str.Sign
push esi
call ebx
push edi
lea eax, [esp + 0x40c]
push 0x100
push eax
push 0x730500
push str.LicenseDate
push esi
call ebx
push edi
lea ecx, [esp + 0x100c]
push 0x400
push ecx
push 0x730500
push 0x6dba54
push esi
call ebx
push edi
lea edx, [esp + 0x20c]
push 0x400
push edx
push 0x730500
push str.CDKey
push esi
call ebx
push 3
lea eax, [esp + 0x10c]
push ebp
push eax
call fcn.0046805b
add esp, 0xc
test eax, eax
je 0x47cd5d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
lea ecx, [esp + 0x508]
push 0x6dba2c
push ecx
call fcn.004659bb
add esp, 8
test eax, eax
jne 0x47cf67
mov ecx, 0x20
lea edi, [esp + 0x88]
lea edx, [esp + 0x208]
rep stosd dword es:[edi], eax
push edx
call fcn.00467d6a
mov eax, dword [esp + 0x20c]
add esp, 4
mov dword [esp + 0x88], eax
xor eax, eax
cmp eax, 2
mov ecx, 5
jl 0x47cdb7
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 0x47cda8
mov edi, 0x6db9f4
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.0047d490
mov edx, dword [esp + 0x1424]
add esp, 0xc
test edx, edx
je 0x47ce61
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 0x47ce90
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 0x47cea7
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 0x47d29c
add ecx, 2
add esi, 4
cmp ecx, 8
jl 0x47ce96
mov edx, dword [esp + 0x141c]
test edx, edx
je 0x47ceff
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 0x47cf2e
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 0x47cf88
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 0x47cf9f
sub eax, 0x37
jmp 0x47cfa2
sub eax, 0x30
mov cl, byte [esi + 1]
shl al, 4
cmp cl, 0x39
mov byte [esp + edx + 0x48], al
movsx ecx, cl
jle 0x47cfb9
sub ecx, 0x37
jmp 0x47cfbc
sub ecx, 0x30
add al, cl
add esi, 2
mov byte [esp + edx + 0x48], al
inc edx
cmp edx, 0x28
jl 0x47cf91
lea eax, [esp + 0x108]
lea ecx, [esp + 0x808]
push eax
push ecx
mov byte [esp + 0x810], 0
call fcn.0047cb00
lea edx, [esp + 0x610]
lea eax, [esp + 0x810]
push edx
push eax
call fcn.0047cb00
lea ecx, [esp + 0x518]
lea edx, [esp + 0x818]
push ecx
push edx
call fcn.0047cb00
lea eax, [esp + 0x320]
lea ecx, [esp + 0x820]
push eax
push ecx
call fcn.0047cb00
lea edx, [esp + 0x428]
lea eax, [esp + 0x828]
push edx
push eax
call fcn.0047cb00
lea ecx, [esp + 0x1030]
lea edx, [esp + 0x830]
push ecx
push edx
call fcn.0047cb00
lea eax, [esp + 0x78]
push 0x6db800
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.0047d580
add esp, 0x40
shl eax, 4
mov dword [esp + 0x24], eax
jne 0x47d093
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret
mov al, byte [esp + 0x308]
test al, al
je 0x47d189
lea edx, [esp + 0x10]
push edx
push 0xf003f
push 0
push str.SoftwareMicrosoftWindowsCurrentVersion
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 0x47d0f5
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 str._04d__02d__02d
push ecx
call fcn.004668db
lea edx, [esp + 0x31c]
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.004659bb
add esp, 0x1c
test eax, eax
jl 0x47d17e
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 0x47d1b8
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 0x47d1e7
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 0x47d216
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 0x47d245
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 0x47d274
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 0x47cf57
lea ecx, [esp + 0x408]
push ecx
push eax
call fcn.004659bb
add esp, 8
test eax, eax
jle 0x47cf57
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x13f8
ret