joyce8/EMBER2024-capa huggingface dataset:
Function at 0x412b18
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x412c32
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call sub.rtl120.bpl__System__LStrClr_qqrpv
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x412b61
push ebx
mov eax, edi
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push esi
call sub.kernel32.dll_FindResourceW
mov ebx, eax
jmp 0x412bce
movzx eax, bl
cmp ebx, eax
jne 0x412b8b
push ebx
lea eax, [ebp - 4]
mov edx, edi
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov ebx, eax
jmp 0x412bce
lea eax, [ebp - 0xc]
mov edx, ebx
call sub.rtl120.bpl__System__UStrFromPWChar_qqrr20System_UnicodeStringpb
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 8]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
lea eax, [ebp - 0x10]
mov edx, edi
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov ebx, eax
test ebx, ebx
je 0x412c07
push ebx
push esi
call sub.kernel32.dll_LoadResource
mov edi, eax
test edi, edi
je 0x412c07
push 0
push ebx
push esi
call sub.kernel32.dll_SizeofResource
push eax
push edi
call sub.kernel32.dll_LockResource
mov edx, eax
mov eax, dword [ebp + 8]
pop ecx
call sub.rtl120.bpl__System__LStrFromPCharLen_qqrr27System__AnsiStringT_us_i0__pcius
mov eax, edi
call fcn.00402894
push edi
call sub.kernel32.dll_FreeResource
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x412c39
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0xc]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 8]
mov edx, 2
call sub.rtl120.bpl__System__LStrArrayClr_qqrpvi
ret
Function at 0x4138f4
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor esi, esi
mov edi, 0x12
mov eax, dword [ebp + 8]
lea ecx, [eax - 0x48]
lea eax, [esi + 1]
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 4]
movzx ebx, byte [eax + edx]
shl ebx, 0x10
mov eax, dword [ebp - 4]
movzx eax, byte [eax + esi]
shl eax, 0x18
add ebx, eax
lea eax, [esi + 2]
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + edx]
shl eax, 8
add ebx, eax
lea eax, [esi + 3]
xor edx, edx
div dword [ebp - 8]
mov eax, dword [ebp - 4]
movzx eax, byte [eax + edx]
add ebx, eax
xor dword [ecx], ebx
lea eax, [esi + 4]
xor edx, edx
div dword [ebp - 8]
mov esi, edx
add ecx, 4
dec edi
jne 0x413910
xor eax, eax
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor edi, edi
mov eax, dword [ebp + 8]
push eax
push 1
mov eax, dword [ebp + 8]
lea ecx, [eax - 0x48]
lea edx, [ebp - 0x10]
lea eax, [ebp - 0xc]
call fcn.00413534
pop ecx
mov eax, edi
add eax, eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [edx + eax*4 - 0x48], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [edx + eax*4 - 0x44], ecx
inc edi
cmp edi, 9
jne 0x413971
mov edi, 4
mov eax, dword [ebp + 8]
lea ebx, [eax - 0x1048]
xor esi, esi
mov eax, dword [ebp + 8]
push eax
push 1
mov eax, dword [ebp + 8]
lea ecx, [eax - 0x48]
lea edx, [ebp - 0x10]
lea eax, [ebp - 0xc]
call fcn.00413534
pop ecx
mov eax, esi
add eax, eax
mov edx, dword [ebp - 0xc]
mov dword [ebx + eax*4], edx
mov edx, dword [ebp - 0x10]
mov dword [ebx + eax*4 + 4], edx
inc esi
cmp esi, 0x80
jne 0x4139b7
add ebx, 0x400
dec edi
jne 0x4139b5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4139fc
Capabilities:
Encrypt data using blowfish

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffa0
push ebx
push esi
push edi
mov byte [ebp - 0x1049], cl
mov edi, edx
mov ebx, eax
mov eax, dword [ebp + 0x14]
call sub.rtl120.bpl__System__LStrAddRef_qqrpv
lea esi, [ebp - 0x1058]
xor eax, eax
push ebp
push 0x413bdc
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
push edi
mov esi, 0x58d460
lea edi, [ebp - 0x48]
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
mov esi, 0x58d4a8
lea edi, [ebp - 0x1048]
mov ecx, 0x400
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push ebp
lea eax, [ebp + 0x14]
xor edx, edx
call sub.rtl120.bpl__System__EnsureAnsiString_qqrr27System__AnsiStringT_us_i0__us
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
push eax
mov eax, dword [ebp + 0x14]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
pop edx
call fcn.004138f4
pop ecx
cmp byte [ebp - 0x1049], 0
je 0x413a99
lea eax, [ebp - 0x48]
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x1054], 1
jmp 0x413aac
lea eax, [ebp - 4]
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x1054], 0xffffffff
shr edi, 3
dec edi
test edi, edi
jl 0x413bc6
inc edi
mov dword [ebp - 0x1060], edi
cmp dword [ebp + 0x10], 0
jne 0x413ac9
cmp dword [ebp + 0xc], 0
je 0x413b46
mov dword [esi], 7
lea eax, [ebp + 0xc]
add eax, dword [esi]
movzx edx, byte [eax]
inc edx
and dl, 0xff
mov byte [eax], dl
lea eax, [ebp + 0xc]
add eax, dword [esi]
cmp byte [eax], 0
jne 0x413af0
dec dword [esi]
cmp dword [esi], 0xffffffff
jne 0x413ad1
lea eax, [ebp + 0xc]
mov eax, dword [eax]
call fcn.00413508
mov dword [esi], eax
lea eax, [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
call fcn.00413508
mov dword [ebp - 0x105c], eax
push ebp
mov eax, dword [ebp - 0x1054]
push eax
lea edx, [ebp - 0x105c]
mov eax, esi
mov ecx, dword [ebp - 0x1050]
call fcn.00413534
pop ecx
mov eax, dword [esi]
call fcn.00413508
xor dword [ebx], eax
mov eax, dword [ebp - 0x105c]
call fcn.00413508
lea edx, [ebx + 4]
xor dword [edx], eax
jmp 0x413bb7
cmp byte [ebp + 8], 0
jne 0x413b9e
mov edi, ebx
mov eax, dword [edi]
call fcn.00413508
mov dword [esi], eax
lea eax, [ebx + 4]
mov eax, dword [eax]
call fcn.00413508
mov dword [ebp - 0x105c], eax
push ebp
mov eax, dword [ebp - 0x1054]
push eax
lea edx, [ebp - 0x105c]
mov eax, esi
mov ecx, dword [ebp - 0x1050]
call fcn.00413534
pop ecx
mov eax, dword [esi]
call fcn.00413508
mov dword [edi], eax
mov eax, dword [ebp - 0x105c]
call fcn.00413508
lea edx, [ebx + 4]
mov dword [edx], eax
jmp 0x413bb7
push ebp
mov eax, dword [ebp - 0x1054]
push eax
mov edx, ebx
lea eax, [ebx + 4]
mov ecx, dword [ebp - 0x1050]
call fcn.00413534
pop ecx
add ebx, 8
dec dword [ebp - 0x1060]
jne 0x413abf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x413be3
lea eax, [ebp + 0x14]
call sub.rtl120.bpl__System__LStrClr_qqrpv
ret
Function at 0x413d08
Capabilities:
Encode data using base64

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
test esi, esi
jle 0x413e33
lea eax, [esi + 2]
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, edx
add edx, edx
mov eax, edi
xor ecx, ecx
call sub.rtl120.bpl__System__LStrSetLength_qqrv
mov ecx, dword [edi]
mov eax, esi
mov edi, 3
cdq
idiv edi
mov edi, eax
test edi, edi
jle 0x413da5
movzx eax, byte [ebx]
shl eax, 0x10
movzx edx, byte [ebx + 1]
shl edx, 8
add eax, edx
movzx edx, byte [ebx + 2]
add eax, edx
mov edx, eax
shr edx, 0x12
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx], dl
mov edx, eax
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx + 1], dl
mov edx, eax
shr edx, 6
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx + 2], dl
and eax, 0x3f
movzx eax, byte [eax + 0x58e4a8]
mov byte [ecx + 3], al
add ecx, 4
add ebx, 3
dec edi
jne 0x413d45
mov eax, esi
mov esi, 3
cdq
idiv esi
dec edx
je 0x413dba
dec edx
je 0x413deb
jmp 0x413e3a
movzx eax, byte [ebx]
shl eax, 0x10
mov edx, eax
shr edx, 0x12
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx], dl
shr eax, 0xc
and eax, 0x3f
movzx eax, byte [eax + 0x58e4a8]
mov byte [ecx + 1], al
mov byte [ecx + 2], 0x3d
mov byte [ecx + 3], 0x3d
jmp 0x413e3a
movzx eax, byte [ebx]
shl eax, 0x10
movzx edx, byte [ebx + 1]
shl edx, 8
add eax, edx
mov edx, eax
shr edx, 0x12
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx], dl
mov edx, eax
shr edx, 0xc
and edx, 0x3f
movzx edx, byte [edx + 0x58e4a8]
mov byte [ecx + 1], dl
shr eax, 6
and eax, 0x3f
movzx eax, byte [eax + 0x58e4a8]
mov byte [ecx + 2], al
mov byte [ecx + 3], 0x3d
jmp 0x413e3a
mov eax, edi
call sub.rtl120.bpl__System__LStrClr_qqrpv
pop edi
pop esi
pop ebx
ret
Function at 0x41b9d0
Capabilities:
Check if file exists
Get file attributes
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x41bb59
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x41ba14
mov eax, ebx
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
jne 0x41ba4a
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
je 0x41bb3e
lea eax, [ebp - 0x10]
mov edx, ebx
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x41bb3e
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x41ba7a
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
mov eax, ebx
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_CreateFileW
mov dword [ebp - 8], eax
jmp 0x41baac
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
lea eax, [ebp - 0x14]
mov edx, ebx
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x14]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_CreateFileA
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0x41bb3e
xor eax, eax
push ebp
push 0x41bb37
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_GetFileSize
mov edx, eax
mov eax, esi
xor ecx, ecx
call sub.rtl120.bpl__System__LStrSetLength_qqrv
cmp dword [esi], 0
je 0x41bb17
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, esi
xor edx, edx
call sub.rtl120.bpl__System__EnsureAnsiString_qqrr27System__AnsiStringT_us_i0__us
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
push eax
mov eax, dword [esi]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_ReadFile
test eax, eax
je 0x41bb17
mov eax, esi
xor edx, edx
call sub.rtl120.bpl__System__EnsureAnsiString_qqrr27System__AnsiStringT_us_i0__us
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
cmp eax, dword [ebp - 0xc]
je 0x41bb1b
xor eax, eax
jmp 0x41bb1d
mov al, 1
mov byte [ebp - 1], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41bb3e
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_CloseHandle
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41bb60
lea eax, [ebp - 0x14]
mov edx, 2
call sub.rtl120.bpl__System__LStrArrayClr_qqrpvi
ret
Function at 0x4217c8
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov byte [esp + 4], cl
mov dword [esp], edx
mov edi, eax
mov ecx, edi
movzx eax, byte [esp]
mov byte [esp + 5], al
mov edx, edi
shr edx, 8
mov eax, dword [esp]
shr eax, 8
mov byte [esp + 6], al
mov eax, edi
shr eax, 0x10
mov ebx, dword [esp]
shr ebx, 0x10
mov byte [esp + 7], bl
xor esi, esi
cmp byte [esp + 4], 0
je 0x42185c
movzx ebx, cl
movzx ebp, byte [esp + 5]
add ebx, ebp
cmp ebx, 0xff
jbe 0x421820
inc esi
mov cl, 0xff
jmp 0x421824
add cl, byte [esp + 5]
movzx ebx, dl
movzx ebp, byte [esp + 6]
add ebx, ebp
cmp ebx, 0xff
jbe 0x42183b
inc esi
mov dl, 0xff
jmp 0x42183f
add dl, byte [esp + 6]
movzx ebx, al
movzx ebp, byte [esp + 7]
add ebx, ebp
cmp ebx, 0xff
jbe 0x421856
inc esi
mov al, 0xff
jmp 0x421889
add al, byte [esp + 7]
jmp 0x421889
cmp cl, byte [esp + 5]
jae 0x421867
inc esi
xor ecx, ecx
jmp 0x42186b
sub cl, byte [esp + 5]
cmp dl, byte [esp + 6]
jae 0x421876
inc esi
xor edx, edx
jmp 0x42187a
sub dl, byte [esp + 6]
cmp al, byte [esp + 7]
jae 0x421885
inc esi
xor eax, eax
jmp 0x421889
sub al, byte [esp + 7]
dec esi
jle 0x4218a0
movzx ecx, byte [esp + 4]
xor cl, 1
mov edx, dword [esp]
mov eax, edi
call fcn.004217c8
jmp 0x4218b3
movzx eax, al
shl eax, 0x10
movzx edx, dl
shl edx, 8
add eax, edx
movzx edx, cl
add eax, edx
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x422ab4
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov esi, ecx
mov edi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x422bbf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, 0x10
call fcn.0040288c
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x30]
sub eax, 0x2e
mov dword [esi + 8], eax
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x422b32
push 0x410
push esi
lea edx, [ebp - 4]
mov eax, ebx
call fcn.00422cdc
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
push eax
lea edx, [ebp - 8]
mov eax, ebx
call fcn.00422cdc
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push edi
call sub.user32.dll_DrawTextW
jmp 0x422b84
push 0x410
push esi
lea edx, [ebp - 0x10]
mov eax, ebx
call fcn.00422cdc
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0xc]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0xc]
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
push eax
lea edx, [ebp - 0x18]
mov eax, ebx
call fcn.00422cdc
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x14]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push edi
call sub.user32.dll_DrawTextA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x422bc6
lea eax, [ebp - 0x18]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x14]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0xc]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 8]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
ret
Function at 0x423098
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0
push ebx
push esi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x423177
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebx + 0x14], 0
je 0x423157
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x423105
push 0
push 0
push 0xe
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_SendMessageW
mov edx, eax
inc edx
lea eax, [ebx + 0x50]
call sub.rtl120.bpl__System__UStrSetLength_qqrr20System_UnicodeStringi
mov eax, dword [ebx + 0x50]
push eax
mov eax, dword [ebx + 0x50]
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
push eax
push 0xd
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_SendMessageW
mov edx, eax
lea eax, [ebx + 0x50]
call sub.rtl120.bpl__System__UStrSetLength_qqrr20System_UnicodeStringi
jmp 0x423157
push 0
push 0
push 0xe
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_SendMessageA
mov edx, eax
inc edx
lea eax, [ebp - 4]
xor ecx, ecx
call sub.rtl120.bpl__System__LStrSetLength_qqrv
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 4]
xor edx, edx
call sub.rtl120.bpl__System__EnsureAnsiString_qqrr27System__AnsiStringT_us_i0__us
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
push eax
push 0xd
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_SendMessageA
mov edx, eax
lea eax, [ebp - 4]
xor ecx, ecx
call sub.rtl120.bpl__System__LStrSetLength_qqrv
lea eax, [ebx + 0x50]
mov edx, dword [ebp - 4]
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
mov eax, esi
mov edx, dword [ebx + 0x50]
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42317e
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__LStrClr_qqrpv
ret
Function at 0x42cf00
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdec
push ebx
xor edx, edx
mov dword [ebp - 0x214], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x42cfa5
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 4], 0x104
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x42cf59
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x20e]
push eax
call sub.kernel32.dll_GetComputerNameW
mov eax, ebx
lea edx, [ebp - 0x20e]
mov ecx, 0x105
call sub.rtl120.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
jmp 0x42cf8c
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x20e]
push eax
call sub.kernel32.dll_GetComputerNameA
lea eax, [ebp - 0x214]
lea edx, [ebp - 0x20e]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromPChar_qqrr27System__AnsiStringT_us_i0__pcus
mov edx, dword [ebp - 0x214]
mov eax, ebx
call sub.rtl120.bpl__System__UStrFromLStr_qqrr20System_UnicodeStringx27System__AnsiStringT_us_i0__
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42cfac
lea eax, [ebp - 0x214]
call sub.rtl120.bpl__System__LStrClr_qqrpv
ret
Function at 0x42d184
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ecx
mov edi, edx
mov esi, eax
mov eax, dword [ebp + 8]
call sub.rtl120.bpl__System__UStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x42d2f3
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x42d233
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
mov eax, edi
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push esi
call sub.advapi32.dll_RegCreateKeyExW
test eax, eax
jne 0x42d2c8
lea eax, [ebp + 8]
call sub.rtl120.bpl__System__EnsureUnicodeString_qqrr20System_UnicodeString
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
add eax, eax
add eax, 2
push eax
mov eax, dword [ebp + 8]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push 1
push 0
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegSetValueExW
test eax, eax
sete bl
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey
jmp 0x42d2c8
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea eax, [ebp - 0x14]
mov edx, edi
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x14]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push esi
call sub.advapi32.dll_RegCreateKeyExA
test eax, eax
jne 0x42d2c8
lea eax, [ebp - 4]
mov edx, dword [ebp + 8]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
lea eax, [ebp - 4]
xor edx, edx
call sub.rtl120.bpl__System__EnsureAnsiString_qqrr27System__AnsiStringT_us_i0__us
call sub.rtl120.bpl__System__LStrLen_qqrx27System__AnsiStringT_us_i0__
inc eax
push eax
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push 1
push 0
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 8]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x18]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegSetValueExA
test eax, eax
sete bl
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42d2fa
lea eax, [ebp - 0x18]
mov edx, 2
call sub.rtl120.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp + 8]
call sub.rtl120.bpl__System__UStrClr_qqrpv
ret
Function at 0x42d308
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
xor eax, eax
push ebp
push 0x42d3f3
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x42d37b
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
mov eax, edi
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push esi
call sub.advapi32.dll_RegOpenKeyExW
test eax, eax
jne 0x42d3d8
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegDeleteValueW
test eax, eax
sete bl
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
jmp 0x42d3d8
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
lea eax, [ebp - 0xc]
mov edx, edi
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0xc]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
push esi
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x42d3d8
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegDeleteValueA
test eax, eax
sete bl
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42d3fa
lea eax, [ebp - 0x10]
mov edx, 2
call sub.rtl120.bpl__System__LStrArrayClr_qqrpvi
ret
Function at 0x42da8c
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00412324
test eax, eax
je 0x42db3d
cmp word [eax + 0x18], 0x20b
jne 0x42daca
add eax, 0x18
add eax, 0x78
mov edx, dword [eax]
mov esi, edx
add esi, dword [ebp - 4]
add edx, dword [eax + 4]
mov dword [ebp - 0x10], edx
jmp 0x42dadc
add eax, 0x80
mov edx, dword [eax]
mov esi, edx
add esi, dword [ebp - 4]
add edx, dword [eax + 4]
mov dword [ebp - 0x10], edx
test esi, esi
je 0x42db3d
jmp 0x42db37
mov eax, dword [esi + 0x10]
cmp eax, dword [ebp - 0x10]
jbe 0x42daf3
push ebp
call fcn.0042d8cc
pop ecx
jmp 0x42db3d
cmp dword [esi + 0x10], 0
je 0x42db34
mov ebx, dword [ebp - 4]
add ebx, dword [esi + 0x10]
jmp 0x42db2f
cmp edi, dword [ebx]
jne 0x42db2c
lea eax, [ebp - 0xc]
push eax
push 0x40
push 4
push ebx
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x42db2c
mov eax, dword [ebp - 8]
mov dword [ebx], eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 4
push ebx
call sub.kernel32.dll_VirtualProtect
add ebx, 4
cmp dword [ebx], 0
jne 0x42db01
add esi, 0x14
cmp dword [esi + 0xc], 0
jne 0x42dae2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret