Function at 0x10002190
Capabilities:
Persist via windows service
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004c488
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x100661b0]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
push edi
mov eax, dword [0x100661b0]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x20], 0x80004005
mov dword [esp + 0x18], ebx
mov dword [esp + 0x58], ebx
lea eax, [esp + 0x1c]
push eax
push 0x2001f
push ebx
push str.SYSTEMCurrentControlSetServicesEventLogApplication
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x1000237d
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
mov byte [esp + 0x58], 1
mov eax, dword [edi + 4]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x14]
push edx
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push eax
push esi
mov dword [esp + 0x34], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, ebx
jne 0x10002356
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x18], edi
call fcn.100043a0
mov byte [esp + 0x58], 2
mov ecx, dword [0x100befb4]
lea esi, [esp + 0x28]
call fcn.1001a210
cmp dword [esp + 0x44], 8
mov esi, dword [esp + 0x30]
jae 0x10002272
lea esi, [esp + 0x30]
xor eax, eax
cmp esi, ebx
setne al
cmp eax, ebx
jne 0x10002287
push 0x80004005
call fcn.10003a00
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
push ecx
push esi
push 1
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.EventMessageFile
push edi
call ebx
test eax, eax
jne 0x1000232f
cmp dword [esp + 0x44], 8
mov esi, dword [esp + 0x30]
jae 0x100022bc
lea esi, [esp + 0x30]
xor eax, eax
test esi, esi
setne al
test eax, eax
jne 0x100022d1
push 0x80004005
call fcn.10003a00
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
push esi
push 1
push 0
push str.CategoryMessageFile
push edi
call ebx
test eax, eax
jne 0x1000232f
push 4
lea eax, [esp + 0x14]
push eax
push 4
push 0
push str.TypesSupported
push edi
mov dword [esp + 0x28], 7
call ebx
test eax, eax
jne 0x1000232f
push 4
lea ecx, [esp + 0x14]
push ecx
push 4
push eax
push str.CategoryCount
push edi
mov dword [esp + 0x28], 0x11
call ebx
test eax, eax
jne 0x1000232f
mov dword [esp + 0x20], eax
test edi, edi
je 0x10002342
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x14], 0
mov byte [esp + 0x58], 1
lea ecx, [esp + 0x28]
call fcn.10004620
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
je 0x10002365
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x18], ebx
mov byte [esp + 0x58], 0
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x1000237d
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x58], 0xffffffff
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x10002398
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.100346f8
mov esp, ebp
pop ebp
ret