joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100b6e90
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101be5a0
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x10223008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x100b6ec7
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call edi
test eax, eax
je 0x100b6edb
mov al, 1
jmp 0x100b7062
cmp dword [esi + 0x14], 8
mov edx, esi
jb 0x100b6ee5
mov edx, dword [esi]
mov ecx, edx
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ebx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100b6f10
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.10004a60
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.100b6af0
mov ebx, eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.100049f0
cmp ebx, 0xffffffff
jne 0x100b6f58
xor al, al
jmp 0x100b7062
cmp dword [esi + 0x14], 8
mov edx, esi
jb 0x100b6f62
mov edx, dword [esi]
mov ecx, edx
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ebx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100b6f90
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.10004a60
mov dword [ebp - 4], 1
xor edx, edx
lea ecx, [ebp - 0x28]
call fcn.100b6a10
mov bl, al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.100049f0
test bl, bl
je 0x100b6f51
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x100b6fd9
mov eax, dword [esi]
push eax
call edi
test eax, eax
jne 0x100b6ed4
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], 2
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.100b74a0
test al, al
je 0x100b7023
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call edi
test eax, eax
je 0x100b7023
mov bl, 1
jmp 0x100b7051
cmp dword [esi + 0x14], 8
jb 0x100b702b
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x44]
call fcn.10004820
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 0x2c]
call fcn.100b6a10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.100049f0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.100049f0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1018d5a4
mov esp, ebp
pop ebp
ret
Function at 0x100b86d0
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x10223008]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x100b8735
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x100b8710
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100b8735
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.1018d5a4
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.1018d5a4
add esp, 8
ret 4

Function at 0x100bb910
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bda2f
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10223008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, dword [ebp + 8]
mov ecx, edi
push esi
mov dword [ebp - 0x10], edi
call fcn.100050f0
mov dword [ebp - 4], 0
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.100050f0
mov byte [ebp - 4], 1
lea eax, [esi + 0x30]
push eax
lea ecx, [edi + 0x30]
call fcn.100050f0
mov byte [ebp - 4], 2
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 0x48]
call fcn.100050f0
mov byte [ebp - 4], 3
lea ecx, [edi + 0x64]
mov al, byte [esi + 0x60]
mov byte [edi + 0x60], al
lea eax, [esi + 0x64]
push eax
call fcn.100050f0
mov byte [ebp - 4], 4
lea eax, [esi + 0x7c]
push eax
lea ecx, [edi + 0x7c]
call fcn.100050f0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x100bd470
Capabilities:
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bf4d8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x10223008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x100bd4b9
mov dword [ecx], 0
mov dword [eax], 0
cmp dword [edi], 0xffffffff
je 0x100bd60b
mov eax, dword [ebp + 0xc]
mov ecx, 0x100000
push 0
mov ebx, eax
mov dword [ebp - 0x1c], 0
cmp eax, 0x100000
lea eax, [ebp - 0x1c]
push eax
cmova ebx, ecx
push ebx
push esi
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
cmp dword [edi + 0x1c], 0
je 0x100bd5d6
test eax, eax
je 0x100bd5d6
mov edx, dword [ebp - 0x1c]
cmp edx, ebx
jae 0x100bd5d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi]
mov dword [ebp - 0x24], eax
cmp ecx, 0xffffffff
je 0x100bd55b
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x100bd54f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100bd55b
mov eax, dword [ebp - 0x14]
xor ecx, ecx
add ecx, esi
adc eax, 0
jmp 0x100bd569
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
push 0
push dword [ebp - 0x24]
push eax
push ecx
sub esp, 0x18
lea eax, [edi + 4]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.100050f0
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx]
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x18]
mov esi, dword [ebp - 0x20]
test eax, eax
jne 0x100bd5d6
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
push ebx
add eax, esi
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, eax
xor edx, edx
test ecx, ecx
mov eax, 0x80004005
cmovne eax, edx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
test ecx, ecx
je 0x100bd514
jmp 0x100bd5d9
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
add dword [ecx], edx
test eax, eax
jne 0x100bd602
test edx, edx
je 0x100bd5fe
mov eax, dword [ebp + 0xc]
add esi, edx
sub eax, edx
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], eax
mov ecx, 0x100000
jne 0x100bd4d0
mov al, 1
jmp 0x100bd60d
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x100bd60b
mov dword [ecx], eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1018d5a4
mov esp, ebp
pop ebp
ret 0x10
Function at 0x100c0f10
Capabilities:
Check os version

Disassembly:
sub esp, 0x118
mov eax, dword [0x10223008]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
mov esi, ecx
mov dword [esp + 4], 0x114
push 0x110
lea eax, [esp + 0xc]
push 0
push eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov byte [esi], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov eax, esi
je 0x100c0fa7
cmp dword [esp + 8], 6
jb 0x100c0fa7
mov byte [esi], 1
mov ecx, dword [esp + 0x118]
pop esi
xor ecx, esp
call fcn.1018d5a4
add esp, 0x118
ret

Function at 0x100c0fc0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bfa20
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x10223008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0xc
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x28]
push str.wintrust.dll
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.10004a60
mov dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
call fcn.100ad300
mov ecx, eax
call fcn.100ad3c0
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.100049f0
push 0xb
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push str.crypt32.dll
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
call fcn.10004a60
mov dword [ebp - 4], 1
lea eax, [ebp - 0x40]
push eax
call fcn.100ad300
mov ecx, eax
call fcn.100ad3c0
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.100049f0
test ebx, ebx
je 0x100c111d
test esi, esi
je 0x100c111d
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptCATAdminCalcHashFromFileHandle
push ebx
call esi
push str.CryptCATAdminAcquireContext
push ebx
mov dword [edi + 4], eax
call esi
push str.CryptCATAdminEnumCatalogFromHash
push ebx
mov dword [edi + 8], eax
call esi
push str.CryptCATCatalogInfoFromContext
push ebx
mov dword [edi + 0xc], eax
call esi
push str.CryptCATAdminReleaseCatalogContext
push ebx
mov dword [edi + 0x10], eax
call esi
push str.CryptCATAdminReleaseContext
push ebx
mov dword [edi + 0x14], eax
call esi
push str.WTHelperProvDataFromStateData
push ebx
mov dword [edi + 0x18], eax
call esi
push str.WTHelperGetProvSignerFromChain
push ebx
mov dword [edi + 0x1c], eax
call esi
push str.WinVerifyTrust
push ebx
mov dword [edi + 0x20], eax
call esi
push str.CertNameToStrW
push dword [ebp - 0x10]
mov dword [edi + 0x24], eax
call esi
mov dword [edi + 0x28], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100c3f40
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bfec0
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x10223008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [ebp + 8]
test eax, eax
je 0x100c4027
cmp byte [eax + 0x54], 0
je 0x100c4027
add eax, 0x1c
lea ecx, [ebp - 0x38]
push eax
call fcn.10031ca0
push 0
mov edx, edi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.100a0410
add esp, 4
mov byte [ebp - 4], 1
lea edi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov eax, dword [esi]
cmovae edi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x1c]
cmp dword [eax + 0x14], 8
jb 0x100c3fc2
mov eax, dword [eax]
push 0
push 0x80
push 4
push 0
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x100c400c
push 2
push 0
push 0
push esi
mov dword [ebp - 0x30], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x30]
push eax
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.10004890
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call fcn.10031cf0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1018d5a4
mov esp, ebp
pop ebp
ret 4
Function at 0x100d09c0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c1cc0
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x10223008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
add esi, 4
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], ecx
cmp dword [esi + 0x10], 0
je 0x100d0af2
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x100d0a11
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x100d0af2
cmp dword [esi + 0x14], 8
jb 0x100d0a29
mov esi, dword [esi]
lea eax, [ebp - 0x38]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
jne 0x100d0a4c
mov dword [ebx], 0xa80035
mov dword [ebx + 4], 2
jmp 0x100d0b00
push dword [ebp - 0x20]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x24]
push eax
call fcn.101997a0
add esp, 0xc
push 0
push 0xf4240
mov dword [ebp - 4], 0
push dword [eax + 4]
push dword [eax]
call fcn.1018e0a0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x40], edx
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
call fcn.10091680
push dword [ebp - 0x30]
lea eax, [ebp - 0x4c]
push dword [ebp - 0x34]
push eax
call fcn.101997a0
add esp, 0xc
push 0
push 0xf4240
mov dword [ebp - 4], 1
push dword [eax + 4]
push dword [eax]
call fcn.1018e0a0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
mov esi, eax
mov edi, edx
call fcn.10091680
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 0x18], esi
mov esi, edx
mov byte [edx + 0x10], 1
mov edx, dword [ebp - 0x40]
mov dword [esi + 0x20], ebx
mov ebx, dword [ebp - 0x44]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0x1c], edi
mov dword [esi + 0x24], edx
mov dword [esi + 0xc], ecx
jmp 0x100d0af7
mov eax, 0xa80038
mov dword [ebx], eax
mov dword [ebx + 4], 0xffffffff
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1018d5a4
mov esp, ebp
pop ebp
ret 0xc
Function at 0x100dce90
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov ebx, ecx
push esi
push edi
xor edi, edi
or edx, 0x100
mov ecx, edx
mov eax, edx
shr ecx, 7
add edx, edx
and ecx, 1
shr eax, 8
neg ecx
sar ecx, 4
and ecx, 0x7f
movzx esi, word [ebx + eax*2]
shr esi, 4
xor esi, ecx
add edi, dword [ebp + esi*4]
cmp edx, 0x10000
jb 0x100dcea2
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x100dcee0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, 0x100
xor ebx, ebx
push edi
mov edi, dword [esp + 0x14]
mov ebp, ecx
or edx, esi
add edi, edi
mov ecx, esi
and ecx, edi
mov eax, edx
shr eax, 8
add ecx, esi
add eax, ecx
movzx ecx, word [ebp + eax*2]
mov eax, edx
shr eax, 7
add edx, edx
and eax, 1
shr ecx, 4
neg eax
sar eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [esp + 0x18]
add ebx, dword [eax + ecx*4]
mov ecx, edx
xor ecx, edi
not ecx
and esi, ecx
cmp edx, 0x10000
jb 0x100dcef3
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret

Function at 0x100dd080
Capabilities:
Encode data using xor

Disassembly:
push ecx
xor eax, eax
mov dword [esp], ecx
push ebp
mov ebp, edx
push edi
lea edi, [eax + 1]
test ebp, ebp
je 0x100dd0c7
push ebx
mov ebx, dword [esp + 0x14]
push esi
movzx edx, word [ecx + edi*2]
mov esi, ebx
and esi, 1
shr edx, 4
mov ecx, esi
shr ebx, 1
neg ecx
add edi, edi
sar ecx, 4
or edi, esi
and ecx, 0x7f
xor edx, ecx
mov ecx, dword [esp + 0x1c]
add eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x10]
sub ebp, 1
jne 0x100dd097
pop esi
pop ebx
pop edi
pop ebp
pop ecx
ret
Function at 0x100dd220
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, ecx
mov dword [esp + 8], edx
push esi
push edi
movzx esi, word [ebp]
movzx ecx, word [ebp + 2]
mov eax, esi
shr eax, 4
xor esi, 0x7f0
shr esi, 4
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x14], eax
mov eax, ecx
shr eax, 4
xor ecx, 0x7f0
shr ecx, 4
mov eax, dword [ebx + eax*4]
add eax, dword [ebx + esi*4]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + ecx*4]
add eax, dword [ebx + esi*4]
xor esi, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0x24]
jae 0x100dd39a
mov edx, esi
xor edi, edi
mov esi, dword [esp + 0x10]
or edx, 8
nop dword [eax + eax]
mov ecx, edx
and edx, 1
shr ecx, 1
neg edx
sar edx, 4
and edx, 0x7f
lea eax, [ecx + esi*8]
movzx eax, word [ebp + eax*2 + 4]
shr eax, 4
xor eax, edx
mov edx, ecx
add edi, dword [ebx + eax*4]
cmp edx, 1
jne 0x100dd290
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
mov dword [esp + 0x2c], esi
cmp esi, 8
jb 0x100dd276
cmp esi, 0x10
jae 0x100dd342
lea eax, [esi - 8]
mov dword [esp + 0x14], eax
nop dword [eax]
cmp esi, dword [esp + 0x24]
jae 0x100dd39a
mov esi, dword [esp + 0x10]
mov edx, eax
xor edi, edi
or edx, 8
mov ecx, edx
and edx, 1
shr ecx, 1
neg edx
sar edx, 4
and edx, 0x7f
lea eax, [ecx + esi*8]
movzx eax, word [ebp + eax*2 + 0x104]
shr eax, 4
xor eax, edx
mov edx, ecx
add edi, dword [ebx + eax*4]
cmp edx, 1
jne 0x100dd2f5
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x14], eax
cmp esi, 0x10
jb 0x100dd2e0
cmp esi, dword [esp + 0x24]
jae 0x100dd39a
lea eax, [esi - 0x10]
mov dword [esp + 0x2c], eax
nop
xor edi, edi
or eax, 0x100
mov edx, eax
and eax, 1
shr edx, 1
neg eax
sar eax, 4
and eax, 0x7f
movzx ecx, word [ebp + edx*2 + 0x204]
shr ecx, 4
xor ecx, eax
mov eax, edx
add edi, dword [ebx + ecx*4]
cmp eax, 1
jne 0x100dd357
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add eax, edi
mov dword [ecx + esi*4], eax
inc esi
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp esi, dword [esp + 0x24]
jb 0x100dd350
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x100deee0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
xor ebp, ebp
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x32350]
mov dword [esp + 0xc], ebp
push edi
mov dword [esp + 0x14], eax
nop dword [eax + eax]
xor ebx, ebx
mov edi, ebp
lea eax, [ebx + 1]
lea ebp, [ebx + 4]
nop word [eax + eax]
movzx edx, word [ecx + eax*2 + 0x329f4]
mov esi, edi
and esi, 1
shr edx, 4
mov ecx, esi
shr edi, 1
neg ecx
add eax, eax
sar ecx, 4
or eax, esi
and ecx, 0x7f
xor edx, ecx
mov ecx, dword [esp + 0x18]
add ebx, dword [ecx + edx*4 + 0x30ca0]
sub ebp, 1
jne 0x100def10
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
mov dword [edx], ebx
add edx, 4
mov dword [esp + 0x14], edx
cmp ebp, 0x10
jb 0x100def00
pop edi
pop esi
pop ebp
mov dword [ecx + 0x32390], 0
pop ebx
add esp, 0xc
ret
Function at 0x100def70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x214
push ebx
push ebp
mov ebx, ecx
mov ebp, 4
push esi
push edi
lea eax, [ebx + 0x30ca0]
nop word [eax + eax]
movzx edi, byte [ebx + ebp + 0x304a0]
mov edx, edi
mov esi, edi
shr edx, 1
and esi, 1
dec edx
or esi, 2
mov ecx, edx
shl esi, cl
lea ecx, [ebx + 0x3290e]
push eax
mov eax, ebp
sub eax, esi
sub esi, edi
push eax
lea ecx, [ecx + esi*2]
call fcn.100dd080
mov dword [esp + ebp*4 + 0x2c], eax
add esp, 8
inc ebp
lea eax, [ebx + 0x30ca0]
cmp ebp, 0x80
jb 0x100def90
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], 4
sub ecx, ebx
lea ebp, [ebx + 0x31750]
lea esi, [ebx + 0x32710]
mov dword [esp + 0x18], ebp
lea edx, [ebx + 0x31b58]
mov dword [esp + 0x10], esi
sub ecx, 0x31b50
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
mov eax, dword [ebx + 0x32394]
xor edi, edi
test eax, eax
je 0x100df072
nop dword [eax]
mov ebp, dword [esp + 0x10]
mov eax, edi
xor esi, esi
or eax, 0x40
nop dword [eax + eax]
mov edx, eax
and eax, 1
shr edx, 1
neg eax
sar eax, 4
and eax, 0x7f
movzx ecx, word [ebp + edx*2]
shr ecx, 4
xor ecx, eax
mov eax, edx
add esi, dword [ebx + ecx*4 + 0x30ca0]
cmp eax, 1
jne 0x100df030
mov ebp, dword [esp + 0x18]
mov dword [ebp + edi*4], esi
inc edi
mov eax, dword [ebx + 0x32394]
cmp edi, eax
jb 0x100df020
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, 0xe
cmp eax, ecx
jbe 0x100df097
nop dword [eax + eax]
mov eax, ecx
shr eax, 1
shl eax, 4
sub eax, 0x50
add dword [ebp + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 0x32394]
jb 0x100df080
mov eax, dword [ebp]
mov ecx, 4
mov edi, dword [esp + 0x1c]
mov dword [edx - 8], eax
mov eax, dword [ebp + 4]
mov dword [edx - 4], eax
mov eax, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
mov dword [edx + 4], eax
add edx, 8
nop word [eax + eax]
movzx eax, byte [ebx + ecx + 0x304a0]
lea edx, [edx + 4]
inc ecx
mov eax, dword [ebp + eax*4]
add eax, dword [edx + edi - 4]
mov dword [edx - 4], eax
cmp ecx, 0x80
jb 0x100df0c0
mov edx, dword [esp + 0x14]
sub esi, 0xffffff80
add ebp, 0x100
mov dword [esp + 0x10], esi
add edx, 0x200
mov dword [esp + 0x18], ebp
sub edi, 0x200
mov dword [esp + 0x14], edx
sub dword [esp + 0x20], 1
mov dword [esp + 0x1c], edi
jne 0x100df010
pop edi
pop esi
pop ebp
mov dword [ebx + 0x3baf8], 0
pop ebx
add esp, 0x214
ret
Function at 0x100df130
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
sub esp, 0x44
push ebx
mov ebx, ecx
xor edx, edx
push ebp
push esi
push edi
mov dword [ebx + 0x3bad4], 0
lea esi, [ebx + 0x8c]
mov dword [ebx + 0x3bad0], 0
mov dword [esp + 0x1c], ebx
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x48], 0x20
mov dword [ebx + 0x70], 1
mov dword [ebx + 0x64], 4
mov dword [ebx + 0x74], 0
nop word [eax + eax]
mov ecx, edx
lea esi, [esi + 4]
and ecx, 1
mov eax, edx
shr eax, 1
neg ecx
and ecx, 0xedb88320
inc edx
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [esi - 4], eax
cmp edx, 0x100
jb 0x100df190
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 5
mov ecx, ebx
mov dword [esp + 0x44], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x48], 0
call fcn.100dcb90
lea edx, [ebx + 0x304a0]
mov eax, 2
mov word [edx], 0x100
mov ebx, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
nop
mov ecx, ebx
mov ebp, 1
sar ecx, 1
dec ecx
shl ebp, cl
test ebp, ebp
je 0x100df2ec
lea edi, [eax + edx]
mov ecx, ebp
mov al, bl
mov edx, dword [esp + 0x18]
movzx eax, al
mov esi, ecx
imul eax, eax, 0x1010101
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x14]
add eax, ebp
mov dword [esp + 0x14], eax
inc ebx
cmp ebx, 0x16
jl 0x100df2b0
mov ebx, dword [esp + 0x1c]
mov edi, 8
nop dword [eax + eax]
xor edx, edx
mov eax, edi
lea esi, [edx + 4]
nop word [eax + eax]
imul eax, eax
add edx, edx
cmp eax, 0x10000
jb 0x100df32a
nop dword [eax]
shr eax, 1
inc edx
cmp eax, 0x10000
jae 0x100df320
sub esi, 1
jne 0x100df310
mov eax, edi
mov ecx, 0xa1
shr eax, 4
sub ecx, edx
add edi, 0x10
mov dword [ebx + eax*4 + 0x30ca0], ecx
cmp edi, 0x800
jb 0x100df300
pop edi
mov dword [ebx + 0x323ac], esi
mov dword [ebx + 0x3bb14], esi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret