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

Disassembly:
mov eax, 4
call fcn.005f62e0
push edi
mov edi, dword [esp + 0x14]
mov dword [esp + 4], 0
cmp edi, 0x800
jge 0x5895e8
call fcn.004c22a0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x59
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.004c23a0
push 0
push 0x78
push 4
call fcn.004c24b0
add esp, 0x18
xor eax, eax
pop edi
pop ecx
ret
push dword [esp + 0x18]
call fcn.005892c0
add esp, 4
test eax, eax
jne 0x589624
call fcn.004c22a0
push str.ossl_rsa_fips186_4_gen_prob_primes
push 0x5e
push str.crypto_rsa_rsa_sp800_56b_gen.c
call fcn.004c23a0
push 0
push 0xb2
push 4
call fcn.004c24b0
add esp, 0x18
xor eax, eax
pop edi
pop ecx
ret
push ebx
push ebp
push esi
mov esi, dword [esp + 0x28]
push esi
call fcn.00540d80
push esi
call fcn.00540b90
push esi
mov dword [esp + 0x2c], eax
call fcn.00540b90
push esi
mov ebp, eax
call fcn.00540b90
add esp, 0x10
mov ebx, eax
cmp dword [esp + 0x20], 0
je 0x589786
test ebp, ebp
je 0x58975d
test ebx, ebx
je 0x589754
push 4
push ebp
call fcn.004dedf0
push 4
push ebx
call fcn.004dedf0
mov esi, dword [esp + 0x28]
add esp, 0x10
cmp dword [esi + 0x20], 0
jne 0x58968e
call fcn.004dece0
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
test eax, eax
jne 0x58969d
call fcn.004dece0
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x589750
test eax, eax
je 0x589750
push 4
push ecx
call fcn.004dedf0
push 4
push dword [esi + 0x24]
call fcn.004dedf0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push edi
push 0
push 0
push 0
push 0
push 0
push ebp
push dword [esi + 0x20]
call fcn.005d2d20
add esp, 0x3c
test eax, eax
je 0x589750
nop dword [eax]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push edi
push 0
push 0
push 0
push 0
push 0
push ebx
push dword [esi + 0x24]
call fcn.005d2d20
add esp, 0x2c
test eax, eax
je 0x589750
push edi
push ebx
push ebp
push dword [esp + 0x2c]
call fcn.00589250
add esp, 0x10
test eax, eax
js 0x589750
je 0x5896f0
push edi
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [esp + 0x2c]
call fcn.00589250
add esp, 0x10
test eax, eax
js 0x589750
je 0x5896f0
inc dword [esi + 0x78]
mov dword [esp + 0x10], 1
mov esi, dword [esp + 0x28]
push ebp
call fcn.004de590
add esp, 4
test ebx, ebx
je 0x58976a
push ebx
call fcn.004de590
add esp, 4
push dword [esp + 0x20]
call fcn.004de590
push esi
call fcn.00540a90
mov eax, dword [esp + 0x18]
add esp, 8
pop esi
pop ebp
pop ebx
pop edi
pop ecx
ret
mov dword [esp + 0x10], 0
test ebp, ebp
je 0x58975d
jmp 0x589754
Function at 0x59ae80
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.005f62e0
cmp dword [esp + 0xc], 0
push edi
mov edi, dword [esp + 0x24]
je 0x59b02d
mov eax, dword [esp + 0x18]
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
inc eax
push esi
mov esi, dword [esp + 0x34]
push esi
push edi
push dword [esp + 0x34]
shr eax, 1
push dword [esp + 0x34]
mov dword [esp + 0x20], eax
push eax
push ebp
push dword [esp + 0x30]
call fcn.0059acb0
add esp, 0x1c
test eax, eax
je 0x59af1f
push 0x1c8
push str.providersimplementationskdfs_tls1_prf.c
push esi
call fcn.004c0940
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x59af1f
mov eax, dword [esp + 0x10]
sub ebp, eax
add ebp, dword [esp + 0x24]
push esi
push ebx
push dword [esp + 0x34]
push dword [esp + 0x34]
push eax
push ebp
push dword [esp + 0x34]
call fcn.0059acb0
add esp, 0x1c
test eax, eax
jne 0x59af27
push 0x1cd
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.004c0a60
add esp, 0x10
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
pop ecx
ret
xor edx, edx
test esi, esi
je 0x59b00e
cmp esi, 8
jb 0x59aff1
lea eax, [esi - 1]
lea ecx, [edi - 1]
add eax, ebx
add ecx, esi
cmp edi, eax
ja 0x59af50
cmp ecx, ebx
jae 0x59aff1
cmp esi, 0x40
jb 0x59afc5
mov eax, esi
lea ebp, [ebx + 0x30]
and eax, 0x3f
mov ecx, esi
sub ecx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ecx
lea eax, [edi + 0x10]
mov ecx, ebx
sub ecx, edi
movups xmm0, xmmword [eax - 0x10]
add edx, 0x40
lea ebp, [ebp + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ebp - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [ecx + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ebp - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ebp - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp edx, dword [esp + 0x1c]
jb 0x59af70
cmp dword [esp + 0x10], 8
jb 0x59afed
jmp 0x59afc9
mov ecx, ebx
sub ecx, edi
mov ebp, esi
lea eax, [edx + edi]
and ebp, 0xfffffff8
movq xmm1, qword [ecx + eax]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add edx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp edx, ebp
jb 0x59afd1
cmp edx, esi
jae 0x59b00e
mov ebp, ebx
lea ecx, [edx + edi]
sub ebp, edi
mov edi, esi
sub edi, edx
nop dword [eax]
mov al, byte [ecx + ebp]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edi, 1
jne 0x59b000
push 0x1d2
push str.providersimplementationskdfs_tls1_prf.c
push esi
push ebx
call fcn.004c0a60
add esp, 0x10
mov eax, 1
pop esi
pop ebp
pop ebx
pop edi
pop ecx
ret
push dword [esp + 0x28]
push edi
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x24]
call fcn.0059acb0
add esp, 0x1c
neg eax
sbb eax, eax
neg eax
pop edi
pop ecx
ret
Function at 0x5a3bb0
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
mov eax, dword [esp + 4]
push esi
lea ecx, [edx + 0x3f8]
lea esi, [eax + 0x3f8]
cmp eax, ecx
ja 0x5a3beb
cmp esi, edx
jb 0x5a3beb
sub edx, eax
mov esi, 0x80
mov ecx, dword [eax + edx]
lea eax, [eax + 8]
xor dword [eax - 8], ecx
mov ecx, dword [eax + edx - 4]
xor dword [eax - 4], ecx
sub esi, 1
jne 0x5a3bd4
pop esi
ret
lea esi, [edx + 0x30]
sub edx, eax
lea ecx, [eax + 0x10]
mov eax, 0x10
nop dword [eax + eax]
lea ecx, [ecx + 0x40]
lea esi, [esi + 0x40]
movups xmm0, xmmword [ecx - 0x50]
movups xmm1, xmmword [esi - 0x70]
xorps xmm1, xmm0
movups xmmword [ecx - 0x50], xmm1
movups xmm0, xmmword [ecx - 0x40]
movups xmm1, xmmword [edx + ecx - 0x40]
xorps xmm1, xmm0
movups xmmword [ecx - 0x40], xmm1
movups xmm0, xmmword [ecx - 0x30]
movups xmm1, xmmword [esi - 0x50]
xorps xmm1, xmm0
movups xmmword [ecx - 0x30], xmm1
movups xmm1, xmmword [esi - 0x40]
movups xmm0, xmmword [ecx - 0x20]
xorps xmm1, xmm0
movups xmmword [ecx - 0x20], xmm1
sub eax, 1
jne 0x5a3c00
pop esi
ret

Function at 0x5a5dd0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 4
call fcn.005f62e0
push ebx
mov ebx, dword [esp + 0x10]
xor ecx, ecx
push esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0x10
push edi
mov edi, dword [esp + 0x1c]
test esi, esi
jle 0x5a5ece
cmp esi, 8
jb 0x5a5eb4
lea eax, [esi - 1]
lea edx, [esi - 1]
add eax, edi
add edx, ebx
cmp ebx, eax
ja 0x5a5e1a
cmp edx, edi
jae 0x5a5eb4
mov edx, edi
push ebp
cmp esi, 0x40
jb 0x5a5e89
mov eax, esi
lea ebp, [edi + 0x30]
and eax, 0xffffffc0
sub edx, ebx
mov dword [esp + 0x10], eax
lea eax, [ebx + 0x10]
movups xmm0, xmmword [eax - 0x10]
add ecx, 0x40
lea ebp, [ebp + 0x40]
lea eax, [eax + 0x40]
movups xmm1, xmmword [ebp - 0x70]
xorps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movups xmm0, xmmword [eax - 0x40]
movups xmm1, xmmword [edx + eax - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [ebp - 0x50]
xorps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm1, xmmword [eax - 0x20]
movups xmm0, xmmword [ebp - 0x40]
xorps xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
cmp ecx, dword [esp + 0x10]
jl 0x5a5e33
mov eax, esi
and al, 0x3f
cmp al, 8
jb 0x5a5eaf
jmp 0x5a5e8b
sub edx, ebx
mov ebp, esi
lea eax, [ecx + ebx]
and ebp, 0xfffffff8
movq xmm1, qword [edx + eax]
lea eax, [eax + 8]
movq xmm0, qword [eax - 8]
add ecx, 8
xorps xmm1, xmm0
movq qword [eax - 8], xmm1
cmp ecx, ebp
jl 0x5a5e93
pop ebp
cmp ecx, esi
jge 0x5a5ece
mov edx, esi
lea eax, [ecx + ebx]
sub edi, ebx
sub edx, ecx
nop dword [eax]
mov cl, byte [eax + edi]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x5a5ec0
push esi
push ebx
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x20]
push ebx
push dword [eax + 8]
call fcn.004b99b0
add esp, 0x14
test eax, eax
je 0x5a5ef7
xor eax, eax
cmp dword [esp + 0x20], esi
pop edi
pop esi
sete al
pop ebx
pop ecx
ret
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
Function at 0x5a6090
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, dword [esp + 0xc]
test ebp, ebp
je 0x5a6103
mov edx, dword [esp + 0x10]
test edx, edx
je 0x5a6103
push ebx
mov ebx, dword [esp + 0xc]
push edi
mov edi, dword [ebx + 0x14]
cmp edx, edi
cmovb edi, edx
test edi, edi
je 0x5a60d0
push esi
mov esi, ebp
lea ecx, [ebx + 0x1c]
nop dword [eax]
mov al, byte [esi]
lea esi, [esi + 1]
xor byte [ecx], al
lea ecx, [ecx + 1]
sub edi, 1
jne 0x5a60c0
pop esi
mov eax, dword [ebx + 0x14]
cmp edx, eax
jbe 0x5a6101
sub edx, eax
cmp edx, 0x10
jbe 0x5a60e5
mov edx, 0x10
jmp 0x5a60e9
test edx, edx
je 0x5a6101
xor ecx, ecx
nop dword [eax + eax]
mov eax, dword [ebx + 0x14]
add eax, ecx
mov al, byte [eax + ebp]
xor byte [ebx + ecx + 0x3c], al
inc ecx
cmp ecx, edx
jb 0x5a60f0
pop edi
pop ebx
pop ebp
ret
Function at 0x5a6380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x74
call fcn.005f62e0
mov eax, dword [0x6c02d0]
xor eax, esp
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x78]
mov edx, 0x10
mov eax, dword [esp + 0x84]
push ebx
push ebp
mov ebp, dword [esp + 0x84]
push esi
mov esi, dword [ecx + 0x94]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x98]
movups xmm0, xmmword [esi + 0x3c]
mov dword [esp + 0x18], ecx
mov ecx, 1
push edi
mov dword [esp + 0x18], eax
movups xmmword [esp + 0x20], xmm0
nop
movzx eax, byte [edx + esi + 0x3b]
dec edx
add ecx, eax
mov byte [edx + esi + 0x3c], cl
shr ecx, 8
test edx, edx
jne 0x5a63e0
movups xmm0, xmmword [esi + 0x3c]
movups xmmword [esp + 0x30], xmm0
cmp dword [esi + 0x14], 0x10
jne 0x5a6407
lea edi, [edx + 0x20]
jmp 0x5a6432
mov edx, 0x10
mov ecx, 1
movzx eax, byte [edx + esi + 0x3b]
dec edx
add ecx, eax
mov byte [edx + esi + 0x3c], cl
shr ecx, 8
test edx, edx
jne 0x5a6411
movups xmm0, xmmword [esi + 0x3c]
mov edi, 0x30
movups xmmword [esp + 0x40], xmm0
push edi
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x5c]
push eax
push dword [esi]
call fcn.004b99b0
add esp, 0x14
test eax, eax
je 0x5a6549
cmp dword [esp + 0x14], edi
jne 0x5a6549
push dword [esi + 0x14]
lea eax, [esp + 0x54]
push eax
lea ebx, [esi + 0x1c]
push ebx
call fcn.005f7b80
mov eax, dword [esi + 0x14]
add esp, 0xc
cmp dword [esi + 0x18], 0
movups xmm0, xmmword [esp + eax + 0x50]
movups xmmword [esi + 0x3c], xmm0
je 0x5a64df
mov edi, dword [esp + 0x90]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
test ebp, ebp
jne 0x5a649f
test ecx, ecx
jne 0x5a649f
test eax, eax
je 0x5a64c2
push dword [esp + 0x98]
push eax
push dword [esp + 0xa8]
push ecx
push edi
push ebp
push esi
call fcn.005a6110
add esp, 0x1c
test eax, eax
je 0x5a6549
test edi, edi
je 0x5a6502
mov eax, dword [esp + 0x1c]
push dword [eax + 0x8c]
lea eax, [esi + 0x60]
push eax
push esi
call fcn.005a6090
add esp, 0xc
jmp 0x5a6502
push dword [esp + 0x90]
push ebp
push esi
call fcn.005a6090
push dword [esp + 0xa4]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.005a6090
add esp, 0x18
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi]
call fcn.004b9980
add esp, 0x18
test eax, eax
je 0x5a6549
push 0xffffffffffffffff
push 0
push ebx
push 0
push 0
push dword [esi + 4]
call fcn.004b9980
add esp, 0x18
test eax, eax
je 0x5a6549
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.005f5e48
add esp, 0x74
ret
mov ecx, dword [esp + 0x80]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005f5e48
add esp, 0x74
ret
Function at 0x5a9cd0
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebx
mov ebx, dword [esp + 8]
test ebx, ebx
jne 0x5a9cdd
xor eax, eax
pop ebx
ret
push edi
push dword [ebx + 4]
push 0
push dword [ebx + 8]
push dword [ebx]
call fcn.00528ee0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x5a9d24
call fcn.004c22a0
push str.ecx_gen
push 0x29d
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.004c23a0
push edi
push 0x80010
push 0x39
call fcn.004c24b0
add esp, 0x18
xor eax, eax
pop edi
pop ebx
ret
test byte [ebx + 0xc], 3
je 0x5a9d6f
push esi
push edi
call fcn.00528e70
mov esi, eax
add esp, 4
test esi, esi
jne 0x5a9d72
call fcn.004c22a0
push str.ecx_gen
push 0x2a6
push str.providersimplementationskeymgmtecx_kmgmt.c
call fcn.004c23a0
push esi
push 0x80010
push 0x39
call fcn.004c24b0
add esp, 0x18
push edi
call fcn.00528e90
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
ret
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x5a9d9f
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x5a9d9f
mov edx, dword [ebx + 8]
cmp edx, 2
je 0x5a9d63
cmp edx, 3
je 0x5a9d63
push ecx
push eax
push esi
push edi
call fcn.005b6100
add esp, 0x10
test eax, eax
je 0x5a9d63
jmp 0x5a9db3
push 0
push dword [edi + 0x4c]
push esi
push dword [ebx]
call fcn.004c2ce0
add esp, 0x10
test eax, eax
jle 0x5a9d63
mov eax, dword [ebx + 8]
cmp eax, 3
ja case.default.0x5a9dbb
jmp dword [eax*4 + 0x5a9e3c]
mov al, byte [esi + 0x1f]
and byte [esi], 0xf8
and al, 0x3f
or al, 0x40
mov byte [esi + 0x1f], al
lea eax, [edi + 0xc]
push esi
push eax
call fcn.0052e6d0
add esp, 8
mov eax, edi
or dword [edi + 8], 1
pop esi
pop edi
pop ebx
ret
and byte [esi], 0xfc
lea eax, [edi + 0xc]
or byte [esi + 0x37], 0x80
push esi
push eax
call fcn.00537940
add esp, 8
mov eax, edi
or dword [edi + 8], 1
pop esi
pop edi
pop ebx
ret
push dword [ebx + 4]
lea eax, [edi + 0xc]
push esi
push eax
push dword [ebx]
call fcn.0052dfc0
jmp 0x5a9e24
push dword [ebx + 4]
lea eax, [edi + 0xc]
push esi
push eax
push dword [ebx]
call fcn.00535d30
add esp, 0x10
test eax, eax
je 0x5a9d63
or dword [edi + 8], 1
mov eax, edi
pop esi
pop edi
pop ebx
ret
Function at 0x5b6100
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x54
call fcn.005f62e0
mov eax, dword [0x6c02d0]
xor eax, esp
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x58]
mov edx, str.X25519
mov eax, dword [esp + 0x5c]
push ebx
push ebp
push esi
mov dword [esp + 0x18], eax
xor ebx, ebx
mov eax, dword [esp + 0x6c]
push edi
mov dword [esp + 0x18], eax
xor edi, edi
cmp dword [ecx + 0x50], ebx
mov eax, str.X448
mov dword [esp + 0x14], ecx
cmove eax, edx
push eax
call fcn.005d2350
mov ebp, dword [esp + 0x78]
mov esi, eax
add esp, 4
cmp ebp, dword [esi + 0x1c]
jae 0x5b618f
call fcn.004c22a0
push str.ossl_ecx_dhkem_derive_private
push 0x15d
push str.providersimplementationskemecx_kem.c
call fcn.004c23a0
push dword [esi + 0x1c]
push ebp
push str.ikm_length_is_:_zu__should_be_at_least__zu
push 0xe6
push 0x39
call fcn.004c24b0
add esp, 0x20
jmp 0x5b6236
mov eax, dword [esp + 0x14]
push dword [eax + 4]
push dword [eax]
push dword [esi + 0xc]
push str.HKDF
call fcn.005d2770
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x5b61c1
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.005f5e48
add esp, 0x54
ret
movzx eax, byte [esi + 1]
push ebp
push dword [esp + 0x1c]
mov byte [esp + 0x18], al
movzx eax, byte [esi]
push str.dkp_prk
push 2
mov byte [esp + 0x21], al
lea eax, [esp + 0x20]
push eax
push 0x69e540
push 0
push 0
push dword [esi + 0x10]
lea eax, [esp + 0x44]
push eax
push edi
call fcn.005d25b0
add esp, 0x2c
test eax, eax
je 0x5b6236
push 0
push 0
push 0x69e5d4
push 2
lea eax, [esp + 0x20]
push eax
push 0x69e540
push dword [esi + 0x10]
lea eax, [esp + 0x3c]
push eax
push dword [esi + 0x1c]
push dword [esp + 0x40]
push edi
call fcn.005d23d0
add esp, 0x2c
mov ecx, 1
test eax, eax
cmovne ebx, ecx
lea eax, [esp + 0x20]
push 0x40
push eax
call fcn.00401320
push edi
call fcn.00513400
mov ecx, dword [esp + 0x6c]
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005f5e48
add esp, 0x54
ret
Function at 0x5c8840
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x14
call fcn.005f62e0
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 0x5c8a58
push ebx
push ebp
push edi
nop word [eax + eax]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x5c8a32
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 0x5c8884
mov esi, dword [esp + 0x30]
jmp 0x5c8a36
mov ecx, dword [esp + 0x28]
push ecx
call fcn.005c7f80
sub esi, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
cmp esi, dword [esp + 0x34]
jae 0x5c8870
pop edi
pop ebp
pop ebx
mov eax, esi
pop esi
add esp, 0x14
ret
Function at 0x5cc330
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [esp + 4]
push ebx
push ebp
xor ebp, ebp
push esi
test eax, eax
je 0x5cc348
test byte [eax + 0x5c], 2
mov ebx, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._
jne 0x5cc34d
mov ebx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov esi, dword [esp + 0x1c]
test esi, esi
jle 0x5cc425
mov edx, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x1c]
inc edi
movzx eax, byte [edi - 1]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
cmp esi, 3
jb 0x5cc3b9
movzx ecx, byte [edi]
shl eax, 8
or eax, ecx
movzx ecx, byte [edi + 1]
shl eax, 8
or eax, ecx
mov ecx, eax
shr ecx, 0x12
movzx ecx, byte [ecx + ebx]
mov byte [edx], cl
mov ecx, eax
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [ecx + ebx]
mov byte [edx + 1], cl
mov ecx, eax
shr ecx, 6
and ecx, 0x3f
and eax, 0x3f
movzx ecx, byte [ecx + ebx]
mov byte [edx + 2], cl
mov cl, byte [eax + ebx]
lea eax, [edx + 3]
jmp 0x5cc405
shl eax, 0x10
cmp esi, 2
jne 0x5cc3c9
movzx ecx, byte [edi]
shl ecx, 8
or eax, ecx
mov ecx, eax
shr ecx, 0x12
movzx ecx, byte [ecx + ebx]
mov byte [edx], cl
mov ecx, eax
shr ecx, 0xc
and ecx, 0x3f
movzx ecx, byte [ecx + ebx]
mov byte [edx + 1], cl
cmp esi, 1
jne 0x5cc3ec
mov al, 0x3d
jmp 0x5cc3f5
shr eax, 6
and eax, 0x3f
mov al, byte [eax + ebx]
mov ecx, dword [esp + 0x18]
mov byte [ecx + 2], al
mov cl, 0x3d
mov eax, dword [esp + 0x14]
add eax, 3
sub esi, 3
mov byte [eax], cl
add ebp, 4
lea edx, [eax + 1]
add edi, 3
test esi, esi
jg 0x5cc363
pop edi
pop esi
mov eax, ebp
mov byte [edx], 0
pop ebp
pop ebx
ret
mov eax, dword [esp + 0x14]
pop esi
mov byte [eax], 0
mov eax, ebp
pop ebp
pop ebx
ret
Function at 0x5db610
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x30
call fcn.005f62e0
mov eax, dword [0x6c02d0]
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 0x5db6c9
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.004ba420
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 0x5db693
mov esi, 0x10
jmp 0x5db697
test esi, esi
je 0x5db6ba
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 0x5db6a4
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add ebx, 0x10
mov ecx, dword [esp + 0x18]
cmp ebx, ebp
jb 0x5db651
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.005f5e48
add esp, 0x30
ret