joyce8/EMBER2024-capa huggingface dataset:
Function at 0x487ee5
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x487f16
call fcn.00483463
mov dword [eax], esi
call fcn.00483450
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call fcn.0047d06b
add esp, 0x14
or eax, 0xffffffff
jmp 0x487f51
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x487f33
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00483476
pop ecx
jmp 0x487f11
test byte [ebp + 0xc], 0x80
je 0x487f3e
and eax, 0xfffffffe
jmp 0x487f41
or eax, 1
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x487f24
xor eax, eax
pop esi
pop ebp
ret

Function at 0x493094
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.00488832
and dword [ebp - 4], 0
cmp dword [0x4d95e8], 0
mov ebx, eax
jne 0x493145
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x4931f6
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4a3c5c
push edi
call esi
test eax, eax
je 0x4931f6
push eax
call fcn.004887c0
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x4d95e8], eax
call esi
push eax
call fcn.004887c0
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x4d95ec], eax
call esi
push eax
call fcn.004887c0
mov dword [esp], 0x4a3c1c
push edi
mov dword [0x4d95f0], eax
call esi
push eax
call fcn.004887c0
pop ecx
mov dword [0x4d95f8], eax
test eax, eax
je 0x493145
push 0x4a3c04
push edi
call esi
push eax
call fcn.004887c0
pop ecx
mov dword [0x4d95f4], eax
mov eax, dword [0x4d95f4]
cmp eax, ebx
je 0x49319d
cmp dword [0x4d95f8], ebx
je 0x49319d
push eax
call fcn.0048883b
push dword [0x4d95f8]
mov esi, eax
call fcn.0048883b
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x49319d
test edi, edi
je 0x49319d
call esi
test eax, eax
je 0x493194
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x493194
test byte [ebp - 0xc], 1
jne 0x49319d
or dword [ebp + 0x10], 0x200000
jmp 0x4931d6
mov eax, dword [0x4d95ec]
cmp eax, ebx
je 0x4931d6
push eax
call fcn.0048883b
pop ecx
test eax, eax
je 0x4931d6
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x4931d6
mov eax, dword [0x4d95f0]
cmp eax, ebx
je 0x4931d6
push eax
call fcn.0048883b
pop ecx
test eax, eax
je 0x4931d6
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x4d95e8]
call fcn.0048883b
pop ecx
test eax, eax
je 0x4931f6
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x4931f8
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x494d54
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 0x494d85
call fcn.00483463
mov dword [eax], esi
call fcn.00483450
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call fcn.0047d06b
add esp, 0x14
push 0x16
pop eax
jmp 0x494dda
test dword [ebp + 0xc], 0xfffffff9
jne 0x494d61
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x494db2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00483476
pop ecx
call fcn.00483450
mov eax, dword [eax]
jmp 0x494dda
test al, 0x10
jne 0x494dd8
test al, 1
je 0x494dd8
test byte [ebp + 0xc], 2
je 0x494dd8
call fcn.00483463
mov dword [eax], 5
call fcn.00483450
mov dword [eax], 0xd
jmp 0x494da9
xor eax, eax
pop esi
pop ebp
ret
Function at 0x433005
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
mov eax, section..text
nop
push 4
nop
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x433072
mov ebx, 0x40de38
nop
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x3b0d5543
nop
nop
nop
nop
xor dword [eax], esi
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x433060
nop
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x4330d2
nop
nop
mov ebx, 0x4304d8
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
mov esi, 0x129d6db4
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
loop 0x4330c0
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219

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
sub eax, 0x40a009
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x433030
nop
nop
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43301e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x401000
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x1c
or ecx, 0xffffffff
xor eax, eax
push ebx
push ebp
mov ebp, dword [esp + 0x30]
push esi
push edi
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x401023
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
push ebp
push 0x409b84
call fcn.00401a00
mov edi, str.BigDogPath
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, ebp
push 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
mov dword [esp + 0x38], esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401084
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 0x10
push 0x400
call fcn.0040209b
mov ebx, eax
mov edi, str.SOFTWAREZSMCUSBCAMERA_
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x409c94
mov edx, ecx
mov esi, edi
mov edi, ebx
push str.Snapshot1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
push reloc.OLEAUT32.dll_SysReAllocString
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004012e0
push 0x40a094
push str.Snapshot2
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.004012e0
push ebx
call fcn.00402090
mov esi, dword [esp + 0x58]
push esi
call fcn.00401240
mov eax, dword [esp + 0x68]
push eax
push esi
call fcn.004012a0
add esp, 0x34
test eax, eax
jne 0x40112d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
lea ecx, [esp + 0x18]
push 0
push ecx
mov esi, eax
call edi
test eax, eax
je 0x40118f
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x10]
push edx
push esi
push eax
call ebx
test eax, eax
jne 0x40117e
lea ecx, [esp + 0x10]
push ecx
call ebp
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
lea eax, [esp + 0x18]
push 0
push eax
call edi
test eax, eax
jne 0x40115b
mov ecx, dword [esp + 0x38]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, dword [esp + 0x10]
pop ebp
pop ebx
add esp, 0x1c
ret 0x10
Function at 0x4012e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
mov eax, dword [esp + 0xc]
push esi
test eax, eax
push edi
mov dword [esp + 8], 1
je 0x401345
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x401345
mov esi, dword [esp + 0x18]
test esi, esi
je 0x401345
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push ecx
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x401345
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0xc]
push edi
push ecx
push 0
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, 1
pop esi
pop ecx
ret
pop edi
xor eax, eax
pop esi
pop ecx
ret

Function at 0x401350
Capabilities:
Create process on windows
Create process suspended

Disassembly:
sub esp, 0x454
push ebx
push esi
push edi
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], eax
or ecx, 0xffffffff
mov dword [esp + 0x10], eax
mov edi, 0x4080e8
mov dword [esp + 0x14], eax
lea edx, [esp + 0x60]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], eax
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x1c], 0x44
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x464]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x4080e4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x60]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x468]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x1c]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
lea edx, [esp + 0x7c]
push 0
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
neg eax
sbb eax, eax
pop edi
pop esi
pop ebx
neg eax
add esp, 0x454
ret
Function at 0x404109
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x408348
cmp edx, dword [eax]
je 0x40412b
add eax, 8
inc ecx
cmp eax, 0x4083d8
jl 0x40411c
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x408348]
jne 0x404259
mov eax, dword [0x40a564]
cmp eax, 1
je 0x404233
test eax, eax
jne 0x40415c
cmp dword [0x408170], 1
je 0x404233
cmp edx, 0xfc
je 0x404259
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x404193
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00403600
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004036f0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4041d6
lea eax, [ebp - 0x1a4]
push eax
call fcn.004036f0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4075a4
push edi
call fcn.00403500
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00403600
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00403610
lea eax, [ebp - 0xa0]
push 0x407584
push eax
call fcn.00403610
push dword [esi + 0x40834c]
lea eax, [ebp - 0xa0]
push eax
call fcn.00403610
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00405bc5
add esp, 0x2c
pop edi
jmp 0x404259
lea eax, [ebp + 8]
lea esi, [esi + 0x40834c]
push 0
push eax
push dword [esi]
call fcn.004036f0
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x10152f64
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, dword fs:[0x2c]
sub esp, 0x30
mov ecx, dword [0x10083f14]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100849b4]
cmp eax, dword [ecx + 4]
jle 0x10153151
push 0x100849b4
call fcn.10192873
add esp, 4
cmp dword [0x100849b4], 0xffffffff
jne 0x10153151
cmp byte [0x1007b7c3], 0
movups xmm0, xmmword [0x1007b7a8]
mov eax, dword [0x1007b7c0]
mov dword [ebp - 0x14], eax
movups xmmword [ebp - 0x2c], xmm0
movq xmm0, qword [0x1007b7b8]
movq qword [ebp - 0x1c], xmm0
je 0x1015313c
xor ecx, ecx
cmp dword [0x10083f18], 2
jl 0x10153114
movaps xmm0, xmmword [0x1007bea0]
movaps xmm4, xmmword [0x1007be10]
movaps xmm3, xmmword [0x1007bee0]
movaps xmm5, xmmword [0x1007be30]
movaps xmmword [ebp - 0x10], xmm0
mov edx, dword [ebp - 0x10]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x2c]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x2c], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x28]
xorps xmm1, xmm0
movd dword [ebp + ecx - 0x28], xmm1
add ecx, 8
cmp ecx, 0x18
jl 0x10153016
cmp ecx, 0x1c
jge 0x1015313c
nop
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x35
xor byte [ebp + ecx - 0x2c], dl
inc ecx
cmp ecx, 0x1c
jl 0x10153114
lea eax, [ebp - 0x2c]
push 0x100849b4
mov dword [0x100849b8], eax
call fcn.10192822
add esp, 4
mov eax, dword [0x100849b8]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0x10153164
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, dword fs:[0x2c]
sub esp, 0x30
mov ecx, dword [0x10083f14]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100849bc]
cmp eax, dword [ecx + 4]
jle 0x10153351
push 0x100849bc
call fcn.10192873
add esp, 4
cmp dword [0x100849bc], 0xffffffff
jne 0x10153351
cmp byte [str.LfYZ_MRRRZ], 0
movups xmm0, xmmword [0x1007b790]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [0x1007b7a0]
movq qword [ebp - 0x18], xmm0
je 0x1015333c
xor ecx, ecx
cmp dword [0x10083f18], 2
jl 0x10153314
movaps xmm0, xmmword [0x1007bea0]
movaps xmm4, xmmword [0x1007be10]
movaps xmm3, xmmword [0x1007bee0]
movaps xmm5, xmmword [0x1007be30]
movaps xmmword [ebp - 0x10], xmm0
mov edx, dword [ebp - 0x10]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x28]
xorps xmm1, xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movd dword [ebp + ecx - 0x28], xmm1
paddd xmm2, xmm4
movaps xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movaps xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x1007be70]
packuswb xmm1, xmm1
movd xmm0, edx
paddb xmm1, xmm0
movd xmm0, dword [ebp + ecx - 0x24]
xorps xmm1, xmm0
movd dword [ebp + ecx - 0x24], xmm1
add ecx, 8
cmp ecx, 0x18
jl 0x10153214
jmp 0x1015333c
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, cl
movsx eax, al
imul eax, eax, 0x32
sub dl, al
add dl, 0x35
xor byte [ebp + ecx - 0x28], dl
inc ecx
cmp ecx, 0x18
jl 0x10153314
lea eax, [ebp - 0x28]
push 0x100849bc
mov dword [0x100849b0], eax
call fcn.10192822
add esp, 4
mov eax, dword [0x100849b0]
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0x10183974
Capabilities:
Encrypt data using openssl rsa

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
mov edi, 0x10074910
mov edx, edi
test ebp, ebp
je 0x101839f2
cmp dword [0x10074910], 0
je 0x101839f2
mov ebx, dword [ebp + 4]
nop
cmp dword [edx + 4], ebx
jne 0x101839e8
mov edx, dword [edx]
mov esi, ebx
mov eax, dword [ebp + 8]
sub esi, 4
jb 0x101839b6
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x101839bb
add edx, 4
add eax, 4
sub esi, 4
jae 0x101839a5
cmp esi, 0xfffffffc
je 0x101839fc
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x101839e8
cmp esi, 0xfffffffd
je 0x101839fc
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x101839e8
cmp esi, 0xfffffffe
je 0x101839fc
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x101839e8
cmp esi, 0xffffffff
je 0x101839fc
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
je 0x101839fc
add edi, 0x14
mov edx, edi
cmp dword [edi], 0
jne 0x10183994
pop edi
pop esi
pop ebp
mov eax, 0xffffffd2
pop ebx
ret
test edi, edi
je 0x101839f2
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [eax], ecx
xor eax, eax
pop ebx
ret
Function at 0x101892d4
Capabilities:
Encode data using xor
Manually build aes constants

Disassembly:
sub esp, 0x80c
mov eax, dword [0x10081240]
xor eax, esp
mov dword [esp + 0x808], eax
push ebx
push ebp
push esi
push edi
xor esi, esi
mov edx, 1
nop
mov al, dl
mov dword [esp + esi*4 + 0x418], edx
add al, al
mov dword [esp + edx*4 + 0x18], esi
movzx ecx, al
movzx eax, dl
and dl, 0x80
xor ecx, eax
movzx eax, dl
neg eax
sbb eax, eax
inc esi
and eax, 0x1b
xor ecx, eax
mov edx, ecx
cmp esi, 0x100
jl 0x101892f4
mov edx, 1
mov esi, 0x10083b90
nop dword [eax + eax]
mov eax, edx
mov dword [esi], edx
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
add dl, dl
and ecx, 0x1b
movzx edx, dl
add esi, 4
xor edx, ecx
cmp esi, 0x10083bb8
jl 0x10189334
mov ecx, 1
mov byte [0x10081990], 0x63
mov byte [0x10082af3], 0
mov dword [esp + 0x10], ecx
nop dword [eax]
mov ecx, dword [esp + ecx*4 + 0x18]
lea eax, [esp + 0x814]
shl ecx, 2
sub eax, ecx
mov ebx, dword [eax]
mov ecx, ebx
sar ecx, 7
lea eax, [ebx + ebx]
or ecx, eax
movzx ecx, cl
mov al, cl
xor ebx, ecx
add al, al
shr ecx, 7
movzx edx, al
or edx, ecx
xor ebx, edx
mov al, dl
add al, al
mov dword [esp + 0x14], ebx
movzx ebx, al
shr edx, 7
or ebx, edx
mov al, bl
add al, al
movzx ecx, al
mov eax, ebx
shr eax, 7
or ecx, eax
mov eax, dword [esp + 0x14]
xor ecx, 0x63
xor ecx, ebx
xor eax, ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x10081990], al
mov byte [eax + 0x10082a90], cl
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x100
jl 0x10189374
xor edi, edi
mov ebx, 0xff
nop dword [eax]
mov cl, byte [edi + 0x10081990]
movzx esi, cl
mov eax, esi
movzx ebp, byte [edi + 0x10082a90]
and al, 0x80
movzx edx, al
neg edx
sbb edx, edx
add cl, cl
movzx eax, cl
and edx, 0x1b
xor edx, eax
mov eax, edx
xor eax, esi
shl eax, 8
xor eax, esi
shl eax, 8
xor eax, esi
shl eax, 8
xor eax, edx
mov ecx, eax
mov dword [edi*4 + 0x10081a90], eax
shl eax, 8
shr ecx, 0x18
or ecx, eax
mov eax, ecx
mov dword [edi*4 + 0x10081e90], ecx
shr eax, 0x18
shl ecx, 8
or eax, ecx
mov dword [edi*4 + 0x10082290], eax
ror eax, 0x18
mov dword [edi*4 + 0x10082690], eax
test ebp, ebp
je 0x101894b2
mov eax, dword [esp + ebp*4 + 0x18]
add eax, dword [esp + 0x44]
cdq
idiv ebx
mov eax, dword [esp + ebp*4 + 0x18]
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + edx*4 + 0x418]
cdq
idiv ebx
mov eax, dword [esp + ebp*4 + 0x18]
add eax, dword [esp + 0x3c]
mov esi, dword [esp + edx*4 + 0x418]
cdq
idiv ebx
mov eax, dword [esp + ebp*4 + 0x18]
mov ebp, 0xff
add eax, dword [esp + 0x50]
mov ebx, dword [esp + edx*4 + 0x418]
cdq
idiv ebp
mov eax, dword [esp + edx*4 + 0x418]
jmp 0x101894ba
xor ecx, ecx
xor esi, esi
xor ebx, ebx
xor eax, eax
shl ecx, 8
xor ecx, esi
shl ecx, 8
xor ecx, ebx
mov ebx, 0xff
shl ecx, 8
xor ecx, eax
mov edx, ecx
mov dword [edi*4 + 0x10082b90], ecx
shr edx, 0x18
shl ecx, 8
or edx, ecx
mov eax, edx
mov dword [edi*4 + 0x10082f90], edx
shr eax, 0x18
shl edx, 8
or eax, edx
mov dword [edi*4 + 0x10083390], eax
ror eax, 0x18
mov dword [edi*4 + 0x10083790], eax
inc edi
cmp edi, 0x100
jl 0x101893f4
mov ecx, dword [esp + 0x818]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101927e4
add esp, 0x80c
ret
Function at 0x10189534
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 0xc]
sub esp, 0x10
test dl, 0xf
je 0x10189549
mov eax, 0xffffffde
add esp, 0x10
ret
push ebx
push ebp
push esi
push edi
test edx, edx
je 0x1018967b
cmp dword [esp + 0x28], 0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
jne 0x101895e2
mov ebp, dword [esp + 0x34]
mov edi, ebx
sub edi, esi
movups xmm0, xmmword [ebp]
push esi
push ebp
push dword [esp + 0x2c]
movups xmmword [esp + 0x1c], xmm0
call fcn.1018b374
add esp, 0xc
test eax, eax
jne 0x1018967d
lea eax, [ebx + 0xf]
cmp esi, eax
ja 0x101895b4
lea eax, [esi + 0xf]
cmp eax, ebx
jb 0x101895b4
mov eax, esi
mov edx, 0x10
nop dword [eax]
mov cl, byte [edi + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x101895a4
jmp 0x101895c0
movups xmm1, xmmword [ebx]
movups xmm0, xmmword [esi]
xorps xmm1, xmm0
movups xmmword [esi], xmm1
movups xmm0, xmmword [esp + 0x10]
add esi, 0x10
add ebp, 0x10
sub edi, 0x10
sub dword [esp + 0x2c], 0x10
movups xmmword [ebx], xmm0
jne 0x1018956c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
mov edi, dword [esp + 0x34]
mov ebp, ebx
mov edx, dword [esp + 0x24]
sub ebp, edi
nop word [eax + eax]
lea eax, [edi + 0xf]
lea ecx, [esi + 0xf]
cmp esi, eax
ja 0x10189602
cmp ecx, edi
jae 0x1018960d
lea eax, [ebx + 0xf]
cmp esi, eax
ja 0x10189634
cmp ecx, ebx
jb 0x10189634
mov ebx, esi
mov ecx, edi
sub ebx, edi
mov edx, 0x10
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
mov byte [ebx + ecx - 1], al
sub edx, 1
jne 0x10189618
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
jmp 0x10189640
movups xmm1, xmmword [ebx]
movups xmm0, xmmword [edi]
xorps xmm1, xmm0
movups xmmword [esi], xmm1
cmp dword [esp + 0x28], 1
push esi
push esi
push edx
jne 0x10189651
call fcn.1018bba4
jmp 0x10189656
call fcn.1018b374
add esp, 0xc
test eax, eax
jne 0x1018967d
movups xmm0, xmmword [esi]
mov edx, dword [esp + 0x24]
add edi, 0x10
sub ebp, 0x10
add esi, 0x10
sub dword [esp + 0x2c], 0x10
movups xmmword [ebx], xmm0
jne 0x101895f4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x10191844
Capabilities:
Check for software breakpoints

Disassembly:
mov edx, dword [esp + 4]
push esi
mov cl, byte [edx]
test cl, cl
je 0x10191859
cmp cl, 0x90
je 0x10191859
cmp cl, 0xcc
jne 0x10191877
mov esi, dword [esp + 0xc]
mov eax, 1
cmp esi, eax
jbe 0x10191870
cmp byte [eax + edx], cl
jne 0x10191877
inc eax
cmp eax, esi
jb 0x10191866
mov eax, 1
pop esi
ret
xor eax, eax
pop esi
ret