joyce8/EMBER2024-capa huggingface dataset:
Function at 0x101d3240
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
mov dword [ebp - 0x50], 0
mov ecx, 0x1040d930
call fcn.1010f436
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x64]
add edx, 4
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x18], 0x10
jb 0x101d32a2
mov dword [ebp - 0x74], 1
jmp 0x101d32a9
mov dword [ebp - 0x74], 0
movzx ecx, byte [ebp - 0x74]
test ecx, ecx
je 0x101d32ba
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + 4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 8], 0x811c9dc5
mov dword [ebp - 0xc], 0
jmp 0x101d32d9
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x70]
jae 0x101d32f8
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp - 8]
imul eax, edx, 0x1000193
mov dword [ebp - 8], eax
jmp 0x101d32d0
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.101d3360
add esp, 0xc
mov ecx, dword [ebp - 0x50]
or ecx, 1
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x101ffcf0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
mov dword [ebp - 0x50], 0
mov ecx, 0x1040dd36
call fcn.1010f436
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x64]
add edx, 4
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x18], 0x10
jb 0x101ffd52
mov dword [ebp - 0x74], 1
jmp 0x101ffd59
mov dword [ebp - 0x74], 0
movzx ecx, byte [ebp - 0x74]
test ecx, ecx
je 0x101ffd6a
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + 4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 8], 0x811c9dc5
mov dword [ebp - 0xc], 0
jmp 0x101ffd89
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x70]
jae 0x101ffda8
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp - 8]
imul eax, edx, 0x1000193
mov dword [ebp - 8], eax
jmp 0x101ffd80
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.101ffe10
add esp, 0xc
mov ecx, dword [ebp - 0x50]
or ecx, 1
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1029a7d0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
mov dword [ebp - 0x50], 0
mov ecx, 0x1040e87a
call fcn.1010f436
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x64]
add edx, 4
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x18], 0x10
jb 0x1029a832
mov dword [ebp - 0x74], 1
jmp 0x1029a839
mov dword [ebp - 0x74], 0
movzx ecx, byte [ebp - 0x74]
test ecx, ecx
je 0x1029a84a
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + 4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 8], 0x811c9dc5
mov dword [ebp - 0xc], 0
jmp 0x1029a869
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x70]
jae 0x1029a888
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0xc]
movzx edx, byte [ecx]
xor edx, dword [ebp - 8]
imul eax, edx, 0x1000193
mov dword [ebp - 8], eax
jmp 0x1029a860
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.1029a8f0
add esp, 0xc
mov ecx, dword [ebp - 0x50]
or ecx, 1
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10309950
Capabilities:
Enumerate threads

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push esi
push edi
lea edi, [ebp - 0x30]
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x10372454]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
push 4
call fcn.1010f95e
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0x10309acc
mov dword [ebp - 0x28], 0x1c
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.1010f28d
test eax, eax
je 0x10309ab9
cmp dword [ebp - 0x28], 0x10
jb 0x10309a9d
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp esi, esp
call fcn.1010f51c
cmp dword [ebp - 0x1c], eax
jne 0x10309a9d
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp esi, esp
call fcn.1010f51c
cmp dword [ebp - 0x20], eax
je 0x10309a9d
mov edx, dword [ebp + 8]
cmp dword [edx], 0
jne 0x10309a24
mov eax, dword [ebp + 8]
mov dword [eax + 4], 0x80
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
shl edx, 2
mov esi, esp
push edx
push 0
mov eax, dword [0x10407b5c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp esi, esp
call fcn.1010f51c
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov edx, dword [ebp + 8]
cmp dword [edx], 0
jne 0x10309a22
jmp 0x10309ab9
jmp 0x10309a7d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 4]
jb 0x10309a7d
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
shl ecx, 1
shl ecx, 2
mov esi, esp
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
push 0
mov ecx, dword [0x10407b5c]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
cmp esi, esp
call fcn.1010f51c
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x10309a67
jmp 0x10309ab9
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
shl eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x30]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x20]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 8], edx
mov dword [ebp - 0x28], 0x1c
lea ecx, [ebp - 0x28]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.101103b3
test eax, eax
jne 0x103099a3
mov esi, esp
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call fcn.1010f51c
push edx
mov ecx, ebp
push eax
lea edx, [0x10309af8]
call fcn.1010f742
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1010f0cb
add esp, 0x30
cmp ebp, esp
call fcn.1010f51c
mov esp, ebp
pop ebp
ret
Function at 0x10309b10
Capabilities:
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov dword [ebp - 8], 0xcccccccc
mov dword [ebp - 4], 0xcccccccc
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp + 8]
mov dword [edx + 8], 0
mov eax, dword [ebp + 8]
push eax
call fcn.10309950
add esp, 4
mov ecx, dword [ebp + 8]
cmp dword [ecx], 0
je 0x10309bdb
mov dword [ebp - 4], 0
jmp 0x10309b6c
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
cmp ecx, dword [eax + 8]
jae 0x10309bdb
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov esi, esp
mov ecx, dword [ebp - 4]
mov edx, dword [eax + ecx*4]
push edx
push 0
push 0x5a
call dword [sym.imp.KERNEL32.dll_OpenThread]
cmp esi, esp
call fcn.1010f51c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x10309bd9
mov esi, esp
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
cmp esi, esp
call fcn.1010f51c
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.10309770
add esp, 0xc
mov esi, esp
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call fcn.1010f51c
jmp 0x10309b63
pop esi
add esp, 8
cmp ebp, esp
call fcn.1010f51c
mov esp, ebp
pop ebp
ret

Function at 0x10309bf0
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov dword [ebp - 8], 0xcccccccc
mov dword [ebp - 4], 0xcccccccc
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x10309c9b
mov dword [ebp - 4], 0
jmp 0x10309c23
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
cmp eax, dword [edx + 8]
jae 0x10309c7e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov esi, esp
mov eax, dword [ebp - 4]
mov ecx, dword [edx + eax*4]
push ecx
push 0
push 0x5a
call dword [sym.imp.KERNEL32.dll_OpenThread]
cmp esi, esp
call fcn.1010f51c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x10309c7c
mov esi, esp
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp esi, esp
call fcn.1010f51c
mov esi, esp
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call fcn.1010f51c
jmp 0x10309c1a
mov esi, esp
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
push 0
mov eax, dword [0x10407b5c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp esi, esp
call fcn.1010f51c
pop esi
add esp, 8
cmp ebp, esp
call fcn.1010f51c
mov esp, ebp
pop ebp
ret
Function at 0x10309cb0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
push edi
mov eax, 0xcccccccc
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
imul eax, dword [ebp + 8], 0x2c
add eax, dword [0x10407ff0]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 5
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 1
movzx edx, cl
test edx, edx
je 0x10309d13
mov eax, dword [ebp - 0x18]
sub eax, 5
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 0x14], ecx
mov esi, esp
lea edx, [ebp - 0xc]
push edx
push 0x40
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp esi, esp
call fcn.1010f51c
test eax, eax
jne 0x10309d3e
mov eax, 0xa
jmp 0x10309e40
cmp dword [ebp + 0xc], 0
je 0x10309d8a
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0xe9
mov ecx, dword [ebp - 0x18]
add ecx, 5
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 1], eax
mov edx, dword [ebp - 4]
mov al, byte [edx + 0x14]
and al, 1
movzx ecx, al
test ecx, ecx
je 0x10309d88
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov byte [ecx], 0xeb
mov edx, dword [ebp - 0x20]
mov byte [edx + 1], 0xf9
jmp 0x10309dc6
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 1
movzx edx, cl
test edx, edx
je 0x10309db1
push 7
mov eax, dword [ebp - 4]
add eax, 0xc
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.1010fa5d
add esp, 0xc
jmp 0x10309dc6
push 5
mov edx, dword [ebp - 4]
add edx, 0xc
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.1010fa5d
add esp, 0xc
mov esi, esp
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp esi, esp
call fcn.1010f51c
mov esi, esp
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov edi, esp
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp edi, esp
call fcn.1010f51c
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
cmp esi, esp
call fcn.1010f51c
mov cl, byte [ebp + 0xc]
and cl, 1
shl cl, 1
mov edx, dword [ebp - 4]
mov al, byte [edx + 0x14]
and al, 0xfd
or al, cl
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x14], al
mov dl, byte [ebp + 0xc]
and dl, 1
shl dl, 2
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 0xfb
or cl, dl
mov edx, dword [ebp - 4]
mov byte [edx + 0x14], cl
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, [0x10309e64]
call fcn.1010f742
pop eax
pop edx
pop edi
pop esi
add esp, 0x20
cmp ebp, esp
call fcn.1010f51c
mov esp, ebp
pop ebp
ret
Function at 0x1030aac0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov dword [ebp - 8], 0xcccccccc
mov dword [ebp - 4], 0xcccccccc
mov eax, dword [0x10407fd8]
mov dword [ebp - 4], eax
jmp 0x1030aae7
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
je 0x1030ab00
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x1030aafe
mov eax, dword [ebp - 4]
jmp 0x1030ab84
jmp 0x1030aadf
mov esi, esp
push 0x40
push 0x3000
push 0x1000
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp esi, esp
call fcn.1010f51c
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x1030ab81
mov ecx, dword [ebp - 4]
add ecx, 0x20
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 8]
add eax, 0x20
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 4]
cmp ecx, 0xfe0
jbe 0x1030ab43
mov edx, dword [ebp - 4]
mov eax, dword [0x10407fd8]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov dword [0x10407fd8], ecx
mov eax, dword [ebp - 4]
pop esi
add esp, 8
cmp ebp, esp
call fcn.1010f51c
mov esp, ebp
pop ebp
ret

Function at 0x1030b140
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0xcccccccc
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
test eax, eax
je 0x1030b190
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
cmp ecx, 0x90
je 0x1030b190
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
cmp edx, 0xcc
je 0x1030b190
xor eax, eax
jmp 0x1030b1d1
mov dword [ebp - 4], 1
jmp 0x1030b1a2
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jae 0x1030b1cc
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx]
cmp eax, edx
je 0x1030b1ca
xor eax, eax
jmp 0x1030b1d1
jmp 0x1030b199
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x1003d694
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
or eax, dword [ebp + 8]
je 0x1003d6a5
pop ebp
jmp fcn.100635a0
push 5
call fcn.100649b2
pop ebp
ret 8

Function at 0x10042ae0
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xb]
mov esi, dword [eax]
mov edi, dword [eax + 4]
add edi, esi
mov edx, ecx
add edx, eax
test cl, cl
cmovs edx, edi
cmovs eax, esi
sub edx, eax
mov ecx, edx
cmp edx, 4
jb 0x10042b2e
imul esi, dword [eax], 0x5bd1e995
mov edi, esi
shr edi, 0x18
xor edi, esi
imul esi, edi, 0x5bd1e995
imul ecx, ecx, 0x5bd1e995
xor ecx, esi
add eax, 4
add edx, 0xfffffffc
cmp edx, 3
ja 0x10042b08
cmp edx, 1
je 0x10042b4f
cmp edx, 2
je 0x10042b46
cmp edx, 3
jne 0x10042b5a
movzx edx, byte [eax + 2]
shl edx, 0x10
xor ecx, edx
movzx edx, byte [eax + 1]
shl edx, 8
xor ecx, edx
movzx eax, byte [eax]
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
pop esi
pop edi
pop ebp
ret 4

Function at 0x10043f74
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x804
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [ebp - 0x10], eax
test ecx, ecx
jle 0x10043ffc
mov edi, edx
mov esi, ecx
mov eax, 0x800
lea ebx, [ebp - 0x810]
push eax
push 0xff
push ebx
call fcn.101db130
add esp, 0xc
call fcn.1001f412
mov ecx, dword [eax]
or ecx, 2
push dword [ebp + 8]
push 0
push edi
mov edx, 0x800
push edx
push ebx
push dword [eax + 4]
push ecx
call fcn.101f1188
add esp, 0x1c
lea eax, [esi - 1]
cmp eax, 3
ja 0x10043ff5
push dword [esi*4 + 0x10211310]
call fcn.101f1188
add esp, 4
push ebx
push 0x10211310
push eax
call fcn.1002c4cc
add esp, 0xc
push ebx
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101d7611
add esp, 0x804
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x100441a4
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [esp + 0x30], eax
mov eax, dword [0x102440c0]
mov ecx, dword [0x1028ef04]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 0x14]
jg 0x100441ef
mov esi, dword [0x102440bc]
mov ecx, dword [esp + 0x30]
xor ecx, ebp
call fcn.101d7611
mov eax, esi
lea esp, [ebp - 4]
pop esi
pop ebp
ret
push 0x102440c0
call fcn.101f1188
add esp, 4
cmp dword [0x102440c0], 0xffffffff
jne 0x100441d6
pcmpeqd xmm0, xmm0
mov esi, esp
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
mov dword [esi + 0x20], 0xffffffff
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esi + 4]
mov dword [0x102440bc], eax
push 0x102440c0
call fcn.101f1188
add esp, 4
jmp 0x100441d6
Function at 0x10080fbd
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x21c
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x21c]
push 0x20c
push 0xff
push edi
call fcn.101db130
add esp, 0xc
mov dword [edi - 0xc], edi
mov dword [edi - 8], edi
lea ecx, [ebp - 0x14]
mov dword [edi - 4], ecx
mov eax, 0x104
mov esi, dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov ebx, edi
mov edx, ecx
sub edx, ebx
sar edx, 1
cmp edx, eax
jae 0x1008102c
add eax, eax
lea ecx, [ebp - 0x228]
push 2
push eax
push edi
call fcn.10081f78
mov ebx, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x220]
sub ecx, ebx
sar ecx, 1
push ebx
push ecx
call esi
test eax, eax
je 0x10081070
mov ebx, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x220]
mov edx, ecx
sub edx, ebx
sar edx, 1
cmp eax, edx
ja 0x10081005
lea ecx, [ebx + eax*2]
mov dword [ebp - 0x224], ecx
mov esi, dword [ebp + 8]
mov ecx, esi
mov edx, 0xfde9
push dword [ebp + 0xc]
push eax
push ebx
call fcn.1008153e
add esp, 0xc
jmp 0x10081083
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
mov esi, dword [ebp + 8]
push esi
call fcn.1007f423
add esp, 8
mov eax, dword [ebp - 0x228]
cmp eax, edi
je 0x10081096
push eax
call fcn.101f1188
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101d7611
mov eax, esi
add esp, 0x21c
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10081191
Capabilities:
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov eax, dword [0x10243228]
xor eax, ebp
mov dword [esp + 0x158], eax
lea esi, [esp + 0x54]
push 0x104
push 0xff
push esi
call fcn.101db130
add esp, 0xc
mov dword [esi - 0xc], esi
mov dword [esi - 8], esi
lea eax, [esp + 0x154]
mov dword [esi - 4], eax
xor esi, esi
lea eax, [esp + 0x10]
mov dword [eax + 0x24], esi
mov dword [eax + 0x20], esi
xorps xmm0, xmm0
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax], xmm0
mov dword [eax + 0x28], 0xffff
xor edi, edi
dec edi
lea ebx, [esp + 8]
mov dword [ebx], edi
mov dword [ebx + 4], edi
push eax
push dword [ebp + 0xc]
push ebx
call fcn.100807f3
add esp, 0xc
cmp dword [ebx], esi
je 0x1008123a
mov esi, dword [ebp + 8]
call fcn.101ad951
cmp dword [esp + 0xc], eax
jne 0x10081286
cmp dword [esp + 8], 2
jne 0x10081286
cmp byte [ebp + 0x10], 0
je 0x10081286
mov dword [esi], 0
call fcn.101ada37
mov dword [esi + 4], eax
jmp 0x10081290
mov esi, dword [ebp + 8]
mov dword [esi], edi
mov dword [esi + 4], edi
lea eax, [esp + 0x48]
push eax
push dword [ebp + 0xc]
push esi
call fcn.10080c93
add esp, 0xc
cmp dword [esi], 0
lea edi, [esp + 0x54]
jne 0x10081294
cmp dword [esp + 0x34], 3
jne 0x100812bd
mov word [esp + 8], 0
lea ecx, [esp + 0x48]
push ebx
call fcn.10081508
lea eax, [esp + 0x48]
add dword [eax + 4], 0xfffffffe
push dword [eax]
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
jmp 0x100812de
movsd xmm0, qword [esp + 8]
movsd qword [esi], xmm0
lea edi, [esp + 0x54]
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x100812a5
push eax
call fcn.101f1188
add esp, 4
mov ecx, dword [esp + 0x158]
xor ecx, ebp
call fcn.101d7611
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov word [esp + 8], 0
lea ecx, [esp + 0x48]
push ebx
call fcn.10081508
lea eax, [esp + 0x48]
add dword [eax + 4], 0xfffffffe
push dword [eax]
call dword [sym.imp.kernel32.dll_DeleteFileW]
test eax, eax
jne 0x1008130f
xor eax, eax
dec eax
mov dword [esi], eax
mov dword [esi + 4], eax
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push esi
call fcn.1007f423
add esp, 8
call fcn.101ad951
cmp dword [esi + 4], eax
jne 0x10081294
cmp dword [esi], 2
jne 0x10081294
cmp byte [ebp + 0x10], 0
je 0x10081294
mov dword [esi], 0
call fcn.101ada37
mov dword [esi + 4], eax
jmp 0x10081294