Function at 0x5f1990
Capabilities:
Encode data using xor
Encrypt data using aes

Disassembly:
mov eax, 0xc
call fcn.005beef0
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x20]
test ebp, ebp
je 0x5f1e96
test edi, edi
je 0x5f1e96
push ebx
mov ebx, dword [esp + 0x20]
cmp ebx, 0x80
je 0x5f19e5
cmp ebx, 0xc0
je 0x5f19dd
cmp ebx, 0x100
je 0x5f19dd
pop ebx
pop edi
mov eax, 0xfffffffe
pop ebp
add esp, 0xc
ret
cmp ebx, 0x80
jne 0x5f19f1
mov dword [edi + 0xf0], 0xa
jmp 0x5f1a09
xor eax, eax
cmp ebx, 0xc0
setne al
lea eax, [eax*2 + 0xc]
mov dword [edi + 0xf0], eax
mov eax, dword [ebp]
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [edi], ecx
mov eax, dword [ebp + 4]
mov edx, eax
rol eax, 8
and eax, 0xff00ff
ror edx, 8
mov dword [esp + 0x1c], ecx
and edx, 0xff00ff00
or edx, eax
mov dword [edi + 4], edx
mov eax, dword [ebp + 8]
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [edi + 8], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], ecx
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [esp + 0x10], ecx
mov dword [edi + 0xc], ecx
push esi
lea esi, [edi + 0x10]
cmp ebx, 0x80
jne 0x5f1b84
mov ebx, dword [esp + 0x14]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + 0x724560]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x724960]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x724160]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x20]
xor edx, ecx
mov dword [esi], ecx
mov dword [edi + 0x14], edx
xor edx, dword [esp + 0x10]
mov dword [edi + 0x18], edx
xor edx, ebx
mov dword [edi + 0x1c], edx
mov edi, 0x725e64
mov ebx, dword [esi + 0xc]
mov edx, esi
add esi, 0x10
mov eax, ebx
shr eax, 8
movzx eax, al
mov ecx, dword [eax*4 + 0x724960]
mov eax, ebx
shr eax, 0x10
and ecx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x724560]
and eax, 0xff000000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x724160]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [edi]
add edi, 4
xor ecx, dword [edx]
mov dword [esi], ecx
mov eax, dword [esi - 0xc]
xor eax, ecx
mov dword [esi + 4], eax
mov ecx, dword [esi - 8]
xor ecx, eax
mov dword [esi + 8], ecx
xor ecx, ebx
mov dword [esi + 0xc], ecx
cmp edi, str.OPENSSL_ia32cap
jne 0x5f1b01
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0xc
ret
mov ecx, dword [ebp + 0x10]
mov eax, ecx
ror eax, 8
rol ecx, 8
and eax, 0xff00ff00
and ecx, 0xff00ff
or eax, ecx
mov dword [esi], eax
mov eax, dword [ebp + 0x14]
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [esp + 0x18], ecx
mov dword [edi + 0x14], ecx
cmp ebx, 0xc0
jne 0x5f1cdd
mov ebx, dword [esp + 0x18]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov ecx, dword [eax*4 + 0x724560]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x724960]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x724160]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor ecx, eax
lea eax, [edi + 0x28]
xor ecx, dword [esp + 0x20]
xor edx, ecx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], edx
xor edx, dword [esp + 0x10]
mov dword [edi + 0x20], edx
xor edx, dword [esp + 0x14]
mov dword [edi + 0x24], edx
mov edi, 0x725e64
mov edx, dword [eax - 0x18]
lea eax, [eax + 0x18]
xor edx, dword [eax - 0x1c]
mov ecx, dword [eax - 0x2c]
xor ecx, edx
mov dword [eax - 0x18], edx
mov dword [eax - 0x14], ecx
mov edx, dword [eax - 0x14]
mov ecx, edx
shr ecx, 8
movzx ecx, cl
mov esi, dword [ecx*4 + 0x724960]
mov ecx, edx
shr ecx, 0x10
and esi, 0xff0000
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x724560]
and ecx, 0xff000000
xor esi, ecx
mov ecx, edx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x724160]
xor esi, ecx
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x723d60]
and ecx, 0xff00
xor esi, ecx
xor esi, dword [eax - 0x28]
xor esi, dword [edi]
add edi, 4
mov dword [eax - 0x10], esi
mov ecx, dword [eax - 0x24]
xor ecx, esi
mov dword [eax - 0xc], ecx
mov edx, dword [eax - 0x20]
xor edx, ecx
mov dword [eax - 8], edx
mov ecx, dword [eax - 0x1c]
xor ecx, edx
mov dword [eax - 4], ecx
cmp edi, 0x725e80
jne 0x5f1c40
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0xc
ret
mov ecx, dword [ebp + 0x18]
mov eax, ecx
ror eax, 8
rol ecx, 8
and eax, 0xff00ff00
and ecx, 0xff00ff
or eax, ecx
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x1c]
mov ecx, eax
ror ecx, 8
rol eax, 8
and ecx, 0xff00ff00
and eax, 0xff00ff
or ecx, eax
mov dword [esp + 0x18], ecx
mov dword [edi + 0x1c], ecx
cmp ebx, 0x100
jne 0x5f1e8c
mov ebx, dword [esp + 0x18]
mov eax, ecx
shr eax, 0x10
mov esi, 0x725e64
movzx eax, al
mov ecx, dword [eax*4 + 0x724560]
mov eax, ebx
shr eax, 8
xor ecx, 0x1000000
movzx eax, al
and ecx, 0xff000000
mov eax, dword [eax*4 + 0x724960]
and eax, 0xff0000
xor ecx, eax
mov eax, ebx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x724160]
xor ecx, eax
movzx eax, bl
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor ecx, eax
xor ecx, dword [esp + 0x20]
xor edx, ecx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
xor edx, dword [esp + 0x10]
mov dword [edi + 0x28], edx
xor edx, dword [esp + 0x14]
mov dword [edi + 0x2c], edx
add edi, 0x30
nop word [eax + eax]
mov ecx, dword [edi - 4]
lea edi, [edi + 0x20]
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [eax*4 + 0x724960]
mov eax, ecx
shr eax, 8
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor edx, eax
mov eax, ecx
shr eax, 0x18
mov eax, dword [eax*4 + 0x724560]
and eax, 0xff000000
xor edx, eax
movzx eax, cl
mov ecx, dword [edi - 0x38]
movzx eax, byte [eax*4 + 0x724160]
xor edx, eax
mov eax, dword [edi - 0x3c]
xor edx, dword [edi - 0x40]
xor eax, edx
mov dword [edi - 0x20], edx
mov dword [edi - 0x1c], eax
xor ecx, eax
mov eax, dword [edi - 0x34]
xor eax, ecx
mov dword [edi - 0x18], ecx
mov dword [edi - 0x14], eax
mov ecx, dword [edi - 0x14]
mov eax, ecx
shr eax, 8
movzx eax, al
mov edx, dword [eax*4 + 0x724960]
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
movzx eax, al
mov eax, dword [eax*4 + 0x724560]
and eax, 0xff000000
xor edx, eax
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x724160]
xor edx, eax
movzx eax, cl
mov eax, dword [eax*4 + 0x723d60]
and eax, 0xff00
xor edx, eax
xor edx, dword [edi - 0x30]
xor edx, dword [esi]
add esi, 4
mov dword [edi - 0x10], edx
mov eax, dword [edi - 0x2c]
xor eax, edx
mov dword [edi - 0xc], eax
mov ecx, dword [edi - 0x28]
xor ecx, eax
mov dword [edi - 8], ecx
mov eax, dword [edi - 0x24]
xor eax, ecx
mov dword [edi - 4], eax
cmp esi, 0x725e7c
jne 0x5f1da0
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0xc
ret
pop edi
or eax, 0xffffffff
pop ebp
add esp, 0xc
ret