joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40808e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov esi, edx
mov ebx, ecx
mov edx, dword [ebp + 8]
mov eax, edx
shr al, 7
mov byte [esp + 7], al
xor ecx, ecx
test dl, dl
mov eax, edx
cmovns eax, ecx
add al, al
sub dl, al
mov dword [ebx + 4], ecx
xor eax, eax
inc eax
mov dword [ebx], eax
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], ecx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x3c], ecx
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x48], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], ecx
lea edi, [ebx + 0x58]
xor eax, eax
mov ecx, 0x12
rep stosd dword es:[edi], eax
mov eax, edx
mov edi, edx
xor al, 1
movzx eax, al
dec eax
shr eax, 0x1f
lea ecx, [ebx + 0x28]
mov dword [esp + 8], ecx
lea ecx, [ebx + 0x50]
mov dword [esp + 0xc], ecx
mov ecx, ebx
mov edx, esi
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0xa0]
mov eax, edi
xor al, 2
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0x140]
mov eax, edi
xor al, 3
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0x1e0]
mov eax, edi
xor al, 4
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0x280]
mov eax, edi
xor al, 5
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0x320]
mov eax, edi
xor al, 6
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
lea edx, [esi + 0x3c0]
mov eax, edi
xor al, 7
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
push eax
call fcn.00412afa
add esp, 4
add esi, 0x460
mov eax, edi
xor al, 8
movzx eax, al
dec eax
shr eax, 0x1f
mov ecx, ebx
mov edx, esi
push eax
call fcn.00412afa
add esp, 4
lea edi, [esp + 0x10]
mov ecx, 0xa
mov esi, dword [esp + 8]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x38]
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x60]
mov ecx, 0xa
mov esi, dword [esp + 0xc]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x88]
lea edx, [esp + 0xb0]
xor eax, eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x20], eax
lea eax, [ebx + 0x78]
xorps xmm0, xmm0
movaps xmmword [edx + 0x10], xmm0
movaps xmmword [edx], xmm0
push eax
call fcn.00406863
add esp, 4
movzx eax, byte [esp + 7]
mov ecx, ebx
lea edx, [esp + 0x10]
push eax
call fcn.00412afa
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x408a5e
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 3], ecx
mov dword [esp], ecx
mov edx, 0x4306f0
mov bl, byte [eax + ecx]
mov esi, 0xfffffff9
mov edi, edx
mov bh, byte [edi]
xor bh, bl
or byte [esp + esi + 7], bh
add edi, 0x20
inc esi
jne 0x408a80
inc ecx
inc edx
cmp ecx, 0x1f
jne 0x408a76
mov al, byte [eax + 0x1f]
and al, 0x7f
mov ecx, 0xffffff20
mov edx, esp
mov ah, byte [ecx + 0x4307ef]
xor ah, al
or byte [edx], ah
inc edx
add ecx, 0x20
jne 0x408aa1
xor eax, eax
mov ecx, 0xfffffff9
movzx edx, byte [esp + ecx + 7]
dec edx
or eax, edx
inc ecx
jne 0x408ab8
shr eax, 8
and eax, 1
add esp, 8
pop esi
pop edi
pop ebx
ret
Function at 0x41049f
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x20
xor edx, edx
inc edx
xor ecx, ecx
mov esi, dword [esp + 0x14]
movzx ebx, byte [esi + eax - 1]
movzx edi, byte [eax + 0x4307cf]
mov ebp, ebx
sub ebp, edi
sar ebp, 8
and ebp, edx
movzx ecx, cl
or ecx, ebp
xor edi, ebx
dec edi
sar edi, 8
and edx, edi
dec eax
jne 0x4104b1
xor eax, eax
test cl, cl
setne al
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x410f6c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov eax, dword [ebp + 0xc]
mov bl, byte [eax]
lea ecx, [eax + 0x30]
mov edx, 0xffffffe0
pxor xmm0, xmm0
movdqu xmm1, xmmword [ecx]
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + edx + 0x40], xmm1
movdqu xmm1, xmmword [ecx - 0x20]
movdqa xmm2, xmm1
punpcklbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esp + edx + 0x20], xmm1
add ecx, 0xfffffff0
add edx, 0x10
jne 0x410f8c
and byte [esp + 0x3f], 0x7f
and byte [esp + 0x1f], 0x7f
mov edx, 0x7ffff
mov ecx, dword [esp + 0x24]
and ecx, edx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
shrd esi, edi, 0xc
shr edi, 0xc
and edi, edx
mov edx, dword [esp + 6]
mov eax, dword [esp + 0xa]
shrd edx, eax, 3
movd xmm1, edx
shr eax, 3
movd xmm2, eax
movaps xmm0, xmmword [0x430250]
punpcklqdq xmm2, xmm1
movups xmm1, xmmword [esp]
shufps xmm1, xmm2, 0x24
andps xmm1, xmm0
movups xmmword [esp + 0x68], xmm1
movss xmm1, dword [esp + 0x13]
movss xmm2, dword [esp + 0x17]
movlhps xmm2, xmm1
shufps xmm1, xmm2, 0x24
movdqu xmm2, xmmword [esp + 0xc]
psrlq xmm1, 1
psrlq xmm2, 6
shufps xmm2, xmm1, 0xe4
andps xmm2, xmm0
movups xmmword [esp + 0x78], xmm2
mov dword [esp + 0x88], esi
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [esp + 0x30]
movlhps xmm2, xmm1
shufps xmm1, xmm2, 0x24
movdqu xmm2, xmmword [esp + 0x26]
psrlq xmm1, 6
psrlq xmm2, 3
shufps xmm2, xmm1, 0xe4
andps xmm2, xmm0
movups xmmword [esp + 0x48], xmm2
movd xmm1, dword [esp + 0x38]
movd xmm2, dword [esp + 0x3c]
punpckldq xmm1, xmm2
pshufd xmm1, xmm1, 0x44
movq xmm2, qword [esp + 0x33]
psrlq xmm1, 0xc
psrlq xmm2, 1
shufps xmm2, xmm1, 0xe4
andps xmm2, xmm0
movups xmmword [esp + 0x58], xmm2
mov dword [esp + 0x8c], edi
xor eax, eax
mov edx, dword [ebp + 0xc]
cmp byte [edx + 0x20], 0
mov edx, 0x13
cmovns edx, eax
add edx, dword [esp + 0x20]
mov dword [esp + 0x40], edx
adc ecx, 0
mov dword [esp + 0x44], ecx
mov ecx, 0xffffffd8
mov eax, 0x26
mul dword [esp + ecx + 0x90]
imul esi, dword [esp + ecx + 0x94], 0x26
add esi, edx
add dword [esp + ecx + 0x68], eax
adc dword [esp + ecx + 0x6c], esi
add ecx, 8
jne 0x41111f
and bl, 0x80
lea edi, [esp + 0x40]
mov ecx, edi
mov edx, edi
call fcn.00404d25
movzx eax, bl
mov ecx, dword [ebp + 8]
mov edx, edi
push eax
call fcn.004105be
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x417258
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
push edi
push esi
sub esp, 0x40
mov al, byte [esp + 0x50]
mov ecx, eax
add cl, 0xbf
cmp cl, 0xbf
jbe 0x417306
mov esi, dword [esp + 0x4c]
mov byte [esp], al
mov word [esp + 1], 0x100
mov byte [esp + 3], 1
xor edi, edi
mov dword [esp + 8], edi
mov dword [esp + 4], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edi
push 0x40
push 0x4381c0
push esi
call fcn.0042bc88
add esp, 0xc
lea eax, [esi + 0x40]
push 0x125
push edi
push eax
call fcn.0042bc6d
add esp, 0xc
mov eax, 0xffffffc0
movups xmm0, xmmword [esp + eax + 0x40]
movups xmm1, xmmword [esi + eax + 0x40]
xorps xmm1, xmm0
movups xmmword [esi + eax + 0x40], xmm1
add eax, 0x10
jne 0x4172e7
xor eax, eax
add esp, 0x40
pop esi
pop edi
ret
call fcn.00428ea1

Function at 0x41730b
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
push ebx
push esi
sub esp, 0x40
mov bl, byte [esp + 0x50]
mov eax, ebx
add al, 0xbf
cmp al, 0xbf
jbe 0x4173e7
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
lea ecx, [esp + 0x20]
mov byte [ecx - 0x20], bl
mov word [ecx - 0x1f], 0x100
mov byte [ecx - 0x1d], 1
xor esi, esi
test edx, edx
mov dword [ecx - 0x18], esi
mov dword [ecx - 0x1c], esi
mov dword [ecx - 0x10], esi
mov dword [ecx - 0x14], esi
mov dword [ecx - 8], esi
mov dword [ecx - 0xc], esi
mov dword [ecx - 4], esi
je 0x417368
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x417373
mov dword [ecx + 4], esi
mov dword [ecx], esi
mov dword [ecx + 0xc], esi
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x4c]
test eax, eax
lea ecx, [esp + 0x30]
je 0x417393
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x4173a0
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
push 0x40
push 0x4381c0
push esi
call fcn.0042bc88
add esp, 0xc
lea eax, [esi + 0x40]
push 0x125
push 0
push eax
call fcn.0042bc6d
add esp, 0xc
mov eax, 0xffffffc0
movups xmm0, xmmword [esp + eax + 0x40]
movups xmm1, xmmword [esi + eax + 0x40]
xorps xmm1, xmm0
movups xmmword [esi + eax + 0x40], xmm1
add eax, 0x10
jne 0x4173c8
xor eax, eax
add esp, 0x40
pop esi
pop ebx
ret
call fcn.00428ea1
Function at 0x4173ec
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov al, byte [esp + 0xd8]
mov ecx, eax
add cl, 0xbf
cmp cl, 0xbf
jbe 0x41751c
cmp dword [esp + 0xdc], 0
je 0x41751c
mov bl, byte [esp + 0xe0]
mov ecx, ebx
add cl, 0xbf
cmp cl, 0xbf
jbe 0x41751c
mov esi, dword [esp + 0xd4]
mov byte [esp], al
mov byte [esp + 1], bl
mov word [esp + 2], 0x101
xor ebp, ebp
mov dword [esp + 8], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], ebp
push 0x40
push 0x4381c0
push esi
call fcn.0042bc88
add esp, 0xc
lea eax, [esi + 0x40]
push 0x125
push ebp
push eax
call fcn.0042bc6d
add esp, 0xc
mov eax, 0xffffffc0
movups xmm0, xmmword [esp + eax + 0x40]
movups xmm1, xmmword [esi + eax + 0x40]
xorps xmm1, xmm0
movups xmmword [esi + eax + 0x40], xmm1
add eax, 0x10
jne 0x4174a8
movzx ebp, bl
mov eax, 0x80
sub eax, ebp
xor edi, edi
test bl, bl
cmovs eax, edi
lea ecx, [esp + ebp + 0x40]
push eax
push edi
push ecx
call fcn.0042bc6d
add esp, 0xc
lea ebx, [esp + 0x40]
push ebp
push dword [esp + 0xe0]
push ebx
call fcn.0042bc88
add esp, 0xc
push edi
mov edi, 0x80
push edi
push ebx
push esi
call fcn.00417521
add esp, 0x10
push edi
push ebx
call fcn.00428f3c
add esp, 8
xor eax, eax
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00428ea1
Function at 0x417640
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov dl, byte [esp + 0xd8]
mov eax, edx
add al, 0xbf
cmp al, 0xbf
jbe 0x4177a2
cmp dword [esp + 0xdc], 0
je 0x4177a2
mov bl, byte [esp + 0xe0]
mov eax, ebx
add al, 0xbf
cmp al, 0xbf
jbe 0x4177a2
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0xe4]
lea ecx, [esp + 0x20]
mov byte [ecx - 0x20], dl
mov byte [ecx - 0x1f], bl
mov word [ecx - 0x1e], 0x101
xor edx, edx
test esi, esi
mov dword [ecx - 0x18], edx
mov dword [ecx - 0x1c], edx
mov dword [ecx - 0x10], edx
mov dword [ecx - 0x14], edx
mov dword [ecx - 8], edx
mov dword [ecx - 0xc], edx
mov dword [ecx - 4], edx
je 0x4176cb
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x4176d6
mov dword [ecx + 4], edx
mov dword [ecx], edx
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], edx
mov edi, dword [esp + 0xd4]
test eax, eax
lea ecx, [esp + 0x30]
je 0x4176f9
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jmp 0x417706
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 8], eax
push 0x40
push 0x4381c0
push edi
call fcn.0042bc88
add esp, 0xc
lea eax, [edi + 0x40]
push 0x125
push 0
push eax
call fcn.0042bc6d
add esp, 0xc
mov eax, 0xffffffc0
movups xmm0, xmmword [esp + eax + 0x40]
movups xmm1, xmmword [edi + eax + 0x40]
xorps xmm1, xmm0
movups xmmword [edi + eax + 0x40], xmm1
add eax, 0x10
jne 0x41772e
movzx ebp, bl
mov eax, 0x80
sub eax, ebp
xor esi, esi
test bl, bl
cmovs eax, esi
lea ecx, [esp + ebp + 0x40]
push eax
push esi
push ecx
call fcn.0042bc6d
add esp, 0xc
lea ebx, [esp + 0x40]
push ebp
push dword [esp + 0xe0]
push ebx
call fcn.0042bc88
add esp, 0xc
push esi
mov esi, 0x80
push esi
push ebx
push edi
call fcn.00417521
add esp, 0x10
push esi
push ebx
call fcn.00428f3c
add esp, 8
xor eax, eax
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00428ea1

Function at 0x417c28
Capabilities:
Hash data using sha256

Disassembly:
push edi
push esi
mov edi, dword [esp + 0xc]
xor eax, eax
mov dword [edi + 0x24], eax
mov dword [edi + 0x20], eax
mov ecx, 8
mov esi, 0x438210
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop esi
pop edi
ret
Function at 0x418c54
Capabilities:
Hash data using sha512

Disassembly:
push edi
push esi
mov edi, dword [esp + 0xc]
xor eax, eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x48], eax
mov ecx, 0x10
mov esi, 0x438370
rep movsd dword es:[edi], dword [esi]
xor eax, eax
pop esi
pop edi
ret

Function at 0x41abe7
Capabilities:
Hash data using sha512

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov ebx, esp
mov dword [ebx + 0x44], ecx
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x48], ecx
mov eax, dword [ebp + 0x14]
mov ecx, 0x10
mov esi, 0x438370
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
push eax
push edx
push dword [ebp + 0xc]
push ebx
call fcn.00418c79
add esp, 0x10
push dword [ebp + 8]
push ebx
call fcn.0041aae4
add esp, 8
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x41bee8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x818
cmp dword [ebp + 8], 0
je 0x41bfd0
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x41bfd0
mov eax, dword [esi]
mov edi, dword [esi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 4]
mov ecx, edi
shl ecx, 0xa
mov dword [esp + 8], ecx
lea eax, [eax + ecx - 0x400]
lea ecx, [esp + 0x10]
push 0x400
push eax
push ecx
call fcn.0042bc88
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov dword [esp + 4], eax
cmp eax, 2
jb 0x41bf80
shl edi, 0xb
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
add edx, edi
mov ebx, 0xfffffc00
mov esi, dword [edx + ebx]
mov eax, dword [edx + ebx + 4]
xor dword [esp + ebx + 0x410], esi
xor dword [esp + ebx + 0x414], eax
add ebx, 8
jne 0x41bf5b
inc ecx
add edi, dword [esp + 8]
cmp ecx, dword [esp + 4]
jne 0x41bf4d
mov esi, 0x400
lea edi, [esp + 0x414]
push esi
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0042bc88
add esp, 0xc
push esi
push edi
mov ebx, dword [ebp + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0041fbe8
add esp, 0x10
push esi
lea eax, [esp + 0x14]
push eax
call fcn.00428f3c
add esp, 8
push esi
push edi
call fcn.00428f3c
add esp, 8
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 0xc]
call fcn.0041bfd8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x420c28
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp], edx
mov ebp, ecx
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov eax, edx
shl eax, 7
lea esi, [eax + ecx - 0x40]
mov ecx, 0x10
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
test edx, edx
je 0x420ce2
mov eax, edx
lea ecx, [edx + edx]
mov dword [esp + 4], ecx
shl eax, 4
mov dword [esp + 8], eax
xor edi, edi
mov eax, 0xffffffc0
mov ecx, dword [ebp + eax + 0x40]
xor dword [ebx + eax + 0x40], ecx
add eax, 4
jne 0x420c6d
mov ecx, ebx
call fcn.00420cea
lea eax, [edi*8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
shl edi, 5
add edi, dword [esp]
mov ecx, 0x10
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, 0xffffffc0
mov ecx, dword [ebp + eax + 0x80]
xor dword [ebx + eax + 0x40], ecx
add eax, 4
jne 0x420ca4
mov ecx, ebx
call fcn.00420cea
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 8]
mov eax, dword [esp]
lea edi, [eax + ecx*4]
mov ecx, 0x10
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x10]
add edi, 2
sub ebp, 0xffffff80
cmp edi, dword [esp + 4]
jb 0x420c68
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x420fdc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1f8
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
lea ebx, [esp + 0x50]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
call fcn.004035cd
add esp, 0xc
push 0
push edi
push esi
push ebx
call fcn.004036bb
add esp, 0x10
cmp dword [ebp + 0x24], 0
je 0x421148
xor eax, eax
xor ecx, ecx
mov dword [esp + 8], eax
inc ecx
mov dword [esp + 4], ecx
mov eax, ecx
bswap eax
mov dword [esp + 0xc], eax
push 0xd0
lea eax, [esp + 0x54]
push eax
lea esi, [esp + 0x128]
push esi
call fcn.0042bc88
add esp, 0xc
push 0
push 4
lea eax, [esp + 0x14]
push eax
push esi
call fcn.004036bb
add esp, 0x10
lea eax, [esp + 0x10]
push eax
push esi
call fcn.004036d6
add esp, 8
cmp dword [ebp + 0x18], 2
mov eax, dword [ebp + 0x1c]
sbb eax, 0
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x38], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 0x48], xmm0
jb 0x42110f
xor edi, edi
mov esi, 2
push dword [ebp + 0xc]
push dword [ebp + 8]
lea ebx, [esp + 0x128]
push ebx
call fcn.004035cd
add esp, 0xc
push 0
push 0x20
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.004036bb
add esp, 0x10
lea eax, [esp + 0x10]
push eax
push ebx
call fcn.004036d6
add esp, 8
mov eax, 0xffffffe0
movups xmm0, xmmword [esp + eax + 0x30]
movups xmm1, xmmword [esp + eax + 0x50]
xorps xmm1, xmm0
movups xmmword [esp + eax + 0x50], xmm1
add eax, 0x10
jne 0x4210e8
add esi, 1
adc edi, 0
cmp dword [ebp + 0x18], esi
mov eax, dword [ebp + 0x1c]
sbb eax, edi
jae 0x4210ad
mov esi, dword [ebp + 0x24]
mov eax, esi
mov ecx, dword [esp + 8]
sub eax, ecx
cmp eax, 0x20
mov edx, 0x20
cmovae eax, edx
add ecx, dword [ebp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.0042bc88
add esp, 0xc
mov ecx, dword [esp + 4]
mov eax, ecx
shl eax, 5
cmp eax, esi
jb 0x42101f
push 0xd0
lea eax, [esp + 0x54]
push eax
call fcn.00428f3c
add esp, 8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x425744
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
push 0
push 0x20
push ebx
push esi
call fcn.0041abe7
add esp, 0x10
and byte [esi], 0xf8
mov al, byte [esi + 0x1f]
and al, 0x3f
or al, 0x40
mov byte [esi + 0x1f], al
mov edi, esp
push esi
push edi
call fcn.0040826b
add esp, 8
push edi
push dword [ebp + 8]
call fcn.004071db
add esp, 8
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
movsd xmm3, qword [ebx + 0x18]
movsd qword [esi + 0x18], xmm3
movsd qword [esi + 0x10], xmm2
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
mov eax, dword [ebp + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax + 0x10]
movsd xmm3, qword [eax + 0x18]
movsd qword [esi + 0x38], xmm3
movsd qword [esi + 0x30], xmm2
movsd qword [esi + 0x28], xmm1
movsd qword [esi + 0x20], xmm0
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x426ca5
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x238
lea edi, [esp + 0xc0]
push dword [ebp + 0x20]
push edi
call fcn.00426c7c
add esp, 8
xor ecx, ecx
mov ebx, 0x20
lea esi, [esp + 0x40]
push ecx
push ebx
push dword [ebp + 0x1c]
push esi
call fcn.0041abe7
add esp, 0x10
lea eax, [esi + ebx]
xor ecx, ecx
push ecx
push ebx
push eax
push edi
call fcn.00418c79
add esp, 0x10
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
call fcn.00418c79
add esp, 0x10
mov esi, esp
push esi
push edi
call fcn.0041aae4
add esp, 8
mov eax, dword [ebp + 8]
add ebx, eax
mov ecx, dword [ebp + 0x1c]
movsd xmm0, qword [ecx + 0x30]
movsd xmm1, qword [ecx + 0x38]
movsd xmm2, qword [ecx + 0x20]
movsd xmm3, qword [ecx + 0x28]
movsd qword [eax + 0x20], xmm2
movsd qword [eax + 0x38], xmm1
movsd qword [eax + 0x30], xmm0
movsd qword [eax + 0x28], xmm3
push esi
call fcn.0040eeed
add esp, 4
lea edi, [esp + 0x190]
push esi
push edi
call fcn.0040826b
add esp, 8
push edi
push dword [ebp + 8]
call fcn.004071db
add esp, 8
push dword [ebp + 0x20]
lea esi, [esp + 0xc4]
push esi
call fcn.00426c7c
add esp, 8
mov ecx, 0x40
xor eax, eax
push eax
push ecx
push dword [ebp + 8]
push esi
call fcn.00418c79
add esp, 0x10
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push esi
call fcn.00418c79
add esp, 0x10
lea edi, [esp + 0x80]
push edi
push esi
call fcn.0041aae4
add esp, 8
push edi
call fcn.0040eeed
add esp, 4
lea ecx, [esp + 0x40]
and byte [ecx], 0xf8
mov al, byte [ecx + 0x1f]
and al, 0x3f
or al, 0x40
mov byte [ecx + 0x1f], al
mov eax, esp
push eax
push ecx
mov esi, ecx
push edi
push ebx
call fcn.0040b95b
add esp, 0x10
mov edi, 0x40
push edi
push esi
call fcn.00428f3c
add esp, 8
push edi
lea eax, [esp + 4]
push eax
call fcn.00428f3c
mov eax, dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x426e0b
mov dword [eax + 4], 0
mov dword [eax], 0x40
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret