joyce8/EMBER2024-capa huggingface dataset:
Function at 0xca0058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.00ca01a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, pe_nt_image_headers32
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0xca007e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xca006a
add dl, dl
jne 0xca0089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xca00dc
xor eax, eax
add dl, dl
jne 0xca0096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xca017d
add dl, dl
jne 0xca00a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xca00b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xca00bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xca00c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0xca00d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0xca0075
mov eax, 1
add dl, dl
jne 0xca00ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xca00f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xca00e1
sub eax, ebx
mov ebx, 1
jne 0xca0128
mov ecx, 1
add dl, dl
jne 0xca010e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xca0119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xca0105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xca0075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0xca013f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xca014a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xca0136
cmp eax, 0x7d00
jae 0xca016d
cmp eax, 0x500
jb 0xca0168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xca0075
cmp eax, 0x7f
ja 0xca0170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xca0075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0xca019e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0xca0075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x4028d0
Capabilities:
Terminate process

Disassembly:
call fcn.00401000
push 0x18
push 0x4029f8
call fcn.004032a6
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
call dword [sym.imp.MSVCR120_CLR0400.dll___crtGetShowWindowMode]
movzx ebx, ax
mov dword [ebp - 4], esi
mov eax, dword fs:[0x18]
mov edx, dword [eax + 4]
mov edi, esi
mov esi, 0x4150e8
mov ecx, edx
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
jne 0x404373
xor esi, esi
inc esi
cmp dword [0x4150ec], esi
je 0x404385
cmp dword [0x4150ec], 0
jne 0x402a1e
mov dword [0x4150ec], esi
push 0x4029f4
push 0x4029e4
call 0x579000
pop ecx
pop ecx
test eax, eax
jne 0x404392
cmp dword [0x4150ec], esi
jne 0x402973
push 0x4029e0
push 0x4029cc
call sub.MSVCR120_CLR0400.dll__initterm
pop ecx
pop ecx
mov dword [0x4150ec], 2
test edi, edi
jne 0x402980
xor eax, eax
mov ecx, 0x4150e8
xchg dword [ecx], eax
cmp dword [0x4150f8], 0
jne 0x4043a3
mov eax, dword [sym.imp.MSVCR120_CLR0400.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
mov edi, dword [ebp - 0x24]
nop
nop
nop
nop
nop
nop
mov cl, byte [esi]
cmp cl, 0x20
jbe 0x402a14
cmp cl, 0x22
je 0x4043d1
movzx eax, cl
push eax
call dword [sym.imp.MSVCR120_CLR0400.dll__ismbblead]
pop ecx
test eax, eax
jne 0x4043e2
inc esi
mov dword [ebp - 0x20], esi
jmp 0x4029a0
test cl, cl
je 0x402a29
test edi, edi
je 0x402a29
jmp 0x4029a7
mov dword [0x415244], esi
jmp 0x402950
mov al, byte [esi]
test al, al
je 0x402a39
cmp al, 0x20
ja 0x402a39
inc esi
mov dword [ebp - 0x20], esi
jmp 0x402a29
push ebx
push esi
push 0
push 0x400000
call fcn.00403044
mov dword [0x415060], eax
cmp dword [0x415064], 0
jne 0x40441a
push eax
call dword [sym.imp.MSVCR120_CLR0400.dll_exit]
test ecx, ecx
je 0x402a82
push ecx
call fcn.0040117d
jmp 0x402a82
mov eax, esi
pop esi
pop ebp
ret 4
cmp eax, edx
jne 0x402905
xor esi, esi
inc esi
mov edi, esi
jmp 0x402918
push 0x1f
call sub.MSVCR120_CLR0400.dll__amsg_exit
pop ecx
jmp 0x402950
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x404435
push 0x4150f8
call fcn.0040fdd0
pop ecx
test eax, eax
je 0x40298d
push 0
push 2
push 0
mov esi, dword [0x4150f8]
mov ecx, esi
call dword [0x416268]
call esi
jmp 0x40298d
xor eax, eax
test edi, edi
sete al
mov edi, eax
mov dword [ebp - 0x24], edi
jmp 0x4029b0
inc esi
mov dword [ebp - 0x20], esi
jmp 0x4029c3
cmp dword [0x415244], 0
jne 0x40442e
call dword [sym.imp.MSVCR120_CLR0400.dll__cexit]
mov eax, dword [0x415060]
mov dword [ebp - 4], 0xfffffffe
call fcn.004032ee
ret
Function at 0x42df7d
Capabilities:
Read file on windows

Disassembly:
push 0x2c
mov eax, 0x4648e4
call fcn.0043a465
mov eax, edx
mov edi, ecx
mov dword [ebp - 0x14], edi
push ecx
mov edx, 0x47b7d4
mov ecx, eax
call fcn.00430d0f
mov esi, eax
mov ecx, esi
call fcn.0042f0cc
pop ecx
mov dword [ebp - 0x1c], esi
mov byte [ebp - 0x18], 1
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
push 0x100001
mov ecx, eax
call fcn.0041727b
push esi
mov ebx, 0x100000
push ebx
push 1
push dword [ebp - 0x28]
call fcn.004442d2
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp eax, ebx
ja 0x42e058
push esi
call fcn.0044a173
pop ecx
test eax, eax
je 0x42dffd
push 0x133
jmp 0x42e05d
push esi
call fcn.0044a147
pop ecx
test eax, eax
jne 0x42e00f
push 0x13b
jmp 0x42e05d
mov ebx, dword [ebp - 0x28]
mov ecx, ebx
mov edx, dword [ebp - 0x10]
call fcn.0042df49
mov ecx, dword [ebp - 0x10]
and dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
lea eax, [ebx + ecx]
cmp ebx, eax
je 0x42e03d
push ecx
push ebx
mov ecx, edi
call fcn.00406baa
lea ecx, [ebp - 0x28]
call fcn.004115b2
test esi, esi
je 0x42e050
push esi
call fcn.004436cd
pop ecx
mov eax, edi
call fcn.0043a42e
ret
push 0xc8
lea ecx, [ebp - 0x38]
call fcn.0040d141
push 0x488c88
lea eax, [ebp - 0x38]
push eax
call fcn.0043d85d
int3

Function at 0x433ee5
Capabilities:
Read file on windows

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1c]
mov ebx, ecx
push edi
mov edi, dword [esp + 0x24]
mov ebp, SysReAllocString
test edi, edi
jl 0x433f68
jg 0x433f11
test esi, esi
je 0x433f68
test edi, edi
jg 0x433f11
jl 0x433f0d
cmp esi, ebp
jae 0x433f11
mov eax, esi
jmp 0x433f13
mov eax, ebp
and dword [esp + 0x20], 0
cmp dword [esp + 0x18], 0xffffffff
je 0x433f59
push 0
lea ecx, [esp + 0x24]
push ecx
push eax
push ebx
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x433f43
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x433f63
jmp 0x433f59
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x433f54
add ebx, eax
cdq
sub esi, eax
sbb edi, edx
jmp 0x433ef9
cmp eax, 0xffffffff
jne 0x433f63
call fcn.00441fd4
cmp dword [eax], 4
je 0x433ef9
or eax, 0xffffffff
jmp 0x433f6a
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x9bb455
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x9bb47c
call fcn.0095d988
mov dword [eax], esi
call fcn.0095d975
push 0x16
pop esi
mov dword [eax], esi
call fcn.0095e5ca
mov eax, esi
jmp 0x9bb4d1
test dword [ebp + 0xc], 0xfffffff9
jne 0x9bb462
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x9bb4a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0095d99b
pop ecx
call fcn.0095d975
mov eax, dword [eax]
jmp 0x9bb4d1
test al, 0x10
jne 0x9bb4cf
test al, 1
je 0x9bb4cf
test byte [ebp + 0xc], 2
je 0x9bb4cf
call fcn.0095d988
mov dword [eax], 5
call fcn.0095d975
mov dword [eax], 0xd
jmp 0x9bb4a0
xor eax, eax
pop esi
pop ebp
ret

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43300c
nop
nop
nop
nop
pop eax
nop
add eax, 0x40a063
nop
nop
sub eax, 0x40a009
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x433030
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43301e
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x409888
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40995b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x409974
push ebx
push 0x409980
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.004033b4
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.0040277c
mov dword [ebp - 0x48], 0x44
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00403414
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x409908
mov al, 0x62
call fcn.00409460
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.0040985c
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x58]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x409911
call fcn.0040985c
push edi
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409962
lea eax, [ebp - 4]
call fcn.00403198
ret

Function at 0x409a14
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffbc
mov edi, eax
lea esi, [esp + 0x28]
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_GetSystemInfo
mov ebx, edi
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409ac8
jmp 0x409abd
cmp dword [esi + 0x10], 0x1000
jne 0x409aa9
test byte [esi + 0x15], 1
jne 0x409aa9
xor ebx, ebx
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x409a68
cmp eax, 2
je 0x409a68
cmp eax, 0x10
je 0x409a68
cmp eax, 0x20
jne 0x409a7d
push esp
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x409a7d
mov bl, 1
xor ebp, ebp
jmp 0x409a8e
mov eax, dword [esi]
add eax, ebp
call fcn.00409a0c
add ebp, dword [esp + 8]
cmp ebp, dword [esi + 0xc]
jb 0x409a81
test bl, bl
je 0x409aa9
push esp
mov eax, dword [esp + 4]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov ebx, eax
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409ac8
mov eax, dword [esi + 4]
cmp eax, edi
je 0x409a40
add esp, 0x44
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x40893f
Capabilities:
Encode data using xor

Disassembly:
mov esi, 0x4085d8
sub ecx, 0xcbfe4a3d
sub eax, 0xd1b12c15
call fcn.00408977
mov ecx, 0x88da63b8
add ecx, eax
xor dword [edi], esi
inc edi
sub ecx, ecx
add ecx, 0xe71b9599
cmp edi, edx
jne fcn.0040893f
add ecx, 0xc38ea1e
mov eax, ecx
ret
Function at 0x9bfc05
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x9bfc2c
call fcn.00962138
mov dword [eax], esi
call fcn.00962125
push 0x16
pop esi
mov dword [eax], esi
call fcn.00962d7a
mov eax, esi
jmp 0x9bfc81
test dword [ebp + 0xc], 0xfffffff9
jne 0x9bfc12
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x9bfc59
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0096214b
pop ecx
call fcn.00962125
mov eax, dword [eax]
jmp 0x9bfc81
test al, 0x10
jne 0x9bfc7f
test al, 1
je 0x9bfc7f
test byte [ebp + 0xc], 2
je 0x9bfc7f
call fcn.00962138
mov dword [eax], 5
call fcn.00962125
mov dword [eax], 0xd
jmp 0x9bfc50
xor eax, eax
pop esi
pop ebp
ret

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

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..rsrc
nop
mov ebx, 0x407ef8
nop
mov ecx, 0x757d6693
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x42e04e
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x42e024
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x42cd70
nop
nop
mov ecx, 0x3e0505a0
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x42e084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
add eax, 4
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x42e06c
popal
nop
nop
nop
nop
nop
jmp 0x401219
Function at 0x163470
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x27f584]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
cmp dword [ecx + 0x50], 0x10
lea ebx, [ecx + 0x3c]
push esi
push edi
mov edi, edx
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x10], eax
jb 0x16349a
mov eax, dword [ebx]
jmp 0x16349c
mov eax, ebx
mov byte [eax], 0
call fcn.001ada70
mov esi, eax
test esi, esi
jne 0x1634c0
mov eax, 0x13ab
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
mov ecx, edi
lea edi, [ebp - 0x20]
call fcn.00162fd0
push 1
push 0x34
push esi
call fcn.001adab0
add esp, 0xc
push 5
push 0x4e
push esi
call fcn.001adab0
add esp, 0xc
push 1
push 0x13
push esi
call fcn.001adab0
add esp, 0xc
push 0x12c
push 0x14
push esi
call fcn.001adab0
mov eax, dword [ebp - 0x20]
mov edi, 0x10
add esp, 0xc
cmp dword [ebp - 0xc], edi
jae 0x163511
lea eax, [ebp - 0x20]
push eax
push 0x2712
push esi
call fcn.001adab0
add esp, 0xc
push 0x1635d0
push 0x4e2b
push esi
call fcn.001adab0
add esp, 0xc
push ebx
push 0x2711
push esi
call fcn.001adab0
add esp, 0xc
push 1
push 0x63
push esi
call fcn.001adab0
add esp, 0xc
push esi
call fcn.001adae0
add esp, 4
test eax, eax
je 0x163565
mov dword [ebp - 0x24], 0x13ab
jmp 0x163599
lea eax, [ebp - 0x28]
push eax
push 0x200002
push esi
call fcn.001adc40
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x28]
jne 0x163585
cmp eax, 0xc8
je 0x163599
sub eax, 0x194
neg eax
sbb eax, eax
and eax, 0xfffffff2
add eax, 0x13b9
mov dword [ebp - 0x24], eax
push esi
call fcn.001adbe0
add esp, 4
cmp dword [ebp - 0xc], edi
jb 0x1635b3
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.001e25e4
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.001e2239
mov esp, ebp
pop ebp
ret
Function at 0x165e10
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x27f584]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
push 0x124
lea eax, [ebp - 0x130]
push 0
push eax
mov dword [ebp - 0x134], 0
call fcn.001e6830
add esp, 0xc
push 0
push 2
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
je 0x165ea7
lea ecx, [ebp - 0x134]
push ecx
push esi
mov dword [ebp - 0x134], 0x128
call dword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x165ea0
lea edx, [ebp - 0x110]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x165e8e
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x11c], eax
je 0x165eba
lea ecx, [ebp - 0x134]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_Process32Next]
test eax, eax
jne 0x165e71
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.001e2239
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebp - 0x12c]
push esi
mov dword [ebx], edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 8]
xor ecx, ebp
mov eax, 1
pop esi
call fcn.001e2239
mov esp, ebp
pop ebp
ret 4

Function at 0x166500
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1004
call fcn.001e84b0
mov eax, dword [0x27f584]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0xc]
push eax
push ecx
lea edx, [ebp - 0x1004]
push 0x1000
push edx
call fcn.001e3565
add esp, 0x10
lea eax, [ebp - 0x1004]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
Function at 0x1677c0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x27f584]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x1677f2
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
push edi
mov edx, esi
call fcn.00167920
push 0x103
xor edi, edi
lea eax, [ebp - 0x107]
push edi
push eax
mov byte [ebp - 0x108], 0
call fcn.001e6830
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x167820
sub eax, edx
inc eax
cmp eax, edi
je 0x167846
cmp eax, 0x7fffffff
ja 0x167846
push esi
mov edx, 0x7ffffffe
lea ecx, [ebp - 0x108]
call fcn.00166ed0
mov edx, 0x104
lea eax, [ebp - 0x108]
cmp byte [eax], 0
je 0x16785c
inc eax
dec edx
jne 0x167851
jmp 0x167884
cmp edx, edi
je 0x167884
mov ecx, 0x104
sub ecx, edx
mov eax, 0x104
sub eax, ecx
push 0x26e3e0
lea ecx, [ebp + ecx - 0x108]
mov edx, 0x7fffffff
call fcn.00166ed0
mov ecx, 0x414
lea edx, [ebp - 0x108]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov word [ebp - 0x118], cx
mov dword [ebp - 0x112], edi
mov dword [ebp - 0x128], edi
mov dword [ebp - 0x10e], edi
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x124], 3
xor esi, esi
jmp 0x1678d0
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
mov edi, eax
test edi, edi
je 0x1678f5
cmp edi, 0x20
jne 0x16790d
push 0x3e8
inc esi
call ebx
cmp esi, 5
jl 0x1678d0
xor eax, eax
pop ebx
test edi, edi
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
xor al, al
pop esi
call fcn.001e2239
mov esp, ebp
pop ebp
ret
Function at 0x1686e0
Capabilities:
Parse pe header

Disassembly:
test eax, eax
je 0x1686f9
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x1686f9
add eax, dword [eax + 0x3c]
cmp dword [eax], 0x4550
je 0x1686fc
xor eax, eax
ret
add eax, 0x18
ret
Function at 0x16e290
Capabilities:
Check for time delay via gettickcount
Resolve dns

Disassembly:
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov ebx, eax
call edi
sub eax, ebx
cmp eax, 0xfa0
jae 0x16e2e1
jmp 0x16e2b0
push str.www.baidu.com
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x16e2e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x64
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
call edi
sub eax, ebx
cmp eax, 0xfa0
jb 0x16e2b0
pop edi
pop esi
xor eax, eax
pop ebx
ret
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov eax, dword [ecx]
pop edi
pop esi
pop ebx
ret

Function at 0x16e300
Capabilities:
Get local ipv4 addresses
Get mac address on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
push 0x288
mov esi, eax
mov dword [ebp - 8], 0x288
call fcn.001e4af4
mov ebx, eax
add esp, 4
mov dword [ebp - 4], ebx
test ebx, ebx
je 0x16e410
mov edi, dword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
lea eax, [ebp - 8]
push eax
push ebx
call edi
cmp eax, 0x6f
jne 0x16e360
push ebx
call fcn.001e4a7a
mov ecx, dword [ebp - 8]
add esp, 4
push ecx
call fcn.001e4af4
add esp, 4
mov dword [ebp - 4], eax
mov ebx, eax
test eax, eax
je 0x16e410
lea edx, [ebp - 8]
push edx
push ebx
call edi
test eax, eax
jne 0x16e410
mov edi, ebx
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x16e410
jmp 0x16e383
mov edi, dword [ebp - 0xc]
mov eax, dword [edi + 0x194]
mov ecx, dword [edi + 0x198]
lea edx, [edi + 0x1b0]
push edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
call dword [sym.imp.WS2_32.dll_inet_addr]
test eax, eax
je 0x16e403
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 4]
cmp byte [ecx + 0x21], 0
jne 0x16e3c6
cmp dword [ecx + 0x10], eax
jae 0x16e3bc
mov ecx, dword [ecx + 8]
jmp 0x16e3c0
mov ebx, ecx
mov ecx, dword [ecx]
cmp byte [ecx + 0x21], 0
je 0x16e3b2
cmp ebx, dword [esi + 4]
je 0x16e3d0
cmp eax, dword [ebx + 0x10]
jae 0x16e3f4
mov dword [ebp - 0x28], eax
xor eax, eax
lea edi, [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
call fcn.0016ede0
push ebx
lea edi, [ebp - 0x10]
mov ecx, esi
call fcn.0016e970
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
mov ebx, dword [ebp - 4]
mov edi, dword [edi]
mov dword [ebp - 0xc], edi
test edi, edi
jne 0x16e380
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test ebx, ebx
je 0x16e425
push ebx
call fcn.001e4a7a
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x16ef10
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
test ecx, ecx
je 0x16ef33
push edi
movzx edi, byte [edx]
mov eax, dword [esi]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x26caa8]
inc edx
dec ecx
mov dword [esi], eax
jne 0x16ef15
pop edi
ret
Function at 0x170000
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x138
mov eax, dword [0x27f584]
xor eax, esp
mov dword [esp + 0x134], eax
push ebx
push esi
push 0
push 2
mov dword [esp + 0x18], 0x128
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
jne 0x17004b
xor eax, eax
pop esi
pop ebx
mov ecx, dword [esp + 0x134]
xor ecx, esp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x10]
push eax
push esi
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x1700b5
mov ebx, dword [sym.imp.KERNEL32.dll_Process32Next]
lea esp, [esp]
lea ecx, [esp + 0x34]
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x170096
test dl, dl
je 0x170092
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x170096
add eax, 2
add ecx, 2
test dl, dl
jne 0x170076
xor eax, eax
jmp 0x17009b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1700ad
lea ecx, [esp + 0x10]
push ecx
push esi
call ebx
test eax, eax
jne 0x170070
jmp 0x1700b5
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x13c]
mov eax, dword [esp + 0xc]
pop esi
pop ebx
xor ecx, esp
call fcn.001e2239
mov esp, ebp
pop ebp
ret
Function at 0x1705a0
Capabilities:
Create a process with modified i/o handles and window
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
push ebx
push esi
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x170634
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x1705b7
sub eax, edx
je 0x170634
push 0x44
lea eax, [ebp - 0x70]
push ebx
push eax
mov dword [ebp - 0x14], 0xc
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
call fcn.001e6830
add esp, 0xc
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x70]
push eax
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push esi
xor ecx, ecx
push ebx
mov dword [ebp - 0x70], 0x44
mov word [ebp - 0x40], cx
mov dword [ebp - 0x44], 0x101
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x17063c
mov eax, dword [ebp - 4]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x17062a
push eax
call esi
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 8]
cmp eax, ebx
je 0x170634
push eax
call esi
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret