joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4834d4
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c5c49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x54
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x4836cd
lea eax, [ebp + 0x14]
mov dword [ebp - 0x2c], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0x30], eax
lea eax, [ebp + 8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax]
test eax, eax
je 0x483681
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax]
test eax, eax
je 0x483675
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x28], 0x1b20
mov dword [ebp - 0x38], str.txy_hleqaf_eojaph_wwrjqwok_qxuvvjsn_eyxsixmo_yjspzuvuc_nem_fynrtipi
cmp dword [ebp - 0x28], 0x1b6c
jle 0x48360c
and dword [ebp - 0x18], 0
jmp 0x483562
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x3f86
jge 0x4835fe
and dword [ebp - 0x1c], 0
jmp 0x48357c
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x71a1
jge 0x4835f9
and dword [ebp - 0x20], 0
jmp 0x483592
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x6eab
jge 0x4835f4
and dword [ebp - 0x24], 0
jmp 0x4835a8
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x6c2a
jge 0x4835f2
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
shl eax, cl
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
sar edx, cl
xor eax, edx
cdq
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], edx
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x64]
call fcn.00401a48
pop ecx
pop ecx
mov ecx, eax
call fcn.0040b047
push eax
call fcn.004af8e7
pop ecx
lea ecx, [ebp - 0x64]
call fcn.0040b03d
jmp 0x4835a1
jmp 0x48358b
jmp 0x483575
jmp 0x48355b
push 0
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
push 0x2a8d
push 0x5ac7
push 0x64b2
push 1
push 0x3ea2
push 0
push 1
lea eax, [ebp - 0x11]
push eax
push 0xde7
call fcn.004795a5
add esp, 0x24
and dword [ebp - 4], 0
cmp dword [ebp - 0x28], 0x18e4
jge 0x48364d
push dword [ebp - 0x38]
call fcn.004af8e7
pop ecx
jmp 0x483669
or dword [ebp - 4], 0xffffffff
jmp 0x483673
jmp 0x48367f
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
jmp 0x4836cb
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax]
test eax, eax
je 0x4836c5
mov byte [ebp - 0x12], 0
movzx eax, byte [ebp - 0x12]
test eax, eax
je 0x4836c3
push 0x2d9f
push 1
push 0
push 1
push 0x30ca
push 0x2d73
push 0x1a05
push 1
push 0
call fcn.0049598d
add esp, 0x24
jmp 0x4836cb
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
jmp 0x4836e5
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x44], eax
push 0x6141
push dword [ebp - 0x44]
push 0
call fcn.0049207a
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x486af1
Capabilities:
Identify system language via api
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x486b88
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0x2c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x34]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
test eax, eax
je 0x486b61
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
push 1
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.00486c97
add esp, 0x14
jmp 0x486b83
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax]
test eax, eax
je 0x486b7d
push 0
push 0
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
jmp 0x486b83
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
jmp 0x486c93
lea eax, [ebp + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x20]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x38]
movzx eax, byte [eax]
test eax, eax
je 0x486c60
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
movzx eax, byte [eax]
test eax, eax
je 0x486c13
mov byte [ebp - 1], 0
push 0xafa
push 0x5ae3
push 1
push 0x6680
push 0x5b00
push 0
push 0x6cc3
push 0x1bae
push 0
lea eax, [ebp - 1]
push eax
push 0x3d92
push 1
call fcn.0048f005
add esp, 0x30
jmp 0x486c5e
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 8]
mov dword [eax], 0
jmp 0x486c41
mov eax, dword [ebp - 8]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
cmp dword [eax], 3
jge 0x486c5e
mov eax, dword [ebp - 8]
push dword [eax]
mov ecx, dword [ebp - 0x5c]
call fcn.0040b367
mov dword [eax], 0xf3b8cff2
jmp 0x486c36
jmp 0x486c93
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x6c], eax
push 0x2e9d
push dword [ebp - 0x68]
push 0x39ae
push 1
push 1
push 0x4ad6
push 0
push dword [ebp - 0x6c]
push 0
push 1
call fcn.0048604d
add esp, 0x28
mov esp, ebp
pop ebp
ret
Function at 0x48a8b9
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
movzx eax, byte [ebp + 0x1c]
test eax, eax
je 0x48a9b8
lea eax, [ebp + 0xc]
mov dword [ebp - 8], eax
lea eax, [ebp + 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xc], eax
lea eax, [ebp + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
test eax, eax
je 0x48a97e
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
test eax, eax
je 0x48a94d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
test eax, eax
je 0x48a94b
push 0x5d5a
push 0x5022
push 0
push 0x2c11
push 0x4277
push 0x66d0
push 0x186d
push 1
push 1
push 0
call fcn.004815ad
add esp, 0x28
jmp 0x48a97c
mov byte [ebp - 1], 0
push 0x7248
push 0
push 0x5564
push 1
push 1
push 0x7775
push 0x2bac
push 0x4e31
lea eax, [ebp - 1]
push eax
call fcn.0047319e
add esp, 0x24
jmp 0x48a9b6
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
test eax, eax
je 0x48a9aa
push 0x13cd
push 0x1f6b
push 0xfeb
push 0x284
call dword [sym.imp.USER32.dll_CheckRadioButton]
jmp 0x48a9b6
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_AttachThreadInput]
jmp 0x48a9ea
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x30], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x2c], eax
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push 0
mov eax, dword [ebp - 0x34]
movzx eax, byte [eax]
push eax
push dword [ebp - 0x38]
call fcn.004833d6
add esp, 0x14
mov esp, ebp
pop ebp
ret
Function at 0x495ff5
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x496052
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
push 0x7dcd
push dword [ebp - 8]
push 0x71d0
push 1
push 0x5323
push 0x6bae
push 0x334d
push 0x1fa5
push 0x6c9
push 0xab4
push 0x11e7
push 0x3ab6
push 0x1a24
call fcn.004960ff
add esp, 0x34
jmp 0x4960fb
lea eax, [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax]
test eax, eax
je 0x49608a
push 0x701a
push 0x7101
push 1
call fcn.00494930
add esp, 0xc
jmp 0x4960fb
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax]
test eax, eax
je 0x4960b0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x4960fb
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 4]
mov dword [eax], 0
jmp 0x4960de
mov eax, dword [ebp - 4]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
cmp dword [eax], 2
jge 0x4960fb
mov eax, dword [ebp - 4]
push dword [eax]
mov ecx, dword [ebp - 0x30]
call fcn.0040b367
mov dword [eax], 2
jmp 0x4960d3
mov esp, ebp
pop ebp
ret
Function at 0x496287
Capabilities:
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x4962cf
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
lea eax, [ebp + 0x28]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
push eax
push dword [ebp - 0xc]
push 0x24d8
push 1
push 0xa9b
push 1
push dword [ebp - 0x10]
call fcn.0049643b
add esp, 0x1c
jmp 0x496437
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x18], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x40], eax
lea eax, [ebp + 0x34]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
lea eax, [ebp + 0x24]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
test eax, eax
je 0x4963ab
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
test eax, eax
je 0x496359
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax]
test eax, eax
je 0x496357
push 0x2df0
push 0x281f
push 1
push 0
push 0
call fcn.0048125e
add esp, 0x14
jmp 0x4963a6
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax]
test eax, eax
je 0x4963a6
push 0x144d
push 0
push 0x52f4
push 0x402c
push 0x4bca
push 0x2d8
push 0x409a
push 0x2d9d
push 0x5b39
push 0x1be8
call fcn.00496a23
add esp, 0x28
jmp 0x496437
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x50]
movzx eax, byte [eax]
test eax, eax
je 0x496417
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 4]
mov dword [eax], 0
jmp 0x4963fb
mov eax, dword [ebp - 4]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
cmp dword [eax], 4
jge 0x496415
mov eax, dword [ebp - 4]
push dword [eax]
mov ecx, dword [ebp - 0x64]
call fcn.0040b367
and dword [eax], 0
jmp 0x4963f0
jmp 0x496437
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
movzx eax, byte [eax]
test eax, eax
je 0x496437
push 0
push 0
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov esp, ebp
pop ebp
ret
Function at 0x4bfabe
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4c87e0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.004b34fb
mov dword [ebp - 0x14], eax
cmp dword [0xadf3fc], esi
jne 0x4bfbb1
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x4bfb3e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x4bfc91
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x4bfc91
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4bfc91
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0xadf3fc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0xadf400], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0xadf404], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0xadf40c], eax
test eax, eax
je 0x4bfbae
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0xadf408], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4bfbd6
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4bfbc9
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x4bfbeb
push 4
pop eax
jmp 0x4bfc93
cmp dword [ebp - 0x14], esi
je 0x4bfbeb
push dword [0xadf3fc]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x4bfbd0
mov eax, dword [0xadf408]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x4bfc49
cmp dword [0xadf40c], edi
je 0x4bfc49
push eax
call ebx
push dword [0xadf40c]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x4bfc49
test eax, eax
je 0x4bfc49
call ecx
test eax, eax
je 0x4bfc3e
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x4bfc3e
test byte [ebp - 8], 1
jne 0x4bfc49
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x4bfc79
mov eax, dword [0xadf400]
cmp eax, edi
je 0x4bfc76
push eax
call ebx
test eax, eax
je 0x4bfc76
call eax
mov esi, eax
test esi, esi
je 0x4bfc76
mov eax, dword [0xadf404]
cmp eax, edi
je 0x4bfc76
push eax
call ebx
test eax, eax
je 0x4bfc76
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0xadf3fc]
call ebx
test eax, eax
je 0x4bfc91
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x4bfc93
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b094b
mov esp, ebp
pop ebp
ret
Function at 0x402d28
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0xad3008], 0x8088405
inc edx
mov dword [ebx + 0xad3008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0x42ec60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push ebp
mov edi, ecx
mov ecx, dword [ebp + 8]
mov esi, ecx
shr esi, 2
je 0x42ec8d
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebx, dword [eax + esi*4]
mov ebp, dword [edx + esi*4]
mov dword [edi + esi*4], ebx
xor dword [eax + esi*4], ebp
inc esi
jne 0x42ec7e
and ecx, 3
je 0x42eca5
mov bl, byte [ecx + eax - 1]
mov bh, byte [ecx + edx - 1]
mov byte [ecx + edi - 1], bl
xor byte [ecx + eax - 1], bh
dec ecx
jne 0x42ec92
pop ebp
pop esi
pop edi
pop ebx
pop ebp
ret 4

Function at 0x42ecb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push ebp
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push esi
shr esi, 2
je 0x42ece9
lea ecx, [ecx + esi*4]
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebp, dword [eax + esi*4]
mov ebx, dword [edi + esi*4]
xor ebx, dword [edx + esi*4]
mov dword [edx + esi*4], ebx
xor ebx, dword [ecx + esi*4]
mov dword [edi + esi*4], ebp
mov dword [eax + esi*4], ebx
inc esi
jne 0x42ecd1
pop esi
and esi, 3
je 0x42ed0e
mov bl, byte [esi + eax - 1]
mov bh, byte [esi + edx - 1]
xor bh, byte [esi + edi - 1]
mov byte [esi + edx - 1], bh
xor bh, byte [esi + ecx - 1]
mov byte [esi + edi - 1], bl
mov byte [esi + eax - 1], bh
dec esi
jne 0x42ecef
pop ebp
pop esi
pop edi
pop ebx
pop ebp
ret 8

Function at 0x42ed18
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, ecx
mov ecx, dword [ebp + 8]
mov esi, ecx
shr esi, 2
je 0x42ed44
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebx, dword [edx + esi*4]
xor ebx, dword [eax + esi*4]
mov dword [edi + esi*4], ebx
mov dword [eax + esi*4], ebx
inc esi
jne 0x42ed35
and ecx, 3
je 0x42ed5c
mov bl, byte [ecx + edx - 1]
xor bl, byte [ecx + eax - 1]
mov byte [ecx + edi - 1], bl
mov byte [ecx + eax - 1], bl
dec ecx
jne 0x42ed49
pop esi
pop edi
pop ebx
pop ebp
ret 4

Function at 0x42ed64
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
shr ecx, 1
lea edi, [eax + ecx*8]
lea edx, [edx + ecx*8]
neg ecx
mov ebx, dword [edx + ecx*8]
mov eax, dword [edx + ecx*8 + 4]
xor dword [edi + ecx*8], ebx
xor dword [edi + ecx*8 + 4], eax
inc ecx
jne 0x42ed70
pop edi
pop ebx
ret
Function at 0x42f68c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call dword [eax + 0x20]
mov esi, eax
mov eax, esi
shr eax, 2
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0042f2e4
mov dword [ebp - 0x10], eax
xor edx, edx
push ebp
push 0x9ef7cb
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, esi
add eax, eax
push eax
mov eax, dword [ebp - 8]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x14], eax
dec edi
test edi, edi
jl 0x42f73a
inc edi
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, esi
call fcn.00402910
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.0042ed64
lea eax, [ebx + esi]
mov ebx, eax
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, esi
call fcn.00402910
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.0042ed64
lea eax, [ebx + esi]
mov ebx, eax
dec edi
jne 0x42f6e7
mov eax, esi
add eax, eax
push eax
mov eax, dword [ebp - 8]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, edx
cmp esi, edi
jg 0x42f788
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, esi
call fcn.00402910
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.0042ed64
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov ecx, esi
call fcn.00402910
lea eax, [ebx + esi]
mov ebx, eax
sub edi, esi
test edi, edi
jle 0x42f7b2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
dec edi
test edi, edi
jl 0x42f7b2
inc edi
xor eax, eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 8]
mov dl, byte [edx + eax]
xor byte [ebx + eax], dl
inc eax
dec edi
jne 0x42f7a2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x9ef7d2
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0042f480
ret

Function at 0x43df94
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
xor ebx, ebx
mov bl, dl
dec ebx
test ebx, ebx
jl 0x43dfe8
inc ebx
xor edx, edx
mov ecx, edx
shl ecx, 2
movzx esi, byte [eax + ecx]
lea esi, [esi*4 + 0xad3814]
mov esi, dword [esi]
movzx edi, byte [eax + ecx + 1]
lea edi, [edi*4 + 0xad3c14]
xor esi, dword [edi]
movzx edi, byte [eax + ecx + 2]
lea edi, [edi*4 + 0xad4014]
xor esi, dword [edi]
movzx edi, byte [eax + ecx + 3]
lea edi, [edi*4 + 0xad4414]
xor esi, dword [edi]
lea ecx, [eax + ecx]
mov dword [ecx], esi
inc edx
dec ebx
jne 0x43dfa3
pop edi
pop esi
pop ebx
ret
Function at 0x49efd0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, ecx
mov dword [ebp - 4], eax
mov esi, dword [0xaf4c70]
mov eax, dword [ebp - 4]
mov byte [eax + 0x210], 1
xor eax, eax
push ebp
push 0xa5f1a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004971a0
add dword [ebp - 0xc], 4
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.004983c8
mov eax, dword [esi]
call fcn.00485ca0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4c]
add edx, dword [ebp - 0x14]
cmp eax, edx
jge 0x49f042
mov eax, dword [esi]
call fcn.00485ca0
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x4c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
call fcn.00485cac
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x48]
add edx, dword [ebp - 0x18]
cmp eax, edx
jge 0x49f066
mov eax, dword [esi]
call fcn.00485cac
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x48]
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
call fcn.00485c94
cmp eax, dword [ebp - 0x18]
jle 0x49f07c
mov eax, dword [esi]
call fcn.00485c94
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
call fcn.00485c88
cmp eax, dword [ebp - 0xc]
jle 0x49f092
mov eax, dword [esi]
call fcn.00485c88
mov dword [ebp - 0xc], eax
push 0x10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 4]
call fcn.0049d958
push eax
call fcn.004078d4
call fcn.00406e14
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x214]
cmp eax, 0xfa
jbe 0x49f159
mov eax, ebx
call fcn.00404534
cmp eax, 0x64
jge 0x49f159
cmp dword [0xae226c], 0
je 0x49f159
push 0
lea eax, [ebp - 8]
push eax
push 0
push 0x1016
call fcn.00407924
cmp dword [ebp - 8], 0
je 0x49f159
push 0
lea eax, [ebp - 8]
push eax
push 0
push 0x1018
call fcn.00407924
cmp dword [ebp - 8], 0
je 0x49f11c
mov bl, 2
jmp 0x49f137
lea edx, [ebp - 0x20]
mov eax, dword [0xafc830]
call fcn.004a2268
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jle 0x49f135
xor ebx, ebx
jmp 0x49f137
mov bl, 1
xor eax, eax
mov al, bl
mov eax, dword [eax*4 + 0xae2374]
or eax, 0x40000
push eax
push 0x64
mov eax, dword [ebp - 4]
call fcn.0049d958
push eax
call dword [0xae226c]
mov eax, dword [0xaf4a7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 4]
call fcn.0049b08c
push 4
mov eax, dword [ebp - 4]
call fcn.0049d958
push eax
call fcn.0040791c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x7c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xa5f1b0
call fcn.00406e14
mov edx, dword [ebp - 4]
mov dword [edx + 0x214], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x210], 0
ret