joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401508
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push esi
push edi
push 0x11
xor eax, eax
pop ecx
lea edi, [ebp - 0x54]
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x10]
mov dword [ebp - 0x54], 0x44
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x28], 1
push eax
push 0x104
mov word [ebp - 0x24], 5
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x25c]
push eax
call esi
xor edi, edi
cmp word [ebp + eax*2 - 0x25e], 0x5c
jne 0x401577
lea eax, [ebp - 0x25c]
push eax
call esi
mov word [ebp + eax*2 - 0x25e], di
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x54]
push eax
push edi
push edi
push edi
push edi
push edi
push edi
lea eax, [ebp - 0x25c]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 5
pop edi
neg eax
sbb eax, eax
pop esi
inc eax
leave
ret

Function at 0x4015a5
Capabilities:
Read file on windows

Disassembly:
push esi
push 0x403064
push dword [esp + 0xc]
call dword [sym.imp.MSVCRT.dll__wfopen]
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x4015bf
pop esi
ret
push edi
push 0
push 0xfd794
push esi
call dword [sym.imp.MSVCRT.dll_fseek]
mov edi, dword [esp + 0x1c]
push 0xc
pop ecx
xor eax, eax
push esi
push 0x30
rep stosd dword es:[edi], eax
push 1
pop edi
push edi
push dword [esp + 0x28]
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x1c
cmp eax, 0x30
je 0x4015f4
xor edi, edi
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
pop ecx
mov eax, edi
pop edi
pop esi
ret

Function at 0x401601
Capabilities:
Read file on windows

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0x14]
push edi
push esi
call dword [sym.imp.MSVCRT.dll_malloc]
mov ecx, esi
mov ebx, eax
mov edx, ecx
xor eax, eax
mov edi, ebx
push 0
push dword [esp + 0x1c]
shr ecx, 2
push dword [esp + 0x1c]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0x10
cmp eax, 0xffffffff
je 0x401652
push dword [esp + 0x10]
push esi
push 1
push ebx
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp eax, esi
je 0x40165e
push ebx
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
xor eax, eax
jmp 0x401660
mov eax, ebx
pop edi
pop esi
pop ebx
ret
Function at 0x40103c
Capabilities:
Terminate process

Disassembly:
jmp 0x41561f
push esi
mov esi, ecx
cmp dword [esi], 0
jne 0x41565e
push 0x41f8f8
push dword [esp + 0xc]
call dword [sym.imp.MSVCR100.dll_fopen]
pop ecx
pop ecx
mov dword [esi], eax
test eax, eax
jne 0x41565e
push dword [esp + 8]
mov eax, dword [esi + 0x30]
push str.Error:_Could_not_open_jar_file:__s_n
push dword [eax + 0x68]
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push 3
call dword [sym.imp.MSVCR100.dll_exit]
pop esi
ret 4

Function at 0x401186
Capabilities:
Get common file path

Disassembly:
jmp 0x41491f
push ebp
lea ebp, [esp - 0x1f4]
sub esp, 0x274
mov eax, dword [0x421df4]
xor eax, ebp
mov dword [ebp + 0x1f0], eax
push esi
mov esi, ecx
cmp dword [esi + 0x70], 0
push edi
mov edi, 0x41ee14
jne 0x41494c
mov dword [esi + 0x70], edi
mov eax, dword [esi + 0x70]
cmp eax, dword [esi + 0x6c]
je 0x414a82
push 0x41cb45
push eax
mov dword [esi + 0x6c], eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x41497d
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
jmp 0x414a82
push edi
push dword [esi + 0x70]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x414997
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x20
jmp 0x414975
mov eax, dword [esi + 0x70]
cmp byte [eax], 0
mov edi, dword [sym.imp.MSVCR100.dll_fopen]
push ebx
mov ebx, 0x41f670
je 0x4149bc
push ebx
push eax
call edi
pop ecx
pop ecx
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a81
lea eax, [ebp - 0x7c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, 1
jl 0x4149d7
cmp eax, 0x104
jle 0x4149e8
lea eax, [ebp - 0x7c]
push 0x41f66c
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x88]
push str._sunpack.log
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x14
mov dword [esi + 0x68], eax
test eax, eax
je 0x414a22
lea eax, [ebp + 0x88]
push eax
mov ecx, esi
call fcn.00401280
jmp 0x414a7b
lea eax, [ebp - 0x7c]
push str.upkg
push eax
call dword [sym.imp.MSVCR100.dll__tempnam]
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
test eax, eax
je 0x414a81
push eax
lea eax, [ebp + 0x88]
push 0x41f650
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
push dword [ebp - 0x80]
call dword [sym.imp.MSVCR100.dll_free]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x18
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a12
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
mov eax, 0x41cb45
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], eax
pop ebx
mov ecx, dword [ebp + 0x1f0]
pop edi
xor ecx, ebp
pop esi
call fcn.00416c99
add ebp, 0x1f4
leave
ret
Function at 0x401212
Capabilities:
Terminate process
Write file on windows

Disassembly:
jmp 0x4155b3
push esi
push edi
mov edi, dword [esp + 0x10]
mov esi, ecx
jmp 0x4155dc
push dword [esi]
push edi
push 1
push dword [esp + 0x18]
call dword [sym.imp.MSVCR100.dll_fwrite]
add esp, 0x10
test eax, eax
jle 0x4155e5
add dword [esi + 0x20], eax
add dword [esp + 0xc], eax
sub edi, eax
test edi, edi
jg 0x4155bd
pop edi
pop esi
ret 8
call dword [sym.imp.MSVCR100.dll__errno]
push dword [eax]
mov eax, dword [esi + 0x30]
push str.Error:_write_on_output_file_failed_err_d_n
push dword [eax + 0x68]
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push 1
call dword [sym.imp.MSVCR100.dll_exit]
int3

Function at 0x40145b
Capabilities:
Terminate process

Disassembly:
jmp 0x40da35
mov eax, dword [esp + 4]
test eax, eax
jne 0x40da42
mov eax, str.error_unpacking_archive
cmp byte [eax], 0x40
jne 0x40da48
inc eax
push eax
push 0x41ec04
push dword [ecx + 0x68]
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
int3
Function at 0x40373b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push edi
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xc], edi
jmp 0x40374e
mov edi, dword [ebp - 0xc]
mov ebx, dword [esi + 0x3c]
sub ebx, dword [esi + 0x74]
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x2c]
sub ebx, eax
lea ecx, [edi + ecx - 0x106]
mov dword [ebp - 8], ebx
cmp eax, ecx
jb 0x4037d2
mov eax, dword [esi + 0x38]
push edi
lea ecx, [eax + edi]
push ecx
push eax
call sub.MSVCR100.dll_memcpy
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x44]
sub dword [esi + 0x70], edi
sub dword [esi + 0x6c], edi
add esp, 0xc
sub dword [esi + 0x5c], edi
mov dword [ebp - 4], eax
lea eax, [ecx + eax*2]
sub eax, 2
movzx ecx, word [eax]
mov edx, ecx
sub edx, edi
cmp ecx, edi
sbb ecx, ecx
not ecx
and ecx, edx
dec dword [ebp - 4]
mov word [eax], cx
jne 0x403790
mov eax, dword [esi + 0x40]
mov dword [ebp - 4], edi
lea eax, [eax + edi*2]
sub eax, 2
movzx ecx, word [eax]
mov edx, ecx
sub edx, edi
cmp ecx, edi
sbb ecx, ecx
not ecx
and ecx, edx
dec dword [ebp - 4]
mov word [eax], cx
jne 0x4037b3
add ebx, edi
mov dword [ebp - 8], ebx
mov edi, dword [esi]
cmp dword [edi + 4], 0
je 0x40388b
mov ebx, dword [esi + 0x74]
add ebx, dword [esi + 0x6c]
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 8]
add ebx, dword [esi + 0x38]
mov dword [ebp - 4], eax
cmp eax, ecx
jbe 0x4037f7
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
test ecx, ecx
jne 0x403802
xor eax, eax
jmp 0x40384f
sub eax, ecx
mov dword [edi + 4], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x18]
cmp eax, 1
jne 0x40381f
push ecx
push dword [edi]
push dword [edi + 0x38]
call fcn.00401424
jmp 0x40382f
cmp eax, 2
jne 0x403835
push ecx
push dword [edi]
push dword [edi + 0x38]
call fcn.00401028
mov dword [edi + 0x38], eax
add esp, 0xc
push dword [ebp - 4]
push dword [edi]
push ebx
call sub.MSVCR100.dll_memcpy
mov eax, dword [ebp - 4]
add dword [edi], eax
add esp, 0xc
add dword [edi + 8], eax
adc dword [edi + 0xc], 0
add dword [esi + 0x74], eax
mov edi, dword [esi + 0x74]
cmp edi, 3
jb 0x403877
mov edx, dword [esi + 0x6c]
add edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x58]
movzx eax, byte [edx]
mov dword [esi + 0x48], eax
shl eax, cl
movzx ecx, byte [edx + 1]
xor eax, ecx
and eax, dword [esi + 0x54]
mov dword [esi + 0x48], eax
cmp edi, 0x106
jae 0x40388b
mov eax, dword [esi]
cmp dword [eax + 4], 0
jne 0x40374b
pop edi
pop ebx
leave
ret
Function at 0x41491f
Capabilities:
Get common file path

Disassembly:
jmp 0x41491f
push ebp
lea ebp, [esp - 0x1f4]
sub esp, 0x274
mov eax, dword [0x421df4]
xor eax, ebp
mov dword [ebp + 0x1f0], eax
push esi
mov esi, ecx
cmp dword [esi + 0x70], 0
push edi
mov edi, 0x41ee14
jne 0x41494c
mov dword [esi + 0x70], edi
mov eax, dword [esi + 0x70]
cmp eax, dword [esi + 0x6c]
je 0x414a82
push 0x41cb45
push eax
mov dword [esi + 0x6c], eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x41497d
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
jmp 0x414a82
push edi
push dword [esi + 0x70]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x414997
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x20
jmp 0x414975
mov eax, dword [esi + 0x70]
cmp byte [eax], 0
mov edi, dword [sym.imp.MSVCR100.dll_fopen]
push ebx
mov ebx, 0x41f670
je 0x4149bc
push ebx
push eax
call edi
pop ecx
pop ecx
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a81
lea eax, [ebp - 0x7c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, 1
jl 0x4149d7
cmp eax, 0x104
jle 0x4149e8
lea eax, [ebp - 0x7c]
push 0x41f66c
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x88]
push str._sunpack.log
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x14
mov dword [esi + 0x68], eax
test eax, eax
je 0x414a22
lea eax, [ebp + 0x88]
push eax
mov ecx, esi
call fcn.00401280
jmp 0x414a7b
lea eax, [ebp - 0x7c]
push str.upkg
push eax
call dword [sym.imp.MSVCR100.dll__tempnam]
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
test eax, eax
je 0x414a81
push eax
lea eax, [ebp + 0x88]
push 0x41f650
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
push dword [ebp - 0x80]
call dword [sym.imp.MSVCR100.dll_free]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x18
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a12
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
mov eax, 0x41cb45
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], eax
pop ebx
mov ecx, dword [ebp + 0x1f0]
pop edi
xor ecx, ebp
pop esi
call fcn.00416c99
add ebp, 0x1f4
leave
ret
Function at 0x41493a
Capabilities:
Get common file path

Disassembly:
jmp 0x41491f
push ebp
lea ebp, [esp - 0x1f4]
sub esp, 0x274
mov eax, dword [0x421df4]
xor eax, ebp
mov dword [ebp + 0x1f0], eax
push esi
mov esi, ecx
cmp dword [esi + 0x70], 0
push edi
mov edi, 0x41ee14
jne 0x41494c
mov dword [esi + 0x70], edi
mov eax, dword [esi + 0x70]
cmp eax, dword [esi + 0x6c]
je 0x414a82
push 0x41cb45
push eax
mov dword [esi + 0x6c], eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x41497d
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
jmp 0x414a82
push edi
push dword [esi + 0x70]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x414997
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x20
jmp 0x414975
mov eax, dword [esi + 0x70]
cmp byte [eax], 0
mov edi, dword [sym.imp.MSVCR100.dll_fopen]
push ebx
mov ebx, 0x41f670
je 0x4149bc
push ebx
push eax
call edi
pop ecx
pop ecx
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a81
lea eax, [ebp - 0x7c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, 1
jl 0x4149d7
cmp eax, 0x104
jle 0x4149e8
lea eax, [ebp - 0x7c]
push 0x41f66c
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
pop ecx
pop ecx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x88]
push str._sunpack.log
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x14
mov dword [esi + 0x68], eax
test eax, eax
je 0x414a22
lea eax, [ebp + 0x88]
push eax
mov ecx, esi
call fcn.00401280
jmp 0x414a7b
lea eax, [ebp - 0x7c]
push str.upkg
push eax
call dword [sym.imp.MSVCR100.dll__tempnam]
pop ecx
pop ecx
mov dword [ebp - 0x80], eax
test eax, eax
je 0x414a81
push eax
lea eax, [ebp + 0x88]
push 0x41f650
push eax
call dword [sym.imp.MSVCR100.dll_sprintf]
push dword [ebp - 0x80]
call dword [sym.imp.MSVCR100.dll_free]
lea eax, [ebp + 0x88]
push ebx
push eax
call edi
add esp, 0x18
mov dword [esi + 0x68], eax
test eax, eax
jne 0x414a12
call dword [sym.imp.MSVCR100.dll___iob_func]
add eax, 0x40
mov dword [esi + 0x68], eax
mov eax, 0x41cb45
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], eax
pop ebx
mov ecx, dword [ebp + 0x1f0]
pop edi
xor ecx, ebp
pop esi
call fcn.00416c99
add ebp, 0x1f4
leave
ret

Function at 0x4153e1
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x421df4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
push esi
call sub.MSVCR100.dll_strlen
pop ecx
cmp eax, dword [ebp + 8]
jbe 0x415449
lea eax, [ebp - 0x108]
push esi
push eax
call sub.MSVCR100.dll_strcpy
lea eax, [ebp - 0x108]
push 0x2f
push eax
call dword [sym.imp.MSVCR100.dll_strrchr]
add esp, 0x10
test eax, eax
je 0x415449
mov byte [eax], 0
lea eax, [ebp - 0x108]
push eax
push dword [ebp + 8]
call fcn.004012fd
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.MSVCR100.dll__mkdir]
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00416c99
leave
ret
Function at 0x41561f
Capabilities:
Terminate process

Disassembly:
jmp 0x41561f
push esi
mov esi, ecx
cmp dword [esi], 0
jne 0x41565e
push 0x41f8f8
push dword [esp + 0xc]
call dword [sym.imp.MSVCR100.dll_fopen]
pop ecx
pop ecx
mov dword [esi], eax
test eax, eax
jne 0x41565e
push dword [esp + 8]
mov eax, dword [esi + 0x30]
push str.Error:_Could_not_open_jar_file:__s_n
push dword [eax + 0x68]
call dword [sym.imp.MSVCR100.dll_fprintf]
add esp, 0xc
push 3
call dword [sym.imp.MSVCR100.dll_exit]
pop esi
ret 4

Function at 0x416303
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push str.UNPACK200_FLAGS
call dword [sym.imp.MSVCR100.dll_getenv]
pop ecx
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
cmp eax, ecx
je 0x41635e
push eax
call dword [sym.imp.MSVCR100.dll__strdup]
mov esi, dword [sym.imp.MSVCR100.dll_strtok]
mov edi, 0x41fce4
push edi
push eax
call esi
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x41635b
push 4
lea ecx, [ebp - 0xc]
call fcn.00401159
push edi
push 0
mov dword [eax], ebx
call esi
pop ecx
pop ecx
jmp 0x416340
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp + 8]
shr ecx, 2
lea eax, [ecx + ebx + 1]
push 4
push eax
call fcn.0040161d
push eax
call fcn.004011c2
mov ecx, dword [ebp - 8]
mov esi, eax
shr ecx, 2
add esp, 0xc
xor eax, eax
mov dword [ebp + 8], esi
test ecx, ecx
jle 0x4163a0
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + eax*4]
mov dword [esi], ecx
mov ecx, dword [ebp - 8]
add esi, 4
inc eax
shr ecx, 2
cmp eax, ecx
jl 0x41638a
xor edi, edi
inc edi
cmp ebx, edi
jle 0x4163be
mov eax, dword [ebp + 0xc]
push dword [eax + edi*4]
call dword [sym.imp.MSVCR100.dll__strdup]
mov dword [esi], eax
add esi, 4
inc edi
pop ecx
cmp edi, ebx
jl 0x4163a7
and dword [esi], 0
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x10]
pop edi
shr eax, 2
cmp dword [ebp - 4], 0
pop esi
mov dword [ecx], eax
pop ebx
je 0x4163dd
lea ecx, [ebp - 0xc]
call fcn.00401069
mov eax, dword [ebp + 8]
leave
ret
Function at 0x416c99
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x421df4]
jne 0x416ca3
repz ret
jmp fcn.004170e0
Function at 0xaa10c0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Manually build aes constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0xacb520]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ecx, ecx
mov al, 1
push edi
lea ebx, [ebx]
movzx edx, al
mov byte [ebp + edx - 0x104], cl
mov dl, al
and dl, 0x80
mov byte [ebp + ecx - 0x204], al
inc ecx
neg dl
sbb dl, dl
mov bl, al
and dl, 0x1b
add bl, bl
xor dl, bl
xor al, dl
cmp ecx, 0x100
jl 0xaa10e0
mov al, 1
mov ecx, 0xb0f380
movzx edx, al
shl edx, 0x18
mov dword [ecx], edx
mov dl, al
and dl, 0x80
add ecx, 4
neg dl
sbb dl, dl
and dl, 0x1b
add al, al
xor al, dl
cmp ecx, 0xb0f3a8
jl 0xaa1115
mov dword [0xb0e780], 0x63
mov dword [0xb1194c], 0
mov edx, 1
jmp 0xaa1160
movzx eax, byte [ebp + edx - 0x104]
lea ecx, [ebp - 0x105]
sub ecx, eax
mov cl, byte [ecx]
mov al, cl
rol al, 1
xor cl, al
rol al, 1
xor cl, al
rol al, 1
xor cl, al
rol al, 1
xor al, cl
xor al, 0x63
movzx eax, al
mov dword [edx*4 + 0xb0e780], eax
mov dword [eax*4 + 0xb117c0], edx
inc edx
cmp edx, 0x100
jl 0xaa1160
xor ecx, ecx
mov dl, byte [ecx + 0xb0e780]
mov al, dl
and al, 0x80
neg al
sbb al, al
and al, 0x1b
mov bl, dl
add bl, bl
xor al, bl
movzx esi, al
movzx edx, dl
mov eax, esi
shl eax, 8
xor eax, edx
shl eax, 8
xor eax, edx
shl eax, 8
xor eax, esi
xor eax, edx
mov dword [ecx + 0xb113c0], eax
ror eax, 8
mov dword [ecx + 0xb10fc0], eax
ror eax, 8
mov dword [ecx + 0xb10bc0], eax
ror eax, 8
mov dword [ecx + 0xb107c0], eax
mov al, byte [ecx + 0xb117c0]
test al, al
je 0xaa126f
movzx edx, al
movzx esi, byte [ebp + edx - 0x104]
movzx eax, byte [ebp - 0xf9]
add eax, esi
cdq
mov edi, 0xff
idiv edi
movzx eax, byte [ebp + edx - 0x204]
mov dword [ebp - 0x208], eax
movzx eax, byte [ebp - 0xf7]
add eax, esi
cdq
idiv edi
movzx eax, byte [ebp - 0xfb]
add eax, esi
movzx ebx, byte [ebp + edx - 0x204]
cdq
idiv edi
movzx eax, byte [ebp - 0xf6]
add eax, esi
mov esi, 0xff
movzx edi, byte [ebp + edx - 0x204]
cdq
idiv esi
movzx eax, byte [ebp + edx - 0x204]
mov edx, dword [ebp - 0x208]
jmp 0xaa1277
xor edx, edx
xor ebx, ebx
xor edi, edi
xor eax, eax
shl eax, 8
xor eax, edi
shl eax, 8
xor eax, ebx
shl eax, 8
xor eax, edx
mov dword [ecx + 0xb103c0], eax
ror eax, 8
mov dword [ecx + 0xb0ffc0], eax
ror eax, 8
mov dword [ecx + 0xb0ef80], eax
ror eax, 8
mov dword [ecx + 0xb0eb80], eax
add ecx, 4
cmp ecx, 0x400
jl 0xaa11a2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00ab13cb
mov esp, ebp
pop ebp
ret
Function at 0xaa3470
Capabilities:
Hash data using sha256

Disassembly:
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0x6a09e667
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x10], 0x3c6ef372
mov dword [eax + 0x14], 0xa54ff53a
mov dword [eax + 0x18], 0x510e527f
mov dword [eax + 0x1c], 0x9b05688c
mov dword [eax + 0x20], 0x1f83d9ab
mov dword [eax + 0x24], 0x5be0cd19
ret
Function at 0xaa5ee0
Capabilities:
Get token membership

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xac8788
push 0xab7350
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0xacb520]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], ebx
mov word [ebp - 0x20], 0x500
lea eax, [ebp - 0x2c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
mov dword [ebp - 0x28], eax
cmp eax, ebx
je 0xaa5f7b
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x2c]
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
test eax, eax
jne 0xaa5f61
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [ebp - 0x28]
jmp 0xaa5f7b
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00ab13cb
mov esp, ebp
pop ebp
ret

Function at 0xaa5fa0
Capabilities:
Get session user name
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xac88c8
push 0xab7350
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0xacb520]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor eax, eax
xor esi, esi
mov dword [ebp - 4], eax
mov byte [ebp - 0x120], al
push 0x103
push eax
lea eax, [ebp - 0x11f]
push eax
call fcn.00ab33e0
add esp, 0xc
mov dword [ebp - 0x12c], 0x104
lea ecx, [ebp - 0x12c]
push ecx
lea edx, [ebp - 0x120]
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
je 0xaa607d
mov edx, 6
mov dword [ebp - 0x130], edx
lea ecx, [ebp - 0x120]
or eax, 0xffffffff
mov dword [ebp - 0x124], ecx
mov esi, edx
dec edx
mov dword [ebp - 0x130], edx
test esi, esi
je 0xaa605c
movzx esi, byte [ecx]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0xac71c8]
inc ecx
jmp 0xaa6031
not eax
xor ecx, ecx
cmp eax, 0x39b5d60d
sete cl
mov esi, ecx
jmp 0xaa6077
mov dword [ebp - 0x128], esi
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00ab13cb
mov esp, ebp
pop ebp
ret
Function at 0xaa6e80
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor esi, esi
push esi
mov ecx, 0xb0c680
call fcn.00ab025b
mov ebx, eax
mov dword [ebp - 4], 1
test ebx, ebx
je 0xaa6f34
test esi, esi
jne 0xaa6f34
mov eax, dword [ebp + 8]
shr eax, 4
inc eax
push esi
movzx ecx, ax
push ecx
push 6
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov edi, eax
test edi, edi
je 0xaa6f18
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0xaa6f12
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0xaa6f12
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 8]
add eax, esi
and ecx, 0xf
jbe 0xaa6f01
cmp esi, eax
jae 0xaa6f05
dec ecx
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0xaa6ef3
cmp esi, eax
jb 0xaa6f09
xor eax, eax
jmp 0xaa6f12
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
mov esi, eax
test eax, eax
jne 0xaa6f3d
mov edi, dword [ebp - 4]
push edi
mov ecx, 0xb0c680
call fcn.00ab025b
mov ebx, eax
inc edi
mov dword [ebp - 4], edi
test ebx, ebx
jne 0xaa6ea5
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0xaa7040
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
mov eax, dword [ebp + 8]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0xaa7058
pop edi
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0xaa708a
mov ecx, dword [ebp + 8]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
and edi, 0xf
jbe 0xaa7086
cmp esi, eax
jae 0xaa708a
dec edi
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0xaa7078
cmp esi, eax
jb 0xaa7090
pop esi
xor eax, eax
pop edi
pop ebp
ret
movzx eax, word [esi]
neg eax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebp
ret