joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4088e0
Capabilities:
Check os version

Disassembly:
sub esp, 0x118
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push 0x114
lea eax, [esp + 8]
push 0
push eax
xor bl, bl
call fcn.00501e30
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov dword [esp + 8], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x40898f
cmp dword [esp + 8], 6
jb 0x408970
push 0
push 0
push 0
push 3
push 6
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
jge 0x40894c
cmp eax, 0x80010119
jne 0x40898f
push 0x63132c
push esi
call fcn.004079d0
add esp, 8
pop ebx
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x118
ret
push esi
call fcn.004075b0
add esp, 4
pop ebx
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x118
ret
mov ecx, dword [esp + 0x118]
mov al, bl
pop ebx
xor ecx, esp
call fcn.004fdb4a
add esp, 0x118
ret
Function at 0x40a670
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0xffffffffffffffff
push 0x57cf2d
mov eax, dword fs:[0]
push eax
mov eax, 0x2028
call fcn.005027c0
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x2024], eax
push ebx
push ebp
push esi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x2038]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x2040], ebx
mov dword [esp + 0x10], ebx
xor eax, eax
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], ebx
mov dword [esp + 0x14], edi
mov word [edi + 4], ax
mov dword [esp + 0x2040], ebx
mov ebp, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push ebx
push ecx
lea edx, [esp + 0x3c]
push edx
push ebx
mov dword [esp + 0x20], 1
call ebp
test eax, eax
je 0x40a7b5
push 0x1000
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x40a7b5
lea eax, [esp + 0x34]
lea edx, [eax + 2]
jmp 0x40a720
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x40a720
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x38]
mov esi, edi
call fcn.0040e430
push ebx
push 0x28
lea edx, [esp + 0x3c]
push edx
push ebx
call ebp
test eax, eax
je 0x40a7ae
push 0x1000
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x40a7ae
lea edx, [esp + 0x34]
push 0x104
push edx
call fcn.004fe347
mov ecx, dword [edi + 0x14]
sub ecx, eax
add esp, 8
lea edx, [eax + 1]
lea eax, [esp + 0x18]
push eax
dec ecx
push edi
call fcn.0040c900
mov dword [esp + 0x2040], 1
push 0xffffffffffffffff
push ebx
mov ecx, edi
call fcn.0040e380
mov byte [esp + 0x2040], bl
lea esi, [esp + 0x18]
call fcn.0042f9c0
jmp 0x40a7b5
mov eax, edi
call fcn.0040c880
mov eax, edi
mov ecx, dword [esp + 0x2038]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2024]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x2034
ret

Function at 0x40a7e0
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0xffffffffffffffff
push 0x57ced2
mov eax, dword fs:[0]
push eax
mov eax, 0x200c
call fcn.005027c0
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x2008], eax
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x2018]
mov dword fs:[0], eax
xor edi, edi
mov dword [esp + 0x2020], edi
mov esi, edx
mov dword [esp + 0xc], edi
xor eax, eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], edi
mov dword [esp + 0x10], esi
mov word [esi + 4], ax
mov dword [esp + 0x2020], edi
push edi
push ecx
lea edx, [esp + 0x1c]
push edx
push edi
mov dword [esp + 0x1c], 1
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x40a899
push 0x1000
lea eax, [esp + 0x18]
push eax
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x40a899
lea eax, [esp + 0x14]
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x40a880
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x18]
call fcn.0040e430
mov eax, esi
mov ecx, dword [esp + 0x2018]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x2008]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x2018
ret
Function at 0x40ab10
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x228]
sub esp, 0x228
push 0xffffffffffffffff
push 0x581740
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x6531f0]
xor eax, ebp
mov dword [ebp + 0x224], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov eax, dword [ebp + 0x230]
mov dword [ebp - 0x20], eax
xor bl, bl
mov dword [ebp - 0x1c], 0x104
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x18], 7
mov dword [ebp + 0x14], eax
xor ecx, ecx
mov word [ebp + 4], cx
push 0x38
mov eax, str.SOFTWAREMicrosoftWindows_NTCurrentVersionProfileList
lea esi, [ebp]
call fcn.0040e430
mov dword [ebp - 4], 0
push 1
mov eax, 0x63132c
mov ecx, esi
call fcn.0040e2a0
push 0
push edi
or eax, 0xffffffff
call fcn.0040e1e0
mov edi, 8
cmp dword [ebp + 0x18], edi
mov eax, dword [ebp + 4]
jae 0x40abb4
lea eax, [ebp + 4]
lea edx, [ebp - 0x18]
push edx
push 0x20019
push 0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40acaf
mov eax, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea esi, [ebp - 0x24]
call fcn.004136f0
mov byte [ebp - 4], 1
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x28]
push ecx
push 0
push str.ProfileImagePath
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40ac95
mov eax, dword [ebp - 0x28]
cmp eax, 1
je 0x40ac1b
cmp eax, 2
jne 0x40ac95
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x1c]
shr ecx, 1
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x60]
call fcn.0040c610
mov bl, 3
mov byte [ebp - 4], bl
cmp dword [eax + 0x18], edi
jb 0x40ac3f
mov ecx, dword [eax + 4]
jmp 0x40ac42
lea ecx, [eax + 4]
lea esi, [ebp - 0x44]
call fcn.00406eb0
mov byte [ebp - 4], 4
push 0xffffffffffffffff
push 0
mov ecx, dword [ebp - 0x20]
call fcn.0040e380
mov byte [ebp - 4], bl
call fcn.0042f9c0
mov byte [ebp - 4], 2
lea esi, [ebp - 0x60]
call fcn.0042f9c0
mov bl, 1
mov byte [ebp - 0x11], bl
mov dword [ebp - 4], 1
jmp 0x40ac95
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x24]
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx]
call eax
mov edx, dword [esi]
push 1
mov ecx, esi
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x18], edi
jb 0x40acc7
mov ecx, dword [ebp + 4]
push ecx
call fcn.004fdb3f
add esp, 4
mov dword [ebp + 0x18], 7
mov dword [ebp + 0x14], 0
xor edx, edx
mov word [ebp + 4], dx
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x224]
xor ecx, ebp
call fcn.004fdb4a
add ebp, 0x228
mov esp, ebp
pop ebp
ret
Function at 0x4127e0
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x57f6b1
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
xor ebx, ebx
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov word [esp + 0x18], cx
mov ecx, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], ebx
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x412830
sub ecx, esi
sar ecx, 1
push ecx
lea esi, [esp + 0x18]
call fcn.0040e430
mov dword [esp + 0x38], 1
mov edx, dword [esp + 0x48]
push ebx
push edx
or eax, 0xffffffff
call fcn.0040e1e0
xor ecx, ecx
mov esi, 7
mov dword [edi + 0x18], esi
mov dword [edi + 0x14], ebx
push 0xffffffffffffffff
mov word [edi + 4], cx
push ebx
mov ecx, edi
call fcn.0040e380
mov dword [esp + 0x10], 1
mov byte [esp + 0x38], bl
cmp dword [esp + 0x2c], 8
jb 0x41289a
mov edx, dword [esp + 0x18]
push edx
call fcn.004fdb3f
add esp, 4
xor eax, eax
mov word [esp + 0x18], ax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebx
mov eax, edi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x2c
ret
Function at 0x41a570
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5812c2
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov dword [ebp - 4], 0
push str.SELECT_id__value_FROM_reports_WHERE_type__
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ecx + 0x1c]
call fcn.004751b0
mov byte [ebp - 4], 1
mov edx, dword [ebp + 8]
push edx
push 1
lea eax, [ebp - 0x2c]
call fcn.004750c0
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x2c]
push ecx
call fcn.00474e70
mov byte [ebp - 4], 2
jmp 0x41a5e0
cmp byte [ebp - 0x50], 0
jne 0x41a6a5
mov esi, 1
lea edi, [ebp - 0x58]
call fcn.00474a10
mov dword [ebp + 8], eax
test eax, eax
je 0x41a697
xor esi, esi
call fcn.00474950
mov esi, eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x3c], ecx
lea edx, [ebp - 0x24]
push edx
call fcn.004026a0
mov byte [ebp - 4], 3
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 4
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov eax, esi
sub eax, ecx
sar eax, 3
test ecx, ecx
je 0x41a664
mov edx, dword [ebx + 0x14]
sub edx, ecx
sar edx, 3
cmp eax, edx
jae 0x41a664
mov byte [ebp - 0x18], 0
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 1
push esi
lea ecx, [ebp - 0x24]
call fcn.0041f230
add esp, 0x10
add esi, 8
mov dword [ebx + 0x10], esi
jmp 0x41a68a
mov dword [ebp - 0x34], 0
cmp ecx, esi
jbe 0x41a674
call fcn.004fe843
mov eax, dword [ebx]
mov dword [ebp - 0x34], eax
push esi
push eax
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x44]
push eax
mov eax, ebx
call fcn.0041cac0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
push ecx
call fcn.00464110
lea edx, [ebp - 0x58]
push edx
call fcn.00474a90
jmp 0x41a5e0
mov byte [ebp - 4], 1
lea esi, [ebp - 0x58]
call fcn.00474900
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00474c40
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x41ab80
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5836a0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], esi
push str.SELECT_COUNT___FROM_usb_reports_WHERE_t_action___4_
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
call fcn.004755b0
cmp eax, esi
jle 0x41abca
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x41ac20
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x583680
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], esi
push str.SELECT_COUNT___FROM_usb_reports_WHERE_t_action___3_AND_t_action___4_
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x1c]
call fcn.004755b0
cmp eax, esi
jle 0x41ac6a
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x41fcc0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xc
mov dword [esp], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
test edi, edi
jne 0x41fce7
mov eax, 0xa0
add esp, 0xc
ret
push ebx
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x41fcf6
mov dword [ebx], 0
push esi
lea eax, [esp + 8]
push eax
push 0xf003f
push 0
push ecx
push connect
mov dword [edi], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
je 0x41fd26
cmp esi, 2
je 0x41fd7f
pop esi
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 8]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea edx, [esp + 0xc]
push edx
push 0
lea eax, [esp + 0x18]
push eax
push 0
push str.LaunchPermission
push ecx
call ebx
mov esi, eax
test esi, esi
je 0x41fd51
cmp esi, 0x7a
jne 0x41fd7b
mov edx, dword [esp + 0xc]
push edx
call fcn.004fe27d
add esp, 4
lea ecx, [esp + 0xc]
push ecx
push eax
lea edx, [esp + 0x18]
push edx
push 0
mov dword [edi], eax
mov eax, dword [esp + 0x18]
push str.LaunchPermission
push eax
call ebx
mov esi, eax
mov ebx, dword [esp + 0x18]
test esi, esi
je 0x41fdaf
mov eax, dword [edi]
test eax, eax
je 0x41fd92
push eax
call fcn.004fe160
add esp, 4
mov dword [edi], 0
test ebx, ebx
je 0x41fdaf
mov ecx, edi
call fcn.00420310
mov esi, eax
test esi, esi
jne 0x41fdaf
mov dword [ebx], 1
mov eax, dword [esp + 8]
test eax, eax
je 0x41fdbe
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
pop ebx
add esp, 0xc
ret

Function at 0x41fdd0
Capabilities:
Get user security identifier

Disassembly:
sub esp, 0x210
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x20c], eax
push edi
xor eax, eax
push 0x1fe
mov edi, ecx
push eax
lea ecx, [esp + 0x1a]
push ecx
mov word [esp + 0x1c], ax
call fcn.00501e30
add esp, 0xc
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp + 8], 0xff
call fcn.00420490
test eax, eax
je 0x41fe34
xor eax, eax
pop edi
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x210
ret
push ebx
push ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
push esi
push 0
call ebp
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x7a
jne 0x41fea3
mov ecx, dword [esp + 0xc]
push ecx
xor ebx, ebx
call fcn.004fe27d
add esp, 4
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push ecx
push eax
push esi
push ebx
mov dword [edi], eax
mov dword [esp + 0x2c], 0xff
call ebp
test eax, eax
jne 0x41fea3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov ecx, dword [esp + 0x218]
pop ebp
mov eax, ebx
pop ebx
pop edi
xor ecx, esp
call fcn.004fdb4a
add esp, 0x210
ret
Function at 0x420290
Capabilities:
Set registry value

Disassembly:
sub esp, 8
push esi
lea eax, [esp + 8]
push eax
lea ecx, [esp + 8]
push ecx
push 0
push 0xf003f
push 0
push 0x630230
push 0
push edx
push connect
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov esi, eax
test esi, esi
jne 0x4202ee
push edi
call dword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorLength]
push eax
mov eax, dword [esp + 8]
push edi
push 3
push esi
push str.LaunchPermission
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
mov eax, dword [esp + 4]
test eax, eax
je 0x4202fd
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
add esp, 8
ret

Function at 0x420680
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x11c], eax
push esi
push 0x118
xor esi, esi
lea eax, [esp + 0xc]
push esi
push eax
mov dword [esp + 0x10], 0x11c
call fcn.00501e30
add esp, 0xc
lea ecx, [esp + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4206f5
mov eax, dword [esp + 8]
cmp eax, 5
jne 0x4206ee
mov eax, dword [esp + 0xc]
cmp eax, 1
jb 0x4206f0
jne 0x4206e0
cmp word [esp + 0x118], 2
jmp 0x4206ee
cmp eax, 2
jne 0x4206f5
cmp word [esp + 0x118], 1
jae 0x4206f5
mov esi, 1
mov ecx, dword [esp + 0x120]
mov eax, esi
pop esi
xor ecx, esp
call fcn.004fdb4a
add esp, 0x120
ret

Function at 0x421000
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x57f1b2
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x28]
lea eax, [esp + 0x28]
push eax
mov ecx, 0x630230
mov dword [esp + 0x18], 0
call fcn.004026a0
mov ebx, 1
mov dword [esp + 0x20], ebx
lea edi, [ebp + 0x25c]
lea eax, [esp + 0x28]
call fcn.0040e9d0
mov byte [esp + 0x20], 0
lea ecx, [esp + 0x28]
call fcn.00402750
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp byte [ebp + 8], 0
jne 0x4210a2
mov eax, dword [ebp]
lea ecx, [ebp + 0xc]
push ecx
push eax
mov byte [ebp + 8], bl
call edi
mov esi, eax
mov eax, dword [ebp + 0x260]
cmp esi, eax
je 0x421097
cmp eax, 0xffffffff
je 0x421097
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp + 0x260], esi
cmp esi, 0xffffffff
jmp 0x4210ba
mov eax, dword [ebp + 0x260]
cmp eax, 0xffffffff
je 0x4210d6
lea edx, [ebp + 0xc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x4210d6
lea esi, [ebp + 0x38]
call fcn.00429a90
test al, al
jne 0x42106c
lea eax, [ebp + 4]
lea edi, [ebp + 0x25c]
call fcn.0040e9d0
mov esi, dword [esp + 0x2c]
add ebp, 0xc
push ebp
push esi
call fcn.00421110
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], ebx
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 8
Function at 0x423940
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x57f001
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], 0
mov ecx, dword [eax]
lea edx, [esp + 0xc]
call fcn.00423890
mov dword [esp + 0x30], 1
cmp dword [eax + 0x18], 8
jb 0x423992
mov eax, dword [eax + 4]
jmp 0x423995
add eax, 4
push esi
mov ecx, eax
call fcn.004026a0
mov dword [esp + 8], 1
mov byte [esp + 0x30], 0
cmp dword [esp + 0x24], 8
jb 0x4239be
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004fdb3f
add esp, 4
xor edx, edx
mov dword [esp + 0x24], 7
mov dword [esp + 0x20], 0
mov word [esp + 0x10], dx
mov eax, esi
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x2c
ret
Function at 0x423a80
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov esi, eax
test edi, edi
je 0x423c4d
test esi, esi
je 0x423c4d
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x423c4d
mov ebx, dword [esp + 0x20]
mov eax, ebx
call fcn.004239f0
cmp dword [ebp], eax
jl 0x423c4d
mov eax, 0x55555556
imul ebx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [ecx*4]
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
xor eax, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], ecx
mov ebp, 0x13
mov dword [esp + 0x14], eax
test ebx, ebx
jl 0x423bc1
cmp eax, ebx
jne 0x423b1d
mov edx, ebx
imul edx, edx, 0x4c
lea eax, [ecx*4]
sub eax, edx
cdq
and edx, 3
add eax, edx
mov ebp, eax
sar ebp, 2
test ebp, ebp
jle 0x423b8b
mov eax, ebp
movzx ecx, byte [edi]
movzx edx, byte [edi + 1]
shl ecx, 8
or ecx, edx
movzx edx, byte [edi + 2]
shl ecx, 8
or ecx, edx
shl ecx, 8
mov edx, ecx
shr edx, 0x1a
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789ABCDEFIsWow64Process]
mov byte [esi], dl
shl ecx, 6
mov edx, ecx
shr edx, 0x1a
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789ABCDEFIsWow64Process]
shl ecx, 6
mov byte [esi + 1], dl
mov edx, ecx
shr edx, 0x1a
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789ABCDEFIsWow64Process]
shr ecx, 0x14
and ecx, 0x3f
mov byte [esi + 2], dl
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789ABCDEFIsWow64Process]
mov byte [esi + 3], cl
add edi, 3
add esi, 4
sub eax, 1
jne 0x423b23
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
lea eax, [edx + ebp*4]
add eax, 2
mov byte [esi], 0xd
inc esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
inc eax
mov byte [esi], 0xa
inc esi
cmp eax, ebx
mov dword [esp + 0x14], eax
jle 0x423b02
cmp dword [esp + 0x10], 0
je 0x423bc1
sub esi, 2
sub dword [esp + 0x10], 2
lea eax, [ecx + ecx*2]
mov ecx, dword [esp + 0x20]
sub ecx, eax
je 0x423c36
lea ebp, [ecx + 1]
test ebp, ebp
je 0x423c36
xor eax, eax
test ecx, ecx
jle 0x423bdd
movzx eax, byte [edi]
inc edi
shl eax, 8
cmp ecx, 1
jle 0x423beb
movzx edx, byte [edi]
or eax, edx
inc edi
shl eax, 8
cmp ecx, 2
jle 0x423bf8
movzx ecx, byte [edi]
or eax, ecx
shl eax, 8
test ebp, ebp
jle 0x423c17
mov ecx, ebp
mov edx, eax
shr edx, 0x1a
mov dl, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_0123456789ABCDEFIsWow64Process]
mov byte [esi], dl
inc esi
shl eax, 6
sub ecx, 1
jne 0x423c01
add dword [esp + 0x10], ebp
mov edi, 4
sub edi, ebp
test edi, edi
jle 0x423c32
push edi
push 0x3d
push esi
call fcn.00501e30
add esp, 0xc
add dword [esp + 0x10], edi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
Function at 0x424320
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x57ef1a
mov eax, dword fs:[0]
push eax
sub esp, 0x80c
mov eax, dword [0x6531f0]
xor eax, esp
mov dword [esp + 0x808], eax
push ebp
push esi
push edi
mov eax, dword [0x6531f0]
xor eax, esp
push eax
lea eax, [esp + 0x81c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x82c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], 0
mov esi, 1
mov dword [esp + 0x824], esi
lea eax, [esp + 0x18]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [esp + 0x830]
cmp dword [eax - 4], esi
jle 0x4243ad
mov ecx, dword [eax - 0xc]
push ecx
lea edx, [esp + 0x834]
push edx
call fcn.00402a30
mov eax, dword [esp + 0x830]
mov edx, eax
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4243b0
lea edi, [esp + 0x18]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4243c4
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ebp
lea ecx, [esp + 0x1c]
call fcn.004026a0
mov dword [esp + 0x10], 1
mov byte [esp + 0x824], 0
lea ecx, [esp + 0x830]
call fcn.00402750
mov eax, ebp
mov ecx, dword [esp + 0x81c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x808]
xor ecx, esp
call fcn.004fdb4a
add esp, 0x818
ret