joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4242f0
Capabilities:
Set registry value

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5c6848
push eax
mov edx, dword [esp + 0x14]
mov dword fs:[0], esp
sub esp, 0x10
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 8]
push ecx
xor esi, esi
push esi
push 0xf003f
push esi
push 0x5dbe20
push esi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x424394
mov esi, dword [esp + 0x30]
push esi
lea ecx, [esp + 0x10]
call fcn.0043bf90
mov dword [esp + 0x1c], 0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x424351
sub eax, edx
mov edx, dword [esp + 0x2c]
sar eax, 1
lea ecx, [eax + eax + 2]
mov eax, dword [esp + 4]
push ecx
push esi
push 1
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor ecx, ecx
test eax, eax
sete cl
mov esi, ecx
mov dword [esp + 0x1c], 0xffffffff
lea ecx, [esp + 0xc]
call fcn.004381e0
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x14]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x1c
ret

Function at 0x4243c0
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
xor esi, esi
push esi
push 0xf003f
push esi
push 0x5dbe20
push esi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x424412
mov edx, dword [esp + 0x18]
push 4
lea ecx, [esp + 0x20]
push ecx
push 4
push eax
mov eax, dword [esp + 0x14]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov ecx, dword [esp + 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
add esp, 8
ret

Function at 0x424430
Capabilities:
Delete registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push esi
lea eax, [esp + 4]
push eax
push 2
xor esi, esi
push esi
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x424467
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
pop ecx
ret

Function at 0x424500
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
sub esp, 0xc
push esi
lea eax, [esp + 4]
push eax
push 0x20019
xor esi, esi
push esi
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42455c
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea ecx, [esp + 8]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x14]
push eax
push esi
push ecx
push edx
mov dword [esp + 0x24], 3
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42455c
lea esi, [eax + 1]
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
add esp, 0xc
ret
Function at 0x424570
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
xor esi, esi
push esi
push 0xf003f
push esi
push 0x5dbe20
push esi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4245c5
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 8]
push edx
push 3
push eax
mov eax, dword [esp + 0x28]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
add esp, 8
ret

Function at 0x424660
Capabilities:
Get common file path
Get program files directory

Disassembly:
push 0xffffffffffffffff
push 0x5c687f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20c
push esi
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x12]
mov dword [esp + 0xc], 0
push ecx
mov word [esp + 0x14], ax
call fcn.0051d400
add esp, 0xc
lea edx, [esp + 8]
push edx
push 1
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov esi, dword [esp + 0x220]
lea eax, [esp + 8]
push eax
mov ecx, esi
call fcn.0043bf90
mov dword [esp + 0x218], 0
mov ecx, dword [esp + 0x210]
mov dword [esp + 4], 1
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x218
ret

Function at 0x424cd0
Capabilities:
Query environment variable

Disassembly:
push 0xffffffffffffffff
push 0x5c68f9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
mov esi, 1
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x30]
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 0
push 0
push eax
call ebx
mov ebp, eax
test ebp, ebp
jne 0x424d2d
push 0x5dbe20
mov ecx, edi
call fcn.0043bf90
mov dword [esp + 0x10], esi
jmp 0x424dad
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004d933f
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x30]
push ebp
push esi
push eax
call ebx
push esi
test eax, eax
jne 0x424d74
call fcn.004d934a
add esp, 4
push 0x5dbe20
mov ecx, edi
call fcn.0043bf90
mov dword [esp + 0x10], 1
jmp 0x424dad
lea ecx, [esp + 0x18]
call fcn.0043bf90
mov byte [esp + 0x24], 2
push esi
call fcn.004d934a
add esp, 4
lea ecx, [esp + 0x14]
push ecx
mov ecx, edi
call fcn.00438190
mov dword [esp + 0x10], 1
mov byte [esp + 0x24], 1
lea ecx, [esp + 0x14]
call fcn.004381e0
mov byte [esp + 0x24], 0
lea ecx, [esp + 0x30]
call fcn.004381e0
mov ecx, dword [esp + 0x1c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret
Function at 0x424e80
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
xor ebp, ebp
call fcn.004e31d4
mov esi, dword [eax + 8]
push 0x5dfaa4
push 0x81
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x424eb6
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
jne 0x424ebd
xor esi, esi
jmp 0x424fd8
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push ebx
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
push esi
call fcn.0051ff80
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
lea eax, [esp + 0x18]
push eax
push 0
push esi
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x424f0f
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor esi, esi
jmp 0x424fd8
lea ecx, [esp + 0x14]
push ecx
push 0x5fb074
push 0
push 0
push eax
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
mov eax, dword [esp + 0x18]
push eax
cmp dword [esp + 0x18], ebp
jne 0x424f44
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor esi, esi
jmp 0x424fd8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
call edx
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
mov ecx, dword [esp + 0x20]
push 0x58
push ecx
call fcn.00423050
mov edx, dword [esp + 0x2c]
push 0x5a
push edx
mov ebp, eax
call fcn.00423050
mov eax, dword [esp + 0x2c]
add esp, 0x10
push 4
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_CopyImage]
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x20]
lea eax, [esp + 0x38]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x38]
cmp edx, ebp
je 0x425046
push 0x3ea
mov ecx, ebx
call fcn.004e4b84
mov edi, eax
mov ecx, dword [edi + 0x20]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
sub edx, eax
push 1
push edx
mov edx, dword [esp + 0x38]
sub edx, ecx
push edx
push eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x48]
sub eax, ebp
cdq
sub eax, edx
sar eax, 1
add eax, ecx
push eax
mov ecx, edi
call fcn.004e4e27
push esi
push 0
push 0x172
push 0x3ea
mov ecx, ebx
call fcn.004e4c2b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
Function at 0x425290
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x5c6980
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
push 0x24
sub esp, 8
mov ecx, esp
mov dword [esp + 0x10], esp
push 0x5dbe20
call fcn.0043bf90
mov dword [esp + 0x30], 0
sub esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5dcebc
call fcn.0043bf90
mov byte [esp + 0x38], 1
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x3c], 0xffffffff
mov ecx, 0x659c00
call fcn.004414f0
mov dword [esp + 0x28], 2
mov eax, dword [eax]
push eax
sub esp, 8
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x5dbe20
call fcn.0043bf90
mov byte [esp + 0x34], 3
sub esp, 8
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5dfab0
call fcn.0043bf90
mov byte [esp + 0x3c], 4
lea ecx, [esp + 0x24]
push ecx
mov byte [esp + 0x40], 2
mov ecx, 0x659c00
call fcn.004414f0
mov byte [esp + 0x2c], 5
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
push eax
call fcn.004db53d
cmp eax, 6
sete bl
mov byte [esp + 0x24], 2
lea ecx, [esp + 0xc]
call fcn.004381e0
mov dword [esp + 0x24], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.004381e0
mov ecx, dword [esp + 0x1c]
xor eax, eax
test bl, bl
setne al
mov dword fs:[0], ecx
pop ebx
add esp, 0x24
ret
Function at 0x425400
Capabilities:
Delete file
Enumerate process modules
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c699b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x4818
call fcn.0051f3e0
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x18]
push eax
push 0x4000
lea ecx, [esp + 0x830]
push ecx
call sub.PSAPI.DLL_EnumProcesses
test eax, eax
je 0x425581
mov eax, dword [esp + 0x18]
shr eax, 2
test eax, eax
jbe 0x425581
mov ebp, dword [sym.imp.KERNEL32.dll_OpenProcess]
lea edi, [esp + 0x828]
mov dword [esp + 0x10], eax
mov eax, dword [edi]
test eax, eax
je 0x425573
push eax
push 0
push 0x410
call ebp
mov esi, eax
test esi, esi
je 0x425573
xor edx, edx
push 0x7fe
push edx
lea eax, [esp + 0x32]
push eax
mov word [esp + 0x34], dx
call fcn.0051d400
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
push 4
lea edx, [esp + 0x1c]
push edx
push esi
call sub.PSAPI.DLL_EnumProcessModules
test eax, eax
je 0x42556c
mov ecx, dword [esp + 0x14]
push 0x400
lea eax, [esp + 0x2c]
push eax
push ecx
push esi
call sub.PSAPI.DLL_GetModuleBaseNameW
push 0x5dc79c
lea ecx, [esp + 0x24]
call fcn.0043bf90
mov dword [esp + 0x4834], 0
mov eax, dword [eax]
push eax
lea edx, [esp + 0x2c]
push edx
call fcn.0052062e
add esp, 8
test eax, eax
sete bl
mov dword [esp + 0x4834], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.004381e0
test bl, bl
je 0x42556c
mov ecx, dword [esp + 0x14]
push 0x400
lea eax, [esp + 0x2c]
push eax
push ecx
push esi
call sub.PSAPI.DLL_GetModuleFileNameExW
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov eax, dword [edi]
push eax
push 0
push 1
call ebp
test eax, eax
je 0x42554a
push 1
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x425573
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0xa
jl 0x425534
jmp 0x425573
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
add edi, 4
sub dword [esp + 0x10], 1
jne 0x425469
mov ecx, dword [esp + 0x482c]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x425740
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5c6a10
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp dword [esp + 0x2c], edi
jle 0x4257b0
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileW]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4257c5
push 0
push 0x80
push 3
push 0
push 0
push 0x40000000
push esi
call ebx
cmp eax, 0xffffffff
jne 0x425824
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, dword [esp + 0x2c]
jl 0x425772
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
sub esp, 8
mov ecx, esp
mov dword [esp + 0x34], esp
push esi
call fcn.0043bf90
mov dword [esp + 0x28], 0
lea eax, [esp + 0x18]
or edi, 0xffffffff
push eax
mov dword [esp + 0x2c], edi
call fcn.00460050
mov dword [esp + 0x2c], 1
mov eax, dword [eax]
push eax
call fcn.00423980
add esp, 0x10
mov esi, eax
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x10]
call fcn.004381e0
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x14
ret

Function at 0x425950
Capabilities:
Accept command line arguments

Disassembly:
push 0xffffffffffffffff
push 0x5c6a81
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
xor ebx, ebx
push esi
mov dword [esp + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [esp + 0x14]
call fcn.0043bf90
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x10]
lea eax, [esp + 8]
push eax
push ecx
mov dword [esp + 0x10], ebx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 8]
jge 0x4259ce
mov edx, dword [esi + eax*4]
push edx
lea ecx, [esp + 0x14]
call fcn.0043a980
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
call fcn.00438190
jmp 0x4259e5
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [esp + 0x28]
push 0x5dbe20
mov ecx, esi
call fcn.0043bf90
mov dword [esp + 0xc], 1
mov byte [esp + 0x20], bl
lea ecx, [esp + 0x10]
call fcn.004381e0
mov ecx, dword [esp + 0x18]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret
Function at 0x425a10
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x5c6a98
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ebp
lea eax, [esp + 4]
push eax
push 0x20019
xor ebp, ebp
push ebp
push ecx
push edx
mov dword [esp + 0x1c], 1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x425ac8
mov ecx, dword [esp + 4]
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push esi
push edi
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x14]
push eax
push ebp
push ebp
push ebp
push edi
push ecx
call ebx
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push esi
push ebp
push ebp
push edi
push eax
call ebx
test eax, eax
jne 0x425ac5
push esi
lea ecx, [esp + 0x1c]
call fcn.0043bf90
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x18]
mov edx, esi
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bp
jne 0x425aa0
mov ebp, 1
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.004381e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x14]
mov eax, ebp
pop ebp
mov dword fs:[0], ecx
add esp, 0x1c
ret
Function at 0x4266c0
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ecx
push ebx
push esi
mov esi, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0xc], 0
test esi, esi
je 0x42678b
cmp dword [esp + 0x1c], 0
jne 0x4266eb
test edi, edi
je 0x42678b
mov ebx, dword [esp + 0x14]
push ebx
push str.InstallPath
push str.SoftwareMail.RuAgent
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00425a10
add esp, 0x10
test eax, eax
je 0x426809
lea eax, [esp + 0xc]
push eax
push str.ForAllUsers
push str.SoftwareMail.RuAgent
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00424280
add esp, 0x10
test eax, eax
je 0x426809
mov eax, ebx
lea edx, [eax + 2]
jmp 0x426740
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x426740
sub eax, edx
sar eax, 1
je 0x426809
cmp dword [esp + 0xc], 0
jne 0x426764
test edi, edi
je 0x426809
push 0xffffffffffffffff
push 0x5dc7b4
push ebx
call fcn.004368f0
push ebx
call fcn.00423980
add esp, 0x10
test eax, eax
je 0x426809
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
pop ecx
ret
mov ebx, dword [esp + 0x14]
push ebx
push str.InstallPath
push str.SoftwareMail.RuAgent
push reloc.WSOCK32.dll_accept
call fcn.00425a10
add esp, 0x10
test eax, eax
je 0x426809
lea ecx, [esp + 0xc]
push ecx
push str.ForAllUsers
push str.SoftwareMail.RuAgent
push reloc.WSOCK32.dll_accept
call fcn.00424280
add esp, 0x10
test eax, eax
je 0x426809
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4267d0
sub eax, edx
sar eax, 1
je 0x426809
cmp dword [esp + 0xc], 0
jne 0x426809
push 0xffffffffffffffff
push 0x5dc7b4
push ebx
call fcn.004368f0
push ebx
call fcn.00423980
add esp, 0x10
test eax, eax
je 0x426809
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
push ebp
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test esi, esi
je 0x4268a6
cmp dword [esp + 0x20], 0
jne 0x426827
test edi, edi
je 0x4268a6
push 1
push 0x26
push ebx
push 0
call ebp
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x426835
sub eax, edx
sar eax, 1
cmp word [ebx + eax*2 - 2], 0x5c
je 0x426865
mov edi, ebx
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x426851
mov edx, dword [0x5dc7b4]
mov dword [edi], edx
mov edi, ebx
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x426870
mov ecx, 7
mov esi, str.Mail.RuAgent
push ebx
rep movsd dword es:[edi], dword [esi]
call fcn.0045e7c0
push ebx
call fcn.00423980
add esp, 8
test eax, eax
je 0x4268a6
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
pop ecx
ret
push 1
push 0x1a
push ebx
push 0
call ebp
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4268b4
sub eax, edx
sar eax, 1
cmp word [ebx + eax*2 - 2], 0x5c
je 0x4268e3
mov edi, ebx
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4268d0
mov eax, dword [0x5dc7b4]
mov dword [edi], eax
add ebx, 0xfffffffe
mov edi, ebx
jmp 0x4268f0
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4268f0
pop ebp
mov ecx, 7
mov esi, str.Mail.RuAgent
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
Function at 0x427b20
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x5c6e89
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push esi
lea ecx, [esp + 0xc]
mov dword [esp + 8], 0
call fcn.00438090
mov ebx, 1
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0xc]
mov eax, dword [edx - 8]
mov ecx, ebx
sub ecx, dword [edx - 4]
sub eax, 0x1000
or eax, ecx
jge 0x427b7b
push 0x1000
lea ecx, [esp + 0x10]
call fcn.00402650
mov edx, dword [esp + 0xc]
push ebx
push 0x1a
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x427c33
mov eax, dword [esp + 0xc]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0051d859
add esp, 8
test eax, eax
jl 0x427c29
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx - 8]
jg 0x427c29
mov dword [ecx - 0xc], eax
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov word [edx + eax*2], cx
push 0x5dc7b4
lea ecx, [esp + 0x18]
call fcn.0043bf90
mov byte [esp + 0x2c], 2
push 0xffffffffffffffff
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x18]
call fcn.00439f70
lea ecx, [esp + 0x1c]
call fcn.004381e0
mov byte [esp + 0x2c], bl
lea ecx, [esp + 0x14]
call fcn.004381e0
push str.MicrosoftInternet_ExplorerQuick_Launch
lea ecx, [esp + 0x10]
call fcn.0043a8a0
mov edx, dword [esp + 0xc]
push edx
call fcn.0045e7c0
mov esi, dword [esp + 0x38]
add esp, 4
lea eax, [esp + 0xc]
push eax
mov ecx, esi
call fcn.00438190
jmp 0x427c43
push 0x80070057
call fcn.00401300
mov esi, dword [esp + 0x34]
push 0x5dbe20
mov ecx, esi
call fcn.0043bf90
mov dword [esp + 8], ebx
mov byte [esp + 0x2c], 0
lea ecx, [esp + 0xc]
call fcn.004381e0
mov ecx, dword [esp + 0x24]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret

Function at 0x427f90
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x5c6f21
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
lea ecx, [esp + 4]
mov dword [esp], 0
call fcn.00438090
mov dword [esp + 0x14], 1
mov edx, dword [esp + 4]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x1000
or eax, ecx
jge 0x427fea
push 0x1000
lea ecx, [esp + 8]
call fcn.00402650
mov edx, dword [esp + 4]
push esi
push 1
push 0x1a
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x42805e
mov eax, dword [esp + 8]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0051d859
add esp, 8
test eax, eax
jl 0x428054
mov ecx, dword [esp + 8]
cmp eax, dword [ecx - 8]
jg 0x428054
mov dword [ecx - 0xc], eax
mov edx, dword [esp + 8]
xor ecx, ecx
mov word [edx + eax*2], cx
push str.Mra
lea ecx, [esp + 0xc]
call fcn.0043a8a0
mov eax, dword [esp + 8]
push eax
call fcn.0045e7c0
mov esi, dword [esp + 0x24]
add esp, 4
lea ecx, [esp + 8]
push ecx
mov ecx, esi
call fcn.00438190
jmp 0x42806e
push 0x80070057
call fcn.00401300
mov esi, dword [esp + 0x20]
push 0x5dbe20
mov ecx, esi
call fcn.0043bf90
mov dword [esp + 4], 1
mov byte [esp + 0x18], 0
lea ecx, [esp + 8]
call fcn.004381e0
mov ecx, dword [esp + 0x10]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x18
ret