joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4ff604
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x4ff60d
mov eax, dword [ebp - 4]
add esp, 0xfffffff8
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x200c]
mov eax, dword [ebp + 0xc]
mov ecx, ebx
call fcn.00402ef4
test esi, esi
jl 0x4ff696
lea edx, [ebp - 0x100c]
lea eax, [ebp - 0x200c]
mov ecx, ebx
call fcn.00402ef4
lea edx, [ebp - 0x100c]
mov ecx, ebx
mov eax, dword [ebp - 8]
call dword [ebp + 0x14]
mov eax, dword [ebp - 0xc]
mov dl, byte [ebp - 0x100c]
xor byte [eax], dl
mov ecx, ebx
dec ecx
lea edx, [ebp - 0x200c]
lea eax, [ebp - 0x200b]
call fcn.00402ef4
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
mov byte [ebp + ebx - 0x200d], al
dec esi
inc dword [ebp - 0xc]
test esi, esi
jge 0x4ff642
lea eax, [ebp - 0x100c]
mov edx, ebx
call fcn.004fcc44
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10

Function at 0x4ff6ac
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x4ff6b5
mov eax, dword [ebp - 4]
add esp, 0xfffffff0
push ebx
push esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x2014]
mov eax, dword [ebp + 0xc]
mov ecx, esi
call fcn.00402ef4
cmp dword [ebp - 0x14], 0
jl 0x4ff74d
lea edx, [ebp - 0x1014]
lea eax, [ebp - 0x2014]
mov ecx, esi
call fcn.00402ef4
lea edx, [ebp - 0x1014]
mov ecx, esi
mov eax, dword [ebp - 0xc]
call dword [ebp + 0x14]
mov ecx, esi
dec ecx
lea edx, [ebp - 0x2014]
lea eax, [ebp - 0x2013]
call fcn.00402ef4
mov eax, dword [ebp - 0x10]
mov bl, byte [eax]
mov byte [ebp + esi - 0x2015], bl
xor bl, byte [ebp - 0x1014]
mov eax, dword [ebp - 0x10]
mov byte [eax], bl
dec dword [ebp - 0x14]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x14], 0
jge 0x4ff6f5
lea eax, [ebp - 0x1014]
mov edx, esi
call fcn.004fcc44
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10

Function at 0x4ff764
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x4ff76d
mov eax, dword [ebp - 4]
add esp, 0xfffffff8
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x200c]
mov eax, dword [ebp + 0xc]
mov ecx, ebx
call fcn.00402ef4
test esi, esi
jl 0x4ff7f7
lea edx, [ebp - 0x100c]
lea eax, [ebp - 0x200c]
mov ecx, ebx
call fcn.00402ef4
lea edx, [ebp - 0x100c]
mov ecx, ebx
mov eax, dword [ebp - 8]
call dword [ebp + 0x14]
mov eax, dword [ebp - 0xc]
mov dl, byte [ebp - 0x100c]
xor byte [eax], dl
mov ecx, ebx
dec ecx
lea edx, [ebp - 0x200c]
lea eax, [ebp - 0x200b]
call fcn.00402ef4
mov al, byte [ebp - 0x100c]
mov byte [ebp + ebx - 0x200d], al
dec esi
inc dword [ebp - 0xc]
test esi, esi
jge 0x4ff7a2
lea eax, [ebp - 0x100c]
mov edx, ebx
call fcn.004fcc44
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4ff80c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 2
add esp, 0xfffff004
push eax
dec eax
jne 0x4ff815
mov eax, dword [ebp - 4]
add esp, 0xfffffff8
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x200c]
mov eax, dword [ebp + 0xc]
mov ecx, ebx
call fcn.00402ef4
test esi, esi
jl 0x4ff89f
lea edx, [ebp - 0x100c]
lea eax, [ebp - 0x200c]
mov ecx, ebx
call fcn.00402ef4
lea edx, [ebp - 0x100c]
mov ecx, ebx
mov eax, dword [ebp - 8]
call dword [ebp + 0x14]
mov ecx, ebx
dec ecx
lea edx, [ebp - 0x200c]
lea eax, [ebp - 0x200b]
call fcn.00402ef4
mov al, byte [ebp - 0x100c]
mov byte [ebp + ebx - 0x200d], al
mov eax, dword [ebp - 0xc]
mov dl, byte [ebp - 0x100c]
xor byte [eax], dl
dec esi
inc dword [ebp - 0xc]
test esi, esi
jge 0x4ff84a
lea eax, [ebp - 0x100c]
mov edx, ebx
call fcn.004fcc44
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x51f8dc
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0xa
add esp, 0xfffff004
push eax
dec eax
jne 0x51f8e5
mov eax, dword [ebp - 4]
add esp, 0xffffffc8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xa03c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x51fdac
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0xe], 0
lea eax, [ebp - 0x18]
call fcn.00404db0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4ee590]
call fcn.004f0508
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x51fd7f
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [ebp - 0x20]
call fcn.004f05f4
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 4]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x51f8d8
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 4]
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], 0x51f8bc
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 4]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x51f8c0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x90]
mov dl, byte [0x51fdc0]
call fcn.004ef9c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
call fcn.004d22d0
test al, al
je 0x51f9bc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x20]
call fcn.004efe60
jmp 0x51f9ca
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x20]
call fcn.004efee0
mov eax, dword [ebp - 4]
movzx edx, word [eax + 0xc]
mov eax, dword [ebp - 0x20]
call fcn.004eff60
xor eax, eax
push ebp
push 0x51fa31
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount_1
mov ebx, eax
mov dl, 1
mov eax, dword [ebp - 0x20]
call fcn.004efe20
jmp 0x51fa19
push 0x1f4
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x564158]
mov eax, dword [eax]
call fcn.00467a34
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x30], 0
jne 0x51fa27
call sub.kernel32.dll_GetTickCount_1
sub eax, ebx
cmp eax, 0xfa0
jbe 0x51f9fa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51fa3b
jmp 0x5755ad
Function at 0x537de0
Capabilities:
Hash data with crc32

Disassembly:
push ebx
push esi
xor esi, esi
mov ecx, 0x56735c
mov eax, esi
mov edx, 8
mov ebx, eax
and ebx, 1
test bl, bl
je 0x537e02
shr eax, 1
xor eax, 0xedb88320
jmp 0x537e04
shr eax, 1
dec edx
jne 0x537df0
mov dword [ecx], eax
inc esi
add ecx, 4
cmp esi, 0x100
jne 0x537de9
mov byte [0x56775c], 1
pop esi
pop ebx
ret

Function at 0x537e20
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
cmp byte [0x56775c], 0
jne 0x537e37
call fcn.00537de0
mov eax, edi
dec eax
test eax, eax
jl 0x537e60
inc eax
xor edx, edx
xor ecx, ecx
mov cl, byte [esi + edx]
xor ecx, ebx
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x56735c]
shr ebx, 8
xor ecx, ebx
mov ebx, ecx
inc edx
dec eax
jne 0x537e41
mov eax, ebx
pop edi
pop esi
pop ebx
ret
Function at 0x53a480
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, eax
xor eax, eax
mov al, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
mov al, byte [eax]
dec al
je 0x53a4b1
dec al
je 0x53a4ed
dec al
je 0x53a531
dec al
je 0x53a59c
jmp 0x53a626
mov esi, dword [ebx + 0x24]
inc esi
mov edi, dword [ebx + 0x20]
sub edi, esi
jb 0x53a626
inc edi
mov edx, esi
sub edx, dword [ebx + 0x24]
xor ecx, ecx
mov cl, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
mov dl, byte [ecx + edx]
xor eax, eax
mov al, 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 0x53a4c1
jmp 0x53a626
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x53a626
mov esi, 1
mov al, byte [ebx + 0x48]
mov edx, eax
xor dl, 1
and edx, 0x7f
mov edx, dword [ebx + edx*4 + 0x40]
mov dl, byte [edx + esi]
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
add dl, byte [eax + esi]
and dl, 0xff
xor eax, eax
mov al, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
mov byte [eax + esi], dl
inc esi
dec edi
jne 0x53a4fd
jmp 0x53a626
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x53a626
mov esi, 1
mov al, 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 0x53a55f
xor ebp, ebp
jmp 0x53a570
mov ecx, esi
sub ecx, edx
xor edx, edx
mov dl, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx ebp, byte [edx + ecx]
add eax, ebp
sar eax, 1
jns 0x53a579
adc eax, 0
xor edx, edx
mov dl, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
add al, byte [edx + esi]
and al, 0xff
xor edx, edx
mov dl, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x53a541
jmp 0x53a626
xor ebp, ebp
xor eax, eax
mov dword [esp + 4], eax
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x53a626
mov esi, 1
mov al, 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 0x53a5f4
mov edx, esi
sub edx, dword [ebx + 0x24]
xor ecx, ecx
mov cl, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
movzx ebp, byte [ecx + edx]
mov dl, 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
xor edx, edx
mov dl, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx edx, byte [edx + esi]
mov dword [esp], edx
mov cl, byte [esp + 4]
push eax
mov eax, ebp
pop edx
call fcn.00537e68
add al, byte [esp]
and al, 0xff
xor edx, edx
mov dl, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x53a5b0
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x5403a4
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
test eax, 0x4000000
je 0x5403b9
or edx, 0x200
test eax, 0x20000000
je 0x5403ec
test eax, 0x40000000
je 0x5403d8
test eax, 0x80000000
je 0x5403d3
or edx, 0x40
jmp 0x540413
or edx, 0x20
jmp 0x540413
test eax, 0x80000000
je 0x5403e7
or edx, 0x80
jmp 0x540413
or edx, 0x10
jmp 0x540413
test eax, 0x40000000
je 0x540404
test eax, 0x80000000
je 0x5403ff
or edx, 4
jmp 0x540413
or edx, 2
jmp 0x540413
test eax, 0x80000000
je 0x540410
or edx, 8
jmp 0x540413
or edx, 1
mov eax, edx
pop ebp
ret 4
Function at 0x100022c0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 8]
push esi
mov esi, dword [eax + 4]
mov esi, dword [esi + 8]
je 0x100022f8
test esi, esi
je 0x1000233c
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1000233c
push 8
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov byte [esi + 0x2b8], 1
jmp 0x1000231b
test esi, esi
je 0x1000233c
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1000233c
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov byte [esi + 0x2b8], 0
cmp dword [0x100a063c], 0
je 0x1000233c
push 0x1330684
push dword [esi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [0x100a063c], 0
xor eax, eax
pop esi
pop ebp
ret 8
Function at 0x10002690
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007a255
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x1009b01c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov eax, dword [ebx + 8]
cmp byte [eax + 0x1ac], 0
mov edx, dword [eax + 0x2e4]
je 0x100026cf
or edx, 1
jmp 0x100026d2
and edx, 0xfffffffe
mov dword [eax + 0x2e4], edx
mov esi, dword [ebx + 8]
push dword [ebp + 8]
mov dword [ebp - 0x10], esi
lea ecx, [esi + 0x14]
call fcn.1001b120
mov edi, dword [ebp + 0xc]
add esi, 0x10c
cmp esi, edi
je 0x1000270b
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x10002700
mov eax, dword [edi]
push dword [edi + 0x10]
mov ecx, esi
push eax
call fcn.100036c0
lea eax, [edi + 0x18]
lea ecx, [esi + 0x18]
cmp ecx, eax
je 0x10002728
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x1000271f
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.100036c0
movzx eax, byte [edi + 0x30]
mov byte [esi + 0x30], al
movzx eax, byte [edi + 0x31]
mov byte [esi + 0x31], al
movzx eax, byte [edi + 0x32]
mov byte [esi + 0x32], al
movzx eax, byte [edi + 0x33]
mov byte [esi + 0x33], al
mov esi, dword [ebp - 0x10]
mov esi, dword [esi + 8]
test esi, esi
je 0x100027c3
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x100027c3
cmp dword [0x100a063c], 0
je 0x100027bc
push dword [esi + 4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x100027a4
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [0x100a063c], 0
mov byte [esi + 0x2b8], 0
je 0x100027a4
push 0x1330684
push dword [esi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [0x100a063c], 0
push 0x1330684
push dword [esi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [0x100a063c], 0
mov ecx, esi
call fcn.1001d6e0
cmp dword [ebx + 0x1c], 0
jne 0x10002834
xor eax, eax
mov dword [ebp + 8], eax
mov dword [ebp - 4], eax
mov esi, dword [ebx + 0x10]
mov esi, dword [esi + 0x28]
mov dword [ebp + 0xc], esi
test esi, esi
je 0x100027e7
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 1
test esi, esi
jne 0x100027f8
mov dword [ebp - 4], 0xffffffff
jmp 0x1000282a
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
push 0x100805a0
push esi
call dword [eax]
test eax, eax
jne 0x10002816
mov eax, dword [ebp + 8]
push dword [ebx + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov byte [ebp - 4], 0
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
test eax, eax
je 0x10002834
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp byte [edi + 0x31], 0
lea ecx, [ebx + 4]
mov eax, dword [ecx]
je 0x10002844
push dword [ebx + 0x1c]
jmp 0x10002846
push 0
push ecx
call dword [eax + 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 8
Function at 0x10006c90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, ecx
push edi
call fcn.10003fd0
test eax, eax
je 0x10006e0e
mov ecx, ebx
call fcn.1000a0f0
lea edi, [ebx + 0x40]
push edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
movsx ecx, byte [edi + 0x10]
sar ecx, 0x1f
and ecx, 0x10000
mov edx, ecx
or edx, 0x20000
test byte [edi + 0x14], 1
cmove edx, ecx
mov eax, edx
or eax, 0x40000
cmp byte [edi + 0x11], 0
cmovge eax, edx
mov ecx, eax
or ecx, 0x80000
cmp byte [edi + 0x12], 0
cmovge ecx, eax
mov eax, ecx
or eax, 0x40000000
test esi, esi
cmovns eax, ecx
mov ecx, dword [ebp + 8]
mov edx, eax
mov dword [ebp - 4], edx
cmp ecx, 0x14
jne 0x10006d1c
mov dword [ebp - 4], edx
test esi, esi
js 0x10006d1c
xor edx, 0x20000
mov dword [ebp - 4], edx
push esi
call fcn.100067f0
add esp, 4
test eax, eax
je 0x10006d2e
movzx eax, ax
jmp 0x10006d74
push 0
push 0
push 8
push 0x100a08c8
push 0x100a07c8
push dword [ebp + 0xc]
mov esi, edi
mov ecx, 0x40
push dword [ebp + 8]
mov edi, 0x100a07c8
rep movsd dword es:[edi], dword [esi]
mov word [0x100a07d9], 0
call dword [sym.imp.USER32.dll_ToUnicodeEx]
cmp eax, 1
jne 0x10006e05
movzx eax, word [0x100a08c8]
mov edx, dword [ebp - 4]
or edx, eax
mov eax, dword [ebx + 0x174]
mov eax, dword [eax + 8]
test eax, eax
je 0x10006dc3
mov eax, dword [eax + 8]
test eax, eax
je 0x10006d92
mov al, byte [eax + 0x1f8]
jmp 0x10006d94
xor al, al
test al, al
je 0x10006dc3
movzx eax, dx
cmp eax, 0xff52
jne 0x10006db0
and edx, 0xffffff54
or edx, 0xff54
jmp 0x10006dc3
cmp eax, 0xff54
jne 0x10006dc3
and edx, 0xffffff52
or edx, 0xff52
mov ecx, dword [ebx + 0x188]
cmp dword [ecx + 0x38], 0xffffffff
je 0x10006df5
cmp dword [ecx], 0
je 0x10006df5
push dword [ecx]
push edx
push 0x8004
call fcn.1000ae40
neg eax
sbb ecx, ecx
mov eax, dword [ebp + 0x10]
neg ecx
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x10007f80
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x1009b01c]
xor eax, esp
mov dword [esp + 0x18], eax
push esi
mov esi, ecx
lea ecx, [esp + 4]
push str._stop_service.bat
mov edx, esi
call fcn.10008420
add esp, 4
mov ecx, esi
cmp dword [esi + 0x14], 8
jb 0x10007fb4
mov ecx, dword [esi]
cmp dword [eax + 0x14], 8
jb 0x10007fbc
mov eax, dword [eax]
push 0
push ecx
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [esp + 0x18]
cmp ecx, 8
jb 0x1000800b
mov edx, dword [esp + 4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10008001
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10008091
push ecx
push edx
call fcn.1004d2eb
add esp, 8
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push str._start_service.bat
mov edx, esi
lea ecx, [esp + 8]
call fcn.10008420
add esp, 4
cmp dword [esi + 0x14], 8
jb 0x1000802e
mov esi, dword [esi]
cmp dword [eax + 0x14], 8
jb 0x10008036
mov eax, dword [eax]
push 0
push esi
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, dword [esp + 0x18]
cmp ecx, 8
jb 0x10008081
mov edx, dword [esp + 4]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x10008077
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10008096
push ecx
push edx
call fcn.1004d2eb
add esp, 8
mov ecx, dword [esp + 0x1c]
pop esi
xor ecx, esp
call fcn.1004d2dd
mov esp, ebp
pop ebp
ret
call fcn.1005cf0f
call fcn.1005cf0f
int3
Function at 0x100086e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007aa20
mov eax, dword fs:[0]
push eax
sub esp, 0x27c
mov eax, dword [0x1009b01c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
lea eax, [ebp - 0x26c]
push eax
push dword [0x100a0638]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x270], 0
lea eax, [ebp - 0x270]
mov dword [ebp - 4], 0
push eax
push 0x1008a3f8
push 0x17
push 0
push 0x10080610
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x100088ac
mov esi, dword [ebp - 0x270]
lea eax, [ebp - 0x278]
push eax
push 0x20019
xor edi, edi
mov dword [ebp - 0x284], esi
push edi
push str.SYSTEMCurrentControlSetControlKeyboard_Layouts
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x10008850
mov esi, 0xe0200404
nop
cmp esi, 0xe0ff0404
ja 0x1000884a
push esi
push str._08X
lea eax, [ebp - 0x24]
push 9
push eax
call fcn.10008660
add esp, 0x10
lea eax, [ebp - 0x274]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x278]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10008834
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x27c], 0x40
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x280]
push eax
push 0
push str.Ime_File
push dword [ebp - 0x274]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10008834
cmp dword [ebp - 0x280], 1
jne 0x10008834
lea eax, [ebp - 0x64]
push str.weasel.ime
push eax
call fcn.10061683
add esp, 8
test eax, eax
cmove edi, esi
push dword [ebp - 0x274]
call ebx
add esi, 0x10000
test edi, edi
je 0x100087a0
mov esi, dword [ebp - 0x284]
push dword [ebp - 0x278]
call ebx
push 0
mov eax, dword [esi]
lea ecx, [ebp - 0x26c]
push 1
push 0
push edi
push 0
push dword [ebp - 0x288]
push ecx
push 3
push 0x1008a3dc
push 0x10089fcc
push 0x404
push 0x10089fdc
push esi
call dword [eax + 0x20]
test eax, eax
js 0x100088ac
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x100088a5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 1
jmp 0x100088c5
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x100088c3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004d2dd
mov esp, ebp
pop ebp
ret
Function at 0x10008950
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
mov eax, dword [0x1009b01c]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push esi
push edi
mov ebx, ecx
mov dword [esp + 0x10], 0x100
lea ecx, [esp + 0xc]
mov eax, edx
push ecx
push eax
push ebx
mov dword [esp + 0x20], eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x100089a5
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.1004d2dd
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
lea eax, [esp + 0x18]
push eax
xor esi, esi
lea eax, [esp + 0x14]
push esi
push esi
push esi
push eax
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x28]
call edi
test eax, eax
jne 0x10008a10
nop word [eax + eax]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x20]
mov byte [esp + 0x11f], 0
call fcn.10008950
mov esi, eax
test esi, esi
jne 0x10008a10
lea eax, [esp + 0x18]
mov dword [esp + 0x10], 0x100
push eax
push esi
push esi
push esi
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
push esi
push dword [esp + 0x28]
call edi
test eax, eax
je 0x100089d0
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x10008a2b
push dword [esp + 0x14]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov esi, eax
mov ecx, dword [esp + 0x124]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1004d2dd
mov esp, ebp
pop ebp
ret