joyce8/EMBER2024-capa huggingface dataset:
Function at 0x420ad4
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
sar ecx, 6
push esi
push edi
imul edi, eax, 0x38
mov eax, dword [ecx*4 + 0x46e9a0]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + edi + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x420b14
cmp byte [ebx], 0xa
jne 0x420b14
or byte [eax + edi + 0x28], 4
jmp 0x420b19
and byte [eax + edi + 0x28], 0xfb
add ecx, ebx
mov edx, ebx
mov dword [ebp - 0xc], ecx
mov esi, ebx
cmp ebx, ecx
jae 0x420c17
mov al, byte [edx]
cmp al, 0x1a
je 0x420bf9
lea ecx, [edx + 1]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
cmp al, 0xd
je 0x420b48
mov edx, dword [ebp - 8]
mov byte [esi], al
jmp 0x420b6d
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x420b77
mov cl, byte [eax]
xor eax, eax
cmp cl, 0xa
sete al
inc eax
add edx, eax
cmp cl, 0xa
sete al
dec al
and al, 3
add al, 0xa
mov byte [esi], al
mov ecx, dword [ebp - 0xc]
inc esi
cmp edx, ecx
jb 0x420b2a
jmp 0x420c17
push 0
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420bf4
cmp dword [ebp - 0xc], 0
je 0x420bf4
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx*4 + 0x46e9a0]
test byte [eax + edi + 0x28], 0x48
je 0x420bce
mov dl, byte [ebp - 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], eax
cmp dl, 0xa
jne 0x420bb9
mov byte [esi], dl
jmp 0x420bca
mov byte [esi], 0xd
mov eax, dword [ecx*4 + 0x46e9a0]
mov byte [eax + edi + 0x2a], dl
mov eax, dword [ebp - 0x14]
mov esi, eax
jmp 0x420c17
cmp byte [ebp - 1], 0xa
jne 0x420bdd
cmp esi, ebx
jne 0x420bdd
mov byte [esi], 0xa
jmp 0x420c16
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.00421654
add esp, 0x10
cmp byte [ebp - 1], 0xa
je 0x420c17
mov byte [esi], 0xd
jmp 0x420c16
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx*4 + 0x46e9a0]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x420c13
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x420c17
mov byte [esi], 0x1a
inc esi
sub esi, ebx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x420c20
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, eax
and eax, 0x3f
sar ebx, 6
push edi
imul edi, eax, 0x38
push 0xa
mov eax, dword [ebx*4 + 0x46e9a0]
pop edx
mov dword [ebp - 0x14], edx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x420c63
cmp word [esi], dx
jne 0x420c63
or byte [edi + eax + 0x28], 4
jmp 0x420c68
and byte [edi + eax + 0x28], 0xfb
lea edx, [esi + ecx*2]
mov eax, esi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp eax, edx
jae 0x420dbb
mov dword [ebp - 0xc], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x10], edx
push 0x1a
pop edx
cmp cx, dx
mov edx, dword [ebp - 8]
je 0x420d9b
add eax, 2
cmp cx, word [ebp - 0xc]
je 0x420caa
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0x420ce0
cmp eax, edx
jae 0x420cec
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x14]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 8]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
add esi, 2
cmp eax, edx
jb 0x420c82
jmp 0x420dbb
push 0
lea eax, [ebp - 0x14]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x420d97
cmp dword [ebp - 0x14], 0
je 0x420d97
mov eax, dword [ebx*4 + 0x46e9a0]
push 0xa
test byte [edi + eax + 0x28], 0x48
je 0x420d6f
mov dx, word [ebp - 4]
lea eax, [esi + 2]
pop ecx
mov dword [ebp - 0x18], eax
cmp dx, cx
jne 0x420d38
mov word [esi], cx
jmp 0x420d6b
push 0xd
pop eax
mov word [esi], ax
mov eax, dword [ebx*4 + 0x46e9a0]
movzx ecx, dx
shr ecx, 8
push 0xa
mov byte [edi + eax + 0x2a], dl
mov eax, dword [ebx*4 + 0x46e9a0]
mov byte [edi + eax + 0x2b], cl
mov eax, dword [ebx*4 + 0x46e9a0]
pop ecx
mov byte [edi + eax + 0x2c], cl
mov eax, dword [ebp - 0x18]
mov esi, eax
jmp 0x420dbb
pop ebx
cmp word [ebp - 4], bx
jne 0x420d80
cmp esi, dword [ebp + 0xc]
jne 0x420d80
mov word [esi], bx
jmp 0x420db8
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.00421654
add esp, 0x10
cmp word [ebp - 4], bx
je 0x420dbb
push 0xd
jmp 0x420db4
mov ecx, dword [ebx*4 + 0x46e9a0]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x420db2
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x420dbb
push 0x1a
pop eax
mov word [esi], ax
add esi, 2
sub esi, dword [ebp + 0xc]
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x421ced
Capabilities:
Enumerate files on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x46c000]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x25c], ecx
cmp edx, edi
je 0x421d38
movzx eax, word [edx]
lea ecx, [ebp - 0x255]
push eax
call fcn.00421e8c
test al, al
jne 0x421d32
sub edx, 2
cmp edx, edi
jne 0x421d18
mov ecx, dword [ebp - 0x25c]
movzx esi, word [edx]
cmp esi, 0x3a
jne 0x421d5a
lea eax, [edi + 2]
cmp edx, eax
je 0x421d5a
push ecx
xor ebx, ebx
push ebx
push ebx
push edi
call fcn.00421c39
add esp, 0x10
jmp 0x421e54
push esi
lea ecx, [ebp - 0x255]
call fcn.00421e8c
sub edx, edi
movzx eax, al
sar edx, 1
inc edx
neg eax
sbb eax, eax
xor ebx, ebx
push ebx
push ebx
and eax, edx
push ebx
mov dword [ebp - 0x260], eax
lea eax, [ebp - 0x254]
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileExW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x421d9d
push dword [ebp - 0x25c]
jmp 0x421d4a
mov ebx, dword [ebp - 0x25c]
push 0x2e
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 2
mov dword [ebp - 0x25c], eax
pop eax
cmp word [ebp - 0x228], ax
jne 0x421dda
cmp word [ebp - 0x226], 0
je 0x421dfb
cmp word [ebp - 0x226], ax
jne 0x421dda
cmp word [ebp - 0x224], 0
je 0x421dfb
push ebx
push dword [ebp - 0x260]
lea eax, [ebp - 0x228]
push edi
push eax
call fcn.00421c39
add esp, 0x10
mov dword [ebp - 0x264], eax
test eax, eax
jne 0x421e47
lea eax, [ebp - 0x254]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
push 0x2e
test eax, eax
pop eax
jne 0x421db4
mov eax, dword [ebx + 4]
mov edx, dword [ebx]
sub eax, edx
mov ecx, dword [ebp - 0x25c]
sar eax, 2
cmp ecx, eax
jne 0x421e2f
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x421e54
push 0x421a69
sub eax, ecx
push 4
push eax
lea eax, [edx + ecx*4]
push eax
call fcn.00427660
add esp, 0x10
jmp 0x421e24
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040cd03
leave
ret

Function at 0x429130
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x42915d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x42915d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x42a699
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp + 8]
sar eax, 2
push edi
mov edi, dword [ebp + 0x14]
test eax, eax
je 0x42a719
push esi
xor esi, esi
cmp dword [ebp + 0x18], esi
jbe 0x42a718
push ebx
mov ebx, 0x46de50
mov al, byte [edi + esi]
xor al, 0x73
sub al, 0x6c
xor al, 0x74
push str.Own_head
push ebx
mov byte [edi + esi], al
call fcn.0040146b
push eax
call fcn.00402d1f
mov al, byte [edi + esi]
add al, 0x4e
xor al, 0xdc
push str.Earth
push ebx
mov byte [edi + esi], al
call fcn.0040146b
push eax
call fcn.00402d1f
mov al, byte [edi + esi]
xor al, 0xac
sub al, 0x65
xor al, 0x22
sub al, 0x73
push 0x42b5b8
mov byte [edi + esi], al
call fcn.0041229e
xor byte [edi + esi], al
add esp, 0x1c
inc esi
cmp esi, dword [ebp + 0x18]
jb 0x42a6bb
pop ebx
pop esi
lea ecx, [ebp + 8]
call fcn.00406502
pop edi
pop ebp
ret 0x14
Function at 0x401775
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [0x412048], 1
mov eax, dword [0x412048]
mov dword [0x41205c], eax
mov eax, dword [0x41205c]
mov dword [0x412058], eax
mov dword [0x41204c], 0
mov dword [esp], str.POSIXLY_CORRECT
call sub.msvcrt.dll_getenv
mov dword [0x412054], eax
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
cmp al, 0x2d
jne 0x4017ce
mov dword [0x412050], 2
add dword [ebp + 8], 1
jmp 0x401807
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
cmp al, 0x2b
jne 0x4017e8
mov dword [0x412050], 0
add dword [ebp + 8], 1
jmp 0x401807
mov eax, dword [0x412054]
test eax, eax
je 0x4017fd
mov dword [0x412050], 0
jmp 0x401807
mov dword [0x412050], 1
mov eax, dword [ebp + 8]
leave
ret
Function at 0x402833
Capabilities:
Create a process with modified i/o handles and window
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x94
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x60], 0x44
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov word [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov word [ebp - 0x2e], 0
mov dword [ebp - 0x34], 0x101
mov eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call eax
mov ebx, eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 2
lea edx, [ebp - 0x60]
add edx, 0x40
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_DuplicateHandle]
call eax
sub esp, 0x1c
mov eax, dword [0x412130]
lea edx, [ebp - 0x1c]
mov dword [esp + 0x24], edx
lea edx, [ebp - 0x60]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.dll_CreateProcessA]
call eax
sub esp, 0x28
test eax, eax
je 0x40295d
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
jmp 0x4029b4
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x412060
mov dword [esp], eax
call sub.msvcrt.dll__itoa
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], str.Failed_to_execute_shell__error___s
call fcn.00402fc6
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 4]
leave
ret

Function at 0x402d0b
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
mov word [ebp - 0xa], 0x101
movzx eax, word [ebp - 0xa]
lea edx, [ebp - 0x1a0]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_WSAStartup]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x402d61
movzx eax, word [ebp - 0x1a0]
cmp al, 1
jne 0x402d58
movzx eax, word [ebp - 0x1a0]
shr ax, 8
cmp al, 1
je 0x402d62
mov eax, dword [sym.imp.WSOCK32.DLL_WSACleanup]
call eax
jmp 0x402d62
nop
leave
ret
Function at 0x404153
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov edx, dword [0x4120f0]
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_send]
call eax
sub esp, 0x10
mov ebx, eax
cmp ebx, 1
je 0x4041a4
mov eax, dword [sym.imp.msvcrt.dll__errno]
call eax
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], str.udptest_first_write_failed___errno__d
call fcn.00402fc6
mov eax, dword [0x412124]
test eax, eax
je 0x4041be
mov eax, dword [0x412124]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__sleep]
call eax
jmp 0x40423b
mov word [0x412120], 0
mov dword [0x412124], 5
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x7a69
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call fcn.004038cf
mov ebx, eax
test ebx, ebx
jle 0x404212
mov eax, dword [ebp + 8]
mov dword [esp + 4], 2
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_shutdown]
call eax
sub esp, 8
mov eax, ebx
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_closesocket]
call eax
sub esp, 4
mov dword [0x412124], 0
movzx eax, word [0x412120]
add eax, 1
mov word [0x412120], ax
mov eax, dword [sym.imp.msvcrt.dll__errno]
call eax
mov dword [eax], 0
mov edx, dword [0x4120f0]
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_send]
call eax
sub esp, 0x10
mov ebx, eax
cmp ebx, 1
jne 0x40427e
mov eax, dword [ebp + 8]
jmp 0x4042ab
mov eax, dword [ebp + 8]
mov dword [esp + 4], 2
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_shutdown]
call eax
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_closesocket]
call eax
sub esp, 4
mov eax, 0xffffffff
mov ebx, dword [ebp - 4]
leave
ret

Function at 0x404467
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov edx, 0
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
jmp 0x40450d
movzx eax, byte [ebx]
cmp al, 0xff
jne 0x404503
mov byte [0x412138], 0xff
add ebx, 1
sub esi, 1
movzx eax, byte [ebx]
cmp al, 0xfb
je 0x4044a1
movzx eax, byte [ebx]
cmp al, 0xfc
jne 0x4044a6
mov edx, 0xfffffffe
movzx eax, byte [ebx]
cmp al, 0xfd
je 0x4044b4
movzx eax, byte [ebx]
cmp al, 0xfe
jne 0x4044b9
mov edx, 0xfffffffc
mov eax, edx
test al, al
je 0x404506
mov byte [0x412139], al
add ebx, 1
sub esi, 1
movzx eax, byte [ebx]
mov byte [0x41213a], al
mov eax, dword [0x40d010]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x412138
mov dword [esp], eax
mov eax, dword [sym.imp.WSOCK32.DLL_send]
call eax
sub esp, 0x10
mov edx, 0
jmp 0x404507
nop
jmp 0x404507
nop
add ebx, 1
sub esi, 1
test esi, esi
jg 0x40447f
nop
nop
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
Function at 0x405b10
Capabilities:
Write file on windows

Disassembly:
push ebx
sub esp, 0x18
mov dword [esp], 2
lea ebx, [esp + 0x24]
call fcn.0040bc20
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.Mingw_w64_runtime_failure:_n
call sub.msvcrt.dll_fwrite
mov dword [esp], 2
call fcn.0040bc20
mov edx, dword [esp + 0x20]
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
lea esi, [esi]

Function at 0x405b70
Capabilities:
Allocate or change rwx memory

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x30
mov esi, dword [0x412170]
test esi, esi
jle 0x405c90
mov eax, dword [0x412174]
xor ecx, ecx
add eax, 0xc
mov edx, dword [eax]
cmp ebx, edx
jb 0x405ba4
mov edi, dword [eax + 4]
add edx, dword [edi + 8]
cmp ebx, edx
jb 0x405c27
add ecx, 1
add eax, 0x14
cmp ecx, esi
jne 0x405b90
mov dword [esp], ebx
call fcn.00406560
mov edi, eax
test eax, eax
je 0x405cb7
mov eax, dword [0x412174]
lea ebx, [esi + esi*4]
shl ebx, 2
add eax, ebx
mov dword [eax + 0x10], edi
mov dword [eax], 0
call fcn.004066a0
mov edx, dword [0x412174]
add eax, dword [edi + 0xc]
mov dword [edx + ebx + 0xc], eax
lea edx, [esp + 0x14]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
sub esp, 0xc
test eax, eax
je 0x405c97
mov eax, dword [esp + 0x28]
lea edx, [eax - 0x40]
and edx, 0xffffffbf
je 0x405c20
lea edx, [eax - 4]
and edx, 0xfffffffb
jne 0x405c30
add dword [0x412170], 1
add esp, 0x30
pop ebx
pop esi
pop edi
ret
cmp eax, 2
mov edx, 4
mov eax, 0x40
mov ecx, dword [esp + 0x20]
cmove eax, edx
mov edx, dword [esp + 0x14]
add ebx, dword [0x412174]
mov dword [ebx + 8], ecx
mov dword [ebx + 4], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub esp, 0x10
test eax, eax
jne 0x405c20
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp], str.__VirtualProtect_failed_with_code_0x_x
mov dword [esp + 4], eax
call fcn.00405b10
lea esi, [esi]
lea esi, [esi]
xor esi, esi
jmp 0x405bae
mov eax, dword [0x412174]
mov eax, dword [eax + ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov dword [esp + 4], eax
call fcn.00405b10
mov dword [esp + 4], ebx
mov dword [esp], str.Address__p_has_no_image_section
call fcn.00405b10
lea esi, [esi]
nop
Function at 0x51dea0
Capabilities:
Terminate process

Disassembly:
test byte [0x5cc2e8], 0x20
jne 0x51debe
vmovq xmm0, xmm0
vcvttpd2qq xmm0, xmm0
vmovd eax, xmm0
vpextrd edx, xmm0, 1
ret
mov ecx, esp
add esp, 0xfffffff8
and esp, 0xfffffff8
movsd qword [esp], xmm0
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov esp, ecx
btr edx, 0x1f
sbb ecx, ecx
cmp edx, 0x41e00000
jae 0x51df1e
cvttsd2si eax, xmm0
cdq
ret
mov ecx, edx
bts edx, 0x14
shr ecx, 0x14
and edx, 0x1fffff
sub ecx, 0x433
jge 0x51df18
neg ecx
push ebx
xor ebx, ebx
shrd ebx, eax, cl
je 0x51df11
cvttss2si ebx, dword [0x532bec]
pop ebx
shrd eax, edx, cl
shr edx, cl
ret
shld edx, eax, cl
shl eax, cl
ret
cmp edx, 0x43e00000
jae 0x51df37
test ecx, ecx
je 0x51dee8
call 0x51dee8
neg eax
adc edx, 0
neg edx
ret
jecxz 0x51df3f
ja 0x51df3f
test eax, eax
je 0x51df47
cvttss2si ecx, dword [0x532be8]
mov edx, SysReAllocStringLen
xor eax, eax
ret

Function at 0x51e623
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x51e662
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x51e662
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x51e662
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x51e662
cmp dword [ecx + 0x74], 0xe
jbe 0x51e662
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x52adc0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x52aded
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x52aded
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x430004
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
mov eax, section..text
mov ebx, 0x408ed0
nop
nop
mov ecx, 0x45684646
nop
nop
nop
nop
test eax, eax
je 0x43004e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x430024
nop
mov eax, section..data
nop
nop
mov ebx, 0x42e1d0
mov ecx, 0x3ec01a3d
nop
test eax, eax
nop
nop
nop
nop
je 0x430084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x43006c
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x401da0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
call fcn.0042f820
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x401eff
push 0x10
push 0
lea ecx, [ebp - 0x20]
push ecx
call fcn.00419120
add esp, 0xc
mov edx, dword [ebp - 8]
push edx
call fcn.004195c5
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xe
jne 0x401eec
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
sub ecx, 0x30
imul ecx, ecx, 0x3e8
mov edx, dword [ebp - 8]
movzx eax, word [edx + 2]
sub eax, 0x30
imul eax, eax, 0x64
add ecx, eax
mov edx, dword [ebp - 8]
movzx eax, word [edx + 4]
sub eax, 0x30
imul eax, eax, 0xa
add ecx, eax
mov edx, dword [ebp - 8]
movzx eax, word [edx + 6]
lea ecx, [ecx + eax - 0x30]
mov word [ebp - 0x20], cx
mov edx, dword [ebp - 8]
movzx eax, word [edx + 8]
sub eax, 0x30
imul eax, eax, 0xa
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + 0xa]
lea eax, [eax + edx - 0x30]
mov word [ebp - 0x1e], ax
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + 0xc]
sub edx, 0x30
imul edx, edx, 0xa
mov eax, dword [ebp - 8]
movzx ecx, word [eax + 0xe]
lea edx, [edx + ecx - 0x30]
mov word [ebp - 0x1a], dx
mov eax, dword [ebp - 8]
movzx ecx, word [eax + 0x10]
sub ecx, 0x30
imul ecx, ecx, 0xa
mov edx, dword [ebp - 8]
movzx eax, word [edx + 0x12]
lea ecx, [ecx + eax - 0x30]
mov word [ebp - 0x18], cx
mov edx, dword [ebp - 8]
movzx eax, word [edx + 0x14]
sub eax, 0x30
imul eax, eax, 0xa
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + 0x16]
lea eax, [eax + edx - 0x30]
mov word [ebp - 0x16], ax
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + 0x18]
sub edx, 0x30
imul edx, edx, 0xa
mov eax, dword [ebp - 8]
movzx ecx, word [eax + 0x1a]
lea edx, [edx + ecx - 0x30]
mov word [ebp - 0x14], dx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x401ee3
cmp dword [ebp + 0xc], 0
je 0x401ee1
push 0x10
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00419260
add esp, 0xc
jmp 0x401eea
mov dword [ebp - 4], 0
jmp 0x401ef3
mov dword [ebp - 4], 0
lea ecx, [ebp - 8]
push ecx
call fcn.00429d00
add esp, 4
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

Function at 0x4054c0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x848
mov eax, dword [0x444fe0]
xor eax, ebp
mov dword [ebp - 0x40], eax
push 0x802
push 0
lea eax, [ebp - 0x848]
push eax
call fcn.00419120
add esp, 0xc
push 0x3c
push 0
lea ecx, [ebp - 0x3c]
push ecx
call fcn.00419120
add esp, 0xc
push 0x400
lea edx, [ebp - 0x848]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.004287b0
add esp, 0xc
mov dword [ebp - 0x3c], 0x3c
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], ecx
lea edx, [ebp - 0x848]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], 1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.0041919a
mov esp, ebp
pop ebp
ret
Function at 0x406a40
Capabilities:
Download url
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b3d9
mov eax, dword fs:[0]
push eax
sub esp, 0x81c
mov eax, dword [0x444fe0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x824]
call fcn.00406960
mov dword [ebp - 4], 0
push 0x400
lea eax, [ebp - 0x814]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00428990
add esp, 0xc
lea edx, [ebp - 0x814]
push edx
call fcn.00434550
add esp, 4
lea eax, [ebp - 0x814]
push eax
push 0
call fcn.00410370
add esp, 8
push 0
push 0x400
lea ecx, [ebp - 0x814]
push ecx
push str.https:__www.efsoftware.com_
call fcn.00428710
add esp, 0x10
push 0
push 0x400
lea edx, [ebp - 0x814]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00428930
add esp, 0x10
mov ecx, 0x4477e0
call fcn.00409910
lea ecx, [ebp - 0x824]
push ecx
push 0
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x814]
push eax
push 0
call sub.urlmon.dll_URLDownloadToFileW
mov dword [ebp - 0x10], eax
mov ecx, 0x4477e0
call fcn.00409930
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x828], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x824]
call fcn.00406990
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041919a
mov esp, ebp
pop ebp
ret