Function at 0x4c3d20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x124
call fcn.00580860
mov eax, dword [0x64ef14]
xor eax, esp
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x12c]
push ebx
mov ebx, dword [esp + 0x13c]
push ebp
push esi
mov dword [esp + 0x20], eax
or esi, 0xffffffff
mov eax, dword [esp + 0x14c]
push edi
mov edi, dword [esp + 0x138]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0
cmp dword [esp + 0x14c], ebx
jne 0x4c4041
mov ebp, dword [esp + 0x140]
test ebp, ebp
jle 0x4c4041
test ebx, ebx
jle 0x4c4041
push 0x1aa
push str.crypto_rsa_rsa_pk1.c
push ebx
call fcn.00460950
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x2c], ecx
test ecx, ecx
jne 0x4c3dd5
call fcn.00461410
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1ac
push str.crypto_rsa_rsa_pk1.c
call fcn.00461460
push 0
push 0xc0100
jmp 0x4c4061
lea eax, [ebx*8]
push eax
push dword [esp + 0x14]
push 7
push str.message
push ebx
push ecx
push edi
call fcn.004c42b0
add esp, 0x1c
test eax, eax
js 0x4c3ffd
push 0x800
push dword [esp + 0x14]
lea eax, [esp + 0x38]
push 6
push str.length
push 0x100
push eax
push edi
call fcn.004c42b0
add esp, 0x1c
test eax, eax
js 0x4c3ffd
lea eax, [ebx - 0xa]
mov dword [esp + 0x10], 0
movzx ecx, ax
mov ax, cx
mov ebx, ecx
shr ax, 1
or ax, cx
movzx eax, ax
mov si, ax
mov dword [esp + 0x18], eax
shr ax, 2
or si, ax
mov ax, si
shr ax, 4
or si, ax
mov ax, si
shr ax, 8
or si, ax
xor edi, edi
nop word [eax + eax]
movzx ecx, byte [esp + edi + 0x30]
movzx eax, byte [esp + edi + 0x31]
add edi, 2
shl cx, 8
or cx, ax
and cx, si
movzx edx, cx
mov eax, edx
sub eax, ebx
xor eax, edx
xor eax, ebx
shr eax, 0x1f
neg eax
mov dword [esp + 0x18], eax
not eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
and ecx, edx
and eax, dword [esp + 0x10]
or eax, ecx
mov dword [esp + 0x10], eax
cmp edi, 0x100
jl 0x4c3e70
mov edi, dword [esp + 0x144]
mov esi, 2
mov ebx, dword [esp + 0x14]
mov ecx, ebx
sub ecx, eax
mov dword [esp + 0x28], ecx
movzx eax, byte [edi + 1]
movzx ecx, byte [edi]
xor eax, 2
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
lea eax, [ecx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
neg edx
and eax, ecx
xor ecx, ecx
neg eax
mov dword [esp + 0x18], ecx
and edx, eax
mov dword [esp + 0x10], edx
cmp ebx, esi
jle 0x4c3f56
nop dword [eax]
movzx eax, byte [esi + edi]
not ecx
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and edx, eax
neg edx
and ecx, edx
mov dword [esp + 0x14], ecx
not ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
and ecx, esi
and eax, dword [esp + 0x20]
inc esi
or eax, ecx
mov ecx, dword [esp + 0x18]
or ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
cmp esi, ebx
jl 0x4c3f10
jmp 0x4c3f58
xor eax, eax
mov esi, dword [esp + 0x14c]
lea edx, [eax + 1]
sub esi, edx
add eax, 0xfffffff6
or eax, dword [esp + 0x20]
mov ecx, ebp
xor eax, dword [esp + 0x20]
sub ecx, esi
xor ecx, esi
shr eax, 0x1f
xor esi, ebp
dec eax
or ecx, esi
xor esi, esi
xor ecx, ebp
shr ecx, 0x1f
dec ecx
and ecx, eax
and dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, ecx
not eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
and eax, edx
mov edx, dword [esp + 0x1c]
and edx, dword [esp + 0x28]
or edx, eax
cmp edx, ebx
jge 0x4c3ff9
mov ebp, dword [esp + 0x2c]
add edi, edx
sub ebp, dword [esp + 0x144]
sub dword [esp + 0x24], edx
cmp esi, dword [esp + 0x140]
jge 0x4c3ff9
movzx eax, cl
inc esi
mov dword [esp + 0x14], eax
not eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov cl, byte [edi + ebp]
and cl, al
mov eax, dword [esp + 0x14]
and al, byte [edi]
inc edi
or al, cl
mov ecx, dword [esp + 0x24]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0x10]
cmp edx, ebx
jl 0x4c3fc0
test esi, esi
jns 0x4c4027
call fcn.00461410
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x209
push str.crypto_rsa_rsa_pk1.c
call fcn.00461460
push 0
push 0xc0103
push 4
call fcn.00461490
add esp, 0x18
push 0x20a
push str.crypto_rsa_rsa_pk1.c
push dword [esp + 0x34]
call fcn.004609d0
add esp, 0xc
mov eax, esi
jmp 0x4c406e
call fcn.00461410
push str.ossl_rsa_padding_check_PKCS1_type_2
push 0x1a5
push str.crypto_rsa_rsa_pk1.c
call fcn.00461460
push 0
push 0xc0103
push 4
call fcn.00461490
add esp, 0x18
or eax, 0xffffffff
mov ecx, dword [esp + 0x130]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0057ffc6
add esp, 0x124
ret