joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44b530
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
sub esp, 0xc
xor eax, eax
and edx, 7
cmp ecx, 5
jae 0x44b549
mov esp, ebp
pop ebp
ret
add dword [ebp + 0xc], 5
push ebx
push esi
mov esi, dword [ebp + 8]
lea ebx, [esi + ecx - 4]
push edi
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], ebx
mov esi, dword [ebp + 8]
lea edi, [eax + esi]
cmp edi, ebx
jae 0x44b57d
jmp 0x44b570
mov al, byte [edi]
and al, 0xfe
cmp al, 0xe8
je 0x44b57d
inc edi
cmp edi, ebx
jb 0x44b570
mov eax, edi
sub eax, esi
mov ecx, eax
sub ecx, dword [ebp - 8]
cmp edi, ebx
jae 0x44b6a2
cmp ecx, 3
jbe 0x44b59a
xor esi, esi
mov dword [ebp - 4], esi
jmp 0x44b5dd
dec ecx
shl edx, cl
and edx, 7
mov dword [ebp - 4], edx
je 0x44b5da
mov ecx, edx
movzx edx, byte [ecx + 0x4f69a0]
mov esi, edi
sub esi, edx
cmp byte [ecx + 0x4f6998], 0
mov dl, byte [esi + 4]
je 0x44b5c7
test dl, dl
je 0x44b5c7
cmp dl, 0xff
jne 0x44b5da
and ecx, 3
add ecx, ecx
or ecx, 1
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
inc eax
mov edx, ecx
jmp 0x44b561
mov esi, dword [ebp - 4]
mov cl, byte [edi + 4]
mov dword [ebp - 8], eax
test cl, cl
je 0x44b5ff
cmp cl, 0xff
je 0x44b5ff
and esi, 3
add esi, esi
or esi, 1
mov dword [ebp - 4], esi
inc eax
mov edx, esi
jmp 0x44b561
movzx edx, cl
movzx ecx, byte [edi + 3]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 2]
shl edx, 8
or edx, ecx
movzx ecx, byte [edi + 1]
shl edx, 8
or edx, ecx
lea ecx, [ecx]
cmp dword [ebp + 0x14], 0
je 0x44b62e
lea ebx, [edx + eax]
add ebx, dword [ebp + 0xc]
jmp 0x44b635
sub edx, eax
sub edx, dword [ebp + 0xc]
mov ebx, edx
test esi, esi
je 0x44b672
movzx esi, byte [esi + 0x4f69a0]
add esi, esi
add esi, esi
add esi, esi
mov ecx, 0x18
sub ecx, esi
mov edx, ebx
shr edx, cl
mov cl, dl
test cl, cl
je 0x44b65c
cmp cl, 0xff
jne 0x44b672
mov ecx, 0x20
sub ecx, esi
mov esi, dword [ebp - 4]
mov edx, 1
shl edx, cl
dec edx
xor edx, ebx
jmp 0x44b620
mov ecx, ebx
shr ecx, 0x18
and cl, 1
dec cl
not cl
mov byte [edi + 4], cl
mov edx, ebx
shr edx, 0x10
mov ecx, ebx
shr ecx, 8
mov byte [edi + 3], dl
mov edx, dword [ebp - 4]
mov byte [edi + 1], bl
mov ebx, dword [ebp - 0xc]
mov byte [edi + 2], cl
add eax, 5
jmp 0x44b561
pop edi
pop esi
pop ebx
cmp ecx, 3
jbe 0x44b6b5
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret
dec ecx
shl edx, cl
mov ecx, dword [ebp + 0x10]
and edx, 7
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret
Function at 0x44bcc0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
xor edx, edx
push esi
mov dword [eax + 0x30], edx
mov dword [eax + 0x4c], edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x2c], 0x20
mov dword [eax + 0x54], 1
mov dword [eax + 0x48], 4
mov dword [eax + 0x58], edx
lea esi, [eax + 0x70]
mov eax, edx
and eax, 1
dec eax
not eax
and eax, 0xedb88320
mov ecx, edx
shr ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, 0xedb88320
shr eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
shr ecx, 1
not eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, 0xedb88320
shr eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
shr ecx, 1
not eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, 0xedb88320
shr eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
shr ecx, 1
not eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, 0xedb88320
shr eax, 1
xor ecx, eax
mov dword [esi], ecx
inc edx
add esi, 4
cmp edx, 0x100
jb 0x44bce7
pop esi
ret

Function at 0x451550
Capabilities:
Encode data using xor

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

Function at 0x451590
Capabilities:
Encode data using xor

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
movzx eax, word [ebx]
mov ecx, eax
shr ecx, 4
mov edx, dword [esi + ecx*4]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0xc], edx
mov edx, ecx
xor eax, 0x7f0
xor ecx, 0x7f0
shr edx, 4
mov edx, dword [esi + edx*4]
shr eax, 4
mov eax, dword [esi + eax*4]
shr ecx, 4
mov ecx, dword [esi + ecx*4]
add edx, eax
add ecx, eax
mov dword [ebp - 0x10], edx
push edi
mov dword [ebp - 0x14], ecx
xor edx, edx
jmp 0x4518a0
cmp edx, dword [ebp + 0x10]
jae 0x4519c0
mov eax, edx
xor edi, edi
or eax, 8
mov dword [ebp - 4], edi
cmp eax, 1
je 0x4518e9
mov edi, dword [ebp + 0xc]
mov ecx, eax
and eax, 1
shr ecx, 1
lea edi, [ecx + edi*8]
movzx edi, word [ebx + edi*2 + 4]
neg eax
sar eax, 4
shr edi, 4
and eax, 0x7f
xor edi, eax
mov eax, edi
mov edi, dword [ebp - 4]
add edi, dword [esi + eax*4]
mov eax, ecx
mov dword [ebp - 4], edi
cmp eax, 1
jne 0x4518b8
add edi, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x14]
mov dword [ecx + edx*4], edi
inc edx
cmp edx, 8
jb 0x4518a0
cmp edx, 0x10
jae 0x45196a
lea eax, [edx - 8]
mov dword [ebp - 8], eax
cmp edx, dword [ebp + 0x10]
jae 0x4519c0
xor edi, edi
or eax, 8
mov dword [ebp - 4], edi
cmp eax, 1
je 0x451954
lea esp, [esp]
mov edi, dword [ebp + 0xc]
mov ecx, eax
and eax, 1
shr ecx, 1
lea edi, [ecx + edi*8]
movzx edi, word [ebx + edi*2 + 0x104]
neg eax
sar eax, 4
shr edi, 4
and eax, 0x7f
xor edi, eax
mov eax, edi
mov edi, dword [ebp - 4]
add edi, dword [esi + eax*4]
mov eax, ecx
mov dword [ebp - 4], edi
cmp eax, 1
jne 0x451920
add edi, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
mov dword [ecx + edx*4], edi
inc edx
inc eax
mov dword [ebp - 8], eax
cmp edx, 0x10
jb 0x451903
cmp edx, dword [ebp + 0x10]
jae 0x4519c0
lea eax, [edx - 0x10]
mov dword [ebp - 8], eax
or eax, 0x100
xor edi, edi
cmp eax, 1
je 0x4519aa
mov ecx, eax
and eax, 1
shr ecx, 1
movzx ebx, word [ebx + ecx*2 + 0x204]
neg eax
sar eax, 4
shr ebx, 4
and eax, 0x7f
xor ebx, eax
add edi, dword [esi + ebx*4]
mov ebx, dword [ebp + 8]
mov eax, ecx
cmp eax, 1
jne 0x451981
add edi, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
mov dword [ecx + edx*4], edi
inc edx
inc eax
mov dword [ebp - 8], eax
cmp edx, dword [ebp + 0x10]
jb 0x451975
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x453470
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
lea eax, [edi + 0x32550]
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
lea ebx, [ebx]
xor edx, edx
lea ecx, [edx + 1]
mov dword [ebp - 4], 4
lea esp, [esp]
movzx ebx, word [edi + ecx*2 + 0x32bf4]
mov eax, esi
and eax, 1
mov edi, eax
neg edi
sar edi, 4
and edi, 0x7f
shr ebx, 4
xor ebx, edi
mov edi, dword [ebp + 8]
add edx, dword [edi + ebx*4 + 0x30ea0]
add ecx, ecx
shr esi, 1
or ecx, eax
dec dword [ebp - 4]
jne 0x4534a0
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
inc esi
mov dword [eax], edx
add eax, 4
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], eax
cmp esi, 0x10
jb 0x453490
mov dword [edi + 0x32590], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x453500
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x521390]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 4
mov dword [ebp - 0x208], edi
movzx ebx, byte [edx + edi + 0x306a0]
mov ecx, ebx
mov esi, ebx
and esi, 1
shr ecx, 1
dec ecx
or esi, 2
shl esi, cl
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x210], 1
sub edi, esi
mov dword [ebp - 0x214], ecx
test ecx, ecx
je 0x4535b3
jmp 0x453566
mov ebx, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x210]
sub ecx, ebx
add ecx, esi
movzx ecx, word [edx + ecx*2 + 0x32b0e]
mov eax, edi
and eax, 1
mov ebx, eax
neg ebx
shr ecx, 4
sar ebx, 4
and ebx, 0x7f
xor ecx, ebx
mov ecx, dword [edx + ecx*4 + 0x30ea0]
add dword [ebp - 0x20c], ecx
mov ecx, dword [ebp - 0x210]
add ecx, ecx
or ecx, eax
shr edi, 1
dec dword [ebp - 0x214]
mov dword [ebp - 0x210], ecx
jne 0x453560
mov edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x20c]
mov dword [ebp + edi*4 - 0x204], eax
inc edi
mov dword [ebp - 0x208], edi
cmp edi, 0x80
jb 0x453521
lea esi, [ebp - 0x204]
sub esi, edx
lea ecx, [edx + 0x32910]
lea ebx, [edx + 0x31d58]
sub esi, 0x31d50
lea edi, [edx + 0x31950]
mov dword [ebp - 0x208], ecx
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x210], esi
mov dword [ebp - 0x218], 4
jmp 0x453620
xor ecx, ecx
mov dword [ebp - 0x214], ecx
cmp dword [edx + 0x32594], ecx
jbe 0x453690
mov eax, ecx
or eax, 0x40
xor esi, esi
cmp eax, 1
je 0x453678
lea esp, [esp]
mov ebx, dword [ebp - 0x208]
mov ecx, eax
and eax, 1
shr ecx, 1
movzx ebx, word [ebx + ecx*2]
neg eax
sar eax, 4
and eax, 0x7f
shr ebx, 4
xor ebx, eax
add esi, dword [edx + ebx*4 + 0x30ea0]
mov eax, ecx
cmp eax, 1
jne 0x453640
mov ebx, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov dword [edi + ecx*4], esi
inc ecx
mov dword [ebp - 0x214], ecx
cmp ecx, dword [edx + 0x32594]
jb 0x453630
mov esi, dword [ebp - 0x210]
mov eax, 0xe
cmp dword [edx + 0x32594], eax
jbe 0x4536b6
lea ecx, [ecx]
mov ecx, eax
shr ecx, 1
sub ecx, 5
shl ecx, 4
add dword [edi + eax*4], ecx
inc eax
cmp eax, dword [edx + 0x32594]
jb 0x4536a0
mov eax, dword [edi]
mov dword [ebx - 8], eax
mov ecx, dword [edi + 4]
mov dword [ebx - 4], ecx
mov eax, dword [edi + 8]
mov dword [ebx], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
mov eax, 4
lea ecx, [ebx + 8]
jmp 0x4536e0
movzx ebx, byte [edx + eax + 0x306a0]
mov ebx, dword [edi + ebx*4]
add ebx, dword [esi + ecx]
inc eax
mov dword [ecx], ebx
add ecx, 4
cmp eax, 0x80
jb 0x4536e0
mov ebx, dword [ebp - 0x20c]
sub dword [ebp - 0x208], 0xffffff80
add ebx, 0x200
sub esi, 0x200
add edi, 0x100
dec dword [ebp - 0x218]
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x210], esi
jne 0x453620
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov dword [edx + 0x3bcf8], 0
pop ebx
call fcn.004cbf11
mov esp, ebp
pop ebp
ret
Function at 0x455070
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 8]
push edi
xor edi, edi
push eax
lea edx, [esi + 0x40]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
mov dword [esi + 0x38], edi
call fcn.00454a60
add esp, 4
cmp ebx, edi
jbe 0x4550bb
add esi, 0x270
call fcn.00454b60
test eax, eax
jne 0x45527a
inc edi
add esi, 0x44
cmp edi, ebx
jb 0x4550a3
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], 0
test ebx, ebx
je 0x455175
add esi, 0x29c
cmp dword [esi - 0x14], 0
lea edi, [esi - 0x14]
jne 0x455163
push 0
push 0
push 0
lea ecx, [esi - 0x2c]
push 0
mov dword [esi - 4], 0x454e10
mov dword [esi], ecx
mov dword [esi - 8], 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi - 0x10], eax
test eax, eax
jne 0x45511a
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x45521d
mov eax, 1
jmp 0x45515b
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi - 0xc], eax
test eax, eax
je 0x455105
lea edx, [ebp - 0x10]
push edx
push 0
push edi
push 0x4549f0
push 0
push 0
call fcn.004cd0d6
add esp, 0x18
mov dword [edi], eax
test eax, eax
jne 0x455163
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x45521d
test eax, eax
jne 0x45521d
mov eax, dword [ebp - 0xc]
inc eax
add esi, 0x44
mov dword [ebp - 0xc], eax
cmp eax, ebx
jb 0x4550d0
xor edi, edi
test ebx, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
je 0x4551a6
mov esi, dword [ebp + 8]
add esi, 0x28c
lea ebx, [ebx]
mov eax, dword [esi]
push eax
call ebx
test eax, eax
je 0x455226
inc edi
add esi, 0x44
cmp edi, dword [ebp - 4]
jb 0x455190
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x2b0]
push ecx
call ebx
test eax, eax
jne 0x4551bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0x2ac]
push edx
call ebx
test eax, eax
jne 0x4551cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
test edi, edi
je 0x4551ef
mov esi, dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add esi, 0x290
mov eax, dword [esi]
push 0xffffffffffffffff
push eax
call ebx
add esi, 0x44
dec edi
jne 0x4551e2
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x45526d
mov esi, dword [ebp + 8]
mov edi, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esi, 0x2b0
mov eax, dword [esi - 4]
test eax, eax
je 0x455245
push eax
call ebx
test eax, eax
jne 0x455245
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x45524c
mov dword [ebp - 8], 0xc
jmp 0x4551f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp + 8]
mov dword [ebp - 8], 0xc
mov dword [esi + 0x2a4], 1
jmp 0x4551a9
mov dword [esi - 4], 0
mov eax, dword [esi]
test eax, eax
je 0x455261
push eax
call ebx
test eax, eax
jne 0x455261
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x455267
mov dword [esi], 0
add esi, 0x44
dec edi
jne 0x455207
mov eax, dword [ebp - 8]
test eax, eax
jne 0x45527a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x455290
Capabilities:
Hash data using sha256

Disassembly:
xor ecx, ecx
mov dword [eax], 0x6a09e667
mov dword [eax + 4], 0xbb67ae85
mov dword [eax + 8], 0x3c6ef372
mov dword [eax + 0xc], 0xa54ff53a
mov dword [eax + 0x10], 0x510e527f
mov dword [eax + 0x14], 0x9b05688c
mov dword [eax + 0x18], 0x1f83d9ab
mov dword [eax + 0x1c], 0x5be0cd19
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
ret
Function at 0x455ad0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push 0
push ecx
push edx
push 0
push 0
call fcn.004cd0d6
mov ecx, dword [ebp + 8]
add esp, 0x18
mov dword [ecx], eax
test eax, eax
je 0x455af7
xor eax, eax
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x455b06
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x455c70
Capabilities:
Hash data using sha256

Disassembly:
mov dword [eax], ecx
dec ecx
je 0x455cc8
sub ecx, 3
je 0x455cbe
sub ecx, 6
jne 0x455ccf
mov dword [eax + 0x10], 0x6a09e667
mov dword [eax + 0x14], 0xbb67ae85
mov dword [eax + 0x18], 0x3c6ef372
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x20], 0x510e527f
mov dword [eax + 0x24], 0x9b05688c
mov dword [eax + 0x28], 0x1f83d9ab
mov dword [eax + 0x2c], 0x5be0cd19
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], ecx
ret
or ecx, 0xffffffff
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
ret
mov dword [eax + 4], 0xffffffff
ret

Function at 0x455ed0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push esi
mov esi, eax
mov eax, dword [ebp + 8]
push edi
mov edi, ecx
test esi, esi
je 0x455f07
movzx ecx, byte [edi]
xor ecx, eax
shrd eax, edx, 8
and ecx, 0xff
xor eax, dword [ecx*8 + 0x5297c0]
shr edx, 8
xor edx, dword [ecx*8 + 0x5297c4]
inc edi
dec esi
jne 0x455ee3
pop edi
pop esi
pop ebp
ret 8
Function at 0x458760
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
push esi
push 0x40
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004cfd40
add esp, 0xc
xor eax, eax
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x58]
push edx
push eax
push eax
push eax
push eax
push eax
push eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push eax
push ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x58], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x4587c9
mov edx, dword [ebp - 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [ebp - 0xc]
push eax
call esi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret
xor al, al
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x458a00
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x521390]
xor eax, esp
mov dword [esp + 0x2c], eax
push esi
push edi
xor eax, eax
mov edi, ecx
lea ecx, [esp + 0x24]
push ecx
mov word [esp + 0x28], ax
mov dword [esp + 0x2a], eax
mov dword [esp + 0x2e], eax
mov dword [esp + 0x32], eax
mov word [esp + 0x36], ax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor ecx, ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x30], ecx
push eax
lea ecx, [esp + 0x28]
xor edx, edx
push ecx
mov dword [esp + 0x34], edx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push 8
push 0x61c46800
push edx
push eax
call fcn.004e0e10
mov esi, eax
mov eax, 4
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 0x4f891c
push str.SoftwareBaofengStormPlayerConfigInstall
push SysReAllocStringLen
mov dword [esp + 0x24], esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
mov ecx, dword [esp + 0xc]
cmp esi, ecx
jb 0x458abe
sub esi, ecx
add esi, 0x17
mov eax, 0xaaaaaaab
mul esi
shr edx, 4
push edx
jmp 0x458ad4
sub ecx, esi
add ecx, 0x17
mov eax, 0x19
mul ecx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
push ecx
push 0x4f8990
call fcn.00458b70
mov ecx, dword [esp + 0x3c]
add esp, 8
pop edi
pop esi
xor ecx, esp
call fcn.004cbf11
mov esp, ebp
pop ebp
ret
Function at 0x45a850
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 0x45a868
pop edi
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x45a89a
mov ecx, dword [ebp + 8]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, esi
and edi, 0xf
jbe 0x45a896
cmp esi, eax
jae 0x45a89a
dec edi
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x45a888
cmp esi, eax
jb 0x45a8a0
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
Function at 0x45b3a0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e566b
mov eax, dword fs:[0]
push eax
sub esp, 0x124
mov eax, dword [0x521390]
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 ebx, dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push 0
push 2
push 0
push 0
mov esi, ecx
push 0x40000000
push esi
call ebx
mov edi, eax
cmp edi, 0xffffffff
jne 0x45b41c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x45b452
push esi
call fcn.0045b650
add esp, 4
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push esi
call ebx
mov edi, eax
cmp edi, 0xffffffff
je 0x45b454
lea eax, [ebp - 0x128]
push eax
mov dword [ebp - 0x128], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x124], 6
jb 0x45b452
mov dword [ebp - method.CAccessRight.virtual_0], vtable.CAccessRight.0
mov dword [ebp - 4], 0
call fcn.0045ac20
mov eax, edi
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.004cbf11
mov esp, ebp
pop ebp
ret

Function at 0x45b470
Capabilities:
Check os version
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e258b
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x521390]
xor eax, ebp
mov dword [ebp - 0x14], eax
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, eax
test edi, edi
jne 0x45b4d9
cmp byte [ebp + 8], al
je 0x45b546
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
jne 0x45b546
push esi
call fcn.0045b570
add esp, 4
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
mov edi, eax
test edi, edi
je 0x45b546
lea eax, [ebp - 0x16c]
push eax
mov dword [ebp - 0x16c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x168], 6
jb 0x45b546
mov dword [ebp - method.CAccessRight.virtual_0], vtable.CAccessRight.0
xor ecx, ecx
push 0x3e
push ecx
lea edx, [ebp - 0x52]
mov dword [ebp - 4], 0
push edx
mov word [ebp - 0x54], cx
call fcn.004cfd40
add esp, 0xc
push 0x20
push 0x4f8ee4
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0
lea ecx, [ebp - 0x54]
push ecx
push esi
call fcn.0045ac80
add esp, 0xc
mov eax, 1
jmp 0x45b548
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004cbf11
mov esp, ebp
pop ebp
ret
Function at 0x45b6d0
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x50fbd0
push 0x4d05a0
mov eax, dword fs:[0]
push eax
sub esp, 0x880
mov eax, dword [0x521390]
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
mov esi, dword [ebp + 8]
test esi, esi
je 0x45b768
mov bl, 1
mov dword [ebp - 0x890], 0xffffffff
push 0x4f8f64
push esi
push 0x4f8f38
push 0x104
lea eax, [ebp - 0x638]
push eax
call fcn.004ce646
add esp, 0x14
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x888]
push ecx
lea edx, [ebp - 0x638]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x890], eax
cmp eax, 0xffffffff
jne 0x45b76f
mov dword [ebp - 4], 0xfffffffe
xor al, al
jmp 0x45b8bb
mov edi, dword [ebp + 0xc]
cmp word [ebp - 0x85c], 0x2e
je 0x45b82d
test byte [ebp - 0x888], 0x10
je 0x45b7c7
lea eax, [ebp - 0x85c]
push eax
push esi
push str._s_s_
push 0x104
lea ecx, [ebp - 0x430]
push ecx
call fcn.004ce646
add esp, 0x14
xor edx, edx
mov word [ebp - 0x22a], dx
push edi
lea eax, [ebp - 0x430]
push eax
call fcn.0045b6d0
add esp, 8
mov bl, al
jmp 0x45b827
lea ecx, [ebp - 0x85c]
push ecx
push esi
push 0x4f8f38
push 0x104
lea edx, [ebp - 0x228]
push edx
call fcn.004ce646
add esp, 0x14
xor eax, eax
mov word [ebp - 0x22], ax
test edi, edi
je 0x45b7f7
cmp edi, 1
jne 0x45b82d
lea ecx, [ebp - 0x228]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
lea edx, [ebp - 0x228]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
setne bl
mov byte [ebp - 0x889], bl
lea ecx, [ebp - 0x888]
push ecx
mov edx, dword [ebp - 0x890]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x45b772
mov eax, dword [ebp - 0x890]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x890], 0xffffffff
test edi, edi
je 0x45b869
cmp edi, 2
jne 0x45b8b2
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
setne bl
mov byte [ebp - 0x889], bl
jmp 0x45b8b2
mov dword [ebp - 4], 0xfffffffe
mov al, bl
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.004cbf11
mov esp, ebp
pop ebp
ret