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

Disassembly:
mov eax, 4
call fcn.006149d0
push ebp
mov ebp, dword [esp + 0xc]
mov eax, dword [ebp + 0x38]
or eax, dword [ebp + 0x3c]
je 0x567eaf
mov eax, 0xfffffffe
pop ebp
pop ecx
ret
push esi
mov esi, dword [esp + 0x18]
xor ecx, ecx
mov eax, esi
add eax, dword [ebp + 0x30]
adc ecx, dword [ebp + 0x34]
cmp ecx, 0x20000000
ja 0x567f80
jb 0x567ed4
test eax, eax
jne 0x567f80
push ebx
mov dword [ebp + 0x34], ecx
mov ecx, dword [ebp + 0x170]
mov dword [ebp + 0x30], eax
mov dword [esp + 0x14], ecx
push edi
mov edi, dword [esp + 0x1c]
test ecx, ecx
je 0x567f23
nop
test esi, esi
je 0x567f72
mov al, byte [edi]
dec esi
xor byte [ecx + ebp + 0x40], al
inc edi
inc ecx
and ecx, 0xf
mov dword [esp + 0x18], ecx
jne 0x567ef0
lea eax, [ebp + 0x60]
push eax
mov eax, dword [ebp + 0x168]
lea ebx, [ebp + 0x40]
push ebx
call eax
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x567f26
lea ebx, [ebp + 0x40]
mov eax, esi
lea ecx, [ebp + 0x60]
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
je 0x567f4b
push eax
mov eax, dword [ebp + 0x164]
push edi
push ecx
push ebx
call eax
add edi, dword [esp + 0x20]
add esp, 0x10
sub esi, dword [esp + 0x10]
test esi, esi
je 0x567f6e
mov ecx, esi
mov al, byte [edi]
lea edi, [edi + 1]
xor byte [ebx], al
lea ebx, [ebx + 1]
sub esi, 1
jne 0x567f51
pop edi
pop ebx
pop esi
mov dword [ebp + 0x170], ecx
xor eax, eax
pop ebp
pop ecx
ret
mov ecx, dword [esp + 0x18]
pop edi
pop ebx
pop esi
mov dword [ebp + 0x170], ecx
xor eax, eax
pop ebp
pop ecx
ret
pop esi
or eax, 0xffffffff
pop ebp
pop ecx
ret
Function at 0x568f50
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
mov dword [esi + 0x30], 0
lea ebp, [esi + 0x40]
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x170], 0
mov dword [esi + 0x16c], 0
cmp ebx, 0xc
jne 0x568fb5
mov eax, dword [esp + 0x18]
lea edi, [ebx - 0xb]
movq xmm0, qword [eax]
movq qword [esi], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0x1000000
jmp 0x5690b2
mov edi, dword [esp + 0x18]
lea edx, [esi + 0x60]
mov dword [ebp], 0
mov dword [ebp + 4], 0
mov dword [esi + 0x48], 0
mov dword [esp + 0x1c], ebx
mov dword [esi + 0x4c], 0
cmp ebx, 0x10
jb 0x56904d
mov eax, ebx
lea ecx, [esi + 0x41]
shr eax, 4
mov dword [esp + 0x14], eax
nop dword [eax]
lea edx, [edi + 2]
mov eax, ecx
mov ebp, 4
nop word [eax + eax]
movzx ecx, byte [edx - 2]
lea edx, [edx + 4]
xor byte [eax - 1], cl
lea eax, [eax + 4]
movzx ecx, byte [edx - 5]
xor byte [eax - 4], cl
movzx ecx, byte [edx - 4]
xor byte [eax - 3], cl
movzx ecx, byte [edx - 3]
xor byte [eax - 2], cl
sub ebp, 1
jne 0x569000
lea eax, [esi + 0x60]
push eax
mov eax, dword [esi + 0x168]
lea ebp, [esi + 0x40]
push ebp
call eax
add esp, 8
lea ecx, [esi + 0x41]
add edi, 0x10
sub ebx, 0x10
sub dword [esp + 0x14], 1
jne 0x568ff0
lea edx, [esi + 0x60]
test ebx, ebx
je 0x56906f
mov ecx, ebp
mov al, byte [edi]
lea edi, [edi + 1]
xor byte [ecx], al
lea ecx, [ecx + 1]
sub ebx, 1
jne 0x569053
mov eax, dword [esi + 0x168]
push edx
push ebp
call eax
add esp, 8
mov eax, dword [esp + 0x1c]
xor ecx, ecx
shld ecx, eax, 3
shl eax, 3
bswap eax
xor dword [esi + 0x4c], eax
lea eax, [esi + 0x60]
push eax
mov eax, dword [esi + 0x168]
bswap ecx
xor dword [esi + 0x48], ecx
push ebp
call eax
mov edi, dword [esi + 0x4c]
add esp, 8
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov dword [esi + 8], eax
bswap edi
mov dword [esi + 0xc], ecx
mov dword [ebp], 0
lea eax, [esi + 0x20]
mov dword [ebp + 4], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
push dword [esi + 0x178]
push eax
mov eax, dword [esi + 0x174]
push esi
call eax
add esp, 0xc
inc edi
bswap edi
mov dword [esi + 0xc], edi
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x569660
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc
call fcn.006149d0
lea eax, [esp]
push eax
call fcn.00569230
mov eax, dword [esp + 8]
add esp, 4
test eax, eax
je 0x569683
add esp, 0xc
jmp eax
push ebx
mov ebx, dword [esp + 0x20]
push esi
xor esi, esi
test ebx, ebx
je 0x5696c2
push ebp
mov ebp, dword [esp + 0x24]
push edi
mov edi, dword [esp + 0x20]
nop dword [eax]
movups xmm1, xmmword [esi + ebp]
movups xmm0, xmmword [edi]
push dword [esp + 0x24]
xorps xmm0, xmm1
push edi
movups xmmword [edi], xmm0
call dword [esp + 0x20]
add esi, 0x10
add esp, 8
cmp esi, ebx
jb 0x5696a0
pop edi
pop ebp
pop esi
pop ebx
add esp, 0xc
ret
Function at 0x5699e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x2c
call fcn.006149d0
mov eax, dword [0x6ae280]
xor eax, esp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
push ebx
push ebp
mov ebp, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov bl, byte [esi]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov byte [esp + 0xf], bl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
push edi
test bl, 0x40
jne 0x569a35
push eax
lea eax, [esi + 0x10]
push eax
push esi
call ecx
add esp, 0xc
movzx eax, bl
mov ecx, 0xf
and eax, 7
xor edx, edx
sub ecx, eax
mov dword [esp + 0x24], eax
mov byte [esi], al
cmp ecx, 0xf
jae 0x569a63
nop
movzx eax, byte [esi + ecx]
or edx, eax
mov byte [esi + ecx], 0
inc ecx
shl edx, 8
cmp ecx, 0xf
jb 0x569a50
movzx eax, byte [esi + 0xf]
mov edi, dword [esp + 0x4c]
or edx, eax
mov byte [esi + 0xf], 1
cmp edx, edi
je 0x569a8b
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.00614242
add esp, 0x2c
ret
mov ebx, edi
shr ebx, 4
test ebx, ebx
je 0x569ac6
lea eax, [esi + 0x10]
push eax
push esi
push dword [esp + 0x1c]
push ebx
push dword [esp + 0x28]
push ebp
call dword [esp + 0x38]
shl ebx, 4
add esp, 0x18
add dword [esp + 0x18], ebx
add ebp, ebx
sub edi, ebx
je 0x569b1e
shr ebx, 4
push ebx
push esi
call fcn.0056a340
add esp, 8
jmp 0x569aca
test edi, edi
je 0x569b1e
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push ebx
push eax
push esi
call dword [esp + 0x28]
add esp, 0xc
test edi, edi
je 0x569b0d
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x28]
mov eax, ecx
lea edx, [esi + 0x10]
sub ebp, eax
sub ebx, eax
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor al, byte [ecx - 1]
lea edx, [edx + 1]
mov byte [ebx + ecx - 1], al
xor byte [edx - 1], al
sub edi, 1
jne 0x569af1
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
lea eax, [esi + 0x10]
push ebx
push eax
push eax
call ebp
add esp, 0xc
jmp 0x569b26
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov ecx, 0xf
sub ecx, dword [esp + 0x24]
cmp ecx, 0x10
jae 0x569b4a
mov eax, 0x10
sub eax, ecx
push eax
lea eax, [ecx + esi]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push ebx
lea eax, [esp + 0x2c]
push eax
push esi
call ebp
mov eax, dword [esp + 0x34]
add esp, 0xc
xor dword [esi + 0x10], eax
mov eax, dword [esp + 0x2c]
xor dword [esi + 0x14], eax
mov eax, dword [esp + 0x30]
xor dword [esi + 0x18], eax
mov eax, dword [esp + 0x34]
xor dword [esi + 0x1c], eax
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x38]
pop edi
mov byte [esi], al
xor eax, eax
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00614242
add esp, 0x2c
ret
Function at 0x56b930
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10
call fcn.006149d0
mov edx, dword [esp + 0x1c]
xor ecx, ecx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x1c]
test edx, edx
je 0x56ba84
push ebx
push edi
mov edi, dword [esp + 0x30]
cmp edx, 8
jb 0x56ba67
lea eax, [ebp - 1]
lea ebx, [edi - 1]
add eax, edx
add ebx, edx
cmp edi, eax
ja 0x56b977
cmp ebx, ebp
jae 0x56ba67
lea eax, [edx - 1]
add eax, esi
cmp edi, eax
ja 0x56b988
cmp ebx, esi
jae 0x56ba67
cmp edx, 0x40
jb 0x56ba28
mov ebx, edx
mov eax, edx
and ebx, 0x3f
mov edx, edi
sub edx, ebp
mov dword [esp + 0x1c], ebx
sub eax, ebx
mov dword [esp + 0x10], edx
mov ebx, esi
mov dword [esp + 0x18], eax
sub ebx, ebp
lea eax, [ebp + 0x10]
mov ebp, dword [esp + 0x10]
mov edx, esi
sub edx, edi
mov dword [esp + 0x14], edx
lea edx, [edi + 0x20]
movups xmm0, xmmword [eax - 0x10]
mov edi, dword [esp + 0x14]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ecx + esi]
lea edx, [edx + 0x40]
xorps xmm1, xmm0
movups xmmword [edx - 0x60], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ebx + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax + ebp - 0x40], xmm1
movups xmm1, xmmword [edi + edx - 0x40]
mov edi, dword [esp + 0x30]
movups xmm0, xmmword [eax - 0x30]
xorps xmm1, xmm0
movups xmmword [edx - 0x40], xmm1
movups xmm1, xmmword [esi + ecx + 0x30]
add ecx, 0x40
movups xmm0, xmmword [eax - 0x20]
xorps xmm1, xmm0
movups xmmword [edx - 0x30], xmm1
cmp ecx, dword [esp + 0x18]
jb 0x56b9c0
cmp dword [esp + 0x1c], 8
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
jb 0x56ba63
jmp 0x56ba2c
mov ebx, esi
sub ebx, ebp
mov eax, edx
and eax, 0xfffffff8
sub edi, ebp
mov dword [esp + 0x1c], eax
lea eax, [ecx + ebp]
mov dword [esp + 0x2c], edi
nop
movq xmm1, qword [eax + ebx]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add ecx, 8
xorps xmm1, xmm0
movq qword [eax + edi - 8], xmm1
cmp ecx, dword [esp + 0x1c]
jb 0x56ba40
mov edi, dword [esp + 0x30]
cmp ecx, edx
jae 0x56ba82
sub esi, ebp
lea eax, [ecx + ebp]
sub edi, ebp
sub edx, ecx
mov cl, byte [esi + eax]
lea eax, [eax + 1]
xor cl, byte [eax - 1]
mov byte [edi + eax - 1], cl
sub edx, 1
jne 0x56ba70
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x10
ret
Function at 0x56bba0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 8
call fcn.006149d0
mov ecx, dword [esp + 0xc]
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
lea ebp, [ecx + 0x40]
mov esi, dword [ecx + 0x14]
cmp edi, esi
ja 0x56bbce
shl edi, 4
add edi, dword [ebp]
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 8
ret
mov edx, dword [ecx + 0x18]
cmp edi, edx
jb 0x56bc08
mov eax, edi
sub eax, edx
add eax, 4
and eax, 0xfffffffc
add eax, edx
push 0x71
mov dword [ecx + 0x18], eax
push str.cryptomodesocb128.c
shl eax, 4
push eax
push dword [ebp]
call fcn.00482a80
add esp, 0x10
test eax, eax
jne 0x56bc05
pop edi
pop esi
pop ebp
add esp, 8
ret
mov dword [ebp], eax
mov eax, esi
shl eax, 4
mov dword [esp + 0x10], eax
mov eax, edi
mov edi, dword [esp + 0x10]
sub eax, esi
mov dword [esp + 0xc], eax
push ebx
nop
mov eax, dword [ebp]
add eax, edi
mov bl, byte [eax]
lea esi, [eax + 0x10]
push esi
shr bl, 7
push 1
neg bl
push eax
and bl, 0x87
call fcn.0056b8a0
xor byte [esi + 0xf], bl
add esp, 0xc
add edi, 0x10
sub dword [esp + 0x10], 1
jne 0x56bc20
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
pop ebx
mov dword [eax + 0x14], edi
shl edi, 4
add edi, dword [eax + 0x40]
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 8
ret
Function at 0x56f940
Capabilities:
Encode data using xor

Disassembly:
cmp dword [esp + 0x18], 0
je 0x56f954
mov dword [esp + 0x18], fcn.0056e180
jmp fcn.00567410
mov dword [esp + 0x18], fcn.0056d420
jmp fcn.00567110
Function at 0x571f40
Capabilities:
Hash data using sha1

Disassembly:
push esi
mov esi, dword [esp + 8]
push esi
call fcn.00562490
add esp, 4
test eax, eax
jne 0x571f54
pop esi
ret
lea eax, [esi + 0x5c]
pop esi
mov dword [esp + 4], eax
jmp fcn.004809b0
Function at 0x577ff0
Capabilities:
Hash data using sha256

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0xa8
push 0
lea eax, [esi + 0x40]
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x18]
add esp, 0xc
mov dword [esi], 0xf3bcc908
mov dword [esi + 4], 0x6a09e667
mov dword [esi + 8], 0x84caa73b
mov dword [esi + 0xc], 0xbb67ae85
mov dword [esi + 0x10], 0xfe94f82b
mov dword [esi + 0x14], 0x3c6ef372
mov dword [esi + 0x18], 0x5f1d36f1
mov dword [esi + 0x1c], 0xa54ff53a
mov dword [esi + 0x20], 0xade682d1
mov dword [esi + 0x24], 0x510e527f
mov dword [esi + 0x28], 0x2b3e6c1f
mov dword [esi + 0x2c], 0x9b05688c
mov dword [esi + 0x30], 0xfb41bd6b
mov dword [esi + 0x34], 0x1f83d9ab
mov dword [esi + 0x38], 0x137e2179
mov dword [esi + 0x3c], 0x5be0cd19
movzx eax, byte [edx]
mov dword [esi + 0xe4], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
xor ecx, 0xf3bcc908
mov dword [esi], ecx
xor eax, 0x6a09e667
mov dword [esi + 4], eax
mov ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
xor ecx, 0x84caa73b
mov dword [esi + 8], ecx
xor eax, 0xbb67ae85
mov dword [esi + 0xc], eax
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0x14]
xor ecx, 0xfe94f82b
mov dword [esi + 0x10], ecx
xor eax, 0x3c6ef372
mov dword [esi + 0x14], eax
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + 0x1c]
xor ecx, 0x5f1d36f1
mov dword [esi + 0x18], ecx
xor eax, 0xa54ff53a
mov dword [esi + 0x1c], eax
mov ecx, dword [edx + 0x20]
mov eax, dword [edx + 0x24]
xor ecx, 0xade682d1
mov dword [esi + 0x20], ecx
xor eax, 0x510e527f
mov dword [esi + 0x24], eax
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0x2c]
xor ecx, 0x2b3e6c1f
xor eax, 0x9b05688c
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
mov ecx, dword [edx + 0x30]
mov eax, dword [edx + 0x34]
xor ecx, 0xfb41bd6b
xor eax, 0x1f83d9ab
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
mov ecx, dword [edx + 0x38]
mov eax, dword [edx + 0x3c]
xor ecx, 0x137e2179
xor eax, 0x5be0cd19
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
pop esi
ret
Function at 0x57a8d0
Capabilities:
Hash data using sha256

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x58
push 0
lea eax, [esi + 0x20]
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov dword [esi], 0x6a09e667
mov dword [esi + 4], 0xbb67ae85
mov dword [esi + 8], 0x3c6ef372
mov dword [esi + 0xc], 0xa54ff53a
mov dword [esi + 0x10], 0x510e527f
mov dword [esi + 0x14], 0x9b05688c
mov dword [esi + 0x18], 0x1f83d9ab
mov dword [esi + 0x1c], 0x5be0cd19
movzx eax, byte [ecx]
mov dword [esi + 0x74], eax
mov eax, dword [ecx]
xor eax, 0x6a09e667
mov dword [esi], eax
mov eax, dword [ecx + 4]
xor eax, 0xbb67ae85
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
xor eax, 0x3c6ef372
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
xor eax, 0xa54ff53a
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x10]
xor eax, 0x510e527f
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x14]
xor eax, 0x9b05688c
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x18]
xor eax, 0x1f83d9ab
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1c]
xor eax, 0x5be0cd19
mov dword [esi + 0x1c], eax
pop esi
ret
Function at 0x57ae00
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov eax, 0x9c
call fcn.006149d0
mov eax, dword [0x6ae280]
xor eax, esp
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xa8]
push ebp
mov ebp, dword [esp + 0xa4]
test eax, eax
je 0x57af91
push ebx
push esi
mov esi, dword [esp + 0xb0]
dec eax
push edi
lea edi, [ebp + 0xc]
shr eax, 3
add ebp, 0x14
inc eax
mov dword [esp + 0x14], eax
nop dword [eax + eax]
movzx eax, byte [esi + 1]
lea esi, [esi + 8]
movzx ebx, byte [esi - 8]
movzx ecx, byte [esi - 4]
shl eax, 8
or ebx, eax
movzx eax, byte [esi - 6]
shl eax, 0x10
or ebx, eax
movzx eax, byte [esi - 5]
shl eax, 0x18
or ebx, eax
movzx eax, byte [esi - 3]
shl eax, 8
or ecx, eax
mov dword [esp + 0x18], ebx
movzx eax, byte [esi - 2]
shl eax, 0x10
or ecx, eax
mov dword [esp + 0x20], ebx
movzx eax, byte [esi - 1]
shl eax, 0x18
or ecx, eax
movzx eax, byte [edi]
and al, 0xdf
mov dword [esp + 0x10], ecx
or al, 0x40
mov dword [esp + 0x1c], ecx
mov byte [edi], al
movzx eax, byte [ebp]
and al, 0xbf
mov dword [esp + 0x24], ecx
or al, 0x20
push edi
mov byte [ebp], al
call fcn.00560d50
lea eax, [esp + 0x2c]
push eax
push edi
call fcn.00560b10
push 1
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0040b240
push ebp
call fcn.00560d50
lea eax, [esp + 0x44]
push eax
push ebp
call fcn.00560b10
push 1
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0040b240
mov eax, dword [esp + 0x40]
add esp, 0x30
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, eax
xor eax, dword [esp + 0x24]
xor edx, ebx
xor ebx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, ebx
shr eax, 8
mov byte [edi + 1], al
mov eax, ebx
shr eax, 0x10
mov byte [edi + 2], al
mov eax, ecx
mov byte [edi], bl
shr ebx, 0x18
shr eax, 8
mov byte [edi + 5], al
mov eax, ecx
mov byte [edi + 3], bl
mov byte [edi + 4], cl
shr eax, 0x10
mov byte [edi + 6], al
mov eax, edx
shr eax, 8
mov byte [ebp + 1], al
mov eax, edx
shr eax, 0x10
shr ecx, 0x18
mov byte [ebp + 2], al
mov byte [edi + 7], cl
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 8
mov byte [ebp + 5], al
mov eax, ecx
mov byte [ebp], dl
shr edx, 0x18
mov byte [ebp + 4], cl
shr eax, 0x10
shr ecx, 0x18
sub dword [esp + 0x14], 1
mov byte [ebp + 3], dl
mov byte [ebp + 6], al
mov byte [ebp + 7], cl
jne 0x57ae50
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9c]
pop ebp
xor ecx, esp
call fcn.00614242
add esp, 0x9c
ret
Function at 0x593770
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x14
call fcn.006149d0
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 0x593988
push ebx
push ebp
push edi
nop word [eax + eax]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x593962
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 0x5937b4
mov esi, dword [esp + 0x30]
jmp 0x593966
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00592eb0
sub esi, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x34]
jae 0x5937a0
pop edi
pop ebp
pop ebx
mov eax, esi
pop esi
add esp, 0x14
ret
Function at 0x59fde0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x30
call fcn.006149d0
mov eax, dword [0x6ae280]
xor eax, esp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push ebx
push ebp
movups xmm0, xmmword [eax]
mov ebp, dword [esp + 0x4c]
xor ebx, ebx
push esi
push edi
mov edi, dword [esp + 0x4c]
xor esi, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edi
movups xmmword [esp + 0x1c], xmm0
test ebp, ebp
je 0x59fe99
push 0x10
lea eax, [esp + 0x20]
mov dword [esp + 0x14], 0x10
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push eax
push dword [ecx]
call fcn.00499cf0
add esp, 0x14
neg eax
sbb eax, eax
inc dword [esp + 0x1c]
inc eax
or esi, eax
mov dword [esp + 0x10], esi
mov esi, ebp
sub esi, ebx
cmp esi, 0x10
jbe 0x59fe63
mov esi, 0x10
jmp 0x59fe67
test esi, esi
je 0x59fe8a
lea edx, [edi + ebx]
mov edi, dword [esp + 0x50]
sub edi, dword [esp + 0x14]
xor eax, eax
mov cl, byte [edi + edx]
lea edx, [edx + 1]
xor cl, byte [esp + eax + 0x2c]
inc eax
mov byte [edx - 1], cl
cmp eax, esi
jb 0x59fe74
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add ebx, 0x10
mov ecx, dword [esp + 0x18]
cmp ebx, ebp
jb 0x59fe21
mov ecx, dword [esp + 0x3c]
xor eax, eax
pop edi
test esi, esi
pop esi
pop ebp
sete al
pop ebx
xor ecx, esp
call fcn.00614242
add esp, 0x30
ret
Function at 0x59fec0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c
call fcn.006149d0
mov eax, dword [0x6ae280]
xor eax, esp
mov dword [esp + 0x48], eax
push ebp
mov ebp, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x64]
push edi
mov edi, dword [esp + 0x5c]
mov eax, dword [edi + 0x198]
and eax, 0xfffffffb
mov dword [edi + 0x198], eax
test al, 0x20
jne 0x59feff
test al, 0x10
jne 0x5a00aa
test esi, esi
je 0x5a00aa
movups xmm0, xmmword [edi + 0x7c]
push ebx
push esi
push dword [esp + 0x68]
movups xmmword [esp + 0x40], xmm0
push ebp
psrldq xmm0, 0xc
movd eax, xmm0
shr eax, 0x18
or al, 0x80
mov byte [esp + 0x53], al
lea eax, [esp + 0x44]
push eax
push edi
call fcn.0059fde0
mov dword [esp + 0x28], eax
lea ebx, [edi + 0x98]
mov eax, dword [edi + 0x14]
mov ecx, 8
mul ecx
xorps xmm0, xmm0
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x2c], eax
mov eax, esi
mov dword [esp + 0x30], edx
mul ecx
mov dword [esp + 0x34], eax
lea eax, [edi + 0x5c]
push eax
push ebx
mov dword [esp + 0x40], edx
call fcn.005b32d0
mov ecx, dword [edi + 8]
add esp, 0x1c
test ecx, ecx
je 0x59ff91
mov eax, dword [edi + 0x14]
add eax, 0xf
and eax, 0xfffffff0
push eax
push ecx
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.005b3170
add esp, 0x10
mov eax, esi
and eax, 0xfffffff0
jbe 0x59ffa8
push eax
push ebp
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.005b3170
add esp, 0x10
mov eax, esi
and eax, 0xf
je 0x59ffe4
push eax
and esi, 0xfffffff0
lea eax, [esp + 0x2c]
add esi, ebp
xorps xmm0, xmm0
push esi
push eax
movlpd qword [esp + 0x3c], xmm0
movlpd qword [esp + 0x34], xmm0
call sub.VCRUNTIME140.dll_memcpy
push 0x10
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x5c]
push eax
push ebx
call fcn.005b3170
add esp, 0x1c
push 0x10
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.005b3170
add esp, 0x10
lea eax, [esp + 0x49]
lea edx, [edi + 0x8d]
mov esi, 2
pop ebx
nop dword [eax]
movzx ecx, byte [edx - 1]
lea eax, [eax + 6]
xor byte [eax - 7], cl
lea edx, [edx + 6]
movzx ecx, byte [edx - 6]
xor byte [eax - 6], cl
movzx ecx, byte [edx - 5]
xor byte [eax - 5], cl
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 esi, 1
jne 0x5a0010
and byte [esp + 0x53], 0x7f
lea eax, [esp + 0x44]
push 0x10
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x10
push eax
lea eax, [edi + 0x6c]
push eax
push dword [edi]
call fcn.00499cf0
add esp, 0x14
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp dword [esp + 0x10], ecx
setne cl
and eax, ecx
mov ecx, dword [edi + 0x198]
and ecx, 0xfffffffb
lea edx, [eax*4]
or edx, ecx
or edx, 0x10
mov dword [edi + 0x198], edx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00614242
add esp, 0x4c
ret
mov ecx, dword [esp + 0x54]
xor eax, eax
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.00614242
add esp, 0x4c
ret