Function at 0x10038dc0
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x1008e741
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x83c
mov al, byte [0x100aba18]
push ebx
push ebp
mov edx, ecx
push edi
mov byte [esp + 0x148], al
mov ecx, 0xbf
xor eax, eax
lea edi, [esp + 0x149]
mov dword [esp + 0x40], edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
add edx, 4
mov ecx, 0x100
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x858]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x3c], 0x400
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], edx
je 0x100392a1
mov ebp, dword [esp + 0x85c]
cmp ebp, ebx
je 0x100392a1
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
call esi
test eax, eax
je 0x10039294
push ebp
call esi
test eax, eax
je 0x10039294
push edi
call esi
cmp eax, 0x200
jg 0x100391e7
mov esi, str.LOGDIR
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10038e9f
cmp cl, bl
je 0x10038e9b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10038e9f
add eax, 2
add esi, 2
cmp cl, bl
jne 0x10038e7b
xor eax, eax
jmp 0x10038ea4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10038f74
mov ebp, 0x10093764
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0x14]
mov dword [esp + 0x854], ebx
cmp eax, ebx
je 0x10038f45
lea eax, [esp + 0x48]
push 0x104
push eax
lea ecx, [esp + 0x20]
call fcn.10039f00
cmp eax, ebx
jne 0x10038f45
mov edi, str.LOGDIR
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x44c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x44c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x48]
push ecx
push 0x400
push edx
push 0x100aba18
push eax
push str.PATH
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp eax, ebx
ja 0x10038f45
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [esp + 0x14]
or edx, 0xffffffff
mov ecx, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x854], edx
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x1c]
jne 0x100391f1
call fcn.1003a700
jmp 0x100390af
mov eax, dword [esp + 0x860]
mov esi, str.REPORTDIR
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10038fa4
cmp cl, bl
je 0x10038fa0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10038fa4
add eax, 2
add esi, 2
cmp cl, bl
jne 0x10038f80
xor eax, eax
jmp 0x10038fa9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10039012
mov eax, 1
mov ebp, 0x10093764
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x24], bl
mov edi, dword [esp + 0x14]
push ebx
push 0x400
push edi
push 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x864], eax
call fcn.100392b0
or edx, 0xffffffff
xor eax, eax
mov ecx, edx
mov dword [esp + 0x854], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x20]
jne 0x100391f8
cmp ecx, ebx
je 0x100390af
jmp 0x100390aa
mov eax, dword [esp + 0x860]
mov esi, str.TMPDIR
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10039042
cmp cl, bl
je 0x1003903e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10039042
add eax, 2
add esi, 2
cmp cl, bl
jne 0x1003901e
xor eax, eax
jmp 0x10039047
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100390af
mov ebp, 0x10093764
mov dword [esp + 0x30], 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebp
mov byte [esp + 0x3c], bl
mov edi, dword [esp + 0x14]
push ebx
push 0x400
push edi
push 9
lea ecx, [esp + 0x40]
mov dword [esp + 0x864], 2
call fcn.100392b0
or edx, 0xffffffff
xor eax, eax
mov ecx, edx
mov dword [esp + 0x854], edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], ebp
mov ecx, dword [esp + 0x38]
jne 0x100391f8
cmp ecx, ebx
je 0x100390af
call fcn.1003a760
mov eax, dword [esp + 0x860]
mov esi, str.ProductTreatment
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x100390df
cmp cl, bl
je 0x100390db
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x100390df
add eax, 2
add esi, 2
cmp cl, bl
jne 0x100390bb
xor eax, eax
jmp 0x100390e4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100390f2
mov byte [esp + 0x10], 3
jmp 0x10039174
mov eax, dword [esp + 0x860]
mov esi, 0x100a81e0
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10039122
cmp cl, bl
je 0x1003911e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10039122
add eax, 2
add esi, 2
cmp cl, bl
jne 0x100390fe
xor eax, eax
jmp 0x10039127
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10039132
mov byte [esp + 0x10], 4
jmp 0x10039174
mov eax, dword [esp + 0x860]
mov esi, str.Special
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10039162
cmp cl, bl
je 0x1003915e
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10039162
add eax, 2
add esi, 2
cmp cl, bl
jne 0x1003913e
xor eax, eax
jmp 0x10039167
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x10039203
mov byte [esp + 0x10], 5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x85c]
push 0x400
push eax
push ecx
mov ecx, dword [esp + 0x50]
push edx
push str.SKYSEAClientView
call fcn.1003a240
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
pop esi
cmp eax, ebx
je 0x100391ad
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0xc], ebx
je 0x100391cd
mov edx, dword [esp + 0x10]
mov ecx, 0x100
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x848]
pop edi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x848
ret 8
mov dword [esp + 0x10], 0x6cf
jmp 0x1003919d
call fcn.1003a700
jmp 0x1003919d
cmp ecx, ebx
je 0x1003919d
call fcn.1003a760
jmp 0x1003919d
mov eax, dword [esp + 0x85c]
lea ecx, [esp + 0x14c]
push eax
push str.Sky_ProductSKYSEAClientView
push str.software_s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea edx, [esp + 0x28]
lea eax, [esp + 0x14c]
push edx
push 1
push ebx
push eax
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x1003919d
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x864]
lea eax, [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push eax
push ebx
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x1003919d
cmp dword [esp + 0x2c], 1
je 0x1003919d
mov dword [esp + 0x10], 0x65d
jmp 0x1003919d
mov dword [esp + 0x10], 0x57
jmp 0x1003919d
mov dword [esp + 0xc], 0x57
jmp 0x100391b7