joyce8/EMBER2024-capa huggingface dataset:
Function at 0x98de30
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x21c
push eax
sub esp, 0x2c
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 0x24], esp
push eax
mov dword [ebp - 0x28], esp
mov eax, dword [0x9c9d0c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x228], 0x61176733
mov dword [ebp - 0x224], 0x7d1963ea
mov dword [ebp - 0x220], 0x790a7f08
mov dword [ebp - 0x21c], 0x754b7b1b
mov dword [ebp - 0x218], 0x7140773b
mov dword [ebp - 0x214], 0x8d527340
mov dword [ebp - 0x210], 0x89e78fb4
mov dword [ebp - 0x20c], 0x85fc8bf3
mov dword [ebp - 0x208], 0x81f787f8
mov dword [ebp - 0x204], 0x9d0f8309
mov dword [ebp - 0x200], 0x99c89fbc
mov dword [ebp - 0x1fc], 0x95ba9bf4
mov dword [ebp - 0x1f8], 0x91a697a7
mov dword [ebp - 0x1f4], 0xada293a6
mov dword [ebp - 0x1f0], 0xa98eafe9
mov dword [ebp - 0x1ec], 0xa5d1abc1
mov dword [ebp - 0x1e8], 0xa1e8a7d2
mov dword [ebp - 0x1e4], 0xbde7a3ec
mov dword [ebp - 0x1e0], 0xb936bf9c
mov dword [ebp - 0x1dc], 0xb5f6bbf6
mov dword [ebp - 0x1d8], 0xb196b78f
mov dword [ebp - 0x1d4], 0xcdc2b3f3
mov dword [ebp - 0x1d0], 0xc9bacfbc
mov dword [ebp - 0x1cc], 0xc5a3cbb7
mov dword [ebp - 0x1c8], 0xc1a4c7bb
mov dword [ebp - 0x1c4], 0xddb9c395
mov dword [ebp - 0x1c0], 0xd9efdf50
mov dword [ebp - 0x1bc], 0xd597db97
mov dword [ebp - 0x1b8], 0xd1e0d79d
mov dword [ebp - 0x1b4], 0xed9cd39d
mov dword [ebp - 0x1b0], 0xe9d6efcc
mov dword [ebp - 0x1ac], 0xe5b2ebbd
mov dword [ebp - 0x1a8], 0xe1b1e788
mov dword [ebp - 0x1a4], 0xfdd6e3b4
mov dword [ebp - 0x1a0], 0xf98affdc
mov dword [ebp - 0x19c], 0xf58ffb83
mov dword [ebp - 0x198], 0xf1d6f78b
mov dword [ebp - 0x194], 0xd8df3a9
mov dword [ebp - 0x190], 0x97b0f71
mov dword [ebp - 0x18c], 0x5310b79
mov dword [ebp - 0x188], 0x15b0724
mov dword [ebp - 0x184], 0x1d700378
mov dword [ebp - 0x180], 0x19691f6d
mov dword [ebp - 0x17c], 0x152b1b67
mov dword [ebp - 0x178], 0x11251727
mov dword [ebp - 0x174], 0x2d24135b
mov dword [ebp - 0x170], 0x29182f1c
mov dword [ebp - 0x16c], 0x251c2b18
mov dword [ebp - 0x168], 0x21062714
mov dword [ebp - 0x164], 0x3d41234d
mov dword [ebp - 0x160], 0x395d3f42
mov dword [ebp - 0x15c], 0x35413b4a
mov dword [ebp - 0x158], 0x31793705
mov dword [ebp - 0x154], 0x4d7b337d
mov dword [ebp - 0x150], 0x49034f7a
mov dword [ebp - 0x14c], 0x454a4b06
mov dword [ebp - 0x148], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ebp + edx - 0x228]
mov edi, ecx
and edi, 0xd2
mov ebx, edx
xor ebx, 0xaae8d269
add ebx, edi
mov edi, ebx
and edi, esi
add edi, edi
sub ebx, edi
add ebx, esi
mov esi, ebx
and esi, 0xf0
mov eax, ebx
and eax, 2
mov edi, eax
xor edi, 2
imul edi, esi
or esi, 2
imul esi, eax
xor ebx, 0xf2
add ebx, edi
add ebx, esi
inc bl
mov byte [ebp + edx - 0x228], bl
inc edx
add ecx, 2
cmp edx, 0xe4
jne 0x98e0a0
lea eax, [ebp - 0x228]
push 0
push 0
push 0
push 0
push eax
call dword [ebp - 0x14]
mov esi, eax
xor eax, eax
test esi, esi
setne al
mov eax, dword [eax*4 + 0x9c3eb4]
mov ecx, dword [0x9c3ebc]
mov edx, ecx
and edx, 0xe81a69fd
add edx, edx
sub edx, ecx
add eax, edx
add eax, 0x97e59603
xor ebx, ebx
jmp eax
Function at 0x99b6e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a0
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x18], 0xf740f98b
mov dword [esp + 0x1c], 0xf341f57b
mov dword [esp + 0x20], 0xcfcef142
mov dword [esp + 0x24], 0
mov edx, 0x56
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x3e]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x52
mov byte [esp + edx - 0x3e], al
inc edx
cmp edx, 0x66
jne 0x99b720
mov dword [esp + 0x34], 0x179a1980
mov dword [esp + 0x38], 0x13821598
mov dword [esp + 0x3c], 0xf5d1156
mov dword [esp + 0x40], 0xb9e0d5f
mov dword [esp + 0x44], 0x799099b
mov dword [esp + 0x48], 0x3960565
mov dword [esp + 0x4c], 0x3fad0198
mov dword [esp + 0x50], 0x3bb63db3
mov dword [esp + 0x54], 0x3736397e
mov word [esp + 0x58], 0
xor eax, eax
nop
mov ecx, eax
add cl, 6
xor cl, byte [esp + eax + 0x34]
add cl, 0xe2
mov byte [esp + eax + 0x34], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x26
jb 0x99b7b0
movzx ecx, word [esp + 0x34]
lea eax, [esp + 0x15c]
test cx, cx
je 0x99b801
lea edx, [esp + 0x36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x99b7f0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x99b831
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x99b820
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x99b861
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x99b850
mov word [eax], 0
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov dword [esp + 0x34], 0xb5b0b00a
mov byte [esp + 0x38], 0x18
mov dword [esp + 0x39], 0
mov word [esp + 0x3d], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
lea ecx, [eax + 0xfb]
mov edx, 4
sub edx, eax
and edx, 0x7e
and ecx, 0x81
or ecx, edx
xor cl, byte [esp + eax + 0x34]
xor cl, 0x7e
add cl, 0x19
mov byte [esp + eax + 0x34], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xb
jb 0x99b890
movzx eax, byte [esp + 0x34]
test al, al
je 0x99b8eb
lea ecx, [esp + 0x35]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x99b8e0
mov byte [ebx], 0
lea eax, [esp + 0x140]
lea ecx, [esp + 0x150]
lea edx, [esp + 0x30]
lea edi, [esp + 0x15c]
push eax
push ecx
push edx
push edi
call fcn.0098cc10
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x9c4c70]
mov ecx, 0xa1eb21e6
xor ecx, dword [0x9c4c78]
add eax, ecx
inc eax
jmp eax
Function at 0x9eaa00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x18
cmp dword [ecx + 8], 0
je 0x9eaa73
mov edx, dword [ecx]
test edx, edx
je 0x9eaa73
mov edi, dword [ebp + 0xc]
mov dword [esp], 0x20272625
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0xc9
xor bl, byte [esp + eax]
add bl, 0x13
mov byte [esp + eax], bl
inc eax
cmp eax, 4
jne 0x9eaa30
mov eax, dword [esp]
mov ebx, dword [0x9cb064]
test ebx, ebx
je 0x9eaad3
xor edi, edi
mov esi, dword [0x9cb068]
nop
nop
nop
cmp dword [esi + edi*8], 0xaf0e0c2e
je 0x9eaaaf
inc edi
cmp ebx, edi
jne 0x9eaa60
mov edi, dword [ebp + 0xc]
jmp 0x9eaad3
mov dword [esp], 0xf3323148
mov eax, 0x4f21078c
nop
movzx ecx, byte [esp + eax - 0x4f21078c]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x44
mov byte [esp + eax - 0x4f21078c], cl
inc eax
cmp eax, 0x4f210790
jne 0x9eaa80
mov eax, dword [esp]
jmp 0x9eac1b
mov esi, dword [esi + edi*8 + 4]
cmp esi, eax
mov edi, dword [ebp + 0xc]
je 0x9eaad3
push dword [ebp + 8]
push edx
push 8
push esi
push dword [0x9cb06c]
mov esi, ecx
call fcn.009ecf50
mov ecx, esi
add esp, 0x14
test edi, edi
je 0x9eab91
cmp eax, 0xc000010a
jne 0x9eab91
mov edx, 0xffffd8f0
mov eax, edi
mul edx
sub edx, edi
mov dword [esp], eax
mov dword [esp + 4], edx
mov ebx, dword [ecx]
mov dword [esp + 0xc], 0x20272625
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
add dl, 0xc9
xor dl, byte [esp + eax + 0xc]
add dl, 0x13
mov byte [esp + eax + 0xc], dl
inc eax
cmp eax, 4
jne 0x9eab10
xor edx, edx
cmp edi, 0xffffffff
je 0x9eab2f
mov edx, esp
mov eax, dword [esp + 0xc]
mov esi, dword [0x9cb064]
test esi, esi
je 0x9eab91
mov dword [esp + 0x10], edx
mov dword [esp + 8], ebx
xor ebx, ebx
mov edx, dword [0x9cb068]
nop
nop
nop
cmp dword [edx + ebx*8], 0x4c697c35
je 0x9eab6a
mov edi, ebx
and edi, 1
xor ebx, 1
lea ebx, [ebx + edi*2]
cmp ebx, esi
jb 0x9eab50
jmp 0x9eab91
mov edx, dword [edx + ebx*8 + 4]
cmp edx, eax
je 0x9eab91
push dword [esp + 0x10]
push 0
push dword [esp + 0x10]
push 0xc
push edx
push dword [0x9cb06c]
mov esi, ecx
call fcn.009ecf50
mov ecx, esi
add esp, 0x18
test eax, eax
js 0x9eac1b
mov edx, dword [ecx]
test edx, edx
je 0x9eac1b
mov dword [esp + 8], edx
mov dword [esp], 0x20272625
xor ebx, ebx
mov edx, ebx
add dl, 0xc9
xor dl, byte [esp + ebx]
add dl, 0x13
mov byte [esp + ebx], dl
inc ebx
cmp ebx, 4
jne 0x9eabb0
mov esi, dword [0x9cb064]
test esi, esi
je 0x9eac15
mov edx, dword [esp]
xor ebx, ebx
mov edi, dword [0x9cb068]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0x1b6183f2
je 0x9eabf0
inc ebx
cmp esi, ebx
jne 0x9eabe0
jmp 0x9eac15
mov esi, dword [edi + ebx*8 + 4]
cmp esi, edx
je 0x9eac15
push dword [esp + 8]
push 4
push esi
push dword [0x9cb06c]
mov esi, ecx
mov edi, eax
call fcn.009ecf50
mov eax, edi
mov ecx, esi
add esp, 0x10
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
Function at 0x9ee980
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [esp + 0x3c]
movzx eax, word [eax]
mov dword [esp + 8], eax
mov dword [esp], 0xb18e7543
mov word [esp + 4], 0
mov ebp, 0xa382385d
mov esi, 0x5c7dc7a2
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp + 0x5c7dc7a3]
mov ebx, edx
xor ebx, ebp
or ebx, esi
mov eax, ebx
shr al, 1
and al, 1
mov ecx, ebx
not cl
mov ah, cl
and ah, 0x7d
mul ah
add al, al
sub dl, al
test bl, 2
sete al
or cl, 2
mul cl
add al, al
sub dl, al
movzx eax, dl
add eax, ebp
add al, 0x2f
mov byte [esp + ebp + 0x5c7dc7a3], al
inc ebp
dec esi
cmp ebp, 0xa3823863
jne 0x9ee9b0
xor ecx, ecx
mov eax, dword [esp + 8]
cmp dword [esp], eax
setne cl
xor eax, eax
mov ebp, dword [esp + 0x3c]
jmp dword [ecx*4 + 0x9c8834]

Function at 0x9ef740
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x28
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov dword [esp], 0x40474645
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx]
lea ebx, [edx + 0x6e667871]
xor ebx, ecx
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ecx, [ebx + ecx*2]
add cl, 0xca
mov byte [esp + edx], cl
mov ecx, edx
xor eax, 1
add eax, edx
and edx, 1
and ecx, 6
add eax, edx
sub eax, ecx
mov edx, eax
cmp eax, 7
jb 0x9ef770
mov eax, dword [esp]
mov edx, dword [0x9cb064]
test edx, edx
je 0x9ef7f8
xor ebx, ebx
mov ecx, dword [0x9cb068]
nop
nop
nop
nop
nop
nop
cmp dword [ecx + ebx*8], 0x9c142cda
je 0x9ef7d0
inc ebx
cmp edx, ebx
jne 0x9ef7c0
jmp 0x9ef7f8
mov edx, dword [ecx + ebx*8 + 4]
cmp edx, eax
je 0x9ef7f8
mov eax, esp
lea ecx, [esp + 0x1c]
push 5
push 0x18
push eax
push ecx
push dword [ebp + 8]
push 0x14
push edx
push dword [0x9cb06c]
call fcn.009ecf50
add esp, 0x20
test edi, edi
je 0x9ef802
mov ecx, dword [esp + 8]
mov dword [edi], ecx
test esi, esi
je 0x9ef80e
cmp byte [esp + 0x15], 0
setne byte [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0xc60528
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0xaec008], 0x8088405
inc edx
mov dword [ebx + 0xaec008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0xc8c460
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push ebp
mov edi, ecx
mov ecx, dword [ebp + 8]
mov esi, ecx
shr esi, 2
je 0xc8c48d
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebx, dword [eax + esi*4]
mov ebp, dword [edx + esi*4]
mov dword [edi + esi*4], ebx
xor dword [eax + esi*4], ebp
inc esi
jne 0xc8c47e
and ecx, 3
je 0xc8c4a5
mov bl, byte [ecx + eax - 1]
mov bh, byte [ecx + edx - 1]
mov byte [ecx + edi - 1], bl
xor byte [ecx + eax - 1], bh
dec ecx
jne 0xc8c492
pop ebp
pop esi
pop edi
pop ebx
pop ebp
ret 4
Function at 0xc8c4b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push ebp
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push esi
shr esi, 2
je 0xc8c4e9
lea ecx, [ecx + esi*4]
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebp, dword [eax + esi*4]
mov ebx, dword [edi + esi*4]
xor ebx, dword [edx + esi*4]
mov dword [edx + esi*4], ebx
xor ebx, dword [ecx + esi*4]
mov dword [edi + esi*4], ebp
mov dword [eax + esi*4], ebx
inc esi
jne 0xc8c4d1
pop esi
and esi, 3
je 0xc8c50e
mov bl, byte [esi + eax - 1]
mov bh, byte [esi + edx - 1]
xor bh, byte [esi + edi - 1]
mov byte [esi + edx - 1], bh
xor bh, byte [esi + ecx - 1]
mov byte [esi + edi - 1], bl
mov byte [esi + eax - 1], bh
dec esi
jne 0xc8c4ef
pop ebp
pop esi
pop edi
pop ebx
pop ebp
ret 8

Function at 0xc8c518
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, ecx
mov ecx, dword [ebp + 8]
mov esi, ecx
shr esi, 2
je 0xc8c544
lea edi, [edi + esi*4]
lea edx, [edx + esi*4]
lea eax, [eax + esi*4]
neg esi
mov ebx, dword [edx + esi*4]
xor ebx, dword [eax + esi*4]
mov dword [edi + esi*4], ebx
mov dword [eax + esi*4], ebx
inc esi
jne 0xc8c535
and ecx, 3
je 0xc8c55c
mov bl, byte [ecx + edx - 1]
xor bl, byte [ecx + eax - 1]
mov byte [ecx + edi - 1], bl
mov byte [ecx + eax - 1], bl
dec ecx
jne 0xc8c549
pop esi
pop edi
pop ebx
pop ebp
ret 4

Function at 0xc8c564
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
shr ecx, 1
lea edi, [eax + ecx*8]
lea edx, [edx + ecx*8]
neg ecx
mov ebx, dword [edx + ecx*8]
mov eax, dword [edx + ecx*8 + 4]
xor dword [edi + ecx*8], ebx
xor dword [edi + ecx*8 + 4], eax
inc ecx
jne 0xc8c570
pop edi
pop ebx
ret
Function at 0xc8ce8c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call dword [eax + 0x20]
mov esi, eax
mov eax, esi
shr eax, 2
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.00c8cae4
mov dword [ebp - 0x10], eax
xor edx, edx
push ebp
push 0xa087cb
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, esi
add eax, eax
push eax
mov eax, dword [ebp - 8]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov dword [ebp - 0x14], eax
dec edi
test edi, edi
jl 0xc8cf3a
inc edi
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, esi
call fcn.00c60110
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.00c8c564
lea eax, [ebx + esi]
mov ebx, eax
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, esi
call fcn.00c60110
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.00c8c564
lea eax, [ebx + esi]
mov ebx, eax
dec edi
jne 0xc8cee7
mov eax, esi
add eax, eax
push eax
mov eax, dword [ebp - 8]
pop edx
mov ecx, edx
cdq
idiv ecx
mov edi, edx
cmp esi, edi
jg 0xc8cf88
mov edx, dword [ebp - 0x10]
mov eax, ebx
mov ecx, esi
call fcn.00c60110
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov edx, dword [ebp - 0x14]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
call fcn.00c8c564
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov ecx, esi
call fcn.00c60110
lea eax, [ebx + esi]
mov ebx, eax
sub edi, esi
test edi, edi
jle 0xc8cfb2
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
dec edi
test edi, edi
jl 0xc8cfb2
inc edi
xor eax, eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 8]
mov dl, byte [edx + eax]
xor byte [ebx + eax], dl
inc eax
dec edi
jne 0xc8cfa2
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xa087d2
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.00c8cc80
ret

Function at 0xc9b794
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
xor ebx, ebx
mov bl, dl
dec ebx
test ebx, ebx
jl 0xc9b7e8
inc ebx
xor edx, edx
mov ecx, edx
shl ecx, 2
movzx esi, byte [eax + ecx]
lea esi, [esi*4 + 0xaec814]
mov esi, dword [esi]
movzx edi, byte [eax + ecx + 1]
lea edi, [edi*4 + 0xaecc14]
xor esi, dword [edi]
movzx edi, byte [eax + ecx + 2]
lea edi, [edi*4 + 0xaed014]
xor esi, dword [edi]
movzx edi, byte [eax + ecx + 3]
lea edi, [edi*4 + 0xaed414]
xor esi, dword [edi]
lea ecx, [eax + ecx]
mov dword [ecx], esi
inc edx
dec ebx
jne 0xc9b7a3
pop edi
pop esi
pop ebx
ret
Function at 0xca93b0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeec
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0xc]
cmp dword [ebp - 0xc], 0
jle 0xca9470
xor ebx, ebx
lea esi, [ebp - 0x114]
mov eax, dword [ebp + 8]
xor edx, edx
push edx
push eax
mov eax, ebx
cdq
call fcn.00c62d34
mov al, byte [edi + eax]
mov byte [esi], al
inc ebx
inc esi
cmp ebx, 0x100
jne 0xca93da
xor edx, edx
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0xca9470
inc eax
mov dword [ebp - 0x14], eax
xor ebx, ebx
inc edx
and dl, 0xff
mov esi, edx
and esi, 0xff
mov al, byte [ebp + esi - 0x114]
mov cl, byte [ebp - 0xd]
add cl, al
and cl, 0xff
mov byte [ebp - 0xd], cl
xor ecx, ecx
mov cl, byte [ebp - 0xd]
mov cl, byte [ebp + ecx - 0x114]
mov byte [ebp + esi - 0x114], cl
xor ecx, ecx
mov cl, byte [ebp - 0xd]
mov byte [ebp + ecx - 0x114], al
add al, byte [ebp + esi - 0x114]
and al, 0xff
mov ecx, dword [ebp - 4]
mov cl, byte [ecx + ebx]
and eax, 0xff
xor cl, byte [ebp + eax - 0x114]
mov eax, dword [ebp - 8]
mov byte [eax + ebx], cl
inc ebx
dec dword [ebp - 0x14]
jne 0xca940c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0xca947c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
cmp dword [ebp - 0xc], 0
jle 0xca9534
xor esi, esi
lea ecx, [ebp - 0x110]
mov eax, esi
cdq
idiv edi
mov al, byte [ebx + edx]
mov byte [ecx], al
inc esi
inc ecx
cmp esi, 0x100
jne 0xca94a9
xor edx, edx
xor ecx, ecx
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0xca9534
inc eax
mov dword [ebp - 0x10], eax
xor esi, esi
inc edx
and dl, 0xff
xor eax, eax
mov al, dl
mov al, byte [ebp + eax - 0x110]
lea ecx, [eax + ecx]
and cl, 0xff
xor ebx, ebx
mov bl, cl
mov bl, byte [ebp + ebx - 0x110]
mov edi, edx
and edi, 0xff
mov byte [ebp + edi - 0x110], bl
xor ebx, ebx
mov bl, cl
mov byte [ebp + ebx - 0x110], al
xor ebx, ebx
mov bl, dl
add al, byte [ebp + ebx - 0x110]
and al, 0xff
mov ebx, dword [ebp - 4]
mov bl, byte [ebx + esi]
and eax, 0xff
xor bl, byte [ebp + eax - 0x110]
mov eax, dword [ebp - 8]
mov byte [eax + esi], bl
inc esi
dec dword [ebp - 0x10]
jne 0xca94cf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0xca9540
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff00
mov edi, ecx
mov ecx, edx
mov ebp, eax
test cl, cl
jbe 0xca95a7
xor ebx, ebx
mov esi, esp
mov byte [edi + ebx], bl
xor eax, eax
mov al, cl
push eax
mov eax, ebx
pop edx
push ecx
mov ecx, edx
cdq
idiv ecx
pop ecx
mov al, byte [ebp + edx]
mov byte [esi], al
inc ebx
inc esi
cmp ebx, 0x100
jne 0xca9558
xor eax, eax
xor ebx, ebx
mov esi, esp
mov dl, byte [edi + ebx]
xor ecx, ecx
mov cl, dl
add eax, ecx
xor ecx, ecx
mov cl, byte [esi]
add eax, ecx
and eax, 0xff
mov cl, byte [edi + eax]
mov byte [edi + ebx], cl
mov byte [edi + eax], dl
inc ebx
inc esi
cmp ebx, 0x100
jne 0xca9580
add esp, 0x100
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0xcb720c
Capabilities:
Encode data using xor

Disassembly:
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0xcb7212
ret
Function at 0xcfc7d0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, ecx
mov dword [ebp - 4], eax
mov esi, dword [0xb0dc70]
mov eax, dword [ebp - 4]
mov byte [eax + 0x210], 1
xor eax, eax
push ebp
push 0xa781a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.00cf49a0
add dword [ebp - 0xc], 4
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.00cf5bc8
mov eax, dword [esi]
call fcn.00ce34a0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4c]
add edx, dword [ebp - 0x14]
cmp eax, edx
jge 0xcfc842
mov eax, dword [esi]
call fcn.00ce34a0
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x4c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
call fcn.00ce34ac
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x48]
add edx, dword [ebp - 0x18]
cmp eax, edx
jge 0xcfc866
mov eax, dword [esi]
call fcn.00ce34ac
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x48]
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
call fcn.00ce3494
cmp eax, dword [ebp - 0x18]
jle 0xcfc87c
mov eax, dword [esi]
call fcn.00ce3494
mov dword [ebp - 0x18], eax
mov eax, dword [esi]
call fcn.00ce3488
cmp eax, dword [ebp - 0xc]
jle 0xcfc892
mov eax, dword [esi]
call fcn.00ce3488
mov dword [ebp - 0xc], eax
push 0x10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 4]
call fcn.00cfb158
push eax
call fcn.00c650d4
call fcn.00c64614
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x214]
cmp eax, 0xfa
jbe 0xcfc959
mov eax, ebx
call fcn.00c61d34
cmp eax, 0x64
jge 0xcfc959
cmp dword [0xafb26c], 0
je 0xcfc959
push 0
lea eax, [ebp - 8]
push eax
push 0
push 0x1016
call fcn.00c65124
cmp dword [ebp - 8], 0
je 0xcfc959
push 0
lea eax, [ebp - 8]
push eax
push 0
push 0x1018
call fcn.00c65124
cmp dword [ebp - 8], 0
je 0xcfc91c
mov bl, 2
jmp 0xcfc937
lea edx, [ebp - 0x20]
mov eax, dword [0xb15830]
call fcn.00cffa68
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x14]
jle 0xcfc935
xor ebx, ebx
jmp 0xcfc937
mov bl, 1
xor eax, eax
mov al, bl
mov eax, dword [eax*4 + 0xafb374]
or eax, 0x40000
push eax
push 0x64
mov eax, dword [ebp - 4]
call fcn.00cfb158
push eax
call dword [0xafb26c]
mov eax, dword [0xb0da7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 4]
call fcn.00cf888c
push 4
mov eax, dword [ebp - 4]
call fcn.00cfb158
push eax
call fcn.00c6511c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x7c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xa781b0
call fcn.00c64614
mov edx, dword [ebp - 4]
mov dword [edx + 0x214], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x210], 0
ret