joyce8/EMBER2024-capa huggingface dataset:
Function at 0x501020
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp ebp, 2
je 0x5010f8
mov esi, dword [esp + 0x10]
test esi, esi
je 0x5010ad
push esi
push 0
lea eax, [esp + 0x28]
push eax
push 0
call fcn.004cbce0
add esp, 0x10
cmp dword [esp + 0x20], 0xffffffff
je 0x501082
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xaa
push str.cryptoececx_backend.c
call fcn.00493ba0
push 0
push 0x66
push 0x10
call fcn.00493c50
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
ret
push dword [esi]
call fcn.004a0670
mov esi, dword [esp + 0x20]
add esp, 4
test esi, esi
jne 0x501098
mov esi, eax
jmp 0x5010b1
cmp esi, eax
je 0x5010b1
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xb0
jmp 0x501064
mov esi, dword [esp + 0x1c]
test edi, edi
je 0x5010e4
test esi, esi
je 0x5010e4
cmp esi, 0x40a
je 0x5010d9
cmp esi, 0x43f
je 0x5010d9
xor eax, eax
cmp esi, 0x40b
setne al
add eax, 0x38
jmp 0x5010de
mov eax, 0x20
cmp dword [esp + 0x18], eax
je 0x5010fc
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xb6
jmp 0x501064
mov esi, dword [esp + 0x1c]
cmp esi, 0x40a
je 0x501120
cmp esi, 0x43f
je 0x501120
xor eax, eax
cmp esi, 0x40b
setne al
lea eax, [eax*2 + 1]
jmp 0x501130
xor ecx, ecx
mov eax, 2
cmp esi, 0x40a
cmove eax, ecx
push ebx
push dword [esp + 0x2c]
push 1
push eax
push dword [esp + 0x34]
call fcn.004b4840
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x50117a
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xbd
push str.cryptoececx_backend.c
call fcn.00493ba0
push ebx
push 0xc0100
push 0x10
call fcn.00493c50
add esp, 0x18
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret
test ebp, ebp
jne 0x501196
push dword [esp + 0x1c]
lea eax, [ebx + 0xc]
push edi
push eax
call fcn.005abd00
add esp, 0xc
mov eax, ebx
pop ebx
pop edi
pop esi
pop ebp
ret
push ebx
call fcn.004b47c0
mov edi, eax
add esp, 4
test edi, edi
jne 0x5011c9
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xc7
push str.cryptoececx_backend.c
call fcn.00493ba0
push edi
push 0xc0100
jmp 0x50129f
cmp ebp, 2
jne 0x50123b
test esi, esi
je 0x50126e
cmp esi, 0x40a
je 0x5011f6
cmp esi, 0x43f
je 0x5011f6
xor eax, eax
cmp esi, 0x40b
setne al
add eax, 0x38
jmp 0x5011fb
mov eax, 0x20
push 0
push eax
push edi
push dword [esp + 0x34]
call fcn.004f5240
add esp, 0x10
test eax, eax
jle 0x5012a9
cmp esi, 0x40a
jne 0x50122a
mov al, byte [edi + 0x1f]
and byte [edi], 0xf8
and al, 0x3f
or al, 0x40
mov byte [edi + 0x1f], al
jmp 0x50126e
cmp esi, 0x40b
jne 0x50126e
and byte [edi], 0xfc
or byte [edi + 0x37], 0x80
jmp 0x50126e
cmp esi, 0x40a
je 0x50125b
cmp esi, 0x43f
je 0x50125b
xor eax, eax
cmp esi, 0x40b
setne al
add eax, 0x38
jmp 0x501260
mov eax, 0x20
push eax
push dword [esp + 0x1c]
push edi
call fcn.005abd00
add esp, 0xc
push ebx
call fcn.005012c0
add esp, 4
test eax, eax
jne 0x50118f
call fcn.00493aa0
push str.ossl_ecx_key_op
push 0xdb
push str.cryptoececx_backend.c
call fcn.00493ba0
push 0
push 0xa6
push 0x10
call fcn.00493c50
add esp, 0x18
push ebx
call fcn.004b47e0
add esp, 4
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret
Function at 0x505b10
Capabilities:
Encrypt data using curve25519

Disassembly:
mov eax, 0xe4
call fcn.00486420
mov eax, dword [0x67a114]
xor eax, esp
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xe8]
push ebx
mov ebx, dword [esp + 0xf0]
push esi
mov esi, dword [esp + 0xf8]
push edi
push eax
push str.SHA512
push ecx
call fcn.0048bd10
mov edi, eax
add esp, 0xc
test edi, edi
je 0x505b92
push 0
push edi
push 0
lea eax, [esp + 0xb8]
push eax
push 0x20
push esi
call fcn.0048b310
push edi
mov esi, eax
call fcn.0048bd40
add esp, 0x1c
test esi, esi
jne 0x505bac
lea eax, [esp + 0xac]
push 0x40
push eax
call fcn.0049f710
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.004862cc
add esp, 0xe4
ret
mov al, byte [esp + 0xcb]
and byte [esp + 0xac], 0xf8
and al, 0x3f
or al, 0x40
mov byte [esp + 0xcb], al
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.005053d0
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.00505350
lea eax, [esp + 0xbc]
push 0x40
push eax
call fcn.0049f710
mov ecx, dword [esp + 0x104]
add esp, 0x18
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004862cc
add esp, 0xe4
ret
Function at 0x505c20
Capabilities:
Encrypt data using curve25519

Disassembly:
mov eax, 0x174
call fcn.00486420
mov eax, dword [0x67a114]
xor eax, esp
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x18c]
push ebx
mov ebx, dword [esp + 0x18c]
push ebp
mov ebp, dword [esp + 0x180]
push esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x190]
push edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1a0]
push eax
push str.SHA512
push ecx
call fcn.0048bd10
add esp, 0xc
mov edi, eax
call fcn.0048bc80
mov dword [esp + 0x18], 0
mov esi, eax
test edi, edi
je 0x505e2e
test esi, esi
je 0x505e2e
push 0
push edi
push esi
call fcn.0048b780
add esp, 0xc
test eax, eax
je 0x505e2e
push 0x20
push ebx
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xc4]
push eax
push esi
call fcn.0048b650
add esp, 0xc
test eax, eax
je 0x505e2e
mov al, byte [esp + 0xdf]
and byte [esp + 0xc0], 0xf8
and al, 0x3f
push 0
or al, 0x40
push edi
push esi
mov byte [esp + 0xeb], al
call fcn.0048b780
add esp, 0xc
test eax, eax
je 0x505e2e
push 0x20
lea eax, [esp + 0xe4]
push eax
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
mov ebx, dword [esp + 0x190]
push ebx
push dword [esp + 0x14]
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x104]
push eax
push esi
call fcn.0048b650
add esp, 0xc
test eax, eax
je 0x505e2e
lea eax, [esp + 0x100]
push eax
call fcn.0050a7b0
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.005053d0
lea eax, [esp + 0x2c]
push eax
push ebp
call fcn.00505350
push 0
push edi
push esi
call fcn.0048b780
add esp, 0x20
test eax, eax
je 0x505e2e
push 0x20
push ebp
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
push 0x20
push dword [esp + 0x20]
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
push ebx
push dword [esp + 0x14]
push esi
call fcn.0048b7c0
add esp, 0xc
test eax, eax
je 0x505e2e
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x144]
push eax
push esi
call fcn.0048b650
add esp, 0xc
test eax, eax
je 0x505e2e
lea eax, [esp + 0x140]
push eax
call fcn.0050a7b0
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x14c]
push eax
lea eax, [ebp + 0x20]
push eax
call fcn.00506360
add esp, 0x14
mov dword [esp + 0x18], 1
lea eax, [esp + 0x100]
push 0x40
push eax
call fcn.0049f710
lea eax, [esp + 0xc8]
push 0x40
push eax
call fcn.0049f710
push edi
call fcn.0048bd40
push esi
call fcn.0048bbf0
mov ecx, dword [esp + 0x198]
add esp, 0x18
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004862cc
add esp, 0x174
ret
Function at 0x5310e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 8
call fcn.00486420
mov ecx, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x20]
push esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0x64]
mov edx, dword [esi + 0x70]
test edx, edx
je 0x531149
test ebp, ebp
je 0x531129
nop
cmp edx, 0x40
jae 0x531129
mov al, byte [edx + esi + 0x30]
inc edx
xor al, byte [ebx]
inc ebx
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
sub ebp, 1
jne 0x531110
mov dword [esi + 0x70], edx
test ebp, ebp
je 0x5311f6
cmp edx, 0x40
jne 0x531149
mov dword [esi + 0x70], 0
add dword [esi + 0x20], 1
jne 0x531149
inc dword [esi + 0x24]
mov edx, dword [esi + 0x20]
mov eax, ebp
and eax, 0x3f
sub ebp, eax
mov dword [esp + 0x10], eax
push edi
cmp ebp, 0x40
jb 0x5311af
nop dword [eax]
mov eax, ebp
mov edi, edx
shr eax, 6
xor ecx, ecx
add edx, eax
cmp edx, eax
cmovae ecx, edx
neg edi
cmp edx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
cmovae edi, eax
lea eax, [esi + 0x20]
push eax
push esi
shl edi, 6
push edi
push ebx
push ecx
call fcn.00583f90
mov eax, dword [esp + 0x24]
add esp, 0x14
add dword [esp + 0x1c], edi
sub ebp, edi
add ebx, edi
mov dword [esi + 0x20], eax
test eax, eax
jne 0x5311a8
inc dword [esi + 0x24]
mov edx, eax
cmp ebp, 0x40
jae 0x531160
mov ebp, dword [esp + 0x14]
test ebp, ebp
je 0x5311f5
push 0x40
lea edi, [esi + 0x30]
push 0
push edi
call fcn.005aab10
lea eax, [esi + 0x20]
push eax
push esi
push 0x40
push edi
push edi
call fcn.00583f90
add esp, 0x20
xor edi, edi
test ebp, ebp
je 0x5311f2
mov edx, dword [esp + 0x1c]
sub ebx, edx
mov al, byte [esi + edi + 0x30]
lea ecx, [edi + edx]
xor al, byte [ebx + ecx]
inc edi
mov byte [ecx], al
cmp edi, ebp
jb 0x5311e1
mov dword [esi + 0x70], ebp
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
Function at 0x536830
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 4
call fcn.00486420
push edi
mov edi, dword [esp + 0x14]
mov dword [esp + 4], 0
cmp edi, 0x800
jge 0x536878
call fcn.00493aa0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x5c
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.00493ba0
push 0
push 0x78
push 4
call fcn.00493c50
add esp, 0x18
xor eax, eax
pop edi
pop ecx
ret
push dword [esp + 0x18]
call fcn.00536580
add esp, 4
test eax, eax
jne 0x5368b4
call fcn.00493aa0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x61
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.00493ba0
push 0
push 0xb2
push 4
call fcn.00493c50
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.00497d50
push esi
call fcn.00497af0
push esi
mov dword [esp + 0x2c], eax
call fcn.00497af0
push esi
mov ebp, eax
call fcn.00497af0
add esp, 0x10
mov ebx, eax
cmp dword [esp + 0x20], 0
je 0x5369e4
test ebp, ebp
je 0x5369f1
test ebx, ebx
je 0x5369e4
push 4
push ebp
call fcn.00497480
push 4
push ebx
call fcn.00497480
mov esi, dword [esp + 0x28]
add esp, 0x10
cmp dword [esi + 0x20], 0
jne 0x53691e
call fcn.00497340
mov dword [esi + 0x20], eax
cmp dword [esi + 0x24], 0
jne 0x53692c
call fcn.00497340
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5369e0
cmp dword [esi + 0x24], 0
je 0x5369e0
push 4
push eax
call fcn.00497480
push 4
push dword [esi + 0x24]
call fcn.00497480
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.00596560
add esp, 0x3c
test eax, eax
je 0x5369e0
nop word [eax + 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.00596560
add esp, 0x2c
test eax, eax
je 0x5369e0
push edi
push ebx
push ebp
push dword [esp + 0x2c]
call fcn.00536510
add esp, 0x10
test eax, eax
js 0x5369e0
je 0x536980
push edi
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [esp + 0x2c]
call fcn.00536510
add esp, 0x10
test eax, eax
js 0x5369e0
je 0x536980
inc dword [esi + 0x78]
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x28]
test ebp, ebp
je 0x5369f1
push ebp
call fcn.00496940
add esp, 4
test ebx, ebx
je 0x5369fe
push ebx
call fcn.00496940
add esp, 4
push dword [esp + 0x20]
call fcn.00496940
push esi
call fcn.004979f0
mov eax, dword [esp + 0x18]
add esp, 8
pop esi
pop ebp
pop ebx
pop edi
pop ecx
ret
Function at 0x543d70
Capabilities:
Encode data using xor

Disassembly:
cmp dword [esp + 8], 0
push ebp
push esi
push edi
je 0x543efc
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
inc ebp
push esi
push dword [esp + 0x2c]
shr ebp, 1
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push ebp
push edi
push dword [esp + 0x28]
call fcn.00543ba0
add esp, 0x1c
test eax, eax
je 0x543f24
push ebx
push 0x186
push str.providersimplementationskdfs_tls1_prf.c
push esi
call fcn.00493580
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x543dfa
call fcn.00493aa0
push str.tls1_prf_alg
push 0x187
push str.providersimplementationskdfs_tls1_prf.c
call fcn.00493ba0
push ebx
push 0xc0100
push 0x39
call fcn.00493c50
add esp, 0x18
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret
push esi
push ebx
push dword [esp + 0x30]
sub edi, ebp
push dword [esp + 0x30]
add edi, dword [esp + 0x30]
push ebp
push edi
push dword [esp + 0x30]
call fcn.00543ba0
add esp, 0x1c
test eax, eax
jne 0x543e37
push 0x18d
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.00493660
add esp, 0x10
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret
xor edi, edi
test esi, esi
je 0x543ede
mov edx, dword [esp + 0x2c]
cmp esi, 0x40
jb 0x543ebd
lea eax, [esi - 1]
lea ecx, [edx - 1]
add eax, ebx
add ecx, esi
cmp edx, eax
ja 0x543e5c
cmp ecx, ebx
jae 0x543ebd
mov ecx, esi
mov ebp, ebx
and ecx, 0xffffffc0
mov eax, edx
sub ebp, edx
nop word [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x40]
movups xmm1, xmmword [eax + ebp - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ebx + edi + 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [ebx + edi + 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [ebx + edi + 0x30]
add edi, 0x40
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edi, ecx
jb 0x543e70
cmp edi, esi
jae 0x543ede
mov ebp, ebx
lea ecx, [edi + edx]
sub ebp, edx
mov edx, esi
sub edx, edi
nop dword [eax]
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edx, 1
jne 0x543ed0
push 0x192
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.00493660
add esp, 0x10
mov eax, 1
pop ebx
pop edi
pop esi
pop ebp
ret
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x28]
call fcn.00543ba0
add esp, 0x1c
test eax, eax
jne 0x543f2a
pop edi
pop esi
xor eax, eax
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebp
ret
Function at 0x54a400
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
je 0x54a463
mov edx, dword [esp + 0x10]
test edx, edx
je 0x54a463
push ebx
push edi
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x14]
cmp edx, eax
mov ebx, eax
cmovb ebx, edx
xor ecx, ecx
test ebx, ebx
je 0x54a436
mov al, byte [ecx + esi]
xor byte [edi + ecx + 0x1c], al
inc ecx
cmp ecx, ebx
jb 0x54a427
mov eax, dword [edi + 0x14]
cmp edx, eax
jbe 0x54a461
sub edx, eax
mov eax, 0x10
cmp edx, eax
cmova edx, eax
xor ecx, ecx
test edx, edx
je 0x54a461
nop dword [eax]
mov eax, dword [edi + 0x14]
add eax, ecx
mov al, byte [eax + esi]
xor byte [edi + ecx + 0x3c], al
inc ecx
cmp ecx, edx
jb 0x54a450
pop edi
pop ebx
pop esi
ret
Function at 0x54a6e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x74
call fcn.00486420
mov eax, dword [0x67a114]
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 0x54a740
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [esp + 0x30], xmm0
cmp dword [esi + 0x14], 0x10
jne 0x54a767
lea edi, [edx + 0x20]
jmp 0x54a792
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 0x54a771
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.004d84a0
add esp, 0x14
test eax, eax
je 0x54a8a9
cmp dword [esp + 0x14], edi
jne 0x54a8a9
push dword [esi + 0x14]
lea eax, [esp + 0x54]
push eax
lea ebx, [esi + 0x1c]
push ebx
call fcn.005abd00
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 0x54a83f
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test ebp, ebp
jne 0x54a7ff
test ecx, ecx
jne 0x54a7ff
test eax, eax
je 0x54a822
push dword [esp + 0x98]
push eax
push dword [esp + 0xa8]
push ecx
push edi
push ebp
push esi
call fcn.0054a470
add esp, 0x1c
test eax, eax
je 0x54a8a9
test edi, edi
je 0x54a862
mov eax, dword [esp + 0x1c]
push dword [eax + 0x8c]
lea eax, [esi + 0x60]
push eax
push esi
call fcn.0054a400
add esp, 0xc
jmp 0x54a862
push dword [esp + 0x90]
push ebp
push esi
call fcn.0054a400
push dword [esp + 0xa4]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.0054a400
add esp, 0x18
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi]
call fcn.004d8470
add esp, 0x18
test eax, eax
je 0x54a8a9
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi + 4]
call fcn.004d8470
add esp, 0x18
test eax, eax
je 0x54a8a9
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.004862cc
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.004862cc
add esp, 0x74
ret
Function at 0x54ddd5
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebx
mov ebx, dword [esp + 8]
test ebx, ebx
jne 0x54dd1d
xor eax, eax
pop ebx
ret
push edi
push dword [ebx + 4]
push 0
push dword [ebx + 8]
push dword [ebx]
call fcn.004b4840
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x54dd64
call fcn.00493aa0
push str.ecx_gen
push 0x249
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.00493ba0
push edi
push 0xc0100
push 0x39
call fcn.00493c50
add esp, 0x18
xor eax, eax
pop edi
pop ebx
ret
test byte [ebx + 0xc], 3
je 0x54ddaf
push esi
push edi
call fcn.004b47c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x54ddb2
call fcn.00493aa0
push str.ecx_gen
push 0x252
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.00493ba0
push esi
push 0xc0100
push 0x39
call fcn.00493c50
add esp, 0x18
push edi
call fcn.004b47e0
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.004f5240
add esp, 0x10
test eax, eax
jle 0x54dda3
mov eax, dword [ebx + 8]
cmp eax, 3
ja case.default.0x54ddce
jmp dword [eax*4 + 0x54de4c]
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.00506160
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.0050f220
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.00505b10
jmp 0x54de37
push dword [ebx + 4]
lea eax, [edi + 0xc]
push esi
push eax
push dword [ebx]
call fcn.0050d6d0
add esp, 0x10
test eax, eax
je 0x54dda3
or dword [edi + 8], 1
mov eax, edi
pop esi
pop edi
pop ebx
ret
Function at 0x578220
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov eax, 0x28
call fcn.00486420
mov eax, dword [0x67a114]
xor eax, esp
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
push esi
mov esi, dword [ecx]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
test esi, esi
jns 0x578271
mov dword [ecx], 0xffffffff
pop esi
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.004862cc
add esp, 0x28
ret
push ebx
movzx ebx, byte [eax]
push ebp
lea ebp, [eax + 1]
shl ebx, 0x18
mov edx, ebp
mov dword [esp + 0x1c], ebp
movzx eax, byte [edx]
movzx ecx, byte [edx + 3]
shl eax, 0x10
or ebx, eax
shl ecx, 0x18
movzx eax, byte [edx + 1]
shl eax, 8
or ebx, eax
movzx eax, byte [edx + 2]
or ebx, eax
movzx eax, byte [edx + 4]
shl eax, 0x10
or ecx, eax
mov dword [esp + 0x10], ebx
movzx eax, byte [edx + 6]
mov dword [esp + 0x28], ecx
movzx ecx, byte [edx + 5]
mov edx, dword [esp + 0x28]
shl ecx, 8
or ecx, eax
mov byte [esp + 0x2b], bl
mov eax, ebx
or edx, ecx
shr eax, 0x18
mov byte [esp + 0x28], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x29], al
mov eax, ebx
shr eax, 8
mov byte [esp + 0x2a], al
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x2c], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x2d], al
mov eax, edx
shr eax, 8
mov byte [esp + 0x2e], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov byte [esp + 0x2f], dl
test eax, eax
je 0x5783e0
mov ecx, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0x3c]
sub ecx, edi
mov dword [esp + 0x10], ecx
xor ebp, ebp
dec eax
mov dword [esp + 0x44], eax
test esi, esi
jne 0x578388
push dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
call fcn.00577810
mov ebx, dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0x18]
mov eax, ebx
shr eax, 0x18
mov byte [esp + 0x2c], al
mov eax, ebx
mov ecx, dword [esp + 0x10]
shr eax, 0x10
mov byte [esp + 0x2d], al
mov eax, ebx
shr eax, 8
mov byte [esp + 0x2e], al
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x30], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x31], al
mov eax, edx
shr eax, 8
inc ebp
mov byte [esp + 0x2f], bl
mov byte [esp + 0x32], al
mov byte [esp + 0x33], dl
mov al, byte [esp + esi + 0x2c]
inc esi
xor al, byte [edi]
and esi, 7
mov byte [ecx + edi], al
inc edi
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x578323
test ebp, ebp
mov ebp, dword [esp + 0x20]
pop edi
je 0x5783e0
mov ecx, dword [esp + 0x20]
mov eax, ebx
shr eax, 0x18
mov byte [ecx], al
mov eax, ebx
shr eax, 0x10
mov byte [ebp], al
mov eax, ebx
shr eax, 8
mov byte [ebp + 1], al
mov eax, edx
shr eax, 0x18
mov byte [ebp + 2], bl
mov byte [ebp + 3], al
mov eax, edx
shr eax, 0x10
mov byte [ebp + 4], al
mov eax, edx
shr eax, 8
mov byte [ebp + 5], al
mov byte [ebp + 6], dl
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
pop ebp
pop ebx
mov dword [eax], esi
pop esi
xor ecx, esp
call fcn.004862cc
add esp, 0x28
ret