joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40110c
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x43c030]
jne 0x401116
repz ret
jmp fcn.00401b11

Function at 0x408edc
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.004047d5
and dword [ebp - 4], 0
cmp dword [0x43e78c], 0
mov ebx, eax
jne 0x408f8d
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40903e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x40903e
push eax
call fcn.00404763
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x43e78c], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x43e790], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x43e794], eax
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x43e79c], eax
test eax, eax
je 0x408f8d
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x43e798], eax
mov eax, dword [0x43e798]
cmp eax, ebx
je 0x408fe5
cmp dword [0x43e79c], ebx
je 0x408fe5
push eax
call fcn.004047de
push dword [0x43e79c]
mov esi, eax
call fcn.004047de
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x408fe5
test edi, edi
je 0x408fe5
call esi
test eax, eax
je 0x408fdc
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x408fdc
test byte [ebp - 0xc], 1
jne 0x408fe5
or dword [ebp + 0x10], 0x200000
jmp 0x40901e
mov eax, dword [0x43e790]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40901e
mov eax, dword [0x43e794]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x43e78c]
call fcn.004047de
pop ecx
test eax, eax
je 0x40903e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x409040
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40af90
Capabilities:
Set console window title

Disassembly:
sub esp, 0x428
mov eax, dword [0x43c030]
xor eax, esp
mov dword [esp + 0x424], eax
mov eax, dword [0x2af709c]
push ebx
mov ebx, dword [0x2af6ee8]
push esi
mov esi, dword [0x43cf60]
push edi
mov edi, eax
cmp eax, 0x930
jne 0x40afd1
push str.lefovuweceh
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov eax, dword [0x2af709c]
mov dword [0x43e8f4], esi
cmp eax, 0x114e
jne 0x40affb
push 0
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
lea eax, [esp + 0x14]
push eax
push str.durinarusunavabaxomoyowev
call dword [sym.imp.KERNEL32.dll_BuildCommDCBA]
mov eax, dword [0x2af709c]
cmp eax, 0x2f
jne 0x40b01d
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_ReadEventLogW]
call fcn.0040af00
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040110c
add esp, 0x428
ret
Function at 0x403bec
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ss
and byte [ebp - 0x514], 0
and byte [ebp - 0x513], 0
mov byte [ebp - 0x512], 0xe3
and byte [ebp - 0x511], 0
mov byte [ebp - 0x510], 0x5b
mov byte [ebp - 0x50f], 0x79
mov byte [ebp - 0x50e], 0x68
mov byte [ebp - 0x50d], 0x5a
mov byte [ebp - 0x50c], 0x75
mov byte [ebp - 0x50b], 0x70
invalid
test esi, esi
cli
invalid

Function at 0x403cc0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
cmp dword [ebp + 0xc], 1
je 0x403e94
cmp dword [ebp + 0xc], 8
jne 0x403e5c
and byte [ebp - 0x6b8], 0
and byte [ebp - 0x6b7], 0
mov byte [ebp - 0x6b6], 0x9b
and byte [ebp - 0x6b5], 0
mov byte [ebp - 0x6b4], 0x33
mov byte [ebp - 0x6b3], 0x16
mov byte [ebp - 0x6b2], 0xd
mov byte [ebp - 0x6b1], 0x10
mov byte [ebp - 0x6b0], 1
invalid

Function at 0x403ee0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x503]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.00402fb4
or byte [eax + 0x2ff845c6], ah
mov byte [ebp - 0x24], 0x34
and byte [ebp - 0x36c], 0
and byte [ebp - 0x36b], 0
mov byte [ebp - 0x36a], 0xaa
and byte [ebp - 0x369], 0
mov byte [ebp - 0x368], 0x12
mov byte [ebp - 0x367], 0x30
xor dh, al
test dword [edx + 0x21fffffc], ebx
mov byte [ebp - 0x365], 6
mov byte [ebp - 0x364], 0x2c
mov byte [ebp - 0x363], 0x26
mov byte [ebp - 0x362], 0x21
mov byte [ebp - 0x361], 0x30
mov byte [ebp - 0x360], 0x38
mov byte [ebp - 0x35f], 0x11
mov byte [ebp - 0x35e], 0x3c
mov byte [ebp - 0x35d], 0x27
mov byte [ebp - 0x35c], 0x30
invalid
invalid

Function at 0x40439c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
xchg ebp, eax
cmp cl, 0xff
inc dword [ebx - 0x6cb43]
inc dword [eax]
je 0x405169
push 5
mov eax, dword [ebp - 0x378]
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax - 0x1d]
push eax
lea eax, [ebp - 0x394]
push eax
call fcn.00402f47
add esp, 0xc
and dword [ebp - 0x700], 0
jmp 0x4043e3
mov eax, dword [ebp - 0x700]
inc eax
mov dword [ebp - 0x700], eax
cmp dword [ebp - 0x700], 5
jge 0x40442c
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
movsx ecx, byte [ebp - 0x24]
xor eax, ecx
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
not eax
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
jmp 0x4043d6
call fcn.00402fd6
invalid
pop edi
pop esi
pop ebx
leave
ret
Function at 0x404b8f
Capabilities:
Check mutex on windows

Disassembly:
push ebp
lea ebp, [esp - 0x7a8]
sub esp, 0x828
mov eax, dword [0x479630]
xor eax, ebp
mov dword [ebp + 0x7a4], eax
mov eax, dword [ebp + 0x7b0]
push ebx
xor ebx, ebx
push esi
mov esi, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x68], ebx
mov byte [ebp - 0x6c], bl
mov dword [esi], ebx
call fcn.00426cfe
mov dword [esi], eax
cmp eax, ebx
jne 0x404be4
push str.ERROR:_ShutdownEvent_handle_is_NULL
call fcn.00417007
pop ecx
mov dword [ebp - 0x60], 0xfffffffe
push dword [ebp - 0x64]
call fcn.00426cfe
pop ecx
test eax, eax
jne 0x404c04
push str.jusched_ERROR:_Could_not_open_Policy_key_for_reading
call fcn.00417007
mov dword [ebp - 0x60], 0xfffffffd
jmp 0x404c27
mov eax, dword [ebp - 0x64]
push dword [eax]
call fcn.00404b12
pop ecx
mov dword [esi + 4], eax
cmp eax, ebx
jne 0x404c28
push str.jusched_main:_ERROR_creating_registry_watch_event_notifier
call fcn.00417007
mov dword [ebp - 0x60], 0xfffffffe
pop ecx
push str.SunJavaUpdateSchedulerMutex
push 1
push ebx
mov dword [edi], ebx
call dword [sym.imp.kernel32.dll_CreateMutexA]
mov dword [edi], eax
cmp eax, ebx
jne 0x404c98
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x7ff
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x5b]
push ebx
push eax
mov byte [ebp - 0x5c], bl
call fcn.0043b8b0
add esp, 0xc
cmp dword [ebp - 0x60], 0xb7
lea eax, [ebp - 0x5c]
jne 0x404c78
push str.Error:_Scheduler_Mutex_already_exists_n
push eax
call dword [sym.imp.user32.dll_wsprintfA]
pop ecx
pop ecx
jmp 0x404c8a
push dword [ebp - 0x60]
push str.Error:_Error_creating_scheduler_mutex:__d_n
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x5c]
push eax
call fcn.00417007
or dword [ebp - 0x60], 0xffffffff
pop ecx
cmp dword [ebp - 0x60], ebx
je 0x404cb7
push dword [edi]
push esi
call fcn.00404b61
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
pop ecx
pop ecx
lea esi, [ebp - 0x80]
mov dword [ebp - 0x7c], eax
call fcn.00414507
mov ecx, dword [ebp + 0x7a4]
mov eax, dword [ebp - 0x60]
pop esi
xor ecx, ebp
pop ebx
call fcn.0043a455
add ebp, 0x7a8
leave
ret
Function at 0x4065d8
Capabilities:
Create thread

Disassembly:
push ebp
lea ebp, [esp - 0xac]
sub esp, 0x12c
mov eax, dword [0x479630]
xor eax, ebp
mov dword [ebp + 0xa8], eax
push ebx
push esi
mov esi, dword [ebp + 0xb4]
push edi
mov edi, dword [sym.imp.kernel32.dll_CreateEventA]
xor ebx, ebx
push ebx
push ebx
mov dword [esi + 0xc], 0xbc2
mov eax, dword [0x47c184]
push 1
push ebx
mov dword [esi + 0x18], eax
call edi
push ebx
push ebx
push 1
push ebx
mov dword [esi + 0x20], eax
call edi
push ebx
push ebx
push 1
push ebx
mov dword [esi + 0x24], eax
call edi
mov dword [esi + 0x38], eax
call fcn.00426cfe
mov dword [esi + 0x3c], eax
xor eax, eax
mov byte [ebp - 0x7c], bl
lea edi, [ebp - 0x7b]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [ebp - 0x68], ebx
lea edi, [ebp - 0x64]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 1
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push ebx
push ebx
push 1
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
push str.SunJavaUpdateRecheckUpdateEvent
lea eax, [ebp - 0x7c]
push ebx
mov dword [ebp - 0x64], eax
push ebx
lea eax, [ebp - 0x68]
push eax
mov dword [ebp - 0x68], 0xc
call dword [sym.imp.kernel32.dll_CreateEventA]
push dword [esi + 0x20]
mov edi, dword [sym.imp.kernel32.dll_ResetEvent]
mov dword [esi + 0x40], eax
call edi
push dword [esi + 0x24]
call edi
push dword [esi + 0x38]
call edi
lea eax, [ebp - 0x80]
push eax
push ebx
push esi
push 0x406bb3
push ebx
push ebx
call dword [sym.imp.kernel32.dll_CreateThread]
cmp eax, ebx
je 0x4066c0
push eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push 0xffffffffffffffff
push dword [esi + 0x20]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push dword [esi + 0x20]
call edi
mov edi, dword [sym.imp.user32.dll_LoadStringA]
mov ebx, 0x104
push ebx
lea eax, [esi + 0x54]
push eax
push 0x7b
push dword [esi + 0x18]
call edi
push ebx
lea eax, [ebp - 0x5c]
push eax
push 0x7c
push dword [esi + 0x18]
call edi
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
test eax, eax
jle 0x406712
lea eax, [ebp - 0x5c]
push eax
add esi, 0x158
push esi
call dword [sym.imp.kernel32.dll_lstrcpyA]
mov ecx, dword [ebp + 0xa8]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0043a455
add ebp, 0xac
leave
ret 4
Function at 0x40fa9c
Capabilities:
Delete registry key

Disassembly:
push 0x38
mov eax, 0x45749d
call fcn.00441eb1
mov eax, dword [ebp + 8]
xor ebx, ebx
xor edi, edi
mov dword [ebp + 8], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x40], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x2c], bl
cmp eax, ebx
jne 0x40fb08
cmp dword [ebp + 0x10], ebx
jne 0x40fae5
push 0x2001f
push str.SOFTWAREJavaSoftJava_UpdatePolicyjucheck
lea eax, [ebp - 0x40]
call fcn.004144d0
mov eax, dword [ebp - 0x38]
mov dword [ebp + 8], eax
jmp 0x40fafa
push str.SetJavaUpdateStringKey_was_called_with_a_NULL_value_for_the_key__so_defaulting_to_trying_jucheck_key
call fcn.00417007
pop ecx
lea eax, [ebp + 8]
push eax
call fcn.00426cfe
pop ecx
cmp dword [ebp + 8], ebx
je 0x40fb0b
mov dword [ebp - 0x10], 1
jmp 0x40fb0b
mov dword [ebp + 8], eax
xor esi, esi
lea eax, [ebp - 0x20]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
call fcn.0041053c
mov dword [ebp - 4], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x3c], eax
cmp dword [ebp + 0x10], ebx
je 0x40fb3c
push dword [ebp + 0x10]
lea ebx, [ebp - 0x24]
call fcn.00426cfe
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x40fb89
cmp dword [ebp + 0x10], ebx
jne 0x40fb54
push dword [ebp + 0xc]
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x40fb82
push dword [ebp + 0x10]
mov dword [ebp - 0x24], 1
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
push dword [ebp + 0x10]
push dword [ebp - 0x20]
call fcn.00426cfe
add esp, 0xc
push dword [ebp + 0xc]
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x24]
call fcn.004145aa
mov edi, eax
neg edi
sbb edi, edi
inc edi
cmp dword [ebp - 0x10], ebx
je 0x40fb96
lea esi, [ebp - 0x40]
call fcn.00414507
lea esi, [ebp - 0x20]
call fcn.0042525d
mov eax, edi
call fcn.00441f89
ret
Function at 0x4103fe
Capabilities:
Get common file path
Parse url

Disassembly:
push ebp
lea ebp, [esp - 0x5cc]
sub esp, 0x64c
mov eax, dword [0x479630]
xor eax, ebp
mov dword [ebp + 0x5c8], eax
mov eax, dword [ebp + 0x5d4]
push ebx
push esi
push edi
push 0x3c
pop edi
xor ebx, ebx
push edi
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x80]
push ebx
push eax
mov esi, ecx
mov byte [ebp + 0x3c4], bl
call fcn.0043b8b0
lea eax, [ebp - 0x3c]
add esp, 0xc
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x80]
push eax
push ebx
push esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x50], 0x400
call dword [sym.imp.kernel32.dll_lstrlenA]
push eax
push esi
call dword [sym.imp.wininet.dll_InternetCrackUrlA]
mov edi, 0x104
cmp eax, ebx
je 0x4104a6
push 0x100
lea eax, [ebp + 0x3c4]
push eax
push edi
lea eax, [ebp + 0x4c4]
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.00426cfe
lea eax, [ebp + 0x4c4]
push 0x464e60
push eax
call fcn.0043b3f0
add esp, 0x2c
test eax, eax
je 0x4104ef
mov eax, esi
mov dword [ebp - 0x40], ebx
cmp byte [esi], bl
je 0x4104d7
mov cl, byte [eax]
cmp cl, 0x20
je 0x4104bb
cmp cl, 9
jne 0x4104c4
push eax
call dword [sym.imp.user32.dll_CharNextA]
jmp 0x4104af
mov ecx, dword [ebp - 0x40]
movsx edx, byte [eax]
imul ecx, ecx, 0x1f
add ecx, edx
inc eax
mov dword [ebp - 0x40], ecx
cmp byte [eax], bl
jne 0x4104af
push dword [ebp - 0x40]
lea eax, [ebp + 0x4c4]
push str.jupdate__x
push eax
call dword [sym.imp.user32.dll_wsprintfA]
add esp, 0xc
push dword [ebp - 0x44]
push edi
call dword [sym.imp.kernel32.dll_GetTempPathA]
mov esi, dword [sym.imp.kernel32.dll_lstrcatA]
lea eax, [ebp + 0x4c4]
push eax
push dword [ebp - 0x44]
call esi
lea eax, [ebp + 0x3c4]
push eax
push dword [ebp - 0x44]
call esi
mov ecx, dword [ebp + 0x5c8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043a455
add ebp, 0x5cc
leave
ret
Function at 0x41292f
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x394]
sub esp, 0x414
mov eax, dword [0x479630]
xor eax, ebp
mov dword [ebp + 0x390], eax
mov eax, dword [ebp + 0x39c]
push esi
push edi
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x7c]
push eax
push 1
push 0
push str.SOFTWAREJavaSoftJava_UpdatePolicy
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x78], 0x400
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x412a11
mov byte [ebp - 0x70], al
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x80]
push eax
push 0
push str.TransferJobID
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x78], 0
jbe 0x412a11
mov esi, dword [sym.imp.kernel32.dll_lstrlenA]
lea eax, [ebp - 0x70]
push eax
call esi
test eax, eax
je 0x412a11
lea eax, [ebp - 0x70]
push eax
call esi
lea edi, [eax + 1]
cmp edi, 0x3fffffff
jle 0x4129cf
xor eax, eax
jmp 0x4129e5
lea eax, [edi + edi]
call fcn.0044ee80
mov esi, esp
push 3
push edi
lea eax, [ebp - 0x70]
push eax
call fcn.00401098
push dword [ebp - 0x74]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
push 0x10
push 0x45d5d8
push dword [ebp - 0x74]
call fcn.00426cfe
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
jmp 0x412a16
mov eax, 0x80004005
lea esp, [ebp - 0x88]
pop edi
pop esi
mov ecx, dword [ebp + 0x390]
xor ecx, ebp
call fcn.0043a455
add ebp, 0x394
leave
ret

Function at 0x413eeb
Capabilities:
Encrypt data using dpapi

Disassembly:
push 0x60
mov eax, 0x455b7c
call fcn.00441f1a
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x5c], eax
xor eax, eax
dec ecx
push 4
neg ecx
sbb ecx, ecx
mov esi, edx
pop edx
and ecx, 0xfffffffc
mov dword [ebp - 0x54], ebx
lea edi, [ebp - 0x50]
stosd dword es:[edi], eax
add ecx, edx
lea eax, [ebp - 0x54]
push eax
or ecx, 1
push ecx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], edx
call dword [sym.imp.CRYPT32.dll_CryptProtectData]
test eax, eax
jne 0x413f78
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
push eax
lea esi, [ebp - 0x30]
call fcn.00426cfe
push eax
lea eax, [ebp - 0x4c]
push str.encryption_failed__sysError
push eax
mov dword [ebp - 4], ebx
call fcn.00426cfe
add esp, 0x14
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 1
call fcn.00426cfe
push 0x46d650
mov eax, esi
push eax
call fcn.00426cfe
mov edi, dword [ebp - 0x58]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov esi, dword [ebp - 0x54]
mov eax, edi
call fcn.0041053c
push dword [ebp - 0x54]
mov eax, dword [edi]
push dword [ebp - 0x50]
push eax
call fcn.00426cfe
add esp, 0xc
push dword [ebp - 0x50]
call dword [sym.imp.kernel32.dll_LocalFree]
mov eax, edi
call fcn.00441f9d
ret
Function at 0x413faf
Capabilities:
Encrypt data using dpapi

Disassembly:
push 0x60
mov eax, 0x455b7c
call fcn.00441f1a
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0x54], ebx
lea edi, [ebp - 0x50]
stosd dword es:[edi], eax
lea eax, [ebp - 0x54]
push eax
push 1
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x60]
mov esi, edx
push eax
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], ecx
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
jne 0x41402d
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
push eax
lea esi, [ebp - 0x30]
call fcn.00426cfe
push eax
lea eax, [ebp - 0x4c]
push str.decryption_failed__sysError
push eax
mov dword [ebp - 4], ebx
call fcn.00426cfe
add esp, 0x14
lea esi, [ebp - 0x6c]
mov byte [ebp - 4], 1
call fcn.00426cfe
push 0x46d650
mov eax, esi
push eax
call fcn.00426cfe
mov edi, dword [ebp - 0x58]
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov esi, dword [ebp - 0x54]
mov eax, edi
call fcn.0041053c
push dword [ebp - 0x54]
mov eax, dword [edi]
push dword [ebp - 0x50]
push eax
call fcn.00426cfe
add esp, 0xc
push dword [ebp - 0x50]
call dword [sym.imp.kernel32.dll_LocalFree]
mov eax, edi
call fcn.00441f9d
ret

Function at 0x4140d6
Capabilities:
Encode data using base64 via winapi

Disassembly:
push 0x6c
mov eax, 0x455b47
call fcn.00441f1a
mov eax, dword [ebp + 8]
mov edi, ecx
xor ecx, ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], ecx
cmp dword [ebp + 0xc], ecx
jne 0x414105
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], ecx
mov byte [edi], cl
jmp 0x4141fe
mov esi, dword [sym.imp.CRYPT32.dll_CryptBinaryToStringA]
lea edx, [ebp - 0x68]
push edx
push ecx
mov ebx, 0x40000001
push ebx
push dword [ebp + 0xc]
mov dword [ebp - 0x68], ecx
push eax
call esi
test eax, eax
jne 0x414163
call dword [sym.imp.kernel32.dll_GetLastError]
push 0
push eax
lea esi, [ebp - 0x64]
call fcn.00426cfe
and dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x48]
push str.binary2string__phase1__failed__sysError
push eax
call fcn.00426cfe
add esp, 0x14
mov byte [ebp - 4], 1
lea esi, [ebp - 0x78]
call fcn.00426cfe
push 0x46d650
mov eax, esi
push eax
call fcn.00426cfe
and dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x2c]
call fcn.00414481
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x414190
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x68]
push ecx
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x6c]
call esi
test eax, eax
jne 0x4141d2
call dword [sym.imp.kernel32.dll_GetLastError]
push 0
push eax
lea esi, [ebp - 0x48]
call fcn.00426cfe
push eax
lea eax, [ebp - 0x64]
push str.binary2string__phase2__failed__sysError
push eax
mov byte [ebp - 4], 3
call fcn.00426cfe
add esp, 0x14
mov byte [ebp - 4], 4
jmp 0x41414e
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x2c]
call fcn.00414481
and dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
lea esi, [ebp - 0x2c]
mov byte [edi], 0
call fcn.00405cea
push 0
push 1
mov ecx, esi
call fcn.00405e43
mov eax, edi
call fcn.00441f9d
ret
Function at 0x414206
Capabilities:
Decode data using base64 via winapi

Disassembly:
push 0x98
mov eax, 0x455af7
call fcn.00441f1a
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x84], ebx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x88], eax
cmp ecx, ebx
jne 0x41423c
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
jmp 0x414376
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x84], ebx
jb 0x41424c
mov eax, dword [edi]
jmp 0x41424e
mov eax, edi
push ebx
push ebx
lea edx, [ebp - 0x84]
push edx
push ebx
push 1
push ecx
push eax
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x4142a7
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
push eax
lea esi, [ebp - 0x48]
call fcn.00426cfe
push eax
lea eax, [ebp - 0x80]
push str.string2binary__phase1__failed__sysError
push eax
mov dword [ebp - 4], ebx
call fcn.00426cfe
add esp, 0x14
lea esi, [ebp - 0x94]
mov byte [ebp - 4], 1
call fcn.00426cfe
push 0x46d650
mov eax, esi
push eax
call fcn.00426cfe
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
call fcn.0041053c
mov dword [ebp - 4], 2
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
jb 0x4142dc
mov edi, dword [edi]
push ebx
push ebx
lea ecx, [ebp - 0x84]
push ecx
push dword [ebp - 0x98]
push 1
push eax
push edi
call dword [sym.imp.CRYPT32.dll_CryptStringToBinaryA]
test eax, eax
jne 0x41433a
call dword [sym.imp.kernel32.dll_GetLastError]
push ebx
push eax
lea esi, [ebp - 0x64]
call fcn.00426cfe
push eax
lea eax, [ebp - 0x2c]
push str.string2binary__phase2__failed__sysError
push eax
mov byte [ebp - 4], 3
call fcn.00426cfe
add esp, 0x14
lea esi, [ebp - 0xa4]
mov byte [ebp - 4], 4
call fcn.00426cfe
push 0x46d650
mov eax, esi
jmp 0x4142a1
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0x98]
call fcn.0041053c
mov eax, dword [ebp - 0x88]
lea edi, [ebp - 0x98]
call fcn.0041449c
cmp dword [ebp - 0x98], ebx
je 0x414370
push dword [ebp - 0x98]
call fcn.00426cfe
pop ecx
mov eax, dword [ebp - 0x88]
call fcn.00441f9d
ret