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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, dword [ebp + 0x18]
mov ebx, 1
push edi
push dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ecx, esi
push dword [ebp + 8]
shl ebx, cl
call fcn.004318e0
add esp, 8
test eax, eax
jne 0x434321
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 3
jg 0x434383
xor ecx, ecx
mov dword [ebp + 0x18], ecx
cmp dword [ebp + 0xc], ecx
jle 0x4344af
xor esi, esi
xor eax, eax
test ebx, ebx
jle 0x434364
nop dword [eax]
mov ecx, eax
xor ecx, dword [ebp + 0x14]
lea edx, [ecx - 1]
not ecx
sar edx, 0x1f
sar ecx, 0x1f
and edx, ecx
and edx, 1
neg edx
and edx, dword [edi + eax*4]
inc eax
or esi, edx
cmp eax, ebx
jl 0x434340
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [eax + ecx*4], esi
inc ecx
lea eax, [ebx*4]
mov dword [ebp + 0x18], ecx
add edi, eax
cmp ecx, dword [ebp + 0xc]
jl 0x434334
jmp 0x4344af
mov edx, dword [ebp + 0x14]
lea ecx, [esi - 2]
sar edx, cl
mov esi, 1
shl esi, cl
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x24], esi
lea eax, [esi - 1]
and ecx, eax
mov eax, edx
mov dword [ebp - 0x10], ecx
not eax
sar eax, 0x1f
lea ecx, [edx - 1]
sar ecx, 0x1f
and ecx, eax
mov eax, edx
xor eax, 1
and ecx, 1
neg ecx
mov dword [ebp - 0x20], ecx
lea ecx, [eax - 1]
not eax
sar eax, 0x1f
sar ecx, 0x1f
and ecx, eax
mov eax, edx
xor eax, 2
and ecx, 1
neg ecx
xor edx, 3
mov dword [ebp - 0x1c], ecx
lea ecx, [eax - 1]
not eax
sar eax, 0x1f
sar ecx, 0x1f
and ecx, eax
lea eax, [edx - 1]
sar eax, 0x1f
not edx
sar edx, 0x1f
and ecx, 1
and eax, edx
neg ecx
and eax, 1
mov dword [ebp - 0x18], ecx
xor edx, edx
neg eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], edx
cmp dword [ebp + 0xc], edx
jle 0x4344af
shl ebx, 2
mov dword [ebp - 0x28], ebx
xor ecx, ecx
xor ebx, ebx
mov dword [ebp + 0x18], ecx
test esi, esi
jle 0x434497
lea eax, [esi + esi*2]
lea edx, [edi + esi*4]
lea ecx, [edi + esi*8]
mov dword [ebp - 8], edx
lea eax, [edi + eax*4]
mov dword [ebp - 4], ecx
mov dword [ebp + 0x10], eax
mov eax, dword [eax]
mov esi, ebx
mov ecx, dword [ecx]
and ecx, dword [ebp - 0x18]
and eax, dword [ebp - 0x14]
xor esi, dword [ebp - 0x10]
or ecx, eax
mov edx, dword [edx]
and edx, dword [ebp - 0x1c]
mov eax, dword [edi + ebx*4]
or edx, ecx
and eax, dword [ebp - 0x20]
lea ecx, [esi - 1]
sar ecx, 0x1f
not esi
sar esi, 0x1f
or eax, edx
mov edx, dword [ebp - 8]
and ecx, esi
mov esi, dword [ebp - 0x24]
and ecx, 1
neg ecx
inc ebx
and ecx, eax
add edx, 4
or dword [ebp + 0x18], ecx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
add eax, 4
add ecx, 4
mov dword [ebp + 0x10], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
cmp ebx, esi
jl 0x434437
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
add edi, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [eax + edx*4], ecx
inc edx
mov dword [ebp - 0xc], edx
cmp edx, dword [ebp + 0xc]
jl 0x434417
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push eax
mov dword [eax + 4], edi
call fcn.00431860
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4371c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], 0
cmp dword [eax + 4], 1
mov edx, dword [eax]
mov ecx, dword [edx]
mov dword [ebp - 0x14], ecx
jle 0x4371ea
xor eax, eax
mov dword [ebp - 0x14], ecx
or eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
jmp 0x4371ec
xor eax, eax
push ebx
xorps xmm0, xmm0
mov dword [ebp - 4], 0
movlpd qword [ebp - 0xc], xmm0
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
push esi
mov esi, 1
mov dword [ebp - 0x10], 0x40
push edi
mov dword [ebp + 8], esi
mov dword [ebp - 8], edx
and esi, 1
xor edi, edi
neg esi
adc edi, edi
and esi, ecx
neg edi
mov ecx, esi
xor ecx, dword [ebp + 8]
mov edx, edi
and esi, dword [ebp + 8]
and edx, eax
mov eax, edx
and edx, dword [ebp - 4]
xor eax, dword [ebp - 4]
shrd ecx, eax, 1
shr eax, 1
add ecx, esi
mov esi, ecx
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 8]
adc eax, edx
shrd ecx, ebx, 1
mov dword [ebp - 4], eax
and edi, 0x80000000
xor eax, eax
shr ebx, 1
add eax, ecx
mov ecx, dword [ebp - 0x14]
mov edx, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
adc ebx, edi
sub dword [ebp - 0x10], 1
jne 0x437216
pop edi
mov eax, edx
mov edx, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x440b30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x1c]
sub esp, 0xc
mov edx, dword [ebp + 0x14]
inc ecx
cmp ecx, edx
jbe 0x440b47
xor eax, eax
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
dec eax
add eax, edx
push ebx
mov dword [ebp - 4], eax
mov ebx, edx
push esi
mov al, byte [eax]
push edi
movzx edi, al
mov byte [ebp + 0x1f], al
mov dword [ebp - 0xc], edi
lea eax, [edi + ecx]
mov ecx, 0x100
sub ebx, eax
xor eax, edx
xor ebx, edx
or ebx, eax
mov eax, edx
xor ebx, edx
sar ebx, 0x1f
cmp edx, ecx
not ebx
cmovae eax, ecx
xor esi, esi
mov dword [ebp - 8], eax
test eax, eax
je 0x440bba
mov ecx, edi
mov eax, esi
sar ecx, 0x1f
inc esi
sar eax, 0x1f
dec edi
or cl, al
mov eax, dword [ebp - 4]
dec dword [ebp - 4]
not cl
movzx edx, cl
movzx ecx, byte [ebp + 0x1f]
movzx eax, byte [eax]
xor ecx, eax
and edx, ecx
not edx
and ebx, edx
cmp esi, dword [ebp - 8]
jb 0x440b87
mov edx, dword [ebp + 0x14]
mov edi, dword [ebp - 0xc]
not ebx
lea eax, [edi + 1]
movzx ecx, bl
dec ecx
sar ecx, 0x1f
and eax, ecx
sub edx, eax
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x441240
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x9f9d14]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
push 0x20
push esi
call fcn.0045a410
mov al, byte [esi + 0x1f]
or byte [esi], 7
and al, 0x3f
or al, 0x80
mov byte [esi + 0x1f], al
movups xmm0, xmmword [esi]
push 0x7469f0
movups xmm1, xmmword [esi + 0x10]
movd eax, xmm0
movups xmmword [ebp - 0x14], xmm1
and al, 0xf8
psrldq xmm1, 0xc
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x24], al
movd eax, xmm1
shr eax, 0x18
and al, 0x3f
or al, 0x40
mov byte [ebp - 5], al
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.004433d0
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xa4]
lea eax, [ecx + edx]
sub edx, ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x2c], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x28], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x24], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x20], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x44], edx
mov edx, dword [ebp - 0x90]
mov dword [ebp - 0x1c], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x18], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x14], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x10], eax
lea eax, [edx + ecx]
sub edx, ecx
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0xc], eax
lea eax, [edx + ecx]
sub edx, ecx
mov dword [ebp - 8], eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x30], edx
push eax
call fcn.004418d0
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x2c]
push eax
push eax
call fcn.00441b10
lea eax, [ebp - 0x2c]
push eax
push edi
call fcn.00442a30
mov ecx, dword [ebp - 4]
add esp, 0x30
xor ecx, ebp
pop edi
pop esi
call fcn.007059ee
mov esp, ebp
pop ebp
ret
Function at 0x451e10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x9f9d14]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], ecx
push edi
test esi, esi
jne 0x451e44
mov esi, dword [ebx]
cmp esi, dword [ebx]
jne 0x451e50
test eax, eax
je 0x452029
push esi
call fcn.0042eff0
mov edi, dword [ebp + 0x10]
add esp, 4
cmp eax, edi
jae 0x451ebd
push dword [ebp - 0x108]
lea eax, [ebx + 4]
push esi
push eax
call fcn.00447790
add esp, 0xc
test eax, eax
je 0x452050
push edi
push dword [ebp - 0x10c]
lea edi, [ebx + 4]
push edi
call fcn.00447810
add esp, 0xc
test eax, eax
je 0x452050
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x84]
push eax
push edi
call fcn.00447750
add esp, 0xc
test eax, eax
je 0x452050
mov edi, dword [ebp - 0x110]
jmp 0x451ed9
push edi
push dword [ebp - 0x10c]
lea eax, [ebp - 0x84]
push eax
call fcn.007079f0
add esp, 0xc
mov dword [ebp - 0x110], edi
cmp edi, 0x80
je 0x451efc
mov eax, 0x80
sub eax, edi
push eax
lea eax, [ebp - 0x84]
add eax, edi
push 0
push eax
call fcn.007074c0
add esp, 0xc
movaps xmm1, xmmword [str.6666666666666666jjjjjjjjjjjjjjjj]
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x84]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x104], xmm0
movups xmm0, xmmword [ebp + eax - 0x74]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xf4], xmm0
movups xmm0, xmmword [ebp + eax - 0x64]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xe4], xmm0
movups xmm0, xmmword [ebp + eax - 0x54]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xd4], xmm0
add eax, 0x40
cmp eax, 0x80
jb 0x451f10
push dword [ebp - 0x108]
lea edi, [ebx + 0x14]
push esi
push edi
call fcn.00447790
add esp, 0xc
test eax, eax
je 0x452050
push esi
call fcn.0042eff0
push eax
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.00447810
add esp, 0x10
test eax, eax
je 0x452050
movaps xmm1, xmmword [0x746440]
xor eax, eax
movups xmm0, xmmword [ebp + eax - 0x84]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x104], xmm0
movups xmm0, xmmword [ebp + eax - 0x74]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xf4], xmm0
movups xmm0, xmmword [ebp + eax - 0x64]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xe4], xmm0
movups xmm0, xmmword [ebp + eax - 0x54]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xd4], xmm0
add eax, 0x40
cmp eax, 0x80
jb 0x451fa4
push dword [ebp - 0x108]
lea edi, [ebx + 0x24]
push esi
push edi
call fcn.00447790
add esp, 0xc
test eax, eax
je 0x452050
push esi
call fcn.0042eff0
push eax
lea eax, [ebp - 0x104]
push eax
push edi
call fcn.00447810
add esp, 0x10
test eax, eax
je 0x452050
mov dword [ebx], esi
lea eax, [ebx + 0x14]
push eax
lea eax, [ebx + 4]
push eax
call fcn.00447880
add esp, 8
neg eax
sbb eax, eax
neg eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.007059ee
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.007059ee
mov esp, ebp
pop ebp
ret
Function at 0x452f80
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push 0x5c
push 0
push esi
call fcn.007074c0
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov eax, 1
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
pop esi
pop ebp
ret
Function at 0x453a40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x10]
xor ecx, ecx
push ebx
xor bl, bl
test edx, edx
je 0x453af9
push esi
mov esi, dword [ebp + 0xc]
push edi
cmp edx, 0x20
jb 0x453ad3
mov eax, dword [ebp + 8]
mov edi, edx
mov ebx, esi
and edi, 0xffffffe0
xorps xmm3, xmm3
xorps xmm2, xmm2
sub ebx, eax
nop
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [ebx + eax - 0x20]
pxor xmm1, xmm0
movups xmm0, xmmword [eax - 0x10]
por xmm3, xmm1
movups xmm1, xmmword [esi + ecx + 0x10]
add ecx, 0x20
pxor xmm1, xmm0
por xmm2, xmm1
cmp ecx, edi
jb 0x453a70
por xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd ebx, xmm2
cmp ecx, edx
jae 0x453af1
mov edi, dword [ebp + 8]
sub esi, edi
sub edx, ecx
lea eax, [ecx + edi]
mov cl, byte [eax + esi]
lea eax, [eax + 1]
xor cl, byte [eax - 1]
or bl, cl
sub edx, 1
jne 0x453ae1
pop edi
pop esi
movzx eax, bl
pop ebx
pop ebp
ret
movzx eax, bl
pop ebx
pop ebp
ret
Function at 0x453e70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov ecx, dword [ebp + 0x18]
mov edx, ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 4], ebx
push edi
mov edi, dword [ebp + 0xc]
cmp esi, 0x10
jb 0x453eed
mov eax, esi
shr eax, 4
mov dword [ebp - 8], eax
sub edx, ebx
mov eax, edi
sub eax, ebx
mov ecx, ebx
mov dword [ebp - 0xc], eax
mov ebx, 4
mov esi, eax
nop dword [eax]
mov eax, dword [edx + ecx]
lea ecx, [ecx + 4]
xor eax, dword [ecx - 4]
mov dword [esi + ecx - 4], eax
sub ebx, 1
jne 0x453eb0
push dword [ebp + 0x14]
push edi
push edi
call dword [ebp + 0x1c]
mov esi, dword [ebp + 0x10]
mov edx, edi
mov ebx, dword [ebp - 4]
sub esi, 0x10
add ebx, 0x10
mov dword [ebp + 0x10], esi
add esp, 0xc
mov dword [ebp - 4], ebx
add edi, 0x10
sub dword [ebp - 8], 1
jne 0x453e97
mov ecx, dword [ebp + 0x18]
test esi, esi
je 0x453ffd
mov ecx, edx
xor eax, eax
sub ecx, ebx
mov dword [ebp - 0xc], ecx
mov ecx, edi
sub ecx, ebx
mov dword [ebp - 0x10], ecx
mov ecx, 1
sub ecx, ebx
mov dword [ebp - 0x14], ecx
mov ecx, 2
sub ecx, ebx
mov dword [ebp - 0x18], ecx
mov ecx, 3
sub ecx, ebx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xc]
cmp eax, esi
jae 0x453fa2
mov esi, dword [ebp - 0x10]
add ebx, eax
mov cl, byte [ecx + ebx]
xor cl, byte [ebx]
mov byte [esi + ebx], cl
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp + 0x10]
add ecx, ebx
cmp ecx, esi
jae 0x453fa1
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 8], ecx
mov cl, byte [ecx + eax - 1]
xor cl, byte [eax + edx + 1]
mov byte [edi + eax + 1], cl
mov ecx, dword [ebp - 0x18]
add ecx, ebx
cmp ecx, esi
jae 0x453f9c
mov ecx, dword [ebp - 8]
mov cl, byte [ecx + eax]
xor cl, byte [eax + edx + 2]
mov byte [edi + eax + 2], cl
mov ecx, dword [ebp - 0x1c]
add ecx, ebx
cmp ecx, esi
jae 0x453f97
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 4]
mov cl, byte [ecx + eax + 1]
xor cl, byte [eax + edx + 3]
mov byte [edi + eax + 3], cl
add eax, 4
mov ecx, dword [ebp - 0xc]
cmp eax, 0x10
jb 0x453f26
jmp 0x453fc1
add eax, 3
jmp 0x453fa2
add eax, 2
jmp 0x453fa2
inc eax
cmp eax, 0x10
jae 0x453fc1
mov ebx, 0x10
lea ecx, [eax + edi]
sub edx, edi
sub ebx, eax
mov al, byte [edx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub ebx, 1
jne 0x453fb3
push dword [ebp + 0x14]
push edi
push edi
call dword [ebp + 0x1c]
add esp, 0xc
mov edx, edi
cmp esi, 0x10
jbe 0x453fed
mov ebx, dword [ebp - 4]
sub esi, 0x10
add ebx, 0x10
mov dword [ebp + 0x10], esi
add edi, 0x10
mov dword [ebp - 4], ebx
test esi, esi
jne 0x453ef5
mov eax, dword [ebp + 0x18]
movups xmm0, xmmword [edx]
pop edi
pop esi
movups xmmword [eax], xmm0
pop ebx
mov esp, ebp
pop ebp
ret
movups xmm0, xmmword [edx]
pop edi
pop esi
movups xmmword [ecx], xmm0
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x454010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x14
mov eax, dword [ecx + 0x38]
or eax, dword [ecx + 0x3c]
je 0x454027
xor eax, eax
mov esp, ebp
pop ebp
ret
push esi
mov esi, dword [ebp + 0x10]
xor edx, edx
mov eax, esi
add eax, dword [ecx + 0x30]
adc edx, dword [ecx + 0x34]
cmp edx, 0x20000000
ja 0x454146
jb 0x45404b
test eax, eax
jne 0x454146
push ebx
mov ebx, dword [ecx + 0x15c]
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x34], edx
mov dword [ebp - 8], ebx
push edi
mov edi, dword [ebp + 0xc]
test ebx, ebx
je 0x454095
test esi, esi
je 0x45407a
mov al, byte [edi]
dec esi
xor byte [ebx + ecx + 0x40], al
inc edi
inc ebx
and ebx, 0xf
mov dword [ebp - 8], ebx
jne 0x454063
jmp 0x454082
test ebx, ebx
jne 0x454134
lea eax, [ecx + 0x50]
push eax
lea eax, [ecx + 0x40]
push eax
call fcn.00454e20
mov ecx, dword [ebp + 8]
add esp, 8
cmp esi, 0x10
jb 0x454107
lea eax, [ecx + 0x50]
mov dword [ebp - 0xc], eax
lea edx, [ecx + 0x41]
lea eax, [ecx + 0x40]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], eax
mov eax, esi
shr eax, 4
mov dword [ebp - 4], eax
mov eax, edx
mov ebx, 4
lea edx, [edi + 1]
nop
movzx ecx, byte [edx - 1]
lea edx, [edx + 4]
xor byte [eax - 1], cl
lea eax, [eax + 4]
movzx ecx, byte [edx - 4]
xor byte [eax - 4], cl
movzx ecx, byte [edx - 3]
xor byte [eax - 3], cl
movzx ecx, byte [edx - 2]
xor byte [eax - 2], cl
sub ebx, 1
jne 0x4540c0
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.00454e20
mov edx, dword [ebp - 0x14]
add esp, 8
add edi, 0x10
sub esi, 0x10
sub dword [ebp - 4], 1
jne 0x4540b4
mov ebx, dword [ebp - 8]
mov edx, dword [ebp + 8]
test esi, esi
je 0x454122
xor ecx, ecx
mov ebx, esi
test esi, esi
je 0x454122
mov al, byte [ecx + edi]
xor byte [edx + ecx + 0x40], al
inc ecx
cmp ecx, esi
jb 0x454116
pop edi
mov dword [edx + 0x15c], ebx
mov eax, 1
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov dword [ecx + 0x15c], ebx
mov eax, 1
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x454520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 0x18]
xor ecx, ecx
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x160]
mov dword [ebp - 0x10], eax
mov eax, ebx
add eax, dword [edi + 0x38]
adc ecx, dword [edi + 0x3c]
cmp ecx, 0xf
ja 0x4546bc
jb 0x454555
cmp eax, 0xffffffe0
ja 0x4546bc
cmp dword [edi + 0x15c], 0
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
je 0x45457e
lea eax, [edi + 0x50]
push eax
lea eax, [edi + 0x40]
push eax
call fcn.00454e20
add esp, 8
mov dword [edi + 0x15c], 0
mov eax, dword [edi + 0xc]
push esi
mov esi, dword [edi + 0x158]
mov dword [ebp - 0xc], esi
bswap eax
mov dword [ebp - 4], eax
test esi, esi
je 0x4545de
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 8], edx
mov dword [ebp + 0x18], ecx
test ebx, ebx
je 0x4545c4
mov al, byte [esi + edi + 0x10]
dec ebx
xor al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
xor byte [esi + edi + 0x40], al
inc esi
and esi, 0xf
mov dword [ebp + 8], edx
mov dword [ebp + 0x18], ecx
mov dword [ebp - 0xc], esi
jne 0x4545a0
jmp 0x4545cc
test esi, esi
jne 0x4546aa
lea eax, [edi + 0x50]
push eax
lea eax, [edi + 0x40]
push eax
call fcn.00454e20
add esp, 8
jmp 0x4545ea
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 0xc]
cmp ebx, 0x10
jb 0x45466e
mov esi, dword [ebp + 0x18]
lea edx, [edi + 0x10]
mov eax, ebx
shr eax, 4
mov dword [ebp - 8], eax
push ecx
push edx
push edi
call dword [ebp - 0x10]
mov eax, dword [ebp - 4]
lea edx, [edi + 0x40]
mov ecx, dword [ebp + 8]
inc eax
mov dword [ebp - 4], eax
bswap eax
mov dword [edi + 0xc], eax
mov eax, dword [esi]
xor eax, dword [edi + 0x10]
mov dword [ecx], eax
xor dword [edx], eax
mov eax, dword [esi + 4]
xor eax, dword [edi + 0x14]
mov dword [ecx + 4], eax
xor dword [edi + 0x44], eax
mov eax, dword [esi + 8]
xor eax, dword [edi + 0x18]
mov dword [ecx + 8], eax
xor dword [edi + 0x48], eax
mov eax, dword [esi + 0xc]
xor eax, dword [edi + 0x1c]
mov dword [ecx + 0xc], eax
xor dword [edi + 0x4c], eax
lea eax, [edi + 0x50]
push eax
push edx
call fcn.00454e20
add dword [ebp + 8], 0x10
lea edx, [edi + 0x10]
mov ecx, dword [ebp + 0xc]
add esp, 0x14
add esi, 0x10
sub ebx, 0x10
sub dword [ebp - 8], 1
jne 0x454600
mov dword [ebp + 0x18], esi
mov esi, dword [ebp - 0xc]
test ebx, ebx
je 0x4546aa
push ecx
lea eax, [edi + 0x10]
push eax
push edi
call dword [ebp - 0x10]
mov eax, dword [ebp - 4]
add esp, 0xc
mov ecx, dword [ebp + 0x18]
inc eax
bswap eax
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 8]
sub ecx, eax
lea edx, [esi + eax]
mov al, byte [edi + esi + 0x10]
lea edx, [edx + 1]
xor al, byte [ecx + edx - 1]
mov byte [edx - 1], al
xor byte [edi + esi + 0x40], al
inc esi
sub ebx, 1
jne 0x454692
mov dword [edi + 0x158], esi
mov eax, 1
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x454980
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x14]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x15c], 0
mov dword [esi + 0x158], 0
cmp edi, 0xc
jne 0x454a19
mov eax, dword [ebp + 0x10]
mov edi, 1
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov byte [esi + 0xf], 1
jmp 0x454b74
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], edi
push ebx
cmp edi, 0x10
jb 0x454a92
mov ebx, ecx
mov dword [ebp + 0x14], ecx
mov eax, edi
lea edx, [esi + 0xf]
sub ebx, esi
shr eax, 4
mov dword [ebp - 4], eax
lea eax, [ebx + edx]
cmp esi, eax
ja 0x454a60
cmp edx, ecx
jb 0x454a60
mov eax, esi
mov edx, 0x10
nop dword [eax]
mov cl, byte [ebx + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x454a50
jmp 0x454a6d
movups xmm1, xmmword [esi]
movups xmm0, xmmword [ecx]
pxor xmm1, xmm0
movups xmmword [esi], xmm1
lea eax, [esi + 0x50]
push eax
push esi
call fcn.00454e20
mov ecx, dword [ebp + 0x14]
lea edx, [esi + 0xf]
add ecx, 0x10
add esp, 8
add ebx, 0x10
mov dword [ebp + 0x14], ecx
sub edi, 0x10
sub dword [ebp - 4], 1
jne 0x454a37
test edi, edi
je 0x454b4b
xor ebx, ebx
test edi, edi
je 0x454b3e
cmp edi, 0x40
jb 0x454b22
lea eax, [ecx - 1]
lea edx, [esi - 1]
add eax, edi
add edx, edi
cmp esi, eax
ja 0x454abb
cmp edx, ecx
jae 0x454b22
mov edx, edi
mov eax, esi
and edx, 0xffffffc0
mov dword [ebp + 0x14], edx
mov edx, ecx
sub edx, esi
mov dword [ebp - 4], edx
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp - 4]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x40]
movups xmm1, xmmword [eax + esi - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ecx + ebx + 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [ecx + ebx + 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [ecx + ebx + 0x30]
add ebx, 0x40
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp ebx, edx
jb 0x454ad2
mov esi, dword [ebp + 8]
cmp ebx, edi
jae 0x454b3e
sub ecx, esi
lea edx, [ebx + esi]
sub edi, ebx
nop dword [eax]
mov al, byte [ecx + edx]
lea edx, [edx + 1]
xor byte [edx - 1], al
sub edi, 1
jne 0x454b30
lea eax, [esi + 0x50]
push eax
push esi
call fcn.00454e20
add esp, 8
mov eax, dword [ebp - 8]
xor ecx, ecx
shld ecx, eax, 3
shl eax, 3
bswap eax
xor dword [esi + 0xc], eax
lea eax, [esi + 0x50]
push eax
bswap ecx
xor dword [esi + 8], ecx
push esi
call fcn.00454e20
mov edi, dword [esi + 0xc]
add esp, 8
bswap edi
pop ebx
push dword [ebp + 0xc]
lea eax, [esi + 0x20]
push eax
mov eax, dword [esi + 0x160]
push esi
call eax
add esp, 0xc
lea eax, [edi + 1]
bswap eax
mov dword [esi + 0xc], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret