joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4051b0
Capabilities:
Contain obfuscated stackstrings
Enumerate pe sections

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x48]
push ebx
push ebp
push esi
mov ebp, dword [eax + 4]
mov esi, dword [sym.imp.kernel32.dll_GetStringTypeW]
lea ecx, [esp + 0x28]
push edi
lea edx, [esp + 0x3c]
mov al, 0x45
mov bl, 0x6c
push ecx
push edx
mov byte [esp + 0x44], 0x4b
mov byte [esp + 0x45], al
mov byte [esp + 0x46], 0x52
mov byte [esp + 0x47], 0x4e
mov byte [esp + 0x48], al
mov byte [esp + 0x49], 0x4c
mov byte [esp + 0x4a], 0x33
mov byte [esp + 0x4b], 0x32
mov byte [esp + 0x4c], 0x2e
mov byte [esp + 0x4d], 0x64
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4f], bl
mov byte [esp + 0x50], 0
mov byte [esp + 0x34], 0x56
mov byte [esp + 0x35], 0x69
mov byte [esp + 0x36], 0x72
mov byte [esp + 0x37], 0x74
mov byte [esp + 0x38], 0x75
mov byte [esp + 0x39], 0x61
mov byte [esp + 0x3a], bl
mov byte [esp + 0x3b], 0x41
mov byte [esp + 0x3c], bl
mov byte [esp + 0x3d], bl
mov byte [esp + 0x3e], 0x6f
mov byte [esp + 0x3f], 0x63
mov byte [esp + 0x40], 0
call esi
mov edi, dword [sym.imp.kernel32.dll_GetConsoleNlsMode]
push eax
call edi
mov dword [esp + 0x10], eax
mov al, 0x65
mov cl, 0x6d
mov byte [esp + 0x19], al
mov byte [esp + 0x1c], al
mov byte [esp + 0x18], cl
mov byte [esp + 0x1a], cl
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
push eax
push ecx
mov byte [esp + 0x28], 0x4d
mov byte [esp + 0x29], 0x53
mov byte [esp + 0x2a], 0x56
mov byte [esp + 0x2b], 0x43
mov byte [esp + 0x2c], 0x52
mov byte [esp + 0x2d], 0x54
mov byte [esp + 0x2e], 0x2e
mov byte [esp + 0x2f], 0x64
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], 0
mov byte [esp + 0x23], 0x73
mov byte [esp + 0x25], 0x74
mov byte [esp + 0x26], 0
call esi
push eax
call edi
mov edx, dword [esp + 0x58]
mov ebx, eax
xor ecx, ecx
mov dword [esp + 0x14], 0
mov eax, dword [edx]
mov cx, word [eax + 0x14]
cmp word [eax + 6], 0
lea esi, [ecx + eax + 0x18]
jbe 0x405369
add esi, 0x10
cmp dword [esi], 0
jne 0x40531b
mov edx, dword [esp + 0x54]
mov edi, dword [edx + 0x38]
test edi, edi
jle 0x40534d
mov eax, dword [esi - 4]
push 4
push 0x1000
add eax, ebp
push edi
push eax
call dword [esp + 0x20]
push edi
push 0
push eax
mov dword [esi - 8], eax
call ebx
add esp, 0xc
jmp 0x40534d
mov edx, dword [esi - 4]
mov ecx, dword [esi]
push 4
push 0x1000
add edx, ebp
push ecx
push edx
call dword [esp + 0x20]
mov ecx, dword [esi + 4]
mov edi, eax
mov eax, dword [esi]
push eax
mov eax, dword [esp + 0x54]
add ecx, eax
push ecx
mov ecx, dword [0x4136bc]
push edi
call fcn.00405ca0
mov dword [esi - 8], edi
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x28
mov ecx, dword [edx]
xor edx, edx
mov dword [esp + 0x14], eax
mov dx, word [ecx + 6]
cmp eax, edx
jl 0x4052eb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
Function at 0x405380
Capabilities:
Contain obfuscated stackstrings
Enumerate pe sections

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x40]
xor ecx, ecx
push ebx
push ebp
mov eax, dword [eax]
push esi
mov esi, dword [sym.imp.kernel32.dll_GetStringTypeW]
lea edx, [esp + 0x1c]
mov cx, word [eax + 0x14]
push edi
mov bl, 0x74
push edx
lea ebp, [ecx + eax + 0x18]
mov al, 0x45
mov byte [esp + 0x31], al
mov byte [esp + 0x34], al
lea eax, [esp + 0x30]
mov byte [esp + 0x30], 0x4b
push eax
mov byte [esp + 0x36], 0x52
mov byte [esp + 0x37], 0x4e
mov byte [esp + 0x39], 0x4c
mov byte [esp + 0x3a], 0x33
mov byte [esp + 0x3b], 0x32
mov byte [esp + 0x3c], 0x2e
mov byte [esp + 0x3d], 0x64
mov byte [esp + 0x3e], 0x6c
mov byte [esp + 0x3f], 0x6c
mov byte [esp + 0x40], 0
mov byte [esp + 0x28], 0x56
mov byte [esp + 0x29], 0x69
mov byte [esp + 0x2a], 0x72
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2c], 0x75
mov byte [esp + 0x2d], 0x61
mov byte [esp + 0x2e], 0x6c
mov byte [esp + 0x2f], 0x46
mov byte [esp + 0x30], 0x72
mov byte [esp + 0x31], 0x65
mov byte [esp + 0x32], 0x65
mov byte [esp + 0x33], 0
call esi
mov edi, dword [sym.imp.kernel32.dll_GetConsoleNlsMode]
push eax
call edi
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x2c]
push ecx
push edx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x44], 0x56
mov byte [esp + 0x45], 0x69
mov byte [esp + 0x46], 0x72
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], 0x75
mov byte [esp + 0x49], 0x61
mov byte [esp + 0x4a], 0x6c
mov byte [esp + 0x4b], 0x50
mov byte [esp + 0x4c], 0x72
mov byte [esp + 0x4d], 0x6f
mov byte [esp + 0x4e], bl
mov byte [esp + 0x4f], 0x65
mov byte [esp + 0x50], 0x63
mov byte [esp + 0x51], bl
mov byte [esp + 0x52], 0
call esi
push eax
call edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], 0
mov edi, dword [eax]
cmp word [edi + 6], 0
jbe 0x40553d
lea ebx, [ebp + 0x24]
mov eax, dword [ebx]
mov ecx, eax
mov edx, eax
shr ecx, 0x1d
shr edx, 0x1e
mov esi, eax
and ecx, 1
and edx, 1
shr esi, 0x1f
test eax, 0x2000000
je 0x4054dc
mov ecx, dword [ebx - 0x14]
mov edx, dword [ebx - 0x1c]
push 0x4000
push ecx
push edx
call dword [esp + 0x20]
jmp 0x40551d
lea ecx, [edx + ecx*2]
test eax, 0x4000000
lea edx, [esi + ecx*2]
mov edx, dword [edx*4 + 0x4110e0]
je 0x4054f3
or dh, 2
mov ecx, dword [ebx - 0x14]
test ecx, ecx
jne 0x40550c
test al, 0x40
je 0x405503
mov ecx, dword [edi + 0x20]
jmp 0x40550a
test al, 0x80
je 0x40551d
mov ecx, dword [edi + 0x24]
test ecx, ecx
jbe 0x40551d
lea eax, [esp + 0x1c]
push eax
push edx
push ecx
mov ecx, dword [ebx - 0x1c]
push ecx
call dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
xor ecx, ecx
inc eax
mov edi, dword [edx]
add ebx, 0x28
mov dword [esp + 0x10], eax
mov cx, word [edi + 6]
cmp eax, ecx
jl 0x4054ab
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
Function at 0x406a26
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov byte [ebp - 0x3a8], 0x52
mov byte [ebp - 0x3a7], 0x65
mov byte [ebp - 0x3a6], 0x67
mov byte [ebp - 0x3a5], 0x43
mov byte [ebp - 0x3a4], 0x6c
mov byte [ebp - 0x3a3], 0x6f
mov byte [ebp - 0x3a2], 0x73
mov byte [ebp - 0x3a1], 0x65
mov byte [ebp - 0x3a0], 0x4b
mov byte [ebp - 0x39f], 0x65
mov byte [ebp - 0x39e], 0x79
mov byte [ebp - 0x39d], bl
lea edx, [ebp - 0x3a8]
push edx
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.kernel32.dll_GetStringTypeW]
push eax
call edi
mov esi, eax
mov ecx, dword [ebp + 8]
push ecx
call esi
mov edx, dword [ebp - 0x2b4]
push edx
call esi
ret
Function at 0x407050
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov ecx, dword [esp + 8]
lea eax, [esp]
push eax
push ecx
mov dword [esp + 8], 0
call fcn.00406ef0
add esp, 8
xor ecx, ecx
test eax, eax
jle 0x407098
push ebx
mov edx, dword [esp + 4]
mov bl, byte [ecx + edx]
add bl, 0x6d
mov byte [ecx + edx], bl
mov edx, dword [esp + 4]
mov bl, byte [ecx + edx]
xor bl, 0x13
mov byte [ecx + edx], bl
inc ecx
cmp ecx, eax
jl 0x407072
mov eax, dword [esp + 4]
pop ebx
pop ecx
ret
mov eax, dword [esp]
pop ecx
ret
Function at 0x4070a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x240
mov ax, word [0x4115e4]
mov cl, byte [0x4115e6]
push ebx
push esi
push edi
mov word [esp + 0x4c], ax
mov byte [esp + 0x4e], cl
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x4f]
rep stosd dword es:[edi], eax
mov dx, word [0x4115e0]
mov ecx, 0x3f
stosb byte es:[edi], al
mov al, byte [0x4115e2]
lea edi, [esp + 0x14f]
mov byte [esp + 0x14e], al
xor eax, eax
mov word [esp + 0x14c], dx
lea edx, [esp + 0x4c]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea edi, [esp + 0x14c]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0xc], 0x48
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x10], 0x57
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov bl, 0x44
and ecx, 3
mov byte [esp + 0xf], bl
rep movsb byte es:[edi], byte [esi]
mov cl, 0x45
mov byte [esp + 0x15], bl
mov byte [esp + 0x13], cl
mov byte [esp + 0x16], cl
mov al, 0x41
mov dl, 0x52
mov bl, 0x53
mov cl, 0x49
mov byte [esp + 0xd], al
mov byte [esp + 0xe], dl
mov byte [esp + 0x11], al
mov byte [esp + 0x12], dl
mov byte [esp + 0x17], bl
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], cl
mov byte [esp + 0x1d], cl
mov byte [esp + 0x21], bl
mov al, 0x5c
mov bl, 0x73
mov cl, 0x74
mov dl, 0x65
mov byte [esp + 0x14], al
mov byte [esp + 0x18], 0x43
mov byte [esp + 0x1b], 0x50
mov byte [esp + 0x1c], 0x54
mov byte [esp + 0x1e], 0x4f
mov byte [esp + 0x1f], 0x4e
mov byte [esp + 0x20], al
mov byte [esp + 0x22], 0x79
mov byte [esp + 0x23], bl
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], dl
mov byte [esp + 0x26], 0x6d
mov byte [esp + 0x27], al
mov byte [esp + 0x28], 0x43
mov byte [esp + 0x29], dl
mov byte [esp + 0x2a], 0x6e
mov byte [esp + 0x38], al
mov byte [esp + 0x2b], cl
mov eax, 4
mov cl, 0x72
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov byte [esp + 0x2c], cl
mov byte [esp + 0x30], cl
mov byte [esp + 0x37], cl
lea eax, [esp + 0x3c]
lea ecx, [esp + 0xc]
push eax
push ecx
push connect
mov byte [esp + 0x39], 0x61
mov byte [esp + 0x3a], 0x6c
mov byte [esp + 0x3b], 0x50
mov byte [esp + 0x3d], 0x6f
mov byte [esp + 0x3e], 0x63
mov byte [esp + 0x3f], dl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], bl
mov byte [esp + 0x42], 0x6f
mov byte [esp + 0x45], 0x30
mov byte [esp + 0x46], 0
call dword [sym.imp.advapi32.dll_Ordinal_485]
lea edx, [esp + 0x48]
lea eax, [esp + 0x40]
push edx
lea ecx, [esp + 0x48]
push eax
mov eax, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x58]
push 0
push edx
push eax
call dword [sym.imp.advapi32.dll_Ordinal_496]
mov ecx, dword [esp + 0x3c]
push ecx
call dword [sym.imp.advapi32.dll_Ordinal_460]
mov eax, dword [esp + 0x40]
pop edi
pop esi
pop ebx
add esp, 0x240
ret
Function at 0x407270
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0xc4
mov al, 0x6c
mov cl, 0x72
mov byte [esp + 0xa], al
mov byte [esp + 0xb], al
mov al, 0x69
push ebp
mov byte [esp + 0x1c], al
mov byte [esp + 0x25], al
mov byte [esp + 0x28], al
push esi
mov byte [esp + 0x1f], cl
mov byte [esp + 0x23], cl
mov byte [esp + 0x28], cl
lea eax, [esp + 0x18]
push edi
lea ecx, [esp + 0xc]
mov dl, 0x65
push eax
push ecx
xor edi, edi
mov byte [esp + 0x14], 0x41
mov byte [esp + 0x15], 0x56
mov byte [esp + 0x16], 0x49
mov byte [esp + 0x17], 0x43
mov byte [esp + 0x18], 0x41
mov byte [esp + 0x19], 0x50
mov byte [esp + 0x1a], 0x33
mov byte [esp + 0x1b], 0x32
mov byte [esp + 0x1c], 0x2e
mov byte [esp + 0x1d], 0x64
mov byte [esp + 0x20], 0
mov byte [esp + 0x24], 0x63
mov byte [esp + 0x25], 0x61
mov byte [esp + 0x26], 0x70
mov byte [esp + 0x27], 0x47
mov byte [esp + 0x28], dl
mov byte [esp + 0x29], 0x74
mov byte [esp + 0x2a], 0x44
mov byte [esp + 0x2d], 0x76
mov byte [esp + 0x2e], dl
mov byte [esp + 0x30], 0x44
mov byte [esp + 0x31], dl
mov byte [esp + 0x32], 0x73
mov byte [esp + 0x33], 0x63
mov byte [esp + 0x36], 0x70
mov byte [esp + 0x37], 0x74
mov byte [esp + 0x39], 0x6f
mov byte [esp + 0x3a], 0x6e
mov byte [esp + 0x3b], 0x41
mov byte [esp + 0x3c], 0
call dword [sym.imp.kernel32.dll_GetStringTypeW]
push eax
call dword [sym.imp.kernel32.dll_GetConsoleNlsMode]
mov ebp, eax
xor esi, esi
test edi, edi
jne 0x40736e
lea edx, [esp + 0x38]
push 0x32
push edx
lea eax, [esp + 0x74]
push 0x64
push eax
push esi
call ebp
inc esi
mov edi, eax
cmp esi, 0xa
jl 0x407351
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0xc4
ret
Function at 0x408810
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
mov esi, dword [sym.imp.kernel32.dll_GetStringTypeW]
lea eax, [esp + 0x38]
push edi
lea ecx, [esp + 0x10]
mov bl, 0x70
push eax
push ecx
mov byte [esp + 0x18], 0x55
mov byte [esp + 0x19], 0x53
mov byte [esp + 0x1a], 0x45
mov byte [esp + 0x1b], 0x52
mov byte [esp + 0x1c], 0x33
mov byte [esp + 0x1d], 0x32
mov byte [esp + 0x1e], 0x2e
mov byte [esp + 0x1f], 0x64
mov byte [esp + 0x20], 0x6c
mov byte [esp + 0x21], 0x6c
mov byte [esp + 0x22], 0
mov byte [esp + 0x44], 0x4f
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], 0x65
mov byte [esp + 0x47], 0x6e
mov byte [esp + 0x48], 0x49
mov byte [esp + 0x49], 0x6e
mov byte [esp + 0x4a], bl
mov byte [esp + 0x4b], 0x75
mov byte [esp + 0x4c], 0x74
mov byte [esp + 0x4d], 0x44
mov byte [esp + 0x4e], 0x65
mov byte [esp + 0x4f], 0x73
mov byte [esp + 0x50], 0x6b
mov byte [esp + 0x51], 0x74
mov byte [esp + 0x52], 0x6f
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], 0
call esi
mov edi, dword [sym.imp.kernel32.dll_GetConsoleNlsMode]
push eax
call edi
mov ebp, eax
lea edx, [esp + 0x1c]
lea eax, [esp + 0x10]
push edx
push eax
mov byte [esp + 0x24], 0x4f
mov byte [esp + 0x25], bl
mov byte [esp + 0x26], 0x65
mov byte [esp + 0x27], 0x6e
mov byte [esp + 0x28], 0x44
mov byte [esp + 0x29], 0x65
mov byte [esp + 0x2a], 0x73
mov byte [esp + 0x2b], 0x6b
mov byte [esp + 0x2c], 0x74
mov byte [esp + 0x2d], 0x6f
mov byte [esp + 0x2e], bl
mov byte [esp + 0x2f], 0x41
mov byte [esp + 0x30], 0
call esi
push eax
call edi
mov ecx, dword [esp + 0x54]
push 0x1ff
test ecx, ecx
push 0
je 0x408923
push 0
push ecx
call eax
jmp 0x408927
push 1
call ebp
mov ebp, eax
test ebp, ebp
jne 0x408935
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x10]
push ecx
push edx
mov byte [esp + 0x34], 0x43
mov byte [esp + 0x35], 0x6c
mov byte [esp + 0x36], 0x6f
mov byte [esp + 0x37], 0x73
mov byte [esp + 0x38], 0x65
mov byte [esp + 0x39], 0x44
mov byte [esp + 0x3a], 0x65
mov byte [esp + 0x3b], 0x73
mov byte [esp + 0x3c], 0x6b
mov byte [esp + 0x3d], 0x74
mov byte [esp + 0x3e], 0x6f
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], 0
call esi
push eax
call edi
push ebp
mov esi, eax
call fcn.004084b0
add esp, 4
test eax, eax
jne 0x4089a0
push ebp
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x40
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
Function at 0x40ea38
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40eb0d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x40eb28
push ebx
push 0x40eb38
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.0040513c
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.00403250
mov dword [ebp - 0x48], 0x44
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00404d24
push eax
push 0
call sub.kernel32.dll_CreateProcessW
test eax, eax
jne 0x40eab8
mov al, 0x6a
call fcn.0040e658
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.0040ea0c
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x58]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x40eac1
call fcn.0040ea0c
push edi
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40eb14
lea eax, [ebp - 4]
call fcn.00404c88
ret

Function at 0x40ec28
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffb4
mov dword [esp], eax
lea esi, [esp + 0x30]
lea eax, [esp + 0xc]
push eax
call sub.kernel32.dll_GetSystemInfo_1
mov edi, dword [esp]
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery_1
test eax, eax
je 0x40ecf3
jmp 0x40ece7
cmp dword [esi + 0x10], 0x1000
jne 0x40ecd3
test byte [esi + 0x15], 1
jne 0x40ecd3
mov byte [esp + 4], 0
mov ebp, dword [esi + 0x14]
cmp ebp, 1
je 0x40ec84
cmp ebp, 2
je 0x40ec84
cmp ebp, 0x10
je 0x40ec84
cmp ebp, 0x20
jne 0x40eca0
lea eax, [esp + 8]
push eax
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x40eca0
mov byte [esp + 4], 1
xor ebx, ebx
jmp 0x40ecb1
mov eax, dword [esi]
add eax, ebx
call fcn.0040ec20
add ebx, dword [esp + 0x10]
cmp ebx, dword [esi + 0xc]
jb 0x40eca4
cmp byte [esp + 4], 0
je 0x40ecd3
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov edi, eax
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery_1
test eax, eax
je 0x40ecf3
mov eax, dword [esi + 4]
cmp eax, dword [esp]
je 0x40ec59
add esp, 0x4c
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x8c2128
Capabilities:
Encode data using xor

Disassembly:
push 0x8c1ea3
mov edi, dword [esp]
add esp, 4
sub ebx, 0x9f42a7a7
call fcn.008c216e
inc eax
inc eax
xor dword [esi], edi
sub eax, 0x7890088b
or ebx, ebx
add eax, eax
inc esi
inc ebx
add ebx, ebx
mov eax, 0x86e79987
cmp esi, ecx
jne fcn.008c2128
dec eax
mov ebx, 0xa150eb5b
add ebx, 1
ret
Function at 0x403b30
Capabilities:
Get token membership

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x43b2e0
push 0x42ccd0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x43d0a0]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], ebx
mov word [ebp - 0x20], 0x500
lea eax, [ebp - 0x2c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea ecx, [ebp - 0x24]
push ecx
call dword [0x46adc0]
mov dword [ebp - 0x28], eax
cmp eax, ebx
je 0x403bcb
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x2c]
push eax
push ebx
call dword [0x46adc4]
test eax, eax
jne 0x403bb1
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [0x46adc8]
mov eax, dword [ebp - 0x28]
jmp 0x403bcb
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00429ed6
mov esp, ebp
pop ebp
ret

Function at 0x403bf0
Capabilities:
Get session user name
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x43b380
push 0x42ccd0
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x43d0a0]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor eax, eax
xor esi, esi
mov dword [ebp - 4], eax
mov byte [ebp - 0x120], al
push 0x103
push eax
lea eax, [ebp - 0x11f]
push eax
call fcn.0042b930
add esp, 0xc
mov dword [ebp - 0x12c], 0x104
lea ecx, [ebp - 0x12c]
push ecx
lea edx, [ebp - 0x120]
push edx
call dword [0x46adcc]
test eax, eax
je 0x403ccd
mov edx, 6
mov dword [ebp - 0x130], edx
lea ecx, [ebp - 0x120]
or eax, 0xffffffff
mov dword [ebp - 0x124], ecx
mov esi, edx
dec edx
mov dword [ebp - 0x130], edx
test esi, esi
je 0x403cac
movzx esi, byte [ecx]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x43a390]
inc ecx
jmp 0x403c81
not eax
xor ecx, ecx
cmp eax, 0x39b5d60d
sete cl
mov esi, ecx
jmp 0x403cc7
mov dword [ebp - 0x128], esi
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00429ed6
mov esp, ebp
pop ebp
ret
Function at 0x407ab0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436fe8
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x43d0a0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x38]
push 0x46a5f8
xor ebx, ebx
push edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x48], ecx
xor esi, esi
mov dword [ebp - 4], ebx
call fcn.00417730
add esp, 8
mov edi, dword [ebp - 0x38]
cmp dword [edi - 0xc], ebx
je 0x407c05
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
lea ebx, [ebp - 0x44]
mov byte [ebp - 4], 2
call fcn.004082c0
mov edi, dword [ebp - 0x44]
test eax, eax
jne 0x407bf8
test edi, edi
je 0x407c03
mov dword [ebp - 0x20], eax
mov word [ebp - 0x30], ax
lea esi, [eax + 1]
mov ebx, 7
lea eax, [ebp - 0x30]
mov dword [ebp - 0x1c], ebx
call fcn.00407f50
mov eax, dword [ebp - 0x48]
mov ecx, eax
mov byte [ebp - 4], 3
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x407b60
sub ecx, esi
sar ecx, 1
push ecx
lea ecx, [ebp - 0x30]
call fcn.00407d10
push 1
mov eax, 0x43a888
lea ecx, [ebp - 0x30]
call fcn.00407d10
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
cmp esi, 8
jae 0x407b95
lea eax, [ebp - 0x30]
lea edx, [eax + 2]
jmp 0x407ba0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407ba0
mov ecx, dword [ebp - 0x30]
sub eax, edx
sar eax, 1
cmp esi, 8
jae 0x407bba
lea ecx, [ebp - 0x30]
lea edx, [eax + eax + 2]
mov eax, dword [ebp - 0x34]
push edx
push ecx
push 2
push 0
push eax
push edi
call dword [0x46ade4]
mov esi, eax
neg esi
sbb esi, esi
inc esi
cmp dword [ebp - 0x1c], 8
jb 0x407be8
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.00429ecb
add esp, 4
xor edx, edx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0
mov word [ebp - 0x30], dx
test edi, edi
je 0x407c03
push edi
call dword [0x46addc]
xor ebx, ebx
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407c39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x407c39
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00429ed6
mov esp, ebp
pop ebp
ret
Function at 0x417530
Capabilities:
Modify service
Start service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436fb0
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x43d0a0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x20]
xor esi, esi
push 0x469f60
xor ebx, ebx
push eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], esi
call fcn.00417730
add esp, 8
mov ecx, dword [ebp - 0x20]
cmp dword [ecx - 0xc], esi
je 0x41765a
push 5
push esi
push esi
call dword [0x46ade8]
mov edi, eax
mov dword [ebp - 0x1c], edi
cmp edi, esi
je 0x41765a
mov edx, dword [ebp - 0x20]
push 0x17
push edx
push edi
call dword [0x46adec]
mov ebx, eax
mov dword [ebp - 0x24], eax
cmp ebx, esi
je 0x417650
lea eax, [ebp - 0x18]
push eax
push esi
push esi
mov dword [ebp - 0x18], esi
mov esi, dword [0x46adf0]
push ebx
call esi
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, ecx
je 0x41763c
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
push eax
mov byte [ebp - 4], 2
lea eax, [ebp - 0x11]
lea edi, [ebp - 0x34]
mov byte [ebp - 0x11], cl
call fcn.00405250
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
sub eax, edi
cmp eax, dword [ebp - 0x18]
jne 0x41762f
test edi, edi
je 0x41762f
lea ecx, [ebp - 0x18]
push ecx
push eax
push edi
push ebx
call esi
test eax, eax
je 0x41762f
cmp dword [edi + 4], 2
je 0x41762f
mov edx, dword [edi + 8]
mov eax, dword [edi]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push 2
push eax
push ebx
call dword [0x46adf4]
lea esi, [ebp - 0x34]
call fcn.00405220
mov edi, dword [ebp - 0x1c]
xor ecx, ecx
push ecx
push ecx
push ebx
call dword [0x46adf8]
push ebx
call dword [0x46adfc]
xor ebx, ebx
xor esi, esi
push edi
call dword [0x46adfc]
mov dword [ebp - 0x1c], esi
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41768a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x41768a
cmp ebx, esi
je 0x417695
push ebx
call dword [0x46adfc]
mov eax, dword [ebp - 0x1c]
cmp eax, esi
je 0x4176a3
push eax
call dword [0x46adfc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret