joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41a720
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x43c
push ebp
push esi
push edi
mov edi, dword [esp + 0x450]
or esi, 0xffffffff
test edi, edi
je 0x41a8c4
mov ebp, dword [esp + 0x454]
test ebp, ebp
je 0x41a8c4
mov eax, dword [0x4cd608]
test eax, eax
je 0x41a7b1
mov ecx, dword [0x4cb474]
mov eax, dword [esp + 0x44c]
push 5
mov dword [esp + 0x1c], edi
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push ecx
mov dword [esp + 0x24], eax
call edi
mov edx, dword [0x4cb474]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [0x4cb474]
mov edx, dword [0x4cb478]
lea eax, [esp + 0x18]
push eax
push 0x41a100
push ecx
push 0x74
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov esi, eax
mov eax, dword [0x4cb474]
push 0
push eax
call edi
jmp 0x41a871
lea ecx, [esp + 0x2c]
call fcn.0044dfd0
mov ecx, dword [esp + 0x44c]
lea edx, [esp + 0x48]
mov dword [esp + 0x44], ecx
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x41a7d0
lea edx, [esp + 0x44]
push str..pipekaseyaUser
lea ecx, [esp + 0x30]
mov dword [esp + 0x24], 0x3ed
mov dword [esp + 0x28], 0x404
mov dword [esp + 0x2c], edx
call fcn.0044dff0
test eax, eax
je 0x41a868
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], 0
call fcn.0044e0d0
mov eax, dword [esp + 0x10]
test eax, eax
mov eax, dword [esp + 0xc]
jne 0x41a852
cmp dword [esp + 0x14], 4
jne 0x41a852
test eax, eax
je 0x41a85f
mov esi, dword [eax]
test eax, eax
je 0x41a85f
push eax
call fcn.0045932f
add esp, 4
lea ecx, [esp + 0x2c]
call fcn.0044e230
lea ecx, [esp + 0x2c]
call fcn.0044e650
cmp esi, 6
jne 0x41a88b
xor esi, esi
pop edi
mov eax, esi
pop esi
mov dword [ebp], 1
pop ebp
add esp, 0x43c
ret
cmp esi, 7
je 0x41a8af
cmp esi, 2
je 0x41a8af
cmp esi, 3
jne 0x41a8ab
mov dword [ebp], esi
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 0x43c
ret
test esi, esi
jge 0x41a8b8
mov dword [ebp], 2
xor esi, esi
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 0x43c
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebp
add esp, 0x43c
ret
Function at 0x41c090
Capabilities:
Check mutex on windows
Check os version

Disassembly:
sub esp, 0xec
push esi
push edi
mov ecx, 5
mov esi, str.AgentMonSingleInstance
lea edi, [esp + 8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [esp + 0x58]
push eax
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x5c], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x41c0db
cmp dword [esp + 0x5c], 5
jb 0x41c0db
mov ecx, 7
mov esi, str.GlobalAgentMonSingleInstance
lea edi, [esp + 8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [esp + 8]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x41c10d
cmp eax, 5
je 0x41c10d
test esi, esi
je 0x41c10d
pop edi
mov eax, esi
pop esi
add esp, 0xec
ret
pop edi
xor eax, eax
pop esi
add esp, 0xec
ret

Function at 0x41c6a0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
push esi
mov esi, dword [esp + 0x10]
push edi
lea eax, [esp + 0x14]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsAgentMon.exe
push 0x80000002
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov byte [esi], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x41c757
lea ecx, [esp + 8]
push ecx
push esi
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x24]
push str.Path
push eax
mov dword [esp + 0x20], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x14]
push ecx
mov edi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x41c72e
cmp dword [esp + 0xc], 1
jne 0x41c72e
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41c720
sub eax, edx
cmp eax, 1
jae 0x41c757
push 0x104
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x41c754
push 0x5c
push esi
call fcn.0045a180
add esp, 8
test eax, eax
je 0x41c757
mov byte [eax], 0
jmp 0x41c757
mov byte [esi], 0
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41c760
sub eax, edx
mov dword [esp + 8], eax
je 0x41c78b
cmp byte [eax + esi - 1], 0x5c
je 0x41c78b
dec esi
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41c777
mov dx, word [0x469b10]
mov edi, esi
mov word [edi], dx
pop edi
pop esi
add esp, 8
ret
Function at 0x41cf30
Capabilities:
Persist via app paths registry key
Persist via windows service
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x118
push esi
push edi
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
lea eax, [esp + 8]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push str.Path
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsAgentMon.exe
mov esi, 0x104
push 0x80000002
mov dword [esp + 0x20], esi
call fcn.0044b2c0
add esp, 0x18
test eax, eax
jne 0x41cf92
mov al, byte [esp + 0x18]
test al, al
je 0x41cf92
mov eax, dword [esp + 8]
test eax, eax
jne 0x41d0bb
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x10]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsAgentMon.exe
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x41d0bb
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push str.ImagePath
push str.SYSTEMCurrentControlSetServicesKaseyaAgent
push 0x80000002
mov dword [esp + 0x20], esi
call fcn.0044b2c0
add esp, 0x18
test eax, eax
jne 0x41d00a
mov al, byte [esp + 0x18]
test al, al
je 0x41d00a
mov eax, dword [esp + 8]
test eax, eax
jne 0x41d067
push esi
lea edx, [esp + 0x1c]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x41d067
mov byte [esp + 0x18], al
lea esi, [esp + 0x18]
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d030
mov ecx, dword [esp + 0xc]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
sub eax, edx
inc eax
push eax
push esi
push 1
push 0
push 0
push ecx
mov dword [esp + 0x20], eax
call edi
push 0x5c
push esi
call fcn.0045a180
add esp, 8
test eax, eax
je 0x41d088
mov byte [eax], 0
jmp 0x41d08b
cmp byte [esp + 0x18], 0x22
jne 0x41d020
lea esi, [esp + 0x19]
mov eax, esi
push 0x22
push eax
call fcn.0045a180
add esp, 8
test eax, eax
je 0x41d024
mov byte [eax], 0
jmp 0x41d024
mov byte [esi], 0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41d090
sub eax, edx
mov edx, dword [esp + 0xc]
inc eax
push eax
push esi
push 1
push 0
push str.Path
push edx
mov dword [esp + 0x20], eax
call edi
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x421d70
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x8c
push ebp
push esi
push edi
mov ecx, 0xb
mov esi, str.SystemCurrentControlSetServicesVxDKaseya
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xc]
push eax
push 0x20019
push 0
lea ecx, [esp + 0x24]
push ecx
push 0x80000002
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
mov ebp, dword [esp + 0x9c]
jne 0x421e4e
mov eax, dword [0x47488c]
mov ecx, dword [0x474890]
mov edx, dword [str.ConfigurationFile]
mov dword [esp + 0x1c], eax
mov ax, word [0x474898]
mov dword [esp + 0x20], ecx
mov word [esp + 0x28], ax
mov dword [esp + 0x18], edx
mov edx, dword [0x474894]
xor eax, eax
mov ecx, 0x41
mov edi, ebp
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x10]
push ebp
mov dword [esp + 0x2c], edx
lea edx, [esp + 0x1c]
push edx
stosb byte es:[edi], al
push 0
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x28], 0x105
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 0xc]
push edx
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x421e4e
mov eax, ebp
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x421e40
sub eax, edx
cmp eax, 1
jae 0x421e75
mov ecx, dword [str..kaseyad.ini]
mov eax, ebp
mov dword [eax], ecx
mov edx, dword [0x47487c]
mov dword [eax + 4], edx
mov ecx, dword [0x474880]
mov dword [eax + 8], ecx
mov dx, word [0x474884]
mov word [eax + 0xc], dx
mov eax, ebp
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x421e80
mov ecx, dword [0x4869c8]
sub eax, edx
test ecx, ecx
jl 0x421f38
cmp eax, 4
jle 0x421f38
mov dl, byte [eax + ebp - 4]
cmp dl, 0x2e
lea esi, [eax + ebp - 4]
jne 0x421f38
mov dl, byte [eax + ebp - 3]
or dl, 0x20
cmp dl, 0x69
jne 0x421f38
mov dl, byte [eax + ebp - 2]
or dl, 0x20
cmp dl, 0x6e
jne 0x421f38
mov al, byte [eax + ebp - 1]
or al, 0x20
cmp al, 0x69
jne 0x421f38
push ecx
lea ecx, [esp + 0x1c]
push str._03d
push ecx
call fcn.00458ee7
lea eax, [esp + 0x24]
add esp, 0xc
mov byte [esi], 0
mov ecx, eax
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x421ef0
mov edi, ebp
sub eax, ecx
mov esi, ecx
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x421f00
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
dec ebp
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x421f20
mov edx, dword [str..ini]
mov dword [edi], edx
mov al, byte [0x47486c]
mov byte [edi + 4], al
pop edi
pop esi
pop ebp
add esp, 0x8c
ret
Function at 0x4224f0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x8c
push esi
push edi
mov ecx, 0xb
mov esi, str.SystemCurrentControlSetServicesVxDKaseya
lea edi, [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 8]
push eax
push 0x20019
push 0
lea ecx, [esp + 0x20]
push ecx
push 0x80000002
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x422609
mov ecx, dword [0x474ac4]
mov eax, dword [0x474ac0]
mov edx, dword [str.FirewallSettingsFile]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x18], eax
mov eax, dword [0x474acc]
mov dword [esp + 0x1c], ecx
mov cl, byte [0x474ad0]
mov dword [esp + 0x24], eax
mov byte [esp + 0x28], cl
mov dword [esp + 0x14], edx
mov edx, dword [0x474ac8]
xor eax, eax
mov ecx, 0x41
mov edi, esi
rep stosd dword es:[edi], eax
mov dword [esp + 0x20], edx
lea edx, [esp + 0xc]
push edx
mov edx, dword [esp + 0xc]
push esi
stosb byte es:[edi], al
lea eax, [esp + 0x18]
push eax
push 0
lea ecx, [esp + 0x24]
push ecx
push edx
mov dword [esp + 0x24], 0x105
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edi, eax
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x4225d3
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4225c5
sub eax, edx
cmp eax, 1
jae 0x42263e
mov ecx, dword [str..kaseyafw.ini]
mov dword [esi], ecx
mov edx, dword [0x474ab0]
mov dword [esi + 4], edx
mov eax, dword [0x474ab4]
mov dword [esi + 8], eax
mov cx, word [0x474ab8]
mov word [esi + 0xc], cx
mov dl, byte [0x474aba]
pop edi
mov byte [esi + 0xe], dl
pop esi
add esp, 0x8c
ret
mov ecx, dword [str..kaseyafw.ini]
mov eax, dword [esp + 0x98]
mov dword [eax], ecx
mov edx, dword [0x474ab0]
mov dword [eax + 4], edx
mov ecx, dword [0x474ab4]
mov dword [eax + 8], ecx
mov dx, word [0x474ab8]
mov word [eax + 0xc], dx
mov cl, byte [0x474aba]
mov byte [eax + 0xe], cl
pop edi
pop esi
add esp, 0x8c
ret
Function at 0x427930
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a0
push esi
push edi
mov ecx, 0xb
mov esi, str.SystemCurrentControlSetServicesVxDKaseya
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x10]
push eax
push 0x20019
push 0
lea ecx, [esp + 0x34]
push ecx
push 0x80000002
mov dword [esp + 0x2c], 0
mov dword [esp + 0x20], 0
movsb byte es:[edi], byte [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x427b75
mov eax, dword [0x474858]
mov ecx, dword [0x47485c]
mov edx, dword [str.lastKnownConnAddr]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [esp + 0x2c], eax
mov ax, word [0x474864]
mov dword [esp + 0x30], ecx
mov word [esp + 0x38], ax
mov dword [esp + 0x28], edx
mov edx, dword [0x474860]
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
mov dword [esp + 0x34], edx
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
push 0
lea ecx, [esp + 0x38]
push ecx
push edx
mov dword [esp + 0x24], 0xff
call esi
test eax, eax
jne 0x427ab5
lea eax, [esp + 0xa8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x427a05
sub eax, edx
mov dword [esp + 0x14], eax
je 0x427ab5
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xd]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x17]
push eax
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x1e]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xc4]
push str._d_c_d_c_d_c_d
push ecx
call fcn.00458f3f
add esp, 0x24
cmp eax, 7
jl 0x427a8d
mov cl, byte [esp + 0xa]
mov al, 0x2e
cmp cl, al
jne 0x427a8d
cmp byte [esp + 0xb], al
jne 0x427a8d
cmp byte [esp + 9], al
jne 0x427a8d
push 0xff
lea edx, [esp + 0xac]
mov ecx, 0x40
xor eax, eax
mov edi, 0x4cbfe0
push edx
rep stosd dword es:[edi], eax
push 0x4cbee0
jmp 0x427aad
xor eax, eax
mov ecx, 0x40
mov edi, 0x4cbee0
rep stosd dword es:[edi], eax
push 0xff
lea eax, [esp + 0xac]
push eax
push 0x4cbfe0
call fcn.00458f80
add esp, 0xc
mov ecx, dword [str.lastKnownConnPort]
mov eax, dword [0x474848]
mov edx, dword [0x474844]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x47484c]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0xa8]
rep stosd dword es:[edi], eax
mov dword [esp + 0x2c], edx
mov dx, word [0x474850]
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x18]
mov word [esp + 0x40], dx
lea edx, [esp + 0x20]
push edx
push 0
lea eax, [esp + 0x38]
push eax
push ecx
mov dword [esp + 0x24], 0xff
call esi
test eax, eax
jne 0x427b6a
lea eax, [esp + 0xa8]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x427b30
sub eax, edx
mov dword [esp + 0x1c], eax
je 0x427b6a
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0xac]
push 0x4696c0
push eax
call fcn.00458f3f
add esp, 0xc
cmp eax, 1
jne 0x427b6a
mov cx, word [esp + 0x14]
mov word [0x4cc0e0], cx
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x429120
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x134
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x14], edi
lea eax, [esp + 0x40]
push eax
push edi
call fcn.0041cbe0
add esp, 8
test eax, eax
je 0x429353
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.0044c5e0
add esp, 0xc
test eax, eax
jne 0x429353
xor ecx, ecx
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0x1c]
mov dword [esp + 0x20], ecx
push edx
mov dword [esp + 0x28], ecx
push 0xc000001d
mov dword [esp + 0x30], ecx
call fcn.00439e70
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00439e70
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x34]
push ecx
push edx
call fcn.00439e70
mov ecx, dword [esp + 0x4c]
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.00439e70
push 0x20
push 0x4cb818
lea edx, [esp + 0x44]
push 0x10
push edx
mov dword [esp + 0x40], 0x10
call fcn.00431d40
mov esi, dword [esp + 0x178]
push 0x10
lea eax, [esp + 0x50]
push eax
push esi
call fcn.004394c0
add esp, 0x3c
test eax, eax
jne 0x429353
push 0x20
push 0x4cb818
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [0x4865b4]
push edx
push eax
push esi
call fcn.00427790
mov edi, dword [esp + 0x30]
add esp, 0x18
test eax, eax
jne 0x429342
cmp dword [esp + 0x10], 0x18
jb 0x429342
push edi
call fcn.00439e40
lea ecx, [edi + 4]
push ecx
mov esi, eax
call fcn.00439e40
lea edx, [edi + 8]
push edx
mov ebx, eax
call fcn.00439e40
mov dword [esp + 0x1c], eax
lea eax, [edi + 0xc]
push eax
call fcn.00439e40
lea ecx, [edi + 0x10]
push ecx
mov ebp, eax
call fcn.00439e40
lea edx, [edi + 0x14]
push edx
mov dword [esp + 0x48], eax
call fcn.00439e40
add esp, 0x18
cmp esi, 0x5000000b
mov dword [esp + 0x2c], eax
jne 0x429342
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x14]
jne 0x429342
cmp ebx, 1
jne 0x429342
test ebp, ebp
jle 0x429342
test eax, eax
jl 0x429342
cmp eax, 3
jge 0x429342
lea eax, [esp + 0x40]
push 0x2e
push eax
call fcn.0045a180
add esp, 8
test eax, eax
je 0x429342
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea ecx, [esp + 0x58]
push ecx
mov dword [eax + 1], 0x77656e
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x429342
push 0
lea edx, [esp + 0x3c]
push edx
push ebp
lea eax, [edi + 0x18]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x42931f
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x42931f
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x429342
cmp ebp, dword [esp + 0x38]
jne 0x429342
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x40]
push edx
push eax
call fcn.0041cc20
add esp, 8
test edi, edi
je 0x42934f
push edi
call fcn.0045932f
add esp, 4
mov edi, dword [esp + 0x14]
inc edi
cmp edi, 3
mov dword [esp + 0x14], edi
jl 0x429130
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x134
ret
Function at 0x42c790
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x21c
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
push esi
push edi
jne 0x42c7b0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push str.ConfigurationFile
push str.SYSTEMCurrentControlSetServicesVxDKaseya
push 0x80000002
mov dword [esp + 0x2c], 0x105
call fcn.00404c80
add esp, 0x18
test eax, eax
jne 0x42c91f
mov eax, dword [esp + 0x10]
cmp eax, 1
je 0x42c81d
cmp eax, 2
jne 0x42c91f
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42c824
sub eax, edx
test eax, eax
jle 0x42c91f
lea eax, [esp + 0x18]
push 0x25
push eax
call fcn.004590c0
add esp, 8
test eax, eax
je 0x42c880
push 0x105
lea ecx, [esp + 0x124]
push ecx
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
jle 0x42c880
cmp eax, 0x104
jae 0x42c880
xor eax, eax
lea ecx, [ecx]
mov cl, byte [esp + eax + 0x120]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x42c870
lea eax, [esp + 0x18]
push 0x5c
push eax
call fcn.0045a180
add esp, 8
test eax, eax
je 0x42c896
mov byte [eax], 0
lea edi, [esp + 0x18]
dec edi
jmp 0x42c8a0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x42c8a0
mov ecx, dword [str._appAuditCache.txt]
mov edx, dword [0x476c08]
mov eax, dword [0x476c0c]
mov dword [edi], ecx
mov ecx, dword [0x476c10]
mov dword [edi + 4], edx
mov dx, word [0x476c14]
mov dword [edi + 8], eax
mov al, byte [0x476c16]
mov dword [edi + 0xc], ecx
mov word [edi + 0x10], dx
mov byte [edi + 0x12], al
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42c8e4
sub eax, edx
cmp esi, eax
jle 0x42c913
lea eax, [esp + 0x18]
mov edx, ebx
mov ecx, eax
sub edx, ecx
jmp 0x42c900
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x42c900
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x42f210
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, eax
shr edi, 2
xor edx, edx
test edi, edi
jle 0x42f24d
push ebx
lea ecx, [ecx]
mov ecx, dword [esi + edx*4]
mov eax, ecx
shl ecx, 0x10
shr eax, 0x10
or eax, ecx
mov ecx, eax
shr ecx, 8
mov ebx, eax
shl ebx, 8
xor ecx, ebx
and ecx, 0xff00ff
shl eax, 8
xor ecx, eax
mov dword [esi + edx*4], ecx
inc edx
cmp edx, edi
jl 0x42f220
pop ebx
pop edi
ret
Function at 0x431b90
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x20]
xor edx, edx
push edi
xor eax, eax
nop
mov byte [eax + esi], al
inc eax
cmp eax, 0x100
jl 0x431ba0
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov byte [esi + 0x100], dl
mov byte [esi + 0x101], dl
mov byte [esp + 0x24], dl
xor bl, bl
lea ecx, [esi + 1]
mov dword [esp + 0x14], 0x40
mov al, byte [ecx - 1]
movzx edx, dl
mov dl, byte [edx + ebp]
add dl, al
add bl, dl
movzx edx, bl
add edx, esi
mov dword [esp + 0x10], edx
mov dl, byte [edx]
mov byte [ecx - 1], dl
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov al, byte [esp + 0x24]
inc al
movzx eax, al
cdq
idiv edi
mov al, byte [ecx]
add ecx, 4
mov byte [esp + 0x24], dl
movzx edx, dl
mov dl, byte [edx + ebp]
add dl, al
add bl, dl
movzx edx, bl
add edx, esi
mov dword [esp + 0x10], edx
mov dl, byte [edx]
mov byte [ecx - 4], dl
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov al, byte [esp + 0x24]
inc al
movzx eax, al
cdq
idiv edi
mov al, byte [ecx - 3]
mov byte [esp + 0x24], dl
movzx edx, dl
mov dl, byte [edx + ebp]
add dl, al
add bl, dl
movzx edx, bl
add edx, esi
mov dword [esp + 0x10], edx
mov dl, byte [edx]
mov byte [ecx - 3], dl
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov al, byte [esp + 0x24]
inc al
movzx eax, al
cdq
idiv edi
mov al, byte [ecx - 2]
mov byte [esp + 0x24], dl
movzx edx, dl
mov dl, byte [edx + ebp]
add dl, al
add bl, dl
movzx edx, bl
add edx, esi
mov dword [esp + 0x10], edx
mov dl, byte [edx]
mov byte [ecx - 2], dl
mov edx, dword [esp + 0x10]
mov byte [edx], al
mov al, byte [esp + 0x24]
inc al
movzx eax, al
cdq
idiv edi
dec dword [esp + 0x14]
mov byte [esp + 0x24], dl
jne 0x431bd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret

Function at 0x431cb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword [esp + 8]
push ebx
push esi
mov esi, dword [esp + 0x14]
mov dl, byte [esi + 0x100]
mov bl, byte [esi + 0x101]
xor eax, eax
test ecx, ecx
jle 0x431d2b
push ebp
push edi
jmp 0x431cd4
mov bl, byte [esp + 0x1c]
inc dl
movzx ecx, dl
lea edi, [ecx + esi]
mov cl, byte [edi]
add bl, cl
mov byte [esp + 0x1c], bl
movzx ebx, bl
lea ebp, [ebx + esi]
mov bl, byte [ebp]
mov byte [edi], bl
xor ebx, ebx
mov byte [ebp], cl
mov bl, byte [edi]
mov edi, dword [esp + 0x14]
add ebx, ecx
and ebx, 0xff
mov cl, byte [ebx + esi]
mov bl, byte [eax + edi]
xor bl, cl
mov ecx, dword [esp + 0x18]
mov byte [eax + edi], bl
inc eax
cmp eax, ecx
jl 0x431cd0
pop edi
mov byte [esi + 0x100], dl
mov dl, byte [esp + 0x18]
pop ebp
mov byte [esi + 0x101], dl
pop esi
pop ebx
ret
mov byte [esi + 0x101], bl
mov byte [esi + 0x100], dl
pop esi
pop ebx
ret