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

Disassembly:
mov eax, 0xa4
call fcn.004f50c0
mov eax, dword [0x581980]
xor eax, esp
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
push ebx
mov ebx, dword [esp + 0xb8]
push ebp
push esi
mov esi, dword [ecx + 4]
push edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 0x1c], esi
sub esi, edi
xor ebp, ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebp
cmp ebx, edi
jae 0x497e5a
push str.orig_len___md_size
push 0xf8
push str.._ssl_s3_cbc.c
call fcn.004719b0
add esp, 0xc
cmp edi, 0x40
jbe 0x497e76
push str.md_size___EVP_MAX_MD_SIZE
push 0xf9
push str.._ssl_s3_cbc.c
call fcn.004719b0
add esp, 0xc
lea ecx, [esp + 0x30]
neg ecx
and ecx, 0x3f
lea edx, [edi + 0x100]
lea ecx, [esp + ecx + 0x30]
mov dword [esp + 0x20], ecx
cmp ebx, edx
jbe 0x497ea0
mov eax, ebx
sub eax, edi
sub eax, 0x100
mov dword [esp + 0x14], eax
mov ebp, eax
mov eax, edi
and eax, 0xfffffffe
shl eax, 0x17
sub eax, ebp
add eax, esi
xor edx, edx
div edi
push edi
push 0
push ecx
mov ebx, edx
mov dword [esp + 0x30], ebx
call fcn.004f50f0
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor esi, esi
cmp ecx, dword [esp + 0xc4]
jae 0x497f80
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebx
shr eax, 0x1f
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + 0xc]
shr edx, 0x1f
sub ecx, ebx
sub ebx, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
jmp 0x497f18
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
add ebx, ecx
shr ebx, 0x1f
xor bl, dl
mov eax, ebp
shr eax, 0x1f
xor dl, al
or bl, dl
mov dl, byte [esp + 0x2c]
xor bl, al
dec bl
mov byte [esp + 0x13], bl
mov ebx, ecx
shr ebx, 0x1f
xor bl, dl
xor dl, al
or bl, dl
mov edx, dword [esp + 0x18]
mov dl, byte [edx + ebp]
xor al, bl
dec al
not al
and al, dl
and al, byte [esp + 0x13]
mov edx, dword [esp + 0x20]
or byte [esi + edx], al
inc esi
mov eax, esi
sub eax, edi
xor eax, edi
mov ebx, esi
xor ebx, edi
or eax, ebx
xor eax, esi
shr eax, 0x1f
neg eax
inc ebp
and esi, eax
inc ecx
cmp ebp, dword [esp + 0xc4]
jb 0x497f10
mov ebx, dword [esp + 0x24]
jmp 0x497f84
mov edx, dword [esp + 0x20]
xor esi, esi
test edi, edi
je 0x497fbd
lea ebx, [ebx]
mov ecx, ebx
xor ecx, 0x20
mov al, byte [ecx + edx]
mov cl, byte [ebx + edx]
mov eax, dword [esp + 0x28]
mov byte [eax + esi], cl
inc ebx
mov ecx, ebx
sub ecx, edi
xor ecx, edi
mov eax, ebx
xor eax, edi
or ecx, eax
xor ecx, ebx
shr ecx, 0x1f
neg ecx
inc esi
and ebx, ecx
cmp esi, edi
jb 0x497f90
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004f2889
add esp, 0xa4
ret
Function at 0x4a6df0
Capabilities:
Hash data using sha1

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x60
push 0
push esi
call fcn.004f50f0
add esp, 0xc
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
mov dword [esi + 0x10], 0xc3d2e1f0
mov eax, 1
pop esi
ret

Function at 0x4a77d0
Capabilities:
Hash data using sha224

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x70
push 0
push esi
call fcn.004f50f0
add esp, 0xc
mov dword [esi], 0xc1059ed8
mov dword [esi + 4], 0x367cd507
mov dword [esi + 8], 0x3070dd17
mov dword [esi + 0xc], 0xf70e5939
mov dword [esi + 0x10], 0xffc00b31
mov dword [esi + 0x14], 0x68581511
mov dword [esi + 0x18], 0x64f98fa7
mov dword [esi + 0x1c], 0xbefa4fa4
mov dword [esi + 0x6c], 0x1c
mov eax, 1
pop esi
ret

Function at 0x4a7830
Capabilities:
Hash data using sha256

Disassembly:
push esi
mov esi, dword [esp + 8]
push 0x70
push 0
push esi
call fcn.004f50f0
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
mov dword [esi + 0x6c], 0x20
mov eax, 1
pop esi
ret

Function at 0x4a7c70
Capabilities:
Hash data using sha224

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0xc1059ed8
mov dword [eax + 4], 0xcbbb9d5d
mov dword [eax + 8], 0x367cd507
mov dword [eax + 0xc], 0x629a292a
mov dword [eax + 0x10], 0x3070dd17
mov dword [eax + 0x14], 0x9159015a
mov dword [eax + 0x18], 0xf70e5939
mov dword [eax + 0x1c], 0x152fecd8
mov dword [eax + 0x20], 0xffc00b31
mov dword [eax + 0x24], 0x67332667
mov dword [eax + 0x28], 0x68581511
mov dword [eax + 0x2c], 0x8eb44a87
mov dword [eax + 0x30], 0x64f98fa7
mov dword [eax + 0x34], 0xdb0c2e0d
mov dword [eax + 0x38], 0xbefa4fa4
mov dword [eax + 0x3c], 0x47b5481d
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0xd0], ecx
mov dword [eax + 0xd4], 0x30
lea eax, [ecx + 1]
ret

Function at 0x4a7d10
Capabilities:
Hash data using sha256

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0xf3bcc908
mov dword [eax + 4], 0x6a09e667
mov dword [eax + 8], 0x84caa73b
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x10], 0xfe94f82b
mov dword [eax + 0x14], 0x3c6ef372
mov dword [eax + 0x18], 0x5f1d36f1
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x20], 0xade682d1
mov dword [eax + 0x24], 0x510e527f
mov dword [eax + 0x28], 0x2b3e6c1f
mov dword [eax + 0x2c], 0x9b05688c
mov dword [eax + 0x30], 0xfb41bd6b
mov dword [eax + 0x34], 0x1f83d9ab
mov dword [eax + 0x38], 0x137e2179
mov dword [eax + 0x3c], 0x5be0cd19
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0xd0], ecx
mov dword [eax + 0xd4], 0x40
lea eax, [ecx + 1]
ret
Function at 0x4a8570
Capabilities:
Hash data with md5

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

Disassembly:
mov eax, 8
call fcn.004f50c0
xor ecx, ecx
push ebx
mov ebx, dword [esp + 0x18]
push esi
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x160]
push edi
mov dword [esp + 0x18], eax
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x16c], ecx
mov dword [esi + 0x168], ecx
cmp ebx, 0xc
jne 0x4ab295
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
mov byte [esi + 0xf], 1
lea edi, [ebx - 0xb]
jmp 0x4ab364
mov eax, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
cmp ebx, 0x10
jb 0x4ab312
mov ecx, dword [esp + 0x1c]
shr eax, 4
mov edi, ecx
mov dword [esp + 0x20], eax
shl eax, 4
sub edi, esi
add ecx, eax
mov dword [esp + 0x1c], ecx
push ebp
lea ecx, [ecx]
lea ecx, [edi + esi + 2]
mov eax, esi
mov ebp, 4
jmp 0x4ab2d0
movzx edx, byte [edi + eax]
xor byte [eax], dl
movzx edx, byte [ecx - 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx]
xor byte [eax + 2], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 3], dl
add eax, 4
add ecx, 4
dec ebp
jne 0x4ab2d0
lea eax, [esi + 0x60]
push eax
push esi
call dword [esp + 0x24]
add esp, 8
add edi, 0x10
sub ebx, 0x10
dec dword [esp + 0x24]
jne 0x4ab2c0
mov eax, dword [esp + 0x10]
xor ecx, ecx
pop ebp
cmp ebx, ecx
je 0x4ab33b
jbe 0x4ab32b
mov ecx, dword [esp + 0x1c]
mov eax, esi
sub ecx, esi
mov edi, ebx
mov dl, byte [eax + ecx]
xor byte [eax], dl
inc eax
dec edi
jne 0x4ab322
lea eax, [esi + 0x60]
push eax
push esi
call dword [esp + 0x20]
mov eax, dword [esp + 0x14]
add esp, 8
mov ecx, dword [esp + 0x10]
shld ecx, eax, 3
add eax, eax
bswap ecx
xor dword [esi + 8], ecx
add eax, eax
lea ecx, [esi + 0x60]
add eax, eax
push ecx
bswap eax
xor dword [esi + 0xc], eax
push esi
call dword [esp + 0x20]
mov edi, dword [esi + 0xc]
add esp, 8
bswap edi
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x170]
push edx
lea eax, [esi + 0x20]
push eax
push esi
call ecx
add esp, 0xc
inc edi
bswap edi
mov dword [esi + 0xc], edi
pop edi
pop esi
pop ebx
add esp, 8
ret
Function at 0x4ab390
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.004f50c0
push esi
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x38]
or ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x164]
mov edx, dword [esi + 0x160]
mov dword [esp + 0xc], eax
je 0x4ab3bf
mov eax, 0xfffffffe
pop esi
pop ecx
ret
push ebx
mov ebx, dword [esp + 0x18]
xor eax, eax
mov ecx, ebx
add ecx, dword [esi + 0x30]
adc eax, dword [esi + 0x34]
cmp eax, 0x20000000
ja 0x4ab470
jb 0x4ab3e3
test ecx, ecx
jne 0x4ab470
push ebp
mov ebp, dword [esp + 0x18]
push edi
mov edi, dword [esi + 0x16c]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
test edi, edi
je 0x4ab426
lea esp, [esp]
test ebx, ebx
je 0x4ab415
mov al, byte [ebp]
xor byte [edi + esi + 0x40], al
inc edi
inc ebp
dec ebx
and edi, 0xf
jne 0x4ab400
jmp 0x4ab419
test edi, edi
jne 0x4ab462
lea ecx, [esi + 0x60]
push ecx
lea eax, [esi + 0x40]
push eax
call edx
add esp, 8
mov eax, ebx
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
je 0x4ab44a
push eax
push ebp
lea ecx, [esi + 0x60]
push ecx
lea edx, [esi + 0x40]
push edx
call dword [esp + 0x28]
mov eax, dword [esp + 0x20]
add esp, 0x10
add ebp, eax
sub ebx, eax
test ebx, ebx
je 0x4ab462
xor eax, eax
mov edi, ebx
test ebx, ebx
je 0x4ab462
mov cl, byte [eax + ebp]
xor byte [esi + eax + 0x40], cl
inc eax
cmp eax, ebx
jb 0x4ab456
mov dword [esi + 0x16c], edi
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
pop ecx
ret
pop ebx
or eax, 0xffffffff
pop esi
pop ecx
ret
Function at 0x4ab950
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0xc
call fcn.004f50c0
push esi
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x164]
mov eax, dword [esi + 0x174]
mov edx, dword [esi + 0x160]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
xor eax, eax
add ecx, dword [esi + 0x38]
mov dword [esp + 4], edx
adc eax, dword [esi + 0x3c]
cmp eax, 0xf
ja 0x4abb40
jb 0x4ab99d
cmp ecx, 0xffffffe0
ja 0x4abb40
cmp dword [esi + 0x16c], 0
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
je 0x4ab9c3
lea eax, [esi + 0x60]
push eax
lea ecx, [esi + 0x40]
push ecx
call edx
add esp, 8
mov dword [esi + 0x16c], 0
push ebx
mov ebx, dword [esi + 0x168]
push ebp
mov ebp, dword [esi + 0xc]
push edi
mov edi, dword [esp + 0x28]
bswap ebp
test ebx, ebx
je 0x4aba20
lea esp, [esp]
cmp dword [esp + 0x2c], 0
je 0x4aba09
mov al, byte [ebx + esi + 0x10]
mov ecx, dword [esp + 0x24]
xor al, byte [ecx]
dec dword [esp + 0x2c]
mov byte [edi], al
xor byte [ebx + esi + 0x40], al
inc ecx
inc ebx
inc edi
and ebx, 0xf
mov dword [esp + 0x24], ecx
jne 0x4ab9e0
jmp 0x4aba11
test ebx, ebx
jne 0x4abb30
lea edx, [esi + 0x60]
push edx
lea eax, [esi + 0x40]
push eax
call dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x2c]
cmp ecx, 0xc00
jb 0x4aba90
mov eax, 0xaaaaaaab
mul ecx
shr edx, 0xb
mov dword [esp + 0x10], edx
lea ebx, [ebx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push esi
push ecx
push 0xc0
push edi
push edx
call dword [esp + 0x44]
add ebp, 0xc0
mov eax, ebp
bswap eax
push 0xc00
mov dword [esi + 0xc], eax
push edi
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0x40]
push eax
call dword [esp + 0x38]
mov eax, 0xc00
add dword [esp + 0x48], eax
sub dword [esp + 0x50], eax
add esp, 0x24
add edi, eax
dec dword [esp + 0x10]
jne 0x4aba40
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
je 0x4abae3
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push esi
push ecx
shr eax, 4
push eax
push edi
push edx
mov dword [esp + 0x2c], eax
call dword [esp + 0x44]
add ebp, dword [esp + 0x2c]
lea ecx, [esi + 0x60]
mov eax, ebp
bswap eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x38], eax
sub dword [esp + 0x40], eax
push eax
push edi
push ecx
lea edx, [esi + 0x40]
push edx
call dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
add esp, 0x24
add edi, dword [esp + 0x10]
test ecx, ecx
je 0x4abb30
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x170]
push eax
lea ecx, [esi + 0x10]
push ecx
push esi
call edx
mov edx, dword [esp + 0x30]
inc ebp
bswap ebp
add esp, 0xc
mov dword [esi + 0xc], ebp
lea ecx, [ebx + edi]
sub edx, edi
jmp 0x4abb10
movzx ebp, byte [edx + ecx]
movzx eax, byte [esi + ebx + 0x10]
mov edi, dword [esp + 0x2c]
xor eax, ebp
mov byte [ecx], al
xor byte [esi + ebx + 0x40], al
dec edi
inc ebx
inc ecx
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x4abb10
pop edi
pop ebp
mov dword [esi + 0x168], ebx
pop ebx
xor eax, eax
pop esi
add esp, 0xc
ret
or eax, 0xffffffff
pop esi
add esp, 0xc
ret
Function at 0x4abb50
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10
call fcn.004f50c0
push esi
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x164]
mov eax, dword [esi + 0x174]
mov edx, dword [esi + 0x160]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 4], eax
xor eax, eax
add ecx, dword [esi + 0x38]
mov dword [esp + 8], edx
adc eax, dword [esi + 0x3c]
cmp eax, 0xf
ja 0x4abd3e
jb 0x4abb9d
cmp ecx, 0xffffffe0
ja 0x4abd3e
cmp dword [esi + 0x16c], 0
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
je 0x4abbc3
lea eax, [esi + 0x60]
push eax
lea ecx, [esi + 0x40]
push ecx
call edx
add esp, 8
mov dword [esi + 0x16c], 0
mov eax, dword [esi + 0xc]
push ebx
mov ebx, dword [esi + 0x168]
push ebp
mov ebp, dword [esp + 0x28]
bswap eax
push edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], eax
test ebx, ebx
je 0x4abc1c
cmp dword [esp + 0x30], 0
je 0x4abc05
mov al, byte [edi]
mov dl, byte [ebx + esi + 0x10]
dec dword [esp + 0x30]
xor dl, al
mov byte [ebp], dl
xor byte [ebx + esi + 0x40], al
inc ebx
inc edi
inc ebp
and ebx, 0xf
jne 0x4abbe1
jmp 0x4abc0d
test ebx, ebx
jne 0x4abd2e
lea eax, [esi + 0x60]
push eax
lea ecx, [esi + 0x40]
push ecx
call dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0x30]
cmp edx, 0xc00
jb 0x4abc8c
mov eax, 0xaaaaaaab
mul edx
shr edx, 0xb
mov dword [esp + 0x14], edx
push 0xc00
push edi
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0x40]
push eax
call dword [esp + 0x28]
mov edx, dword [esp + 0x20]
push esi
push edx
push 0xc0
push ebp
push edi
call dword [esp + 0x58]
mov eax, dword [esp + 0x48]
sub dword [esp + 0x54], 0xc00
add eax, 0xc0
mov dword [esp + 0x48], eax
add esp, 0x24
bswap eax
add ebp, 0xc00
add edi, 0xc00
dec dword [esp + 0x14]
mov dword [esi + 0xc], eax
jne 0x4abc36
mov edx, dword [esp + 0x30]
mov ecx, edx
and ecx, 0xfffffff0
mov dword [esp + 0x1c], ecx
je 0x4abce3
mov eax, ecx
push ecx
shr eax, 4
mov dword [esp + 0x18], eax
push edi
lea eax, [esi + 0x60]
push eax
lea ecx, [esi + 0x40]
push ecx
call dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push esi
push edx
push eax
push ebp
push edi
call dword [esp + 0x58]
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x38]
add esp, 0x24
mov dword [esp + 0x24], eax
bswap eax
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
add ebp, eax
add edi, eax
sub dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4abd2e
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x170]
push ecx
lea edx, [esi + 0x10]
push edx
push esi
call eax
mov eax, dword [esp + 0x30]
inc eax
bswap eax
add esp, 0xc
mov dword [esi + 0xc], eax
lea eax, [ebx + ebp]
sub edi, ebp
jmp 0x4abd10
mov cl, byte [edi + eax]
mov dl, byte [esi + ebx + 0x10]
mov ebp, dword [esp + 0x30]
xor byte [esi + ebx + 0x40], cl
xor dl, cl
dec ebp
mov byte [eax], dl
inc ebx
inc eax
mov dword [esp + 0x30], ebp
test ebp, ebp
jne 0x4abd10
pop edi
pop ebp
mov dword [esi + 0x168], ebx
pop ebx
xor eax, eax
pop esi
add esp, 0x10
ret
or eax, 0xffffffff
pop esi
add esp, 0x10
ret
Function at 0x4ac6a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x30
call fcn.004f50c0
mov eax, dword [0x581980]
xor eax, esp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
mov bl, byte [esi]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x20], edx
mov byte [esp + 0xf], bl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
test bl, 0x40
jne 0x4ac6f8
push ecx
lea ecx, [esi + 0x10]
push ecx
push esi
call eax
add esp, 0xc
movzx eax, bl
and eax, 7
mov ebx, 0xf
sub ebx, eax
mov byte [esi], al
mov eax, ebx
xor ecx, ecx
mov dword [esp + 0x24], ebx
cmp eax, 0xf
jae 0x4ac727
movzx edx, byte [esi + eax]
or ecx, edx
mov byte [esi + eax], 0
inc eax
shl ecx, 8
cmp eax, 0xf
jb 0x4ac714
movzx eax, byte [esi + 0xf]
mov ebp, dword [esp + 0x4c]
or ecx, eax
mov byte [esi + 0xf], 1
cmp ecx, ebp
je 0x4ac74e
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.004f2889
add esp, 0x30
ret
push edi
mov edi, ebp
shr edi, 4
test edi, edi
je 0x4ac78f
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x20]
push esi
push edx
push edi
push eax
push ecx
call dword [esp + 0x3c]
shl edi, 4
mov edx, edi
add dword [esp + 0x34], edx
add dword [esp + 0x30], edx
add esp, 0x18
sub ebp, edx
je 0x4ac7f7
shr edx, 4
mov ecx, esi
call fcn.004ac460
test ebp, ebp
je 0x4ac7f7
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x30]
push eax
push esi
call dword [esp + 0x2c]
add esp, 0xc
xor eax, eax
test ebp, ebp
je 0x4ac7e6
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
sub edi, ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x2c]
sub ecx, edx
mov dword [esp + 0x24], ecx
movzx ebx, byte [esp + eax + 0x2c]
lea ecx, [esp + eax + 0x2c]
movzx edx, byte [edi + ecx]
xor edx, ebx
mov ebx, dword [esp + 0x24]
mov byte [ebx + ecx], dl
xor byte [esi + eax + 0x10], dl
inc eax
cmp eax, ebp
jb 0x4ac7c3
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x10]
push ecx
push eax
push eax
call dword [esp + 0x2c]
add esp, 0xc
pop edi
cmp ebx, 0x10
jae 0x4ac813
mov edx, 0x10
sub edx, ebx
push edx
lea eax, [esi + ebx]
push 0
push eax
call fcn.004f50f0
add esp, 0xc
mov eax, dword [esp + 0x10]
push eax
lea ecx, [esp + 0x2c]
push ecx
push esi
call dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
xor dword [esi + 0x14], eax
xor dword [esi + 0x10], edx
mov ecx, dword [esp + 0x3c]
xor dword [esi + 0x18], ecx
mov al, byte [esp + 0x1b]
mov edx, dword [esp + 0x40]
xor dword [esi + 0x1c], edx
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov byte [esi], al
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004f2889
add esp, 0x30
ret
Function at 0x4ac8c0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x14
call fcn.004f50c0
mov eax, dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x24]
push ebp
push esi
mov esi, dword [esp + 0x24]
push edi
mov edi, dword [esp + 0x2c]
mov ebp, eax
cmp ebx, 0x10
jb 0x4ac93a
shr ebx, 4
mov dword [esp + 0x10], ebx
lea esp, [esp]
mov ecx, edi
sub ebp, esi
mov eax, esi
sub ecx, esi
mov edx, 4
lea ecx, [ecx]
mov ebx, dword [eax + ebp]
xor ebx, dword [eax]
add eax, 4
dec edx
mov dword [ecx + eax - 4], ebx
jne 0x4ac900
mov eax, dword [esp + 0x34]
push eax
push edi
push edi
call dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
mov ebp, edi
sub ebx, 0x10
add esp, 0xc
add esi, 0x10
add edi, 0x10
dec dword [esp + 0x10]
mov dword [esp + 0x30], ebx
jne 0x4ac8f0
mov eax, dword [esp + 0x38]
test ebx, ebx
je 0x4aca37
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x14], ecx
mov ecx, 1
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, 2
sub ecx, esi
mov dword [esp + 0x1c], ecx
mov edx, ebp
sub edx, esi
mov ecx, 3
xor eax, eax
sub ecx, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ecx
jmp 0x4ac97b
mov edx, dword [esp + 0x10]
cmp eax, ebx
jae 0x4ac9e9
mov ebx, dword [esp + 0x14]
lea ecx, [eax + esi]
mov dl, byte [edx + ecx]
xor dl, byte [ecx]
mov byte [ebx + ecx], dl
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x30]
add edx, ecx
cmp edx, ebx
jae 0x4ac9de
mov dl, byte [esi + eax + 1]
xor dl, byte [eax + ebp + 1]
mov byte [edi + eax + 1], dl
mov edx, dword [esp + 0x1c]
add edx, ecx
cmp edx, ebx
jae 0x4ac9e1
mov dl, byte [esi + eax + 2]
xor dl, byte [eax + ebp + 2]
mov byte [edi + eax + 2], dl
mov edx, dword [esp + 0x20]
add edx, ecx
cmp edx, ebx
jae 0x4ac9e6
mov cl, byte [esi + eax + 3]
xor cl, byte [eax + ebp + 3]
add eax, 4
mov byte [edi + eax - 1], cl
cmp eax, 0x10
jb 0x4ac977
jmp 0x4aca09
inc eax
jmp 0x4ac9e9
add eax, 2
jmp 0x4ac9e9
add eax, 3
cmp eax, 0x10
jae 0x4aca09
mov edx, 0x10
sub ebp, edi
lea ecx, [eax + edi]
sub edx, eax
lea ebx, [ebx]
mov al, byte [ecx + ebp]
mov byte [ecx], al
inc ecx
dec edx
jne 0x4aca00
mov ecx, dword [esp + 0x34]
push ecx
push edi
push edi
call dword [esp + 0x48]
add esp, 0xc
mov ebp, edi
cmp ebx, 0x10
jbe 0x4aca33
sub ebx, 0x10
add esi, 0x10
add edi, 0x10
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x4ac942
mov eax, dword [esp + 0x38]
mov edx, dword [ebp]
mov dword [eax], edx
mov ecx, dword [ebp + 4]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 8]
pop edi
mov dword [eax + 8], edx
mov ecx, dword [ebp + 0xc]
pop esi
pop ebp
mov dword [eax + 0xc], ecx
pop ebx
add esp, 0x14
ret
Function at 0x4accf0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.004f50c0
mov eax, dword [esp + 0x1c]
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
mov esi, dword [eax]
push edi
mov edi, dword [esp + 0x28]
test esi, esi
je 0x4acd35
test ebx, ebx
je 0x4acd35
mov cl, byte [esi + edi]
mov ebp, dword [esp + 0x18]
xor cl, byte [ebp]
mov eax, dword [esp + 0x1c]
mov byte [eax], cl
inc eax
inc ebp
inc esi
dec ebx
and esi, 0xf
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
jne 0x4acd10
cmp ebx, 0x10
jb 0x4acdad
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, edx
sub eax, edi
mov dword [esp + 0x20], eax
mov eax, ebx
shr eax, 4
mov ebp, ecx
mov dword [esp + 0x10], eax
shl eax, 4
add ecx, eax
sub ebp, edi
add edx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x24]
push edx
push edi
push edi
call dword [esp + 0x3c]
add esp, 0xc
cmp esi, 0x10
jae 0x4acd9a
mov ecx, 0xf
sub ecx, esi
shr ecx, 2
lea eax, [esi + edi]
inc ecx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + eax]
xor edx, dword [eax]
add eax, 4
dec ecx
mov dword [eax + ebp - 4], edx
jne 0x4acd87
add dword [esp + 0x20], 0x10
sub ebx, 0x10
add ebp, 0x10
xor esi, esi
dec dword [esp + 0x10]
jne 0x4acd66
test ebx, ebx
je 0x4acde9
mov eax, dword [esp + 0x24]
push eax
push edi
push edi
call dword [esp + 0x3c]
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add esp, 0xc
lea eax, [esi + edi]
sub ebp, edi
sub ecx, edi
add esi, ebx
mov dl, byte [eax + ebp]
xor dl, byte [eax]
inc eax
dec ebx
mov byte [eax + ecx - 1], dl
jne 0x4acdd0
mov eax, dword [esp + 0x2c]
pop edi
mov dword [eax], esi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov ecx, dword [esp + 0x2c]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
pop ecx
ret