Function at 0x10055410
Capabilities:
Check os version
Persist via windows service
Set registry value

Disassembly:
sub esp, 0xa30
mov eax, dword [0x1017455c]
xor eax, esp
mov dword [esp + 0xa2c], eax
cmp dword [0x1019e748], 0
push ebx
push esi
mov esi, dword [esp + 0xa3c]
push edi
mov edi, dword [esp + 0xa44]
jne 0x1005545f
mov ebx, 1
mov dword [0x1019e748], ebx
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x1005545f
cmp al, 6
jb 0x1005545f
mov dword [0x1019e74c], ebx
jmp 0x1005546c
cmp dword [0x1019e74c], 0
je 0x1005551a
push 0x103
lea eax, [esp + 0x15]
push 0
push eax
mov byte [esp + 0x1c], 0
call fcn.10116880
mov al, byte [esi]
xor ecx, ecx
add esp, 0xc
mov word [esp + 0x628], cx
lea ecx, [esp + 0x628]
mov edx, esi
test al, al
je 0x100554b1
mov edi, edi
movzx ax, al
inc edx
mov word [ecx], ax
mov al, byte [edx]
add ecx, 2
test al, al
jne 0x100554a0
xor eax, eax
xor edx, edx
mov word [esp + 0x218], ax
mov al, byte [edi]
mov word [ecx], dx
lea ecx, [esp + 0x218]
mov edx, edi
test al, al
je 0x100554e1
nop
movzx ax, al
inc edx
mov word [ecx], ax
mov al, byte [edx]
add ecx, 2
test al, al
jne 0x100554d0
xor edx, edx
lea eax, [esp + 0x218]
mov word [ecx], dx
push eax
lea ecx, [esp + 0x62c]
push ecx
lea eax, [esp + 0x18]
call fcn.10062860
push esi
mov edi, eax
call fcn.100551a0
xor eax, eax
add esp, 0xc
test edi, edi
sete al
lea eax, [eax + eax - 1]
jmp 0x1005561e
push ebp
push 0x207
lea edx, [esp + 0x19]
push 0
push edx
mov byte [esp + 0x20], 0
call fcn.10116880
push esi
push edi
lea eax, [esp + 0x28]
push str._s::Enabled:_s
push eax
mov dword [esp + 0x2c], 0
call fcn.1010d6a8
mov ebp, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
add esp, 0x1c
lea ecx, [esp + 0x10]
push ecx
push 0xf003f
push 0
push str.SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyStandardProfileAuthorizedApplicationsList
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, eax
push esi
call ebx
test esi, esi
jne 0x10055608
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x10]
inc eax
push eax
lea eax, [esp + 0x18]
push eax
push 1
push esi
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x100555fd
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [esp + 0xa4c], 1
jne 0x10055618
lea ecx, [esp + 0x10]
push ecx
push 0xf003f
push esi
push str.SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyDomainProfileAuthorizedApplicationsList
push reloc.OLEAUT32.dll_SysReAllocString
call ebp
mov esi, eax
push esi
call ebx
test esi, esi
jne 0x10055608
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x10]
inc eax
push eax
lea eax, [esp + 0x18]
push eax
push 1
push esi
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x1005560d
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
or eax, 0xffffffff
jmp 0x1005561d
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
pop ebp
mov ecx, dword [esp + 0xa38]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1010d699
add esp, 0xa30
ret 0xc