joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46e310
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
movd xmm0, dword [esp + 8]
pinsrw xmm0, ebx, 4
pshufhw xmm0, xmm0, 0
movdqa xmm1, xmm0
pxor xmm0, xmmword [0x5f7d60]
aesenc xmm0, xmm0
cmp ebx, 0x10
jb 0x46ca9b
je 0x46caee
cmp ebx, 0x20
jbe 0x46caf4
cmp ebx, 0x40
jbe 0x46cb3a
jmp 0x46cbdb
test ebx, ebx
je 0x46cae4
add eax, 0x10
test ax, 0xff0
je 0x46cad0
movdqu xmm1, xmmword [eax - 0x10]
add ebx, ebx
pand xmm1, xmmword [ebx*8 + 0x521380]
pxor xmm1, xmm0
aesenc xmm1, xmm1
aesenc xmm1, xmm1
aesenc xmm1, xmm1
movd dword [edx], xmm1
ret
movdqu xmm1, xmmword [eax + ebx - 0x20]
add ebx, ebx
pshufb xmm1, xmmword [ebx*8 + 0x521480]
jmp 0x46cab8
aesenc xmm0, xmm0
movd dword [edx], xmm0
ret
movdqu xmm1, xmmword [eax]
jmp 0x46cab8
pxor xmm1, xmmword [0x5f7d70]
aesenc xmm1, xmm1
movdqu xmm2, xmmword [eax]
movdqu xmm3, xmmword [eax + ebx - 0x10]
pxor xmm2, xmm0
pxor xmm3, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
aesenc xmm2, xmm2
aesenc xmm3, xmm3
pxor xmm2, xmm3
movd dword [edx], xmm2
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x5f7d70]
pxor xmm2, xmmword [0x5f7d80]
pxor xmm3, xmmword [0x5f7d90]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax]
movdqu xmm5, xmmword [eax + 0x10]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
pxor xmm4, xmm0
pxor xmm5, xmm1
pxor xmm6, xmm2
pxor xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
movdqa xmm2, xmm1
movdqa xmm3, xmm1
pxor xmm1, xmmword [0x5f7d70]
pxor xmm2, xmmword [0x5f7d80]
pxor xmm3, xmmword [0x5f7d90]
aesenc xmm1, xmm1
aesenc xmm2, xmm2
aesenc xmm3, xmm3
movdqu xmm4, xmmword [eax + ebx - 0x40]
movdqu xmm5, xmmword [eax + ebx - 0x30]
movdqu xmm6, xmmword [eax + ebx - 0x20]
movdqu xmm7, xmmword [eax + ebx - 0x10]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
dec ebx
shr ebx, 6
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
movdqu xmm3, xmmword [eax + 0x30]
aesenc xmm4, xmm0
aesenc xmm5, xmm1
aesenc xmm6, xmm2
aesenc xmm7, xmm3
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
add eax, 0x40
dec ebx
jne 0x46cc3a
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
aesenc xmm4, xmm4
aesenc xmm5, xmm5
aesenc xmm6, xmm6
aesenc xmm7, xmm7
pxor xmm4, xmm6
pxor xmm5, xmm7
pxor xmm4, xmm5
movd dword [edx], xmm4
ret
cmp byte [0x5f7967], 0
je 0x46e32a
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edx, [esp + 0x10]
jmp 0x46ca60
jmp fcn.00408330
Function at 0x46e330
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4031ac
sub esp, 0x10
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00408330
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
add esp, 0x10
ret
call fcn.0046d060
jmp 0x403170
cmp byte [0x5f7967], 0
je 0x46e34b
mov eax, dword [esp + 4]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
lea edx, [esp + 0xc]
jmp 0x46ca60
jmp 0x403170

Function at 0x46f1b0
Capabilities:
Allocate thread local storage

Disassembly:
mov ebp, esp
mov eax, dword [sym.imp.kernel32.dll_TlsAlloc]
call eax
mov esp, ebp
mov ecx, eax
cmp ecx, 0x40
jb 0x46f1ca
mov ecx, 0x14
jmp 0x46f1d3
shl ecx, 2
add ecx, 0xe10
mov dword [0x5f7a94], ecx
ret
Function at 0x478560
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x47865a
sub esp, 0x20
mov ecx, dword [esp + 0x24]
test byte [ecx], al
mov edx, dword [esp + 0x28]
mov ebx, edx
and edx, 0x7f
shl edx, 5
add ecx, edx
mov dword [esp + 0x1c], ecx
xor eax, eax
jmp 0x4785a0
mov ebp, dword [esp + 0x14]
inc ebp
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov eax, ebp
cmp eax, 4
jge 0x4785d9
mov dword [esp + 0x14], eax
lea edx, [ecx + eax*8]
mov dword [esp], edx
call fcn.00472aa0
mov eax, dword [esp + 0x28]
cmp dword [esp + 4], eax
sete cl
mov edx, dword [esp + 0x2c]
cmp dword [esp + 8], edx
sete bl
and ebx, ecx
test bl, bl
je 0x478593
mov byte [esp + 0x30], 1
add esp, 0x20
ret
xor eax, eax
mov edx, 0x84222325
jmp 0x4785e3
inc eax
cmp eax, 4
jge 0x4785f9
mov dword [esp + 0x18], eax
lea ebp, [ecx + eax*8]
mov esi, dword [ebp]
mov ebp, dword [ebp + 4]
xor edi, edi
jmp 0x478653
and edx, 3
lea eax, [ecx + edx*8]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
call fcn.00472ad0
mov byte [esp + 0x30], 0
add esp, 0x20
ret
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebp
and esi, 0xff
xor edx, esi
mov esi, dword [esp + 0xc]
shr esi, 8
shl ebp, 0x18
mov eax, edx
mov ebx, 0x1b3
mul ebx
inc edi
or esi, ebp
mov ebp, dword [esp + 0x10]
shr ebp, 8
mov ebx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x18]
cmp edi, 8
jl 0x47861c
jmp 0x4785e2
call fcn.0046d060
jmp fcn.00478560
Function at 0x48a5e0
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x48a7ca
sub esp, 0x48
mov eax, dword [0x5d0eb8]
mov ecx, dword [esp + 0x50]
movzx edx, word [ecx + 2]
movzx ebx, word [ecx + 8]
movzx ebp, word [ecx + 0xa]
movzx esi, word [ecx + 0xc]
mov edi, dword [esp + 0x4c]
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], 1
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], eax
call fcn.004872f0
lea edi, [esp + 0x34]
lea esi, [esp + 0x20]
call fcn.0046eb3e
lea edi, [esp]
lea esi, [esp + 0x34]
call fcn.0046eb3e
call fcn.00485e70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, 0x15180
mov dword [esp], eax
adc ecx, 0
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x93a80
mov dword [esp + 0xc], 0
call fcn.00460e10
mov eax, dword [esp + 0x50]
movzx ecx, word [eax + 4]
mov edx, dword [esp + 0x10]
mov ebx, eax
mov eax, 0xc22e4507
mov ebp, edx
imul edx
mov eax, ebp
sar ebp, 0x1f
add eax, edx
sar eax, 0x10
sub eax, ebp
sub ecx, eax
test ecx, ecx
jge 0x48a6b7
add ecx, 7
movzx edx, word [ebx + 6]
lea ebp, [edx - 1]
cmp ebp, 4
jge 0x48a6d1
lea ebx, [edx + edx*2]
lea edx, [edx + ebx*2]
lea ecx, [ecx + edx - 6]
mov edx, ecx
jmp 0x48a748
movzx eax, word [ebx + 2]
cmp eax, 2
jne 0x48a71e
mov edx, dword [esp + 0x4c]
test edx, 3
jne 0x48a71a
mov ebx, edx
sar edx, 0x1f
mov ebp, eax
mov eax, 0x51eb851f
mov esi, edx
imul ebx
mov edi, edx
sar edx, 5
sub edx, esi
imul edx, edx, 0x64
cmp ebx, edx
jne 0x48a713
sar edi, 7
sub edi, esi
imul edx, edi, 0x190
cmp ebx, edx
jne 0x48a720
mov ebx, 0x1d
jmp 0x48a73e
mov ebp, eax
jmp 0x48a720
mov ebp, eax
cmp ebp, 0xd
jae 0x48a7bd
lea eax, [ebp - 1]
lea edx, [0x5b1740]
mov ebx, dword [edx + ebp*4]
cmp eax, 0xd
jae 0x48a7b3
sub ebx, dword [edx + ebp*4 - 4]
lea edx, [ecx + 0x1d]
cmp ebx, edx
jge 0x48a748
lea edx, [ecx + 0x16]
mov ecx, dword [esp + 0x38]
test ecx, 0x80000000
je 0x48a77a
mov ebx, dword [esp + 0x34]
shl ecx, 1
mov ebp, ebx
shl ebx, 1
shr ebp, 0x1f
or ebp, ecx
mov ecx, ebp
shl ebp, 1
shr ecx, 0x1f
shr ebx, 0x1f
or ebp, ebx
add ebp, 0xd7b17f80
adc ecx, 0xd
jmp 0x48a782
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea eax, [edx - 1]
mov edx, eax
sar edx, 0x1f
mov ebx, 0x15180
mov esi, edx
mul ebx
imul ebx, esi, 0x15180
add edx, ebx
add eax, ebp
adc edx, ecx
add eax, 0x886e0900
mov dword [esp + 0x54], eax
adc edx, 0xfffffff1
mov dword [esp + 0x58], edx
add esp, 0x48
ret
mov ecx, 0xd
call fcn.0046e4e0
mov eax, ebp
mov ecx, 0xd
call fcn.0046e4e0
nop
call fcn.0046d060
jmp fcn.0048a5e0
Function at 0x497d90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x497f3a
sub esp, 0x54
lea edi, [esp + 0x60]
xor eax, eax
call fcn.0046e65b
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
xor ebx, ebx
jmp 0x497dbf
inc ebx
cmp edx, ebx
jle 0x497ede
movzx ebp, byte [ecx + ebx]
xchg ebp, eax
cmp al, 0x25
xchg ebp, eax
je 0x497e82
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
je 0x497e33
xchg ebp, eax
cmp al, 0x3a
xchg ebp, eax
jne 0x497dbe
lea edi, [esp + 0x28]
call fcn.0046e65b
mov ecx, dword [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004987e0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x28]
lea esi, [esp + 8]
call fcn.0046eb3e
lea edi, [esp + 0x60]
lea esi, [esp + 0x28]
call fcn.0046eb3e
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
add esp, 0x54
ret
lea edi, [esp + 0x28]
call fcn.0046e65b
mov ecx, dword [esp + 0x58]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004986c0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x28]
lea esi, [esp + 8]
call fcn.0046eb3e
lea edi, [esp + 0x60]
lea esi, [esp + 0x28]
call fcn.0046eb3e
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
add esp, 0x54
ret
lea edi, [esp + 0x3c]
call fcn.0046e65a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
lea ecx, [0x4f9a48]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0x14
lea edi, [esp + 0x60]
call fcn.0046e65b
lea ecx, [0x4e9ba0]
mov dword [esp], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov ecx, dword [esp + 8]
lea edx, [0x5208d4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
lea edi, [esp + 0x3c]
call fcn.0046e65a
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
lea ecx, [0x4f8dd8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0x12
lea edi, [esp + 0x60]
call fcn.0046e65b
lea ecx, [0x4e9ba0]
mov dword [esp], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 4], ecx
call fcn.004092e0
mov ecx, dword [esp + 8]
lea edx, [0x5208d4]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
call fcn.0046d060
jmp fcn.00497d90
Function at 0x4a1ef0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4a20ac
sub esp, 0x5c
lea edi, [esp + 0x7c]
xor eax, eax
call fcn.0046e657
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4a1f28
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x60]
jmp 0x4a1f51
lea eax, [0x4dbd40]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x200
call fcn.004695c0
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov edx, 0x200
mov dword [esp + 0x30], ecx
lea edi, [esp + 0x34]
mov ebx, eax
xor eax, eax
call fcn.0046e657
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x50], ecx
movzx ecx, word [esp + 0x70]
shl ecx, 0xb
movzx edx, word [esp + 0x78]
movzx ebx, byte [esp + 0x75]
or edx, ecx
test bl, bl
je 0x4a1f94
or edx, 0x80
movzx eax, byte [esp + 0x74]
test al, al
je 0x4a1fa3
or edx, 0x100
movzx eax, byte [esp + 0x73]
test al, al
je 0x4a1fb2
or edx, 0x200
movzx eax, byte [esp + 0x72]
test al, al
je 0x4a1fc1
or edx, 0x400
movzx eax, byte [esp + 0x6e]
test al, al
je 0x4a1fd0
or edx, 0xffff8000
movzx eax, byte [esp + 0x76]
test al, al
je 0x4a1fdc
or edx, 0x20
movzx eax, byte [esp + 0x77]
test al, al
je 0x4a1fe8
or edx, 0x10
movzx eax, word [esp + 0x6c]
mov word [esp + 0x42], ax
mov word [esp + 0x44], dx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + 0xc]
mov ebx, dword [esp + 0x34]
cmp eax, edx
jae 0x4a2058
mov dword [esp + 0x30], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xc
lea eax, [0x4dbd40]
mov dword [esp + 0x10], eax
call fcn.00469670
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x58], ebx
add ecx, ebx
mov dword [esp], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
call fcn.0046ed50
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov byte [esp + 0x40], 1
lea edi, [esp + 0x7c]
lea esi, [esp + 0x34]
call fcn.0046eb16
add esp, 0x5c
ret
call fcn.0046d060
jmp fcn.004a1ef0
Function at 0x4b7a80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x5f7a94]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b7bf1
sub esp, 0x48
mov eax, dword [esp + 0x78]
cmp eax, 4
jne 0x4b7b17
mov ecx, dword [esp + 0x74]
cmp dword [ecx], 0x6c616964
je 0x4b7ab6
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
jmp 0x4b7b23
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
call ecx
movzx eax, byte [esp + 4]
test al, al
jne 0x4b7ae1
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
jmp 0x4b7b23
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, eax
mov ebx, ecx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
jmp 0x4b7b23
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x54]
mov dword [esp], ebp
mov esi, dword [esp + 0x58]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x5c]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
call fcn.004c3950
mov eax, dword [esp + 0x20]
movzx ecx, byte [esp + 0x24]
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], cl
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
call fcn.004be9d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
add esp, 0x48
ret
call fcn.0046d060
jmp fcn.004b7a80
Function at 0x10001000
Capabilities:
Enumerate pe sections

Disassembly:
mov edx, dword [esp + 8]
xor eax, eax
xor ecx, ecx
push ebx
mov ax, word [edx + 0x14]
mov cx, word [edx + 6]
push esi
xor esi, esi
test ecx, ecx
push edi
lea eax, [eax + edx + 0x18]
jbe 0x10001039
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
cmp edi, edx
jb 0x10001031
mov ebx, dword [eax + 8]
add ebx, edx
cmp edi, ebx
jb 0x1000103b
inc esi
add eax, 0x28
cmp esi, ecx
jb 0x10001021
xor eax, eax
pop edi
pop esi
pop ebx
ret

Function at 0x100010f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x20
push esi
mov esi, dword [esp + 0x28]
push edi
mov eax, dword [esi + 0x3c]
add eax, esi
push eax
mov edi, dword [eax + 0x78]
push edi
call section..text
add esp, 8
test eax, eax
jne 0x10001115
pop edi
pop esi
add esp, 0x20
ret
mov ecx, dword [eax + 0x14]
push ebx
push ebp
mov ebp, dword [eax + 0xc]
sub ebp, ecx
mov dword [esp + 0x10], 0
sub edi, ebp
add edi, esi
mov eax, edi
mov dword [esp + 0x18], eax
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x20]
mov edi, dword [eax + 0x14]
sub ecx, ebp
sub edx, ebp
sub ebx, ebp
add ecx, esi
add edx, esi
add ebx, esi
test edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ebx
jbe 0x10001223
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
cmp dword [ecx], 0
je 0x10001204
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x1c], 0
test ecx, ecx
jbe 0x10001204
mov dword [esp + 0x20], edx
xor ecx, ecx
mov cx, word [edx]
mov edx, dword [esp + 0x10]
cmp ecx, edx
jne 0x100011de
mov eax, dword [ebx]
sub esi, ebp
add esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x2c]
mov edi, ecx
push edx
push 4
push edi
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov al, byte [esp + 0x38]
test al, al
je 0x100011c7
mov eax, dword [esp + 0x10]
push eax
push edi
push esi
call fcn.10001040
jmp 0x100011d3
mov ecx, dword [esp + 0x10]
push ecx
push edi
push esi
call fcn.10001090
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov edi, dword [eax + 0x18]
inc ecx
add edx, 2
add ebx, 4
cmp ecx, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
jb 0x10001181
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add edi, 4
inc ecx
mov dword [esp + 0x14], edi
mov edi, dword [eax + 0x14]
cmp ecx, edi
mov dword [esp + 0x10], ecx
jb 0x1000115d
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x20
ret
Function at 0x100016d0
Capabilities:
Copy file
Delete file
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x3f0
mov eax, dword [esp + 0x3f4]
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
push 0
push 0x80
push 4
push 0
push 1
push accept
mov ebp, ecx
push eax
call edi
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push str.tmpfile0001
mov esi, eax
call edi
test esi, esi
mov ebx, eax
je 0x100017e5
test ebx, ebx
je 0x100017e5
mov ecx, 0xfa
xor eax, eax
lea edi, [esp + 0x18]
push eax
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push 0x3e8
push edx
push esi
call edi
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x100017aa
lea ecx, [esp + 0x40c]
lea edx, [esp + 0x408]
push ecx
push edx
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, ebp
call fcn.10001650
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push 0
push ecx
lea eax, [esp + 0x20]
push edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea ecx, [esp + 0x10]
push 0
push ecx
lea edx, [esp + 0x20]
push 0x3e8
push edx
push esi
call edi
mov eax, dword [esp + 0x10]
test eax, eax
ja 0x10001759
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push ebx
call esi
mov eax, dword [esp + 0x404]
push 0
push eax
push str.tmpfile0001
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push str.tmpfile0001
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x3f0
ret 0xc
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x3f0
ret 0xc

Function at 0x10001800
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x1001800e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], esi
lea ecx, [esi + 0x304]
call fcn.10001600
xor ebx, ebx
lea ecx, [esi + 0x16ac]
mov dword [esp + 0x1c], ebx
call fcn.100095e0
mov dword [esi], 0x10019454
mov dword [0x1001f814], esi
mov byte [esi + 0x320], bl
mov dword [esi + 0x310], ebx
mov dword [esi + 0x30c], ebx
lea ebx, [esi + 0x204]
mov ecx, 0x40
xor eax, eax
mov edi, ebx
lea ebp, [esi + 0x104]
rep stosd dword es:[edi], eax
mov ecx, 0x40
mov edi, ebp
rep stosd dword es:[edi], eax
lea edi, [esi + 4]
mov ecx, 0x40
push 0x100
push ebx
rep stosd dword es:[edi], eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push ebx
push str._scsmddsly0.sys
push ebp
call fcn.1000a18e
push ebx
lea eax, [esi + 4]
push str._sdslycsmd0.exe
push eax
call fcn.1000a18e
mov ecx, dword [esp + 0x2c]
add esp, 0x18
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x10001a50
Capabilities:
Write file on windows

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
mov byte [esi + 0x320], 1
mov eax, dword [edi + 4]
mov dword [esi + 0x31c], eax
mov ecx, dword [edi + 8]
cmp eax, 0x7ef40
mov dword [esi + 0x318], ecx
ja 0x10001b07
push 0
push 0x80
push 2
push 0
push 1
lea edx, [esi + 0x104]
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
test eax, eax
mov dword [esi + 0x314], eax
jne 0x10001acb
mov byte [esi + 0x325], al
lea eax, [esi + 0x322]
push 0xa
push eax
lea ecx, [esi + 0x16ac]
call fcn.10009890
mov byte [esi + 0x320], 0
pop edi
pop esi
ret 8
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
and edx, 0xffff
push 0
sub edx, 0xc
push ecx
add edi, 0xc
push edx
push edi
push eax
mov dword [esi + 0x310], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x310]
add ecx, eax
mov dword [esi + 0x310], ecx
pop edi
pop esi
ret 8

Function at 0x10001b10
Capabilities:
Write file on windows

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0x314]
test eax, eax
je 0x10001bea
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xc]
push 0
push ecx
mov ecx, dword [esp + 0x10]
and edx, 0xffff
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 0x310]
mov ecx, dword [esi + 0x31c]
add eax, edx
cmp eax, ecx
mov dword [esi + 0x310], eax
jb 0x10001bea
mov eax, dword [esi + 0x314]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x43
lea ecx, [esi + 0x104]
push 0x33
push ecx
lea ecx, [esi + 0x304]
mov byte [esi + 0x309], 0x13
mov byte [esi + 0x308], 0x23
call fcn.100016d0
mov edx, dword [esi + 0x310]
mov eax, dword [esi + 0x31c]
cmp edx, eax
jne 0x10001bc8
mov ecx, esi
call fcn.10001bf0
test al, al
je 0x10001bc8
mov ecx, esi
call fcn.10001c80
test al, al
jne 0x10001bc8
lea eax, [esi + 0x322]
push 0xa
mov byte [esi + 0x325], 1
push eax
jmp 0x10001bd8
lea ecx, [esi + 0x322]
push 0xa
mov byte [esi + 0x325], 0
push ecx
lea ecx, [esi + 0x16ac]
call fcn.10009890
mov byte [esi + 0x320], 0
pop esi
ret 8

Function at 0x10001bf0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x3ec
push ebx
push esi
push edi
xor edi, edi
push edi
mov ebx, ecx
push 0x80
push 3
push edi
push 1
lea eax, [ebx + 0x104]
push accept
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
test esi, esi
jne 0x10001c2c
pop edi
pop esi
xor al, al
pop ebx
add esp, 0x3ec
ret
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x10]
push 0
push ecx
lea edx, [esp + 0x1c]
push 0x3e8
push edx
push esi
call ebp
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
jle 0x10001c62
xor edx, edx
mov dl, byte [esp + eax + 0x14]
add edi, edx
inc eax
cmp eax, ecx
jl 0x10001c51
test ecx, ecx
ja 0x10001c33
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebx + 0x318]
pop ebp
cmp edi, eax
pop edi
pop esi
pop ebx
sete al
add esp, 0x3ec
ret