joyce8/EMBER2024-capa huggingface dataset:
Function at 0x455860
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [edx + 4]
mov edi, edx
mov ebp, ecx
test eax, eax
je 0x45590f
mov ecx, dword [edi]
xor edx, edx
cmp eax, 8
mov esi, 0
jb 0x4558d7
mov edx, eax
lea esi, [ecx + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov ebx, edx
nop word cs:[eax + eax]
movdqu xmm2, xmmword [esi - 0x10]
movdqu xmm3, xmmword [esi]
add esi, 0x20
add ebx, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x4558a0
por xmm1, xmm0
cmp eax, edx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd esi, xmm1
je 0x4558e8
mov ebx, eax
sub ebx, edx
lea edx, [ecx + edx*4]
nop
or esi, dword [edx]
add edx, 4
dec ebx
jne 0x4558e0
test esi, esi
je 0x45590f
test eax, eax
jle 0x4558f5
test byte [ecx], 1
jne 0x455931
push 0xb5
push str.external_boringssl_src_crypto_fipsmodule_bn_montgomery.c
push 0x68
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x455927
push 0xb1
push str.external_boringssl_src_crypto_fipsmodule_bn_montgomery.c
push 0x69
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [edi + 0xc], 0
je 0x455951
push 0xb9
push str.external_boringssl_src_crypto_fipsmodule_bn_montgomery.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x455927
lea ebx, [ebp + 0x14]
cmp ebx, edi
je 0x455992
push eax
push ebx
call fcn.00447880
add esp, 8
test eax, eax
je 0x4559d4
mov eax, dword [edi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x455984
push ecx
push dword [edi]
push dword [ebx]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
mov dword [ebp + 0x18], eax
lea ecx, [ebp + 0x18]
mov edx, dword [edi + 0xc]
mov dword [ebp + 0x20], edx
jmp 0x455998
mov eax, dword [ebp + 0x18]
lea ecx, [ebp + 0x18]
mov dword [esp + 4], ebp
nop dword [eax]
test eax, eax
jle 0x4559c1
mov edx, dword [ebx]
lea esi, [eax - 1]
cmp dword [edx + eax*4 - 4], 0
mov eax, esi
je 0x4559a0
inc esi
mov dword [ecx], esi
cmp esi, 2
mov ecx, dword [edx]
jl 0x4559f1
mov edx, dword [edx + 4]
jmp 0x4559f3
mov dword [ecx], eax
jne 0x4559cc
mov dword [ebp + 0x20], 0
mov eax, dword [ebx]
xor edx, edx
mov ecx, dword [eax]
jmp 0x4559f3
push 0xbf
push str.external_boringssl_src_crypto_fipsmodule_bn_montgomery.c
push 0x44
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x455927
xor edx, edx
mov esi, 1
xor eax, eax
xor ebx, ebx
mov dword [esp + 8], 0x40
mov dword [esp], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov ebp, esi
nop word cs:[eax + eax]
nop
mov edi, dword [esp + 0xc]
and ebp, 1
mov edx, 0
neg ebp
sbb edx, 0
and ebp, ecx
and edi, edx
mov ecx, edi
and edi, eax
xor ecx, eax
mov eax, ebp
and ebp, esi
xor eax, esi
shrd eax, ecx, 1
shr ecx, 1
add ebp, eax
adc edi, ecx
shrd dword [esp], ebx, 1
and edx, 0x80000000
shr ebx, 1
mov ecx, dword [esp + 0x10]
mov esi, ebp
or ebx, edx
dec dword [esp + 8]
mov eax, edi
jne 0x455a20
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ebx
mov eax, 1
jmp 0x455929
Function at 0x459820
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
test ecx, ecx
jle 0x459950
mov eax, dword [eax]
xor edx, edx
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
nop dword [eax]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], edx
mov eax, dword [eax + edx*4]
mov esi, eax
lea ebp, [eax - 1]
shl esi, 0x10
mov ecx, esi
dec esi
not ecx
and esi, ecx
mov ecx, eax
sar esi, 0x1f
shr ecx, 0x10
mov dword [esp + 0x14], esi
and ecx, esi
not esi
and esi, eax
not eax
or esi, ecx
and ebp, eax
mov edx, esi
sar ebp, 0x1f
shl edx, 0x18
not ebp
mov eax, edx
dec edx
not eax
and edx, eax
mov eax, esi
sar edx, 0x1f
shr eax, 8
mov ecx, edx
and eax, edx
not edx
and edx, esi
and ecx, 8
or edx, eax
mov eax, edx
mov edi, edx
shl eax, 0x1c
shr edi, 4
mov esi, eax
dec eax
not esi
and eax, esi
sar eax, 0x1f
mov esi, eax
and edi, eax
not eax
and eax, edx
and esi, 4
or eax, edi
mov edx, eax
shl edx, 0x1e
mov edi, edx
dec edx
not edi
and edx, edi
mov edi, eax
sar edx, 0x1f
shr edi, 2
mov ebx, edx
and edi, edx
not edx
and edx, eax
and ebx, 2
or edx, edi
mov edi, dword [esp + 8]
shl edx, 0x1f
mov eax, edx
dec edx
xor eax, 0x80000000
or ecx, edi
and edx, eax
mov eax, dword [esp + 0x14]
add edi, 0x20
or ecx, esi
shr edx, 0x1f
mov esi, dword [esp + 0x10]
mov dword [esp + 8], edi
or ecx, ebx
or ecx, edx
mov edx, dword [esp + 4]
and eax, 0x10
or ecx, eax
mov eax, edx
or edx, ebp
not eax
mov dword [esp + 4], edx
and ecx, eax
mov eax, dword [esp + 0x18]
and ecx, ebp
or dword [esp], ecx
inc eax
mov edx, eax
cmp eax, esi
jl 0x459860
jmp 0x459957
mov dword [esp], 0
mov eax, dword [esp]
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x463ea0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov edi, dword [esp + 0x20]
cmp dword [edi + 0xc], 0
je 0x463ee9
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
push 0x1b
push str.external_boringssl_src_crypto_fipsmodule_ec_scalar.c
push 0x85
push 0
push 0xf
call sym.adb.exe_ERR_put_error
add esp, 0x14
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x18]
mov ebx, dword [edi + 4]
mov eax, dword [esi + 0xc]
mov ebp, ebx
sub ebp, eax
jbe 0x463faf
mov edx, dword [edi]
xor ecx, ecx
cmp ebp, 8
mov edi, eax
jb 0x463f6e
mov ecx, edx
mov edx, ebp
pxor xmm0, xmm0
pxor xmm1, xmm1
and edx, 0xfffffff8
mov dword [esp], ecx
lea ecx, [ecx + eax*4 + 0x10]
lea edi, [eax + edx]
mov esi, edx
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [ecx - 0x10]
movdqu xmm3, xmmword [ecx]
add ecx, 0x20
add esi, 0xfffffff8
por xmm0, xmm2
por xmm1, xmm3
jne 0x463f30
por xmm1, xmm0
cmp ebp, edx
mov esi, dword [esp + 0x18]
mov edx, dword [esp]
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd ecx, xmm1
je 0x463f88
sub ebx, edi
lea edx, [edx + edi*4]
nop word cs:[eax + eax]
nop dword [eax]
or ecx, dword [edx]
add edx, 4
dec ebx
jne 0x463f80
mov edi, dword [esp + 0x20]
test ecx, ecx
mov ebx, eax
je 0x463faf
push 0x143
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
push 0
push 3
call sym.adb.exe_ERR_put_error
add esp, 0x14
jmp 0x463ec7
mov ebp, dword [esp + 0x1c]
shl eax, 2
test eax, eax
je 0x463fc6
push eax
push 0
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
shl ebx, 2
test ebx, ebx
je 0x463fd9
push ebx
push dword [edi]
push ebp
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x463ec7
mov ecx, dword [esi + 8]
xor edx, edx
mov dword [esp], ecx
mov ecx, eax
xor eax, eax
mov esi, dword [esp + 0x1c]
mov ebp, dword [esi + edx*4]
mov esi, dword [esp]
mov ebx, dword [esi + edx*4]
mov edi, ebp
inc edx
sub edi, ebx
xor ebx, ebp
xor edi, ebp
lea esi, [ebx - 1]
or edi, ebx
not ebx
xor edi, ebp
and esi, ebx
mov ebp, eax
sar edi, 0x1f
sar esi, 0x1f
mov ebx, edi
and ebp, esi
not esi
not ebx
and ebx, 1
or ebx, edi
and esi, ebx
mov eax, esi
or eax, ebp
cmp ecx, edx
jne 0x463ff0
test eax, eax
jns 0x463ec7
mov eax, 1
jmp 0x463ee1
Function at 0x46e8d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov edi, dword [ebp + 0x10]
xor eax, eax
mov esi, edx
cmp dword [ecx + 8], edi
jne 0x46ea53
mov ebx, dword [ebp + 0x18]
mov eax, dword [ecx]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x10], ecx
cmp ebx, 0x10
mov dword [esp + 0xc], eax
jb 0x46e974
lea ecx, [ebx - 0x10]
mov dword [esp + 8], esi
lea esi, [esi + 0x10]
mov dword [esp + 0x18], ecx
and ecx, 0xfffffff0
mov dword [esp + 0x14], ecx
lea ecx, [edi + ecx + 0x10]
mov dword [esp + 0x1c], ecx
nop
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movups xmm0, xmmword [esi]
xorps xmm0, xmmword [esp + 0x20]
movups xmmword [esi], xmm0
push dword [ebp + 8]
push esi
push esi
call dword [esp + 0x18]
add esp, 0xc
add ebx, 0xfffffff0
add edi, 0x10
cmp ebx, 0xf
ja 0x46e920
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
sub ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x46e97e
jmp 0x46e9fa
mov eax, edi
test ebx, ebx
je 0x46e9fa
lea edx, [esi + 0x10]
xor edi, edi
cmp ebx, 0x1f
mov dword [esp + 8], edx
ja 0x46e991
mov ecx, dword [ebp + 8]
jmp 0x46e9dc
mov ecx, edx
lea edx, [eax + ebx]
cmp edx, ecx
mov ecx, dword [ebp + 8]
jbe 0x46e9a5
lea edx, [esi + ebx + 0x10]
cmp eax, edx
jb 0x46e9dc
mov edi, ebx
xor edx, edx
and edi, 0xffffffe0
nop dword [eax]
movups xmm0, xmmword [eax + edx]
movups xmm2, xmmword [esi + edx + 0x10]
movups xmm1, xmmword [eax + edx + 0x10]
movups xmm3, xmmword [esi + edx + 0x20]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esi + edx + 0x10], xmm2
movups xmmword [esi + edx + 0x20], xmm3
add edx, 0x20
cmp edi, edx
jne 0x46e9b0
jmp 0x46e9e4
mov dl, byte [eax + edi]
xor byte [esi + edi + 0x10], dl
inc edi
cmp ebx, edi
jne 0x46e9dc
push ecx
mov eax, dword [esp + 0xc]
push eax
push eax
call dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xc], 0
je 0x46ea1a
lea eax, [esi + 0xf]
xor edx, edx
nop word cs:[eax + eax]
nop
mov byte [eax], 0
inc edx
dec eax
cmp edx, dword [ecx + 0xc]
jb 0x46ea10
lea eax, [esp + 0x20]
push dword [ebp + 8]
push eax
push esi
call dword [esp + 0x18]
add esp, 0xc
movups xmm0, xmmword [esi + 0x10]
mov eax, dword [ebp + 0x10]
xorps xmm0, xmmword [esp + 0x20]
test eax, eax
movups xmmword [esi + 0x10], xmm0
je 0x46ea4e
add esi, 0x10
push eax
push esi
push dword [ebp + 0xc]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x471da0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x30
mov ecx, dword [esp + 0x4c]
xor eax, eax
cmp ecx, 0x30
ja 0x471ee7
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
test ecx, ecx
movsd xmm0, qword [eax + 0x28]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
je 0x471e5c
mov eax, dword [esp + 0x48]
xor edx, edx
cmp ecx, 0x1f
jbe 0x471e50
mov edx, ecx
xor edi, edi
and edx, 0xffffffe0
nop word cs:[eax + eax]
nop dword [eax]
movups xmm0, xmmword [eax + edi]
movups xmm2, xmmword [esp + edi]
movups xmm1, xmmword [eax + edi + 0x10]
movups xmm3, xmmword [esp + edi + 0x10]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esp + edi], xmm2
movups xmmword [esp + edi + 0x10], xmm3
add edi, 0x20
cmp edx, edi
jne 0x471e20
cmp edx, ecx
je 0x471e5c
nop dword [eax]
movzx ebx, byte [eax + edx]
xor byte [esp + edx], bl
inc edx
cmp ecx, edx
jne 0x471e50
movups xmm0, xmmword [esp]
movups xmm1, xmmword [esp + 0x10]
mov eax, esp
xorps xmm0, xmmword [0x57acb0]
xorps xmm1, xmmword [0x57acc0]
movups xmmword [esp], xmm0
movups xmmword [esp + 0x10], xmm1
movups xmm0, xmmword [esp + 0x20]
xorps xmm0, xmmword [0x57acd0]
movups xmmword [esp + 0x20], xmm0
push esi
push 0x100
push eax
call sym.adb.exe_AES_set_encrypt_key
add esp, 0xc
mov dword [esi + 0xf4], sym.adb.exe_AES_encrypt
mov dword [esi + 0xf8], 0
mov eax, 1
movsd xmm0, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
movsd qword [esi + 0x104], xmm1
movsd qword [esi + 0xfc], xmm0
mov dword [esi + 0x114], 0
mov dword [esi + 0x110], 1
add esp, 0x30
pop esi
pop edi
pop ebx
ret
Function at 0x471ef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
test ecx, ecx
je 0x471fbc
xor eax, eax
cmp ecx, 0x30
ja 0x4720be
movsd xmm0, qword [esi + 0x28]
mov eax, dword [esp + 0x7c]
xor edx, edx
cmp ecx, 0x20
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 0x20]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + 0x18]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
jb 0x471fa0
mov edx, ecx
xor esi, esi
and edx, 0xffffffe0
nop word [eax + eax]
movups xmm0, xmmword [eax + esi]
movups xmm2, xmmword [esp + esi]
movups xmm1, xmmword [eax + esi + 0x10]
movups xmm3, xmmword [esp + esi + 0x10]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esp + esi], xmm2
movups xmmword [esp + esi + 0x10], xmm3
add esi, 0x20
cmp edx, esi
jne 0x471f70
cmp edx, ecx
jne 0x471fa0
mov esi, esp
jmp 0x471fbc
mov esi, esp
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [eax + edx]
xor byte [esp + edx], bl
inc edx
cmp ecx, edx
jne 0x471fb0
mov edi, dword [esp + 0x74]
lea ebx, [esp + 0x30]
mov eax, dword [edi + 0x108]
lea ebp, [edi + 0xfc]
bswap eax
inc eax
bswap eax
mov dword [edi + 0x108], eax
push edi
push ebx
push ebp
call dword [edi + 0xf4]
add esp, 0xc
mov eax, dword [edi + 0x108]
bswap eax
inc eax
bswap eax
mov dword [edi + 0x108], eax
lea eax, [esp + 0x40]
push edi
push eax
push ebp
call dword [edi + 0xf4]
add esp, 0xc
mov eax, dword [edi + 0x108]
bswap eax
inc eax
bswap eax
mov dword [edi + 0x108], eax
lea eax, [esp + 0x50]
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebp
call dword [edi + 0xf4]
add esp, 0xc
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esp + 0x30]
xorps xmm1, xmm0
movups xmm0, xmmword [esp + 0x40]
movups xmmword [esp + 0x30], xmm1
movups xmm1, xmmword [esi + 0x10]
xorps xmm1, xmm0
movups xmmword [esp + 0x40], xmm1
movups xmm0, xmmword [esi + 0x20]
movups xmm1, xmmword [esp + 0x50]
xorps xmm1, xmm0
movups xmmword [esp + 0x50], xmm1
push edi
push 0x100
push ebx
call sym.adb.exe_AES_set_encrypt_key
add esp, 0xc
mov dword [edi + 0xf4], sym.adb.exe_AES_encrypt
mov dword [edi + 0xf8], 0
mov eax, 1
movsd xmm0, qword [esp + 0x50]
movsd xmm1, qword [esp + 0x58]
movsd qword [edi + 0x104], xmm1
movsd qword [edi + 0xfc], xmm0
mov dword [edi + 0x114], 0
mov dword [edi + 0x110], 1
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x4720d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov ebp, dword [esp + 0x44]
xor eax, eax
mov edi, edx
mov esi, ecx
cmp ebp, 0x30
ja 0x4721ee
mov eax, dword [esi + 0x108]
lea ebx, [esi + 0xfc]
bswap eax
inc eax
bswap eax
mov dword [esi + 0x108], eax
mov eax, esp
push esi
push eax
push ebx
call dword [esi + 0xf4]
add esp, 0xc
mov eax, dword [esi + 0x108]
bswap eax
inc eax
bswap eax
mov dword [esi + 0x108], eax
lea eax, [esp + 0x10]
push esi
push eax
push ebx
call dword [esi + 0xf4]
add esp, 0xc
mov eax, dword [esi + 0x108]
bswap eax
inc eax
bswap eax
mov dword [esi + 0x108], eax
lea eax, [esp + 0x20]
sub esp, 0xc
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [esi + 0xf4]
add esp, 0xc
test ebp, ebp
je 0x4721ac
xor eax, eax
cmp ebp, 0x1f
jbe 0x4721a0
mov eax, ebp
xor ecx, ecx
and eax, 0xffffffe0
nop
movups xmm0, xmmword [edi + ecx]
movups xmm2, xmmword [esp + ecx]
movups xmm1, xmmword [edi + ecx + 0x10]
movups xmm3, xmmword [esp + ecx + 0x10]
xorps xmm2, xmm0
xorps xmm3, xmm1
movups xmmword [esp + ecx], xmm2
movups xmmword [esp + ecx + 0x10], xmm3
add ecx, 0x20
cmp eax, ecx
jne 0x472170
cmp eax, ebp
je 0x4721ac
nop dword [eax]
movzx ecx, byte [edi + eax]
xor byte [esp + eax], cl
inc eax
cmp ebp, eax
jne 0x4721a0
push esi
push 0x100
lea eax, [esp + 8]
push eax
call sym.adb.exe_AES_set_encrypt_key
add esp, 0xc
mov dword [esi + 0xf4], sym.adb.exe_AES_encrypt
mov dword [esi + 0xf8], 0
lea eax, [esp + 0x20]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, 1
movsd qword [ebx + 8], xmm1
movsd qword [ebx], xmm0
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x488bc0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x488c93
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
xor edi, edi
cmp ecx, 7
mov eax, 0
jbe 0x488c80
movdqa xmm2, xmmword [0x581be0]
mov edi, ecx
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
and edi, 0xfffffff8
nop
movd xmm3, dword [esi + eax]
movd xmm4, dword [esi + eax + 4]
movd xmm5, dword [edx + eax]
movd xmm6, dword [edx + eax + 4]
add eax, 8
cmp edi, eax
punpcklbw xmm3, xmm0
punpcklbw xmm4, xmm0
punpcklbw xmm5, xmm0
punpcklbw xmm6, xmm0
punpcklwd xmm3, xmm0
punpcklwd xmm5, xmm0
punpcklwd xmm4, xmm0
punpcklwd xmm6, xmm0
pxor xmm5, xmm3
pxor xmm6, xmm4
pand xmm5, xmm2
pand xmm6, xmm2
por xmm0, xmm5
por xmm1, xmm6
jne 0x488c00
por xmm1, xmm0
cmp edi, ecx
pshufd xmm0, xmm1, 0x4e
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe5
por xmm1, xmm0
movd eax, xmm1
je 0x488c95
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [edx + edi]
xor bl, byte [esi + edi]
inc edi
movzx ebx, bl
or eax, ebx
cmp ecx, edi
jne 0x488c80
jmp 0x488c95
xor eax, eax
pop esi
pop edi
pop ebx
ret

Function at 0x488ca0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push esi
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x488cd1
mov edx, dword [esp + 8]
mov eax, 0x811c9dc5
nop word cs:[eax + eax]
nop dword [eax]
movzx esi, byte [edx]
inc edx
xor esi, eax
imul eax, esi, 0x1000193
dec ecx
jne 0x488cc0
pop esi
ret
mov eax, 0x811c9dc5
pop esi
ret
Function at 0x48e680
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push edi
push esi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
test edi, edi
jne 0x48e698
jmp 0x48e6a8
add esi, edi
xor edi, edi
test edi, edi
je 0x48e6a8
push edi
push esi
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x48e690
call sub.msvcrt.dll_abort
pop esi
pop edi
ret
Function at 0x49f8b0
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x178
mov esi, dword [esp + 0x190]
lea ebx, [esp + 0x28]
push ebx
push 0x20
push dword [esp + 0x19c]
call sym.adb.exe_SHA512
add esp, 0xc
and byte [esp + 0x28], 0xf8
lea edi, [esp + 0x88]
mov al, byte [esp + 0x47]
and al, 0x3f
or al, 0x40
mov byte [esp + 0x47], al
push 0x5843c8
push ebx
push edi
call fcn.0049c450
add esp, 0xc
movsd xmm2, qword [esp + 0xf0]
movsd xmm1, qword [esp + 0xe8]
movsd xmm0, qword [esp + 0xf8]
lea ebx, [esp + 0x150]
mov edx, esp
mov ecx, ebx
movsd qword [esp + 0x18], xmm2
movsd qword [esp + 0x10], xmm1
movsd xmm2, qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xe0]
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
call fcn.004a55f0
mov ebp, esp
mov edx, edi
mov ecx, ebp
push ebx
call fcn.004a5900
add esp, 4
lea edi, [esp + 0x128]
lea edx, [esp + 0xb0]
mov ecx, edi
push ebx
call fcn.004a5900
add esp, 4
mov ebx, dword [esp + 0x18c]
mov edx, edi
mov ecx, ebx
call fcn.0049a9f0
lea ecx, [esp + 0x68]
mov edx, ebp
call fcn.0049a9f0
mov al, byte [esp + 0x68]
mov ecx, dword [esp + 0x194]
shl al, 7
xor byte [ebx + 0x1f], al
movsd xmm0, qword [ecx + 0x18]
movsd qword [esi + 0x18], xmm0
movsd xmm0, qword [ecx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd qword [esi + 0x20], xmm0
movsd qword [esi + 0x28], xmm1
movsd xmm0, qword [ebx + 0x10]
movsd qword [esi + 0x30], xmm0
movsd xmm0, qword [ebx + 0x18]
movsd qword [esi + 0x38], xmm0
add esp, 0x178
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x4a48e0
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebx
push edi
push esi
sub esp, 0x138
mov eax, dword [esp + 0x14c]
mov esi, dword [esp + 0x148]
lea ecx, [esp + 0x70]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm0
and byte [esp], 0xf8
mov al, byte [esp + 0x1f]
and al, 0x3f
or al, 0x40
mov byte [esp + 0x1f], al
mov eax, esp
push 0x5843c8
push eax
push ecx
call fcn.0049c450
add esp, 0xc
movdqu xmm2, xmmword [esp + 0x98]
movdqu xmm3, xmmword [esp + 0xa8]
movdqu xmm0, xmmword [esp + 0xd0]
movdqu xmm1, xmmword [esp + 0xc0]
mov ecx, dword [esp + 0xe0]
mov edi, dword [esp + 0xb8]
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xbc]
movdqa xmm4, xmm2
movdqa xmm5, xmm3
lea ebx, [edi + ecx]
add ecx, 0x7fffffe
paddd xmm4, xmm1
paddd xmm1, xmmword [0x5842f0]
paddd xmm5, xmm0
paddd xmm0, xmmword [0x584300]
sub ecx, edi
lea edi, [esp + 0x110]
movdqu xmmword [esp + 0x48], xmm4
movdqu xmmword [esp + 0x58], xmm5
mov dword [esp + 0x68], ebx
lea ebx, [edx + eax]
add eax, 0x3fffffe
sub eax, edx
lea edx, [esp + 0x20]
mov dword [esp + 0x6c], ebx
psubd xmm1, xmm2
psubd xmm0, xmm3
movdqu xmmword [esp + 0x20], xmm1
movdqu xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], ecx
mov ecx, edi
mov dword [esp + 0x44], eax
call fcn.004a55f0
lea edx, [esp + 0x48]
mov ecx, edi
push edi
call fcn.004a5900
add esp, 4
mov ecx, esi
mov edx, edi
call fcn.0049a9f0
add esp, 0x138
pop esi
pop edi
pop ebx
ret
Function at 0x4bae10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4baebb
cmp dword [edi + 4], 0
je 0x4baebb
push 0
call sym.adb.exe_CRYPTO_get_thread_local
add esp, 4
mov esi, eax
test eax, eax
je 0x4baec7
cmp dword [edi + 4], 0
je 0x4baf04
xor ebx, ebx
xor ebp, ebp
mov dword [esp], edi
mov edi, dword [edi]
push dword [esi + ebx + 4]
call sym.adb.exe_OPENSSL_free
add esp, 4
mov dword [esi + ebx + 4], 0
mov dword [esi + ebx], 0
mov dword [esi + ebx + 0xc], 0
mov dword [esi + ebx + 8], 0
mov eax, dword [edi + ebx]
mov dword [esi + ebx], eax
mov eax, dword [edi + ebx + 4]
test eax, eax
je 0x4bae98
push eax
call sym.adb.exe_OPENSSL_strdup
add esp, 4
mov dword [esi + ebx + 4], eax
mov eax, dword [edi + ebx + 8]
inc ebp
mov dword [esi + ebx + 8], eax
movzx eax, word [edi + ebx + 0xc]
mov edi, dword [esp]
mov word [esi + ebx + 0xc], ax
add ebx, 0x10
mov eax, dword [edi + 4]
cmp ebp, eax
jb 0x4bae50
dec eax
jmp 0x4baf09
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp sym.adb.exe_ERR_clear_error
push 0x10c
call sym.adb.exe_OPENSSL_malloc
add esp, 4
mov esi, eax
test eax, eax
je 0x4baf19
push 0x10c
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x4baf30
push esi
push 0
call sym.adb.exe_CRYPTO_set_thread_local
add esp, 0xc
test eax, eax
jne 0x4bae3f
jmp 0x4baf19
mov eax, 0xffffffff
mov dword [esi + 0x100], eax
mov dword [esi + 0x104], 0xf
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret