joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1013d2b0
Capabilities:
Terminate process

Disassembly:
mov eax, 8
call fcn.101bea50
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push esi
push edi
push ebx
xor edi, edi
call fcn.1003ab60
add esp, 4
test eax, eax
jle 0x1013d48a
push edi
push ebx
call fcn.1003adb0
mov esi, eax
mov dword [esp + 0x18], 0
push 0x9c
push esi
xor ebp, ebp
call fcn.101838f0
add esp, 0x10
test eax, eax
je 0x1013d301
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
push 0x9d
push esi
call fcn.101838f0
add esp, 8
test eax, eax
je 0x1013d316
mov ebp, dword [eax + 4]
push esi
call fcn.101839e0
add eax, 0xffffff6a
add esp, 4
cmp eax, 5
ja case.0x1013d32d.153
jmp dword [eax*4 + 0x1013d4ac]
mov ebp, dword [esp + 0x28]
test ebp, ebp
je case.0x1013d32d.153
cmp dword [ebp], 0
jne case.0x1013d32d.153
push esi
call fcn.10183910
push eax
call fcn.10089b30
add esp, 8
mov dword [ebp], eax
jmp 0x1013d474
mov ebp, dword [esp + 0x28]
test ebp, ebp
je case.0x1013d32d.153
cmp dword [ebp], 0
jne case.0x1013d32d.153
push dword [esp + 0x24]
push dword [esp + 0x24]
push esi
call fcn.101839f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1013d4a0
push esi
call fcn.10089b30
push esi
mov dword [ebp], eax
call fcn.10087130
add esp, 8
cmp dword [ebp], 0
jmp 0x1013d476
cmp dword [esp + 0x2c], 0
je case.0x1013d32d.153
push esi
call fcn.101839a0
add esp, 4
cmp eax, 0x9e
jne case.0x1013d32d.153
push esi
call fcn.10183950
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1013d4a0
test ebp, ebp
je 0x1013d3fa
push dword [ebp]
push dword [ebp + 8]
push ebx
call fcn.1007b200
add esp, 0xc
test eax, eax
je 0x1013d497
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1013d43b
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100771e0
add esp, 8
test eax, eax
js 0x1013d43b
push eax
push dword [esp + 0x18]
push ebx
call fcn.1007b0f0
push 0xec
push str.cryptopkcs12p12_kiss.c
push dword [esp + 0x28]
mov esi, eax
call fcn.1004b410
add esp, 0x18
test esi, esi
je 0x1013d497
push ebx
push dword [esp + 0x30]
call fcn.1003abf0
add esp, 8
test eax, eax
je 0x1013d497
mov ebx, dword [esp + 0x1c]
jmp case.0x1013d32d.153
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push esi
call fcn.10183930
add esp, 4
push eax
call fcn.1013d2b0
add esp, 0x14
test eax, eax
je 0x1013d4a0
push ebx
inc edi
call fcn.1003ab60
add esp, 4
cmp edi, eax
jl 0x1013d2d5
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
push ebx
call fcn.10042920
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
Function at 0x10143c40
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10
call fcn.101bea50
mov eax, dword [esp + 0x14]
push ebx
mov ebx, dword [esp + 0x24]
push ebp
mov ebp, dword [eax + 0x64]
push esi
mov esi, dword [esp + 0x28]
push edi
mov ecx, dword [ebp + 0x70]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
test ecx, ecx
je 0x10143ca9
test ebx, ebx
je 0x10143c89
lea edx, [ebp + 0x30]
add edx, ecx
cmp ecx, 0x40
jae 0x10143c89
mov al, byte [edx]
inc ecx
xor al, byte [esi]
inc edx
mov byte [edi], al
inc esi
inc edi
sub ebx, 1
jne 0x10143c75
mov dword [ebp + 0x70], ecx
test ebx, ebx
je 0x10143d64
cmp ecx, 0x40
jne 0x10143ca9
mov dword [ebp + 0x70], 0
add dword [ebp + 0x20], 1
jne 0x10143ca9
inc dword [ebp + 0x24]
mov edx, dword [ebp + 0x20]
mov eax, ebx
and eax, 0x3f
sub ebx, eax
mov dword [esp + 0x1c], eax
lea eax, [ebp + 0x20]
mov dword [esp + 0x24], eax
cmp ebx, 0x40
jb 0x10143d17
push dword [esp + 0x24]
mov ecx, ebx
xor ebp, ebp
shr ecx, 6
lea eax, [ecx + edx]
cmp eax, ecx
cmovae ebp, eax
neg edx
cmp eax, ecx
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x14]
cmovae edx, ecx
shl edx, 6
push ebp
push edx
push esi
push edi
mov dword [esp + 0x28], edx
call fcn.10195b00
mov eax, dword [esp + 0x28]
add esp, 0x14
sub ebx, eax
add esi, eax
add edi, eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x20], eax
test eax, eax
jne 0x10143d10
inc dword [ebp + 0x24]
mov edx, eax
cmp ebx, 0x40
jae 0x10143cc3
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x10143d64
push 0x40
lea eax, [ebp + 0x30]
push 0
push eax
call fcn.101c06d0
lea eax, [ebp + 0x20]
push eax
push ebp
lea eax, [ebp + 0x30]
push 0x40
push eax
push eax
call fcn.10195b00
add esp, 0x20
xor edx, edx
test ebx, ebx
je 0x10143d61
sub esi, edi
nop dword [eax + eax]
mov al, byte [edx + ebp + 0x30]
lea ecx, [edx + edi]
xor al, byte [esi + ecx]
inc edx
mov byte [ecx], al
cmp edx, ebx
jb 0x10143d50
mov dword [ebp + 0x70], ebx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
Function at 0x1014ad90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 4
call fcn.101bea50
push edi
mov edi, dword [esp + 0x14]
mov dword [esp + 4], 0
cmp edi, 0x800
jge 0x1014add8
call fcn.1004b6c0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x5c
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.1004b7c0
push 0
push 0x78
push 4
call fcn.1004b870
add esp, 0x18
xor eax, eax
pop edi
pop ecx
ret
push dword [esp + 0x18]
call fcn.1014aab0
add esp, 4
test eax, eax
jne 0x1014ae14
call fcn.1004b6c0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x61
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.1004b7c0
push 0
push 0xb2
push 4
call fcn.1004b870
add esp, 0x18
xor eax, eax
pop edi
pop ecx
ret
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push esi
call fcn.100cf9f0
push esi
call fcn.100cf7a0
push esi
mov dword [esp + 0x2c], eax
call fcn.100cf7a0
push esi
mov ebp, eax
call fcn.100cf7a0
add esp, 0x10
mov ebx, eax
cmp dword [esp + 0x20], 0
je 0x1014af76
test ebp, ebp
je 0x1014af4d
test ebx, ebx
je 0x1014af44
push 4
push ebp
call fcn.10052210
push 4
push ebx
call fcn.10052210
mov esi, dword [esp + 0x28]
add esp, 0x10
cmp dword [esi + 0x20], 0
jne 0x1014ae7e
call fcn.100520e0
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x1014ae8d
call fcn.100520e0
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x1014af40
test eax, eax
je 0x1014af40
push 4
push ecx
call fcn.10052210
push 4
push dword [esi + 0x24]
call fcn.10052210
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push edi
push 0
push 0
push 0
push 0
push 0
push ebp
push dword [esi + 0x20]
call fcn.101ab2d0
add esp, 0x3c
test eax, eax
je 0x1014af40
nop dword [eax]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push edi
push 0
push 0
push 0
push 0
push 0
push ebx
push dword [esi + 0x24]
call fcn.101ab2d0
add esp, 0x2c
test eax, eax
je 0x1014af40
push edi
push ebx
push ebp
push dword [esp + 0x2c]
call fcn.1014aa40
add esp, 0x10
test eax, eax
js 0x1014af40
je 0x1014aee0
push edi
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [esp + 0x2c]
call fcn.1014aa40
add esp, 0x10
test eax, eax
js 0x1014af40
je 0x1014aee0
inc dword [esi + 0x78]
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x28]
push ebp
call fcn.100517e0
add esp, 4
test ebx, ebx
je 0x1014af5a
push ebx
call fcn.100517e0
add esp, 4
push dword [esp + 0x20]
call fcn.100517e0
push esi
call fcn.100cf6a0
mov eax, dword [esp + 0x18]
add esp, 8
pop esi
pop ebp
pop ebx
pop edi
pop ecx
ret
mov dword [esp + 0x10], 0
test ebp, ebp
je 0x1014af4d
jmp 0x1014af44
Function at 0x10161110
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.101bea50
push ebx
mov ebx, dword [esp + 0x10]
xor ecx, ecx
push esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0x10
push edi
mov edi, dword [esp + 0x1c]
test esi, esi
jle 0x1016120e
cmp esi, 8
jb 0x101611f4
lea eax, [esi - 1]
lea edx, [esi - 1]
add eax, edi
add edx, ebx
cmp ebx, eax
ja 0x1016115a
cmp edx, edi
jae 0x101611f4
mov edx, edi
push ebp
cmp esi, 0x40
jb 0x101611c9
mov eax, esi
lea ebp, [edi + 0x30]
and eax, 0xffffffc0
sub edx, ebx
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x10]
movups xmm0, xmmword [eax - 0x10]
add ecx, 0x40
lea ebp, [ebp + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ebp - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [edx + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ebp - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ebp - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp ecx, dword [esp + 0x10]
jl 0x10161173
mov eax, esi
and al, 0x3f
cmp al, 8
jb 0x101611ef
jmp 0x101611cb
sub edx, ebx
mov ebp, esi
lea eax, [ecx + ebx]
and ebp, 0xfffffff8
movq xmm1, qword [edx + eax]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add ecx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp ecx, ebp
jl 0x101611d3
pop ebp
cmp ecx, esi
jge 0x1016120e
mov edx, esi
lea eax, [ecx + ebx]
sub edi, ebx
sub edx, ecx
nop dword [eax]
mov cl, byte [eax + edi]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x10161200
push esi
push ebx
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x20]
push ebx
push dword [eax + 8]
call fcn.1008bc60
add esp, 0x14
test eax, eax
je 0x10161237
xor eax, eax
cmp dword [esp + 0x20], esi
pop edi
pop esi
sete al
pop ebx
pop ecx
ret
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret

Function at 0x101613d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, dword [esp + 0xc]
test ebp, ebp
je 0x10161443
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10161443
push ebx
mov ebx, dword [esp + 0xc]
push edi
mov edi, dword [ebx + 0x14]
cmp edx, edi
cmovb edi, edx
test edi, edi
je 0x10161410
push esi
mov esi, ebp
lea ecx, [ebx + 0x1c]
nop dword [eax]
mov al, byte [esi]
lea esi, [esi + 1]
xor byte [ecx], al
lea ecx, [ecx + 1]
sub edi, 1
jne 0x10161400
pop esi
mov eax, dword [ebx + 0x14]
cmp edx, eax
jbe 0x10161441
sub edx, eax
cmp edx, 0x10
jbe 0x10161425
mov edx, 0x10
jmp 0x10161429
test edx, edx
je 0x10161441
xor ecx, ecx
nop dword [eax + eax]
mov eax, dword [ebx + 0x14]
add eax, ecx
mov al, byte [eax + ebp]
xor byte [ebx + ecx + 0x3c], al
inc ecx
cmp ecx, edx
jb 0x10161430
pop edi
pop ebx
pop ebp
ret
Function at 0x101616c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x74
call fcn.101bea50
mov eax, dword [0x102f8384]
xor eax, esp
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x78]
mov edx, 0x10
mov eax, dword [esp + 0x84]
push ebx
push ebp
mov ebp, dword [esp + 0x84]
push esi
mov esi, dword [ecx + 0x94]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x98]
movups xmm0, xmmword [esi + 0x3c]
mov dword [esp + 0x18], ecx
mov ecx, 1
push edi
mov dword [esp + 0x18], eax
movups xmmword [esp + 0x20], xmm0
nop
movzx eax, byte [edx + esi + 0x3b]
dec edx
add ecx, eax
mov byte [edx + esi + 0x3c], cl
shr ecx, 8
test edx, edx
jne 0x10161720
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [esp + 0x30], xmm0
cmp dword [esi + 0x14], 0x10
jne 0x10161747
lea edi, [edx + 0x20]
jmp 0x10161772
mov edx, 0x10
mov ecx, 1
movzx eax, byte [edx + esi + 0x3b]
dec edx
add ecx, eax
mov byte [edx + esi + 0x3c], cl
shr ecx, 8
test edx, edx
jne 0x10161751
movups xmm0, xmmword [esi + 0x3c]
mov edi, 0x30
movups xmmword [esp + 0x40], xmm0
push edi
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x5c]
push eax
push dword [esi]
call fcn.1008bc60
add esp, 0x14
test eax, eax
je 0x10161889
cmp dword [esp + 0x14], edi
jne 0x10161889
push dword [esi + 0x14]
lea eax, [esp + 0x54]
push eax
lea ebx, [esi + 0x1c]
push ebx
call fcn.101c0150
mov eax, dword [esi + 0x14]
add esp, 0xc
cmp dword [esi + 0x18], 0
movups xmm0, xmmword [esp + eax + 0x50]
movups xmmword [esi + 0x3c], xmm0
je 0x1016181f
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test ebp, ebp
jne 0x101617df
test ecx, ecx
jne 0x101617df
test eax, eax
je 0x10161802
push dword [esp + 0x98]
push eax
push dword [esp + 0xa8]
push ecx
push edi
push ebp
push esi
call fcn.10161450
add esp, 0x1c
test eax, eax
je 0x10161889
test edi, edi
je 0x10161842
mov eax, dword [esp + 0x1c]
push dword [eax + 0x8c]
lea eax, [esi + 0x60]
push eax
push esi
call fcn.101613d0
add esp, 0xc
jmp 0x10161842
push dword [esp + 0x90]
push ebp
push esi
call fcn.101613d0
push dword [esp + 0xa4]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.101613d0
add esp, 0x18
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi]
call fcn.1008bc30
add esp, 0x18
test eax, eax
je 0x10161889
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi + 4]
call fcn.1008bc30
add esp, 0x18
test eax, eax
je 0x10161889
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.101bdc82
add esp, 0x74
ret
mov ecx, dword [esp + 0x80]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101bdc82
add esp, 0x74
ret
Function at 0x10164e35
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebx
mov ebx, dword [esp + 8]
test ebx, ebx
jne 0x10164d7d
xor eax, eax
pop ebx
ret
push edi
push dword [ebx + 4]
push 0
push dword [ebx + 8]
push dword [ebx]
call fcn.100648a0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x10164dc4
call fcn.1004b6c0
push str.ecx_gen
push 0x24c
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.1004b7c0
push edi
push 0xc0100
push 0x39
call fcn.1004b870
add esp, 0x18
xor eax, eax
pop edi
pop ebx
ret
test byte [ebx + 0xc], 3
je 0x10164e0f
push esi
push edi
call fcn.10064820
mov esi, eax
add esp, 4
test esi, esi
jne 0x10164e12
call fcn.1004b6c0
push str.ecx_gen
push 0x255
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.1004b7c0
push esi
push 0xc0100
push 0x39
call fcn.1004b870
add esp, 0x18
push edi
call fcn.10064840
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
ret
push 0
push dword [edi + 0x4c]
push esi
push dword [ebx]
call fcn.100a9930
add esp, 0x10
test eax, eax
jle 0x10164e03
mov eax, dword [ebx + 8]
cmp eax, 3
ja case.default.0x10164e2e
jmp dword [eax*4 + 0x10164eac]
mov al, byte [esi + 0x1f]
and byte [esi], 0xf8
and al, 0x3f
or al, 0x40
mov byte [esi + 0x1f], al
lea eax, [edi + 0xc]
push esi
push eax
call fcn.1010c1b0
add esp, 8
mov eax, edi
or dword [edi + 8], 1
pop esi
pop edi
pop ebx
ret
and byte [esi], 0xfc
lea eax, [edi + 0xc]
or byte [esi + 0x37], 0x80
push esi
push eax
call fcn.10115430
add esp, 8
mov eax, edi
or dword [edi + 8], 1
pop esi
pop edi
pop ebx
ret
push dword [ebx + 4]
lea eax, [edi + 0xc]
push esi
push eax
push dword [ebx]
call fcn.1010bb70
jmp 0x10164e97
push dword [ebx + 4]
lea eax, [edi + 0xc]
push esi
push eax
push dword [ebx]
call fcn.10113820
add esp, 0x10
test eax, eax
je 0x10164e03
or dword [edi + 8], 1
mov eax, edi
pop esi
pop edi
pop ebx
ret
Function at 0x10181c80
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x14
call fcn.101bea50
mov ecx, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x24]
shr ecx, 3
mov dword [esp + 8], ecx
cmp esi, dword [esp + 0x28]
jb 0x10181e98
push ebx
push ebp
push edi
nop word [eax + eax]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x10181e72
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
movzx eax, byte [ecx + 7]
cdq
mov ebp, eax
mov ebx, edx
movzx eax, byte [ecx + 6]
shld ebx, ebp, 8
cdq
or ebx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ecx + 5]
shld ebx, ebp, 8
cdq
or ebx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ecx + 4]
shld ebx, ebp, 8
cdq
or ebx, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ecx + 3]
cdq
mov ecx, ebp
shld ebx, ecx, 8
mov edi, edx
mov dword [esp + 0x20], ebp
shl ecx, 8
or edi, ebx
or eax, ecx
and ebp, 0x55555555
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov dword [esp + 0x18], eax
shld edi, ebx, 8
movzx eax, byte [ecx + 2]
cdq
shl ebx, 8
or edi, edx
or ebx, eax
movzx eax, byte [ecx + 1]
cdq
shld edi, ebx, 8
shl ebx, 8
or edi, edx
or ebx, eax
movzx eax, byte [ecx]
cdq
add ecx, 8
shld edi, ebx, 8
mov dword [esp + 0x2c], ecx
shl ebx, 8
or ebx, eax
mov eax, ebx
and eax, 0x55555555
mov ecx, eax
shr ecx, 1
or ecx, eax
and ecx, 0x33333333
mov eax, ecx
shr eax, 2
or eax, ecx
and eax, 0xf0f0f0f
mov ecx, eax
shr ecx, 4
or ecx, eax
and ecx, 0xff00ff
mov dword [esp + 0x18], ecx
mov ecx, ebp
shr ecx, 1
or ecx, ebp
and ecx, 0x33333333
mov eax, ecx
shr eax, 2
or eax, ecx
and eax, 0xf0f0f0f
mov ebp, eax
shr ebp, 4
or ebp, eax
and ebx, 0xaaaaaaaa
and ebp, 0xff00ff
lea eax, [ebx + ebx]
or eax, ebx
and eax, 0xcccccccc
lea ecx, [eax*4]
or ecx, eax
and ecx, 0xf0f0f0f0
mov edi, ecx
shl edi, 4
or edi, ecx
mov ecx, dword [esp + 0x20]
and ecx, 0xaaaaaaaa
and edi, 0xff00ff00
mov ebx, edi
and edi, 0xffff00
shr ebx, 8
or ebx, edi
lea eax, [ecx + ecx]
shr ebx, 8
or eax, ecx
and eax, 0xcccccccc
lea ecx, [eax*4]
or ecx, eax
and ecx, 0xf0f0f0f0
mov edx, ecx
shl edx, 4
or edx, ecx
mov ecx, ebp
and edx, 0xff00ff00
shl ebp, 8
mov eax, edx
and ecx, 0xffffff00
shl eax, 8
or ecx, ebp
or eax, edx
shl ecx, 8
and eax, 0xffff0000
xor edx, edx
or ebx, eax
mov eax, dword [esp + 0x18]
shr eax, 8
or eax, dword [esp + 0x18]
movzx eax, ax
or ecx, eax
mov eax, dword [esp + 0x10]
or edx, ecx
mov ecx, dword [esp + 0x28]
xor dword [ecx + eax*8], edx
xor dword [ecx + eax*8 + 4], ebx
inc eax
mov dword [esp + 0x10], eax
cmp eax, esi
jb 0x10181cc4
mov esi, dword [esp + 0x30]
jmp 0x10181e76
mov ecx, dword [esp + 0x28]
push ecx
call fcn.101813c0
sub esi, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x34]
jae 0x10181cb0
pop edi
pop ebp
pop ebx
mov eax, esi
pop esi
add esp, 0x14
ret
Function at 0x10187280
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x30
call fcn.101bea50
mov eax, dword [0x102f8384]
xor eax, esp
mov dword [esp + 0x2c], eax
push ebx
push ebp
push esi
push edi
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
movzx ecx, byte [edx]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
mov bl, byte [edx + 3]
mov esi, dword [eax]
movzx eax, byte [edx + 1]
shl eax, 8
or ecx, eax
mov ebp, dword [esp + 0x4c]
movzx eax, byte [edx + 2]
shl eax, 0x10
or ecx, eax
mov dword [esp + 0x20], edx
movzx eax, bl
shl eax, 0x18
or ecx, eax
mov byte [esp + 0x37], bl
movzx eax, byte [edx + 5]
shl eax, 8
movzx edi, byte [edx + 4]
mov dl, byte [edx + 7]
or edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
movzx ecx, dl
shl ecx, 8
movzx eax, byte [eax + 6]
or ecx, eax
mov dword [esp + 0x14], 0
mov eax, ecx
mov byte [esp + 0x3a], cl
shl eax, 0x10
or edi, eax
mov byte [esp + 0x3b], dl
mov eax, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x24], eax
mov byte [esp + 0x34], al
shr eax, 8
mov byte [esp + 0x35], al
mov eax, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x36], al
mov eax, ebx
shr eax, 8
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x38], bl
mov byte [esp + 0x39], al
test ebp, ebp
je 0x1018742b
mov edi, dword [esp + 0x44]
sub dword [esp + 0x18], edi
dec ebp
test esi, esi
jne 0x101873d0
push 1
push dword [esp + 0x34]
lea eax, [esp + 0x2c]
push eax
call fcn.101841a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov ebx, dword [esp + 0x28]
mov eax, ecx
shr eax, 8
mov edx, dword [esp + 0x14]
mov byte [esp + 0x35], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x36], al
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x37], al
mov eax, ebx
shr eax, 8
mov byte [esp + 0x39], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x3a], al
mov eax, ebx
shr eax, 0x18
inc edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x34], cl
mov byte [esp + 0x38], bl
mov byte [esp + 0x3b], al
mov dword [esp + 0x14], edx
jmp 0x101873d4
mov edx, dword [esp + 0x14]
mov al, byte [esp + esi + 0x34]
inc esi
mov ecx, dword [esp + 0x18]
and esi, 7
xor al, byte [edi]
mov byte [ecx + edi], al
inc edi
mov ecx, dword [esp + 0x10]
test ebp, ebp
jne 0x10187363
test edx, edx
je 0x1018742b
mov edx, dword [esp + 0x20]
mov eax, ecx
shr eax, 8
mov byte [edx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 2], al
mov eax, ebx
shr eax, 8
mov byte [edx + 5], al
mov eax, ebx
mov byte [edx], cl
shr ecx, 0x18
shr eax, 0x10
mov byte [edx + 4], bl
shr ebx, 0x18
mov byte [edx + 3], cl
mov byte [edx + 6], al
mov byte [edx + 7], bl
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101bdc82
add esp, 0x30
ret
Function at 0x10187f60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x38
call fcn.101bea50
mov eax, dword [0x102f8384]
xor eax, esp
mov dword [esp + 0x34], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
movzx ecx, byte [edx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov bl, byte [edx + 3]
mov esi, dword [eax]
movzx eax, byte [edx + 1]
shl eax, 8
or ecx, eax
mov ebp, dword [esp + 0x54]
movzx eax, byte [edx + 2]
shl eax, 0x10
or ecx, eax
mov dword [esp + 0x20], edx
movzx eax, bl
shl eax, 0x18
or ecx, eax
mov byte [esp + 0x3f], bl
movzx eax, byte [edx + 5]
shl eax, 8
movzx edi, byte [edx + 4]
mov dl, byte [edx + 7]
or edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
movzx ecx, dl
shl ecx, 8
movzx eax, byte [eax + 6]
or ecx, eax
mov dword [esp + 0x14], 0
mov eax, ecx
mov byte [esp + 0x42], cl
shl eax, 0x10
or edi, eax
mov byte [esp + 0x43], dl
mov eax, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x24], eax
mov byte [esp + 0x3c], al
shr eax, 8
mov byte [esp + 0x3d], al
mov eax, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x3e], al
mov eax, ebx
shr eax, 8
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], al
test ebp, ebp
je 0x10188121
mov edi, dword [esp + 0x4c]
sub dword [esp + 0x18], edi
dec ebp
test esi, esi
jne 0x101880c6
push dword [esp + 0x30]
lea eax, [esp + 0x28]
push dword [esp + 0x38]
push dword [esp + 0x40]
push eax
call fcn.10186130
mov ecx, dword [esp + 0x34]
add esp, 0x10
mov ebx, dword [esp + 0x28]
mov eax, ecx
shr eax, 8
mov edx, dword [esp + 0x14]
mov byte [esp + 0x3d], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x3e], al
mov eax, ecx
shr eax, 0x18
mov byte [esp + 0x3f], al
mov eax, ebx
shr eax, 8
mov byte [esp + 0x41], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x42], al
mov eax, ebx
shr eax, 0x18
inc edx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x3c], cl
mov byte [esp + 0x40], bl
mov byte [esp + 0x43], al
mov dword [esp + 0x14], edx
jmp 0x101880ca
mov edx, dword [esp + 0x14]
mov al, byte [esp + esi + 0x3c]
inc esi
mov ecx, dword [esp + 0x18]
and esi, 7
xor al, byte [edi]
mov byte [ecx + edi], al
inc edi
mov ecx, dword [esp + 0x10]
test ebp, ebp
jne 0x10188053
test edx, edx
je 0x10188121
mov edx, dword [esp + 0x20]
mov eax, ecx
shr eax, 8
mov byte [edx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 2], al
mov eax, ebx
shr eax, 8
mov byte [edx + 5], al
mov eax, ebx
mov byte [edx], cl
shr ecx, 0x18
shr eax, 0x10
mov byte [edx + 4], bl
shr ebx, 0x18
mov byte [edx + 3], cl
mov byte [edx + 6], al
mov byte [edx + 7], bl
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101bdc82
add esp, 0x38
ret