joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4fb7b0
Capabilities:
Get common file path

Disassembly:
push ecx
push ebp
mov ebp, ecx
push esi
push edi
cmp dword [ebp], 0
jne 0x4fb865
cmp dword [ebp + 4], 0xffffffff
jne 0x4fb865
push ebx
lea ebx, [ebp + 0x138]
push ebx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, 0xcc72bc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
pop ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
cmp esi, 1
jne 0x4fb82d
push edi
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
je 0x4fb82d
pop edi
pop esi
mov eax, 0x2000000
pop ebp
pop ecx
ret 0xc
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xc]
push eax
push esi
push ecx
push edi
call fcn.004fa5b0
add esp, 0x10
test eax, eax
jne 0x4fb850
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebp
pop ecx
ret 0xc
push eax
call fcn.004faaf0
add esp, 4
mov dword [ebp], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ecx
ret 0xc
pop edi
pop esi
mov eax, 0x1000000
pop ebp
pop ecx
ret 0xc

Function at 0x4fbcc0
Capabilities:
Create directory

Disassembly:
mov ecx, dword [esp + 8]
sub esp, 0x208
test ecx, ecx
je 0x4fbd88
mov al, byte [ecx]
test al, al
je 0x4fbd88
push ebx
push esi
push edi
mov ebx, ecx
mov esi, ecx
cmp al, 0x2f
je 0x4fbceb
cmp al, 0x5c
jne 0x4fbced
mov ebx, esi
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4fbce3
mov edi, dword [esp + 0x218]
cmp ebx, ecx
je 0x4fbd24
mov esi, ebx
lea eax, [esp + 0xc]
sub esi, ecx
push esi
push ecx
push eax
call fcn.0051d870
lea ecx, [esp + 0x18]
mov byte [esp + esi + 0x18], 0
push ecx
push edi
call fcn.004fbcc0
add esp, 0x14
inc ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x110]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x114]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
pop edi
pop esi
pop ebx
add esp, 0x208
ret
Function at 0x4ff460
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xa0
push ebx
push ebp
mov ebp, dword [esp + 0xac]
push esi
push edi
push ebp
call sub.RASAPI32.dll_RasHangUpA
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x28
xor eax, eax
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], 0xa0
call esi
mov edi, eax
call esi
sub eax, edi
cmp eax, 0xbb8
jae 0x4ff4c6
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x10]
push eax
push ebp
call sub.RASAPI32.dll_RasGetConnectStatusA
cmp eax, 6
je 0x4ff4c6
push 0
call ebx
call esi
sub eax, edi
cmp eax, 0xbb8
jb 0x4ff4a7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret

Function at 0x4ff850
Capabilities:
Create http request

Disassembly:
push esi
mov esi, ecx
cmp dword [esi], 0
jne 0x4ff888
mov edx, dword [esi + 4]
xor eax, eax
push 0
push 0
mov ecx, dword [edx - 8]
test ecx, ecx
setne al
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, edx
neg eax
sbb eax, eax
push ecx
and eax, 2
inc eax
push eax
push str.Mozilla_4.0__compatible__MSIE_6.0__Windows_NT_5.0_
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [esi], eax
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
setne al
pop esi
ret
Function at 0x500500
Capabilities:
Get socket status

Disassembly:
sub esp, 0x10c
mov eax, dword [ecx]
lea ecx, [esp]
push ecx
push 0
lea edx, [esp + 0x10]
push 0
push edx
push 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 1
call sub.WS2_32.dll_select
cmp eax, 0xffffffff
jne 0x500549
xor eax, eax
add esp, 0x10c
ret 4
mov edx, dword [esp + 0x110]
xor ecx, ecx
test eax, eax
setne cl
mov dword [edx], ecx
mov eax, 1
add esp, 0x10c
ret 4

Function at 0x5009c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x53cac0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
lea ecx, [esp + 4]
call fcn.00500570
lea eax, [esp + 4]
lea ecx, [esi + 4]
push eax
mov dword [esp + 0x18], 0
call fcn.005005f0
lea ecx, [esp + 4]
push ecx
lea ecx, [esi + 0x14]
call fcn.005005f0
lea ecx, [esi + 0xc]
call fcn.0052c8b8
lea ecx, [esi + 0x10]
call fcn.0052c8b8
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x1c]
call fcn.00501b80
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x30]
call fcn.00501b80
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x44]
call fcn.00501b80
lea ecx, [esp + 8]
mov dword [esp + 0x14], 1
call fcn.0052c92d
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.0052c92d
mov ecx, dword [esp + 0xc]
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret
Function at 0x505750
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ecx
mov eax, dword [0xd1aa44]
xor edx, edx
cmp eax, edx
jne 0x505776
xor eax, eax
mov byte [eax + 0xd1a944], al
inc eax
cmp eax, 0x100
jl 0x50575e
mov dword [0xd1aa44], 1
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 0x14]
push esi
push edi
mov ecx, 0x40
mov esi, 0xd1a944
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
mov byte [ebx + 0x100], dl
mov byte [ebx + 0x101], dl
jle 0x505807
xor esi, esi
push ebp
mov byte [esp + 0x20], dl
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov al, byte [esi + ebx]
and edi, 0xff
xor edx, edx
mov dl, byte [edi + ebp]
mov ebp, eax
and ebp, 0xff
add ecx, edx
add ecx, ebp
and ecx, 0x800000ff
jns 0x5057da
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dl, byte [ecx + ebx]
mov byte [esi + ebx], dl
mov byte [ecx + ebx], al
lea eax, [edi + 1]
cdq
idiv dword [esp + 0x1c]
inc esi
cmp esi, 0x100
mov byte [esp + 0x20], dl
jl 0x5057a8
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x505880
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov cl, byte [eax + 0x100]
mov dl, byte [eax + 0x101]
mov dword [ebp - 8], eax
mov byte [ebp - 1], cl
mov byte [ebp - 2], dl
xor ebx, ebx
mov bl, byte [ebp - 1]
xor edx, edx
mov dl, byte [ebp - 2]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x5058d3
inc bl
mov al, byte [esi + ebx]
add dl, al
xchg byte [esi + edx], al
mov byte [esi + ebx], al
add al, byte [esi + edx]
mov al, byte [esi + eax]
xor byte [edi], al
inc edi
dec ecx
jne 0x5058ba
mov byte [ebp - 1], bl
mov byte [ebp - 2], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [ebp - 1]
mov dl, byte [ebp - 2]
pop edi
pop esi
mov byte [eax + 0x100], cl
mov byte [eax + 0x101], dl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x50c280
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x53cebe
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x18]
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, edi
mov dword [esp + 0x10], edi
call fcn.0050cba0
push 0x10
mov dword [esp + 0x18], 0
mov dword [edi], 0xca3ae4
call fcn.0052c66e
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov al, 1
test esi, esi
mov byte [esp + 0x14], al
je 0x50c313
push 4
mov byte [esi + 8], al
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.0052c66e
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x14], 2
je 0x50c30c
push 0
mov ecx, eax
call fcn.00503390
mov dword [esi + 0xc], eax
jmp 0x50c315
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x50c315
xor esi, esi
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], 0
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 8
Function at 0x51d638
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x51d658
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0051c77a
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x51d67b
test byte [esp + 8], 2
je 0x51d67b
call fcn.0051c7ed
mov dword [eax], 0xd
call fcn.0051c7f6
mov dword [eax], 5
jmp 0x51d654
xor eax, eax
ret

Function at 0x52ecfb
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x52ed33
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.0052cd88
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.0052cd60
jmp 0x52ed3f
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x5303f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x10], edi
mov ebx, ecx
je 0x530432
call fcn.00536350
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
je 0x530432
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
jne 0x530429
xor eax, eax
jmp 0x53043a
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.00530440
pop edi
pop esi
pop ebx
ret 4

Function at 0x536880
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x5368ae
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x5368cc
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.005367e6
jmp 0x5368cc
mov eax, dword [esi + 0x14]
test eax, eax
je 0x5368cc
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.005367e6
test edi, edi
mov eax, edi
jne 0x5368b6
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
Function at 0x40ccac
Capabilities:
Get graphical window text
Get number of processors

Disassembly:
cmp byte [ecx + 0x10], 0
je 0x40ccd0
push 0xffffffffffffffec
push dword [esp + 8]
call dword [sym.imp.USER32.dll_TranslateMessage]
or eax, 0x400001
jo 0x40cd2f
in al, dx
sti
je 0x40cced
or al, 0xff
adc eax, sym.imp.USER32.dll_SetWindowLongW
ret 4
Function at 0x40ccd3
Capabilities:
Get graphical window text
Get number of processors

Disassembly:
sub esp, 0x850
jae 0x40cd30
push esi
push edi
mov word [esp + 0x14], es
mov ebx, ecx
push eax
popfd
add al, 0x24
sbb al, 0x89
pop esp
and al, 0x28
push eax
push dword [esp + 0x870]
in al, dx
mov dword [0xcbfffff9], eax
mov ah, 0x24
or byte fs:[eax], al
add byte [eax - 0x62ecdbbc], cl
inc esi
and al, 0x30
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
lea eax, [esp + 0x50]
push eax
push esi
call dword [0x43a328]
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
inc ecx
sub edi, dword [esp + 0x34]
mov edx, ecx
mov eax, dword [esp + 0x58]
inc esp
and al, 0x58
inc edi
mov ebp, dword [edi + 0x282444c7]
add byte fs:[eax], al
add byte [ebx], ch
insb byte es:[edi], dx
and al, 0x5c
sub edx, eax
cmp byte [esp + 0x13], 0
mov dword [esp + 0x2c], edx
je 0x40cdee
cmp byte [esp + 0x86c], 0
jne 0x40ce30
imul eax, dword [esp + 0x18]
push 0x64
pop ebx
cdq
idiv ebx
mov ebx, dword [eax - 0x75]
inc esp
and byte [edi + ecx - 0x51], bl
inc esp
and al, 0x14
pop es
pop esp
and al, 0x2c
sub ecx, ebx
mov dword [esp + 0x1c], ebx
cdq
ja 0x40ce00
and al, 0x28
add eax, ebp
mov dword [esp + esi + 0x20], eax
mov eax, ecx
sub edi, dword [esp + 0x20]
cdq
sub eax, dword [edx - 0x38742775]
cdq
sub eax, ebx
sar ebx, 1
mov edi, eax
sar edi, 1
add edi, dword [esp + 0x34]
add ebx, dword [esp + 0x30]
jns 0x40cdae
xor ebx, ebx
test edi, edi
stc
add dh, byte [ebx]
jmp [edx - 0x10]
cmp byte [esp + 0x86c], 4
jne 0x40ce30
push 0x400
lea eax, [esp + 0x65]
push ecx
push ecx
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
push dword [ebp + 0x86824]
add byte [ebp - 0x749bdbbc], cl
retf
push 8
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 5
push esi
sub ebp, eax
call dword [0x3ab14]
mov edi, eax
xor ebx, ebx
mov dword [esp + 0x1c], edi
jmp 0x40cf29
cmp ebx, 0x200
jge 0x40cf31
mov esi, 0x400
lea eax, [esp + 0x60]
push esi
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
cmp word [esp + 0x60], 0
je 0x40ce9b
push dword [esp + 0x868]
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x64]
push 1
push esi
push eax
push eax
call fcn.0040c72b
lea eax, [esp + 0x60]
push eax
push edi
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp byte [esp + 0x13], 0
je 0x40cf17
lea eax, [esp + 0x40]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + eax + 0x4c]
mov ecx, dword [esp + 0x44]
sub eax, ecx
inc eax
sub ecx, ebp
imul eax, dword [esp + 0x14]
push 0x204
push 0x44
dec esp
sub ecx, dword [esp + 0x38]
cdq
idiv edi
mov esi, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x50]
imul eax, esi, 0xf
invalid
push 2
push edi
call dword [sym.imp.USER32.dll_GetWindow]
mov edi, eax
cmp edi, dword [esp + 0x1c]
je 0x40cf31
inc ebx
test edi, edi
ja 0x40ce50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x850
ret 0xc
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..retplne
nop
nop
mov ebx, 0x40de38
nop
mov ecx, 0x8a61669
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x43304e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x433024
nop
nop
mov eax, section..reloc
nop
mov ebx, 0x4304d8
mov ecx, 0x4c3e6cd6
nop
nop
nop
nop
test eax, eax
nop
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
pop eax
nop
nop
nop
nop
nop
nop
add eax, 0x403ac5
sub eax, 0x403a6b
nop
nop
nop
nop
nop
mov ebx, dword [eax]
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
jl 0x42e030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x42e01e
nop
nop
nop
nop
nop
nop
popal
nop
jmp loc.00401219
Function at 0x82c3b0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, 0x718015
lea edi, [esi - 0x317015]
push edi
or ebp, 0xffffffff
jmp 0x82c3d2
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x82c3d9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x82c3c8
mov eax, 1
add ebx, ebx
jne 0x82c3eb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x82c3fc
jne 0x82c41b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x82c41b
dec eax
add ebx, ebx
jne 0x82c408
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x82c3e0
add ebx, ebx
jne 0x82c417
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x82c46d
xor ecx, ecx
sub eax, 3
jb 0x82c433
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x82c4a2
sar eax, 1
mov ebp, eax
jmp 0x82c43e
add ebx, ebx
jne 0x82c43e
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x82c40c
inc ecx
add ebx, ebx
jne 0x82c44c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x82c40c
add ebx, ebx
jne 0x82c459
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x82c44e
jne 0x82c46a
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x82c44e
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x82c48c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x82c47e
jmp 0x82c3ce
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x82c48c
add edi, ecx
jmp 0x82c3ce
pop esi
mov edi, esi
mov ecx, 0x107dc
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x82c4aa
mov eax, dword [edi]
mov bl, byte [edi + 4]
xchg ah, al
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x82c4af
lea edi, [esi + 0x42a000]
mov eax, dword [edi]
or eax, eax
je 0x82c517
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x42d0fc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x42d188]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x82c4d5
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x42d18c]
or eax, eax
je 0x82c511
mov dword [ebx], eax
add ebx, 4
jmp 0x82c4f2
call dword [esi + 0x42d19c]
mov ebp, dword [esi + 0x42d190]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x19f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
lea ebx, [esi - 0x1000]
lea edi, [ebx + 0x42c572]
push edi
xor eax, eax
stosb byte es:[edi], al
pop ecx
dec ecx
push eax
push 1
push ebx
call ecx
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x82c563
sub esp, 0xffffff80
jmp 0x401860
Function at 0x4037f2
Capabilities:
Access peb ldr_data
Resolve function by hash

Disassembly:
push ebp
mov ebp, esp
jmp 0x40380b
nop
cld
xor edx, edx
mov edx, dword fs:[edx + 0x30]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x14]
mov esi, dword [edx + 0x28]
push 0x18
pop ecx
xor edi, edi
xor eax, eax
lodsb al, byte [esi]
cmp al, 0x61
jl 0x40382a
sub al, 0x20
ror edi, 0xd
add edi, eax
loop 0x403821
cmp edi, 0x6a4abc5b
mov ebx, dword [edx + 0x10]
mov edx, dword [edx]
jne 0x403819
mov eax, ebx
leave
ret

Function at 0x40386c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 4
mov esp, ebp
pop ebp
jmp 0x40388e
nop
pop edx
pop eax
pop ecx
push edx
pushal
mov ebx, eax
mov edi, ecx
xor al, al
scasb al, byte es:[edi]
jne 0x40389a
dec edi
sub edi, ecx
xchg ecx, edi
mov eax, dword [ebx + 0x3c]
mov esi, dword [ebx + eax + 0x78]
lea esi, [esi + ebx + 0x18]
lodsd eax, dword [esi]
xchg edx, eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
xchg ebp, eax
lodsd eax, dword [esi]
xchg ebp, eax
add eax, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
dec edx
je 0x4038e9
mov esi, dword [eax + edx*4]
add esi, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x4038d5
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x4038bf
shl edx, 1
add ebp, edx
movzx eax, word [ebp + ebx]
shl eax, 2
add eax, dword [esp]
mov eax, dword [ebx + eax]
add eax, ebx
pop ecx
mov dword [esp + 0x1c], eax
popal
ret

Function at 0x40ba8f
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
leave
ret

Function at 0x40bd0f
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
movzx eax, byte [eax + 2]
leave
ret

Function at 0x41304b
Capabilities:
Access peb ldr_data
Resolve function by hash

Disassembly:
push ebp
mov ebp, esp
jmp 0x413064
nop
cld
xor edx, edx
mov edx, dword fs:[edx + 0x30]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 0x14]
mov esi, dword [edx + 0x28]
push 0x18
pop ecx
xor edi, edi
xor eax, eax
lodsb al, byte [esi]
cmp al, 0x61
jl 0x413083
sub al, 0x20
ror edi, 0xd
add edi, eax
loop 0x41307a
cmp edi, 0x6a4abc5b
mov ebx, dword [edx + 0x10]
mov edx, dword [edx]
jne 0x413072
mov eax, ebx
leave
ret
Function at 0x4130c5
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 4
mov esp, ebp
pop ebp
jmp 0x4130e7
nop
pop edx
pop eax
pop ecx
push edx
pushal
mov ebx, eax
mov edi, ecx
xor al, al
scasb al, byte es:[edi]
jne 0x4130f3
dec edi
sub edi, ecx
xchg ecx, edi
mov eax, dword [ebx + 0x3c]
mov esi, dword [ebx + eax + 0x78]
lea esi, [esi + ebx + 0x18]
lodsd eax, dword [esi]
xchg edx, eax
lodsd eax, dword [esi]
push eax
lodsd eax, dword [esi]
xchg ebp, eax
lodsd eax, dword [esi]
xchg ebp, eax
add eax, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ecx
dec edx
je 0x413142
mov esi, dword [eax + edx*4]
add esi, ebx
repe cmpsb byte [esi], byte es:[edi]
je 0x41312e
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x413118
shl edx, 1
add ebp, edx
movzx eax, word [ebp + ebx]
shl eax, 2
add eax, dword [esp]
mov eax, dword [ebx + eax]
add eax, ebx
pop ecx
mov dword [esp + 0x1c], eax
popal
ret

Function at 0x41d0ec
Capabilities:
Reference the vmware io port

Disassembly:
push ebp
mov ebp, esp
sub esp, 4
mov dword [ebp - 4], 0
mov eax, 0x564d5868
mov ebx, 0
mov ecx, 0xa
mov edx, 0x5658
in eax, dx
cmp ebx, 0x564d5868
sete byte [ebp - 4]
mov eax, dword [ebp - 4]
jmp 0x41d123
mov esp, ebp
pop ebp
ret
Function at 0x428c80
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x4be90b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push ebp
mov ebp, ecx
lea ecx, [esp + 8]
lea eax, [ebp + 0x40]
push eax
call fcn.004b3389
mov ecx, dword [esp + 8]
mov dword [esp + 0x190], 0
mov eax, dword [ecx - 8]
test eax, eax
je 0x428d02
lea edx, [esp + 0x10]
push 1
push edx
lea ecx, [esp + 0x10]
call fcn.004b10cb
mov eax, dword [eax]
push 0x155fd10
push eax
call fcn.004a3054
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.004b3614
test bl, bl
je 0x428d02
push 0x155fd10
lea ecx, [esp + 0xc]
call fcn.004b39a4
push 0x155fd1c
lea ecx, [esp + 0xc]
call fcn.004b39a4
mov ecx, dword [esp + 8]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x428d3e
lea ecx, [esp + 8]
mov dword [esp + 0x190], eax
call fcn.004b3614
jmp 0x428e09
push esi
mov esi, dword [esp + 0x19c]
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, 0x23
test byte [esp + 0x50], 0x10
je 0x428dc2
lea edx, [esp + 0x7c]
push 0x155fd18
push edx
call fcn.004a3054
add esp, 8
test eax, eax
je 0x428dc2
lea eax, [esp + 0x7c]
push 0x155fd14
push eax
call fcn.004a3054
add esp, 8
test eax, eax
je 0x428dc2
mov eax, dword [ebp + 0x1c]
lea edx, [esp + 0x1c]
push edx
push 0
lea ecx, [esp + 0x84]
push 0x1100
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 0xffff0003
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], ebx
call edi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x50]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x428d52
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp + 0x1c]
push esi
push 2
push 0x1102
push ecx
call edi
lea ecx, [esp + 0x10]
mov dword [esp + 0x198], 0xffffffff
call fcn.004b3614
pop edi
pop esi
mov ecx, dword [esp + 0x188]
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18c
ret 4

Function at 0x42a070
Capabilities:
Query or enumerate registry value

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