joyce8/EMBER2024-capa huggingface dataset:
Function at 0x51ced4
Capabilities:
Enumerate gui resources

Disassembly:
push ebx
push esi
add esp, 0xfffffff8
mov ebx, eax
mov eax, dword [ebx + 0x170]
test eax, eax
je 0x51cf76
cmp dword [ebx + 0x94], 0
jne 0x51cf70
mov dword [esp], eax
mov byte [esp + 4], dl
mov eax, esp
push eax
push 0x51ce20
call sub.user32.dll_EnumWindows
mov eax, dword [ebx + 0x90]
cmp dword [eax + 8], 0
je 0x51cf70
push 3
mov eax, dword [esp + 4]
push eax
call sub.user32.dll_GetWindow
mov esi, eax
mov dword [esp], esi
push 0xffffffffffffffec
push esi
call sub.user32.dll_GetWindowLongW
test al, 8
je 0x51cf36
mov dword [esp], 0xfffffffe
mov eax, dword [ebx + 0x90]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x51cf70
push 0x213
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov edx, esi
mov eax, dword [ebx + 0x90]
call fcn.00437620
push eax
call sub.user32.dll_SetWindowPos
dec esi
cmp esi, 0xffffffff
jne 0x51cf45
inc dword [ebx + 0x94]
pop ecx
pop edx
pop esi
pop ebx
ret

Function at 0x51d194
Capabilities:
Enumerate gui resources
Hide graphical window

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
mov esi, eax
mov eax, dword [0x551e7c]
cmp dword [eax + 0x170], 0
je 0x51d2f9
test bl, bl
jne 0x51d247
cmp dword [esi + 0x9c], 0
jne 0x51d23c
mov eax, esi
call fcn.00520084
push eax
push 0x51d0a0
call sub.user32.dll_EnumWindows
cmp dword [esi + 0x44], 0
je 0x51d20d
mov eax, dword [0x551e7c]
cmp byte [eax + 0xd3], 0
je 0x51d20d
mov eax, dword [esi + 0xd8]
call fcn.004092c8
mov edi, eax
cmp edi, 0
jl 0x51d20d
push 0
mov eax, dword [esi + 0xd8]
mov eax, dword [eax + edi*4]
push eax
call sub.user32.dll_ShowWindow
dec edi
cmp edi, 0xffffffff
jne 0x51d1f6
mov eax, dword [esi + 0x98]
mov edi, dword [eax + 8]
dec edi
cmp edi, 0
jl 0x51d23c
cmp bl, 1
cmc
sbb eax, eax
push eax
mov edx, edi
mov eax, dword [esi + 0x98]
call fcn.00437620
push eax
call sub.user32.dll_ShowOwnedPopups
dec edi
cmp edi, 0xffffffff
jne 0x51d21c
inc dword [esi + 0x9c]
jmp 0x51d2f9
cmp dword [esi + 0x9c], 0
jle 0x51d2f9
dec dword [esi + 0x9c]
cmp dword [esi + 0x9c], 0
jne 0x51d2f9
cmp dword [esi + 0x44], 0
je 0x51d2a4
mov eax, dword [0x551e7c]
cmp byte [eax + 0xd3], 0
je 0x51d2a4
mov eax, dword [esi + 0xd8]
call fcn.004092c8
mov edi, eax
cmp edi, 0
jl 0x51d2a4
push 5
mov eax, dword [esi + 0xd8]
mov eax, dword [eax + edi*4]
push eax
call sub.user32.dll_ShowWindow
dec edi
cmp edi, 0xffffffff
jne 0x51d28d
mov eax, dword [esi + 0x98]
mov edi, dword [eax + 8]
dec edi
cmp edi, 0
jl 0x51d2d3
cmp bl, 1
cmc
sbb eax, eax
push eax
mov edx, edi
mov eax, dword [esi + 0x98]
call fcn.00437620
push eax
call sub.user32.dll_ShowOwnedPopups
dec edi
cmp edi, 0xffffffff
jne 0x51d2b3
mov eax, dword [esi + 0x98]
mov edx, dword [eax]
call dword [edx + 8]
push 0
lea eax, [esi + 0xd8]
mov ecx, 1
mov edx, dword [0x510360]
call fcn.00409488
add esp, 4
pop edi
pop esi
pop ebx
ret
Function at 0x51df48
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
add esp, 0xfffffdfc
mov esi, edx
mov ebx, eax
cmp byte [ebx + 0xac], 0
je 0x51dfb3
cmp byte [ebx + 0xd3], 0
jne 0x51dfb3
push pe_nt_image_headers32
lea eax, [esp + 4]
push eax
mov eax, dword [ebx + 0x170]
push eax
call sub.user32.dll_GetWindowTextW
mov ecx, eax
mov edx, esp
mov eax, esi
call fcn.00407b98
mov eax, dword [esi]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x200]
test eax, eax
je 0x51dfa0
sub eax, 4
mov eax, dword [eax]
test eax, eax
jne 0x51dfc0
mov eax, esi
mov edx, dword [ebx + 0x8c]
call fcn.00407a5c
jmp 0x51dfc0
mov eax, esi
mov edx, dword [ebx + 0x8c]
call fcn.00407a5c
add esp, 0x204
pop esi
pop ebx
ret

Function at 0x51f7e8
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
mov ebx, eax
mov esi, dword [ebx + 0x84]
test esi, esi
je 0x51f856
mov eax, esi
call fcn.004f7ff8
test al, al
je 0x51f856
mov eax, dword [ebx + 0x84]
call fcn.004f7c78
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x51f856
mov eax, dword [ebx + 0x84]
mov edx, dword [eax]
call dword [edx + 0xfc]
test al, al
je 0x51f84a
push 0
mov eax, dword [ebx + 0x84]
call fcn.004f7c78
push eax
call sub.user32.dll_ShowWindow
xor edx, edx
mov eax, dword [ebx + 0x84]
call fcn.004eed08
jmp 0x51f856
mov cl, 1
mov edx, dword [ebx + 0x74]
mov eax, ebx
call fcn.0051f620
pop esi
pop ebx
ret
Function at 0x5207b4
Capabilities:
Encode data using base64

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov dword [esp], ecx
mov esi, eax
mov ebp, edx
xor ebx, ebx
xor edi, edi
mov eax, dword [esp]
mov ecx, 3
cdq
idiv ecx
test eax, eax
jle 0x52084e
movzx edx, byte [esi + ebx]
shr edx, 2
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi], dl
movzx edx, byte [esi + ebx]
and dl, 3
movzx edx, dl
shl edx, 4
movzx ecx, byte [esi + ebx + 1]
shr ecx, 4
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
push edx
pop edx
mov byte [ebp + edi + 1], dl
movzx edx, byte [esi + ebx + 1]
and dl, 0xf
movzx edx, dl
add edx, edx
add edx, edx
movzx ecx, byte [esi + ebx + 2]
shr ecx, 6
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
push edx
pop edx
mov byte [ebp + edi + 2], dl
movzx edx, byte [esi + ebx + 2]
and dl, 0x3f
movzx edx, dl
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi + 3], dl
add edi, 4
add ebx, 3
dec eax
jne 0x5207d3
mov eax, dword [esp]
mov ecx, 3
cdq
idiv ecx
dec edx
je 0x520864
dec edx
je 0x520899
jmp 0x5208ea
movzx eax, byte [esi + ebx]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi], al
movzx eax, byte [esi + ebx]
and al, 3
movzx eax, al
shl eax, 4
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi + 1], al
mov byte [ebp + edi + 2], 0x3d
mov byte [ebp + edi + 3], 0x3d
jmp 0x5208ea
movzx eax, byte [esi + ebx]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi], al
movzx eax, byte [esi + ebx]
and al, 3
movzx eax, al
shl eax, 4
movzx edx, byte [esi + ebx + 1]
shr edx, 4
add eax, edx
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi + 1], al
movzx eax, byte [esi + ebx + 1]
and al, 0xf
movzx eax, al
add eax, eax
add eax, eax
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_a]
mov byte [ebp + edi + 2], al
mov byte [ebp + edi + 3], 0x3d
mov eax, dword [esp]
add eax, 2
mov ecx, 3
cdq
idiv ecx
add eax, eax
add eax, eax
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x5209d0
Capabilities:
Encode data using base64

Disassembly:
push esi
push edi
push ebp
add esp, 0xfffffff0
mov dword [esp], ecx
mov edi, eax
mov dword [esp + 8], edx
xor esi, esi
xor ebp, ebp
xor eax, eax
mov edx, dword [esp]
test edx, edx
jns 0x5209ef
add edx, 3
sar edx, 2
test edx, edx
jle 0x520afd
mov dword [esp + 0xc], edx
mov edx, 4
lea eax, [esp + 4]
movzx ecx, byte [edi + esi]
cmp ecx, 0x3d
jg 0x520a24
je 0x520a67
sub ecx, 0x2b
je 0x520a5d
sub ecx, 4
je 0x520a62
dec ecx
sub ecx, 0xa
jb 0x520a4f
jmp 0x520a6a
add ecx, 0xffffffbf
sub ecx, 0x1a
jb 0x520a36
add ecx, 0xfffffffa
sub ecx, 0x1a
jb 0x520a41
jmp 0x520a6a
movzx ecx, byte [edi + esi]
sub cl, 0x41
mov byte [eax], cl
jmp 0x520a6a
movzx ecx, byte [edi + esi]
sub cl, 0x61
add cl, 0x1a
mov byte [eax], cl
jmp 0x520a6a
movzx ecx, byte [edi + esi]
sub cl, 0x30
add cl, 0x34
mov byte [eax], cl
jmp 0x520a6a
mov byte [eax], 0x3e
jmp 0x520a6a
mov byte [eax], 0x3f
jmp 0x520a6a
mov byte [eax], 0xff
inc esi
inc eax
dec edx
jne 0x520a07
movzx eax, byte [esp + 4]
add eax, eax
add eax, eax
movzx edx, byte [esp + 5]
shr edx, 4
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp], al
lea eax, [ebp + 1]
movzx edx, byte [esp + 6]
cmp dl, 0xff
je 0x520abb
cmp byte [esp + 7], 0xff
jne 0x520abb
movzx eax, byte [esp + 5]
shl eax, 4
movzx edx, dl
shr edx, 2
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp + 1], al
lea eax, [ebp + 2]
inc ebp
jmp 0x520af2
cmp dl, 0xff
je 0x520af2
movzx eax, byte [esp + 5]
shl eax, 4
movzx edx, dl
shr edx, 2
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp + 1], al
mov eax, dword [esp + 8]
movzx edx, byte [esp + 6]
shl edx, 6
or dl, byte [esp + 7]
mov byte [eax + ebp + 2], dl
lea eax, [ebp + 3]
add ebp, 2
inc ebp
dec dword [esp + 0xc]
jne 0x5209fe
add esp, 0x10
pop ebp
pop edi
pop esi
ret

Function at 0x527b74
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7fc
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x804], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x527bfd
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x400
lea eax, [ebp - 0x800]
push eax
mov eax, ebx
call fcn.00407ae8
push eax
call sub.kernel32.dll_ExpandEnvironmentStringsW
test eax, eax
jne 0x527bc1
mov eax, esi
mov edx, ebx
call fcn.00407a5c
jmp 0x527be4
lea eax, [ebp - 0x804]
lea edx, [ebp - 0x800]
mov ecx, 0x400
call fcn.00407c6c
mov eax, dword [ebp - 0x804]
mov edx, esi
call fcn.00415148
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527c04
lea eax, [ebp - 0x804]
call fcn.00407a4c
ret
Function at 0x5297ab
Capabilities:
Decrypt data using tea
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov dword [ebp - 0xc], 0xc6ef3720
mov dword [ebp - 0x10], 0x9e3779b9
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [ebp - 4], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 8], eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0x20
mov eax, dword [ebp - 4]
shl eax, 4
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 4]
add eax, edx
mov ecx, dword [ebp - 4]
shr ecx, 5
xor ecx, dword [ebp - 0xc]
add eax, ecx
add eax, dword [ebp - 0x20]
sub dword [ebp - 8], eax
mov eax, dword [ebp - 8]
shl eax, 4
mov edx, dword [ebp - 0x14]
xor edx, dword [ebp - 8]
add eax, edx
mov ecx, dword [ebp - 8]
shr ecx, 5
xor ecx, dword [ebp - 0xc]
add eax, ecx
add eax, dword [ebp - 0x18]
sub dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
sub dword [ebp - 0xc], eax
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0
jg 0x5297fa
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [eax + 4], edx
mov esp, ebp
pop ebp
ret
Function at 0x529861
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
push 0x10
push dword [ebp + 0xc]
lea edx, [ebp - 0x44]
push edx
call fcn.00529bbc
add esp, 0xc
mov ecx, dword [ebp + 0x10]
shr ecx, 3
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0
jbe 0x529954
push 8
push dword [ebp - 0xc]
lea eax, [ebp - 8]
push eax
call fcn.00529bbc
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], 0x9e3779b9
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], 0x20
mov ecx, dword [ebp - 0x20]
add dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x18]
shl eax, 4
mov edx, dword [ebp - 0x24]
xor edx, dword [ebp - 0x18]
add eax, edx
mov ecx, dword [ebp - 0x18]
shr ecx, 5
xor ecx, dword [ebp - 0x1c]
add eax, ecx
add eax, dword [ebp - 0x28]
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shl eax, 4
mov edx, dword [ebp - 0x2c]
xor edx, dword [ebp - 0x14]
add eax, edx
mov ecx, dword [ebp - 0x14]
shr ecx, 5
xor ecx, dword [ebp - 0x1c]
add eax, ecx
add eax, dword [ebp - 0x30]
add dword [ebp - 0x18], eax
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0
jg 0x5298d9
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 4], edx
push 8
lea ecx, [ebp - 8]
push ecx
push dword [ebp - 0xc]
call fcn.00529bbc
add esp, 0xc
add dword [ebp - 0xc], 8
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0
ja 0x529891
mov esp, ebp
pop ebp
ret

Function at 0x52d900
Capabilities:
Hash data with crc32

Disassembly:
push ebx
push esi
xor esi, esi
mov ecx, 0x551ee8
mov eax, esi
mov edx, 8
mov ebx, eax
and ebx, 1
test bl, bl
je 0x52d922
shr eax, 1
xor eax, 0xedb88320
jmp 0x52d924
shr eax, 1
dec edx
jne 0x52d910
mov dword [ecx], eax
inc esi
add ecx, 4
cmp esi, 0x100
jne 0x52d909
mov byte [0x5522e8], 1
pop esi
pop ebx
ret

Function at 0x52d940
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
cmp byte [0x5522e8], 0
jne 0x52d957
call fcn.0052d900
mov eax, edi
dec eax
test eax, eax
jl 0x52d97f
inc eax
xor edx, edx
movzx ecx, byte [esi + edx]
xor ecx, ebx
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x551ee8]
shr ebx, 8
xor ecx, ebx
mov ebx, ecx
inc edx
dec eax
jne 0x52d961
mov eax, ebx
pop edi
pop esi
pop ebx
ret
Function at 0x530728
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x14]
movzx edx, byte [eax + 0x461]
movzx ecx, dl
cmp ecx, 6
ja case.0x5307c2.0
jmp dword [ecx*4 + 0x53075b]
movzx edx, byte [eax + 0x460]
sub dl, 8
je 0x53078d
sub dl, 8
je 0x53079c
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x5303d0
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x530428
jmp case.0x5307c2.0
movzx ecx, byte [eax + 0x460]
cmp ecx, 0x10
ja case.0x5307c2.0
movzx ecx, byte [ecx + 0x5307c9]
jmp dword [ecx*4 + 0x5307da]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x5304d4
jmp case.0x5307c2.0
cmp dl, 3
jne 0x530807
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x53052c
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x5304e8
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x530570
jmp case.0x5307c2.0
movzx edx, byte [eax + 0x460]
sub dl, 8
je 0x530832
sub dl, 8
je 0x53083e
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x53059c
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x530608
jmp case.0x5307c2.0
movzx edx, byte [eax + 0x460]
sub dl, 8
je 0x53085d
sub dl, 8
je 0x530869
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x5306c4
jmp case.0x5307c2.0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 0x5306ec
mov edx, dword [eax + 0x468]
mov ecx, dword [ebx + 0x1c]
dec ecx
imul edx, ecx
mov esi, edx
add esi, dword [eax + 0x450]
mov dword [ebp - 0x10], esi
mov esi, dword [eax + 0x454]
mov dword [ebp - 0xc], esi
add edx, dword [eax + 0x44c]
mov dword [ebp - 0x14], edx
mov esi, ecx
test esi, esi
jb 0x53090b
inc esi
mov eax, dword [ebx + 0x20]
inc eax
push eax
lea eax, [ebx + 0x4c]
push eax
mov eax, dword [ebp + 8]
push eax
movzx eax, byte [ebx + 0x48]
mov ecx, dword [ebx + eax*4 + 0x40]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.0052f8d4
test eax, eax
je 0x53090b
mov eax, ebx
call fcn.00530914
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x14]
push eax
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
lea edx, [eax + 1]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
call dword [ebp - 0x20]
movzx eax, byte [ebx + 0x48]
xor al, 1
mov byte [ebx + 0x48], al
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x468]
sub dword [ebp - 0x10], eax
sub dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x18]
add dword [ebp - 0xc], eax
dec esi
jne 0x5308a4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x530914
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, eax
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax]
dec al
je 0x530945
dec al
je 0x530980
dec al
je 0x5309c5
dec al
je 0x530a2e
jmp 0x530ab8
mov esi, dword [ebx + 0x24]
inc esi
mov edi, dword [ebx + 0x20]
sub edi, esi
jb 0x530ab8
inc edi
mov edx, esi
sub edx, dword [ebx + 0x24]
movzx ecx, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
movzx edx, byte [ecx + edx]
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
add dl, byte [eax + esi]
and dl, 0xff
mov byte [eax + esi], dl
inc esi
dec edi
jne 0x530955
jmp 0x530ab8
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x530ab8
mov esi, 1
movzx eax, byte [ebx + 0x48]
mov edx, eax
xor dl, 1
and edx, 0x7f
mov edx, dword [ebx + edx*4 + 0x40]
movzx edx, byte [edx + esi]
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
add dl, byte [eax + esi]
and dl, 0xff
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
mov byte [eax + esi], dl
inc esi
dec edi
jne 0x530990
jmp 0x530ab8
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x530ab8
mov esi, 1
movzx eax, byte [ebx + 0x48]
xor al, 1
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax + esi]
mov ecx, esi
dec ecx
mov edx, dword [ebx + 0x24]
cmp ecx, edx
jae 0x5309f4
xor ebp, ebp
jmp 0x530a04
mov ecx, esi
sub ecx, edx
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx ebp, byte [edx + ecx]
add eax, ebp
sar eax, 1
jns 0x530a0d
adc eax, 0
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
add al, byte [edx + esi]
and al, 0xff
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x5309d5
jmp 0x530ab8
xor ebp, ebp
xor eax, eax
mov dword [esp + 4], eax
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x530ab8
mov esi, 1
movzx eax, byte [ebx + 0x48]
xor al, 1
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax + esi]
mov edx, esi
dec edx
cmp edx, dword [ebx + 0x24]
jb 0x530a87
mov edx, esi
sub edx, dword [ebx + 0x24]
movzx ecx, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
movzx ebp, byte [ecx + edx]
movzx edx, byte [ebx + 0x48]
xor dl, 1
and edx, 0x7f
mov edx, dword [ebx + edx*4 + 0x40]
mov ecx, esi
sub ecx, dword [ebx + 0x24]
movzx edx, byte [edx + ecx]
mov dword [esp + 4], edx
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx edx, byte [edx + esi]
mov dword [esp], edx
movzx ecx, byte [esp + 4]
push eax
mov eax, ebp
pop edx
call fcn.0052d988
add al, byte [esp]
and al, 0xff
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x530a42
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x40fce0
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x46c75b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push ebp
mov ebp, ecx
lea ecx, [esp + 8]
lea eax, [ebp + 0x40]
push eax
call fcn.00461167
mov ecx, dword [esp + 8]
mov dword [esp + 0x190], 0
mov eax, dword [ecx - 8]
test eax, eax
je 0x40fd62
lea edx, [esp + 0x10]
push 1
push edx
lea ecx, [esp + 0x10]
call fcn.0045eedd
mov eax, dword [eax]
push 0x4821c0
push eax
call fcn.00451cb4
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.004613f2
test bl, bl
je 0x40fd62
push 0x4821c0
lea ecx, [esp + 0xc]
call fcn.00461782
push 0x485d3c
lea ecx, [esp + 0xc]
call fcn.00461782
mov ecx, dword [esp + 8]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x40fd9e
lea ecx, [esp + 8]
mov dword [esp + 0x190], eax
call fcn.004613f2
jmp 0x40fe69
push esi
mov esi, dword [esp + 0x19c]
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, 0x23
test byte [esp + 0x50], 0x10
je 0x40fe22
lea edx, [esp + 0x7c]
push 0x485d38
push edx
call fcn.00451cb4
add esp, 8
test eax, eax
je 0x40fe22
lea eax, [esp + 0x7c]
push 0x485d34
push eax
call fcn.00451cb4
add esp, 8
test eax, eax
je 0x40fe22
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x1c]
push edx
push 0
lea ecx, [esp + 0x84]
push 0x1100
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 0xffff0003
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], ebx
call edi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x50]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40fdb2
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp + 0x1c]
push esi
push 2
push 0x1102
push ecx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x198], 0xffffffff
call fcn.004613f2
pop edi
pop esi
mov ecx, dword [esp + 0x188]
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18c
ret 4

Function at 0x410660
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
sub esp, 0x10c
lea eax, [esp]
push esi
push eax
push 1
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
test esi, esi
jne 0x4106c2
mov edx, dword [esp + 4]
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
push esi
push edx
mov dword [esp + 0x18], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
mov ecx, dword [esp + 0x11c]
lea eax, [esp + 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
add esp, 0x10c
ret 0xc
Function at 0x4106d0
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x46c7db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20c
mov eax, dword [0x48c1e0]
push esi
push edi
mov edi, ecx
mov dword [esp + 8], eax
mov eax, dword [edi + 0x44]
mov dword [esp + 0x21c], 0
test eax, eax
jne 0x410808
mov ecx, dword [edi + 0x48]
lea esi, [edi + 0x48]
mov eax, dword [ecx - 8]
test eax, eax
jne 0x410736
lea ecx, [esp + 8]
mov dword [esp + 0x21c], 0xffffffff
call fcn.004613f2
xor eax, eax
jmp 0x41087f
push str.mailto:
lea ecx, [esp + 0xc]
call fcn.0046152f
push esi
lea ecx, [esp + 0xc]
call fcn.004617be
mov ecx, dword [esp + 8]
push ebx
push ebp
mov ebp, dword [esp + 0x22c]
push ebp
push 0
push 0
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov esi, eax
cmp esi, 0x20
ja 0x41085d
lea edx, [esp + 0x14]
mov ecx, edi
push edx
push str..htm
push SysReAllocString
call fcn.00410660
test eax, eax
jne 0x41085d
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x14]
push str._shellopencommand
push eax
call ebx
lea ecx, [esp + 0x14]
lea edx, [esp + 0x14]
push ecx
push edx
push SysReAllocString
mov ecx, edi
call fcn.00410660
test eax, eax
jne 0x41085d
lea eax, [esp + 0x14]
push 0x485d50
push eax
call fcn.00452dc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x41083c
lea ecx, [esp + 0x14]
push 0x485d4c
push ecx
call fcn.00452d40
mov esi, eax
add esp, 8
test esi, esi
jne 0x41083c
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [esp + eax + 0x13]
jmp 0x41083f
lea edx, [edi + 0x4c]
lea ecx, [esp + 8]
push edx
call fcn.004614df
mov eax, dword [esp + 8]
mov ecx, dword [eax - 8]
test ecx, ecx
jne 0x41074e
lea ecx, [esp + 8]
mov dword [esp + 0x21c], 0xffffffff
call fcn.004613f2
xor eax, eax
jmp 0x41087f
mov byte [esi], 0
push 0x485d48
push esi
call ebx
mov eax, dword [esp + 0x10]
push eax
push esi
call ebx
lea ecx, [esp + 0x14]
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_WinExec]
mov esi, eax
xor edx, edx
cmp esi, 0x20
setg dl
lea ecx, [esp + 0x10]
mov esi, edx
mov dword [esp + 0x224], 0xffffffff
call fcn.004613f2
pop ebp
mov eax, esi
pop ebx
mov ecx, dword [esp + 0x214]
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x218
ret 4