Function at 0x415e40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x50
cmp dword [ebp + 0x18], 0x3a
mov edi, dword [ebp + 0x14]
jbe 0x4162a1
cmp dword [ebp + 0x10], 0x2f
jbe 0x4162a1
lea eax, [esp + 0x20]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x30
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0040ec00
test eax, eax
jle 0x4162e5
movzx eax, byte [edi + 1]
movzx edx, byte [edi]
xor eax, 2
lea ecx, [edx - 1]
not edx
movzx eax, al
and edx, ecx
mov ecx, eax
sub eax, 1
not ecx
and ecx, edx
and ecx, eax
mov eax, dword [ebp + 0x18]
mov ebx, ecx
lea esi, [eax - 0x31]
sar ebx, 0x1f
lea ecx, [eax - 0x33]
cmp esi, 0x11
jbe 0x41627d
mov edx, ecx
pcmpeqd xmm4, xmm4
mov eax, edi
movdqu xmm6, xmmword [0x6648d0]
and edx, 0xfffffff0
movdqa xmm5, xmm4
mov dword [esp + 0x1c], edx
add edx, edi
lea esi, [esi]
movdqu xmm7, xmmword [eax + 2]
pxor xmm2, xmm2
pxor xmm3, xmm3
add eax, 0x10
movdqu xmm0, xmmword [eax - 0xe]
punpcklbw xmm7, xmm2
punpckhbw xmm0, xmm2
movdqa xmm2, xmm7
punpckhwd xmm7, xmm3
movdqa xmm1, xmm0
punpcklwd xmm2, xmm3
punpckhwd xmm0, xmm3
punpcklwd xmm1, xmm3
movdqa xmm3, xmm5
paddd xmm3, xmm1
pandn xmm1, xmm3
movdqa xmm3, xmm5
paddd xmm3, xmm0
psrad xmm1, 0x1f
pandn xmm0, xmm3
pand xmm1, xmm6
psrad xmm0, 0x1f
movdqa xmm3, xmm0
movdqa xmm0, xmm5
pand xmm3, xmm6
paddd xmm0, xmm2
pxor xmm3, xmm5
pandn xmm2, xmm0
movdqa xmm0, xmm7
pandn xmm1, xmm3
psrad xmm2, 0x1f
movdqa xmm3, xmm5
paddd xmm3, xmm7
pand xmm2, xmm6
pandn xmm0, xmm3
psrad xmm0, 0x1f
pand xmm0, xmm6
pxor xmm0, xmm5
pandn xmm2, xmm0
pand xmm1, xmm2
pand xmm4, xmm1
cmp edx, eax
jne 0x415ee8
movdqa xmm0, xmm4
psrldq xmm0, 8
pand xmm4, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 4
pand xmm4, xmm0
movd eax, xmm4
and eax, ebx
mov ebx, dword [esp + 0x1c]
lea edx, [ebx + 2]
cmp ecx, ebx
je 0x4161c0
movzx ebx, byte [edi + ebx + 2]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
mov ebx, dword [esp + 0x1c]
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [ebx + 3]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + ecx]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 2]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 2]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 3]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 3]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 4]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 4]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 5]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 5]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 6]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 6]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 7]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 7]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 8]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 8]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 9]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 9]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 0xa]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 0xa]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 0xb]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 0xb]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 0xc]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 0xc]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 0xd]
cmp ecx, esi
jae 0x4161c0
movzx ebx, byte [edi + edx + 0xd]
mov ecx, ebx
sub ebx, 1
not ecx
and ecx, ebx
sar ecx, 0x1f
movzx ecx, cl
not ecx
and eax, ecx
lea ecx, [edx + 0xe]
cmp ecx, esi
jae 0x4161c0
movzx ecx, byte [edi + edx + 0xe]
lea edx, [ecx - 1]
not ecx
and edx, ecx
sar edx, 0x1f
movzx edx, dl
not edx
and eax, edx
lea esi, cs:[esi]
mov esi, dword [ebp + 0x18]
movzx ecx, byte [edi + esi - 0x31]
movzx ebx, byte [edi + esi - 0x30]
mov edx, ecx
sub ecx, 1
not edx
and edx, ecx
movzx ecx, byte [edi + esi - 0x2f]
sar edx, 0x1f
movzx edx, dl
and edx, eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x1c], edx
movzx edx, byte [ebp + 0x1c]
movzx eax, ah
xor eax, ebx
xor edx, ecx
mov esi, eax
sub eax, 1
not esi
and eax, esi
mov esi, edx
sub edx, 1
not esi
and esi, eax
mov eax, dword [ebp + 0x20]
and esi, edx
test eax, eax
jle 0x416276
mov eax, dword [ebp + 0x20]
movzx edx, byte [ebp + 0x20]
movzx eax, ah
xor edx, ecx
xor eax, ebx
mov ebx, eax
lea ecx, [eax - 1]
mov eax, edx
sub edx, 1
not ebx
not eax
and ecx, ebx
and eax, ecx
and eax, edx
or eax, esi
sar eax, 0x1f
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [ebp + 0x18]
and ebx, eax
add edi, edx
xor eax, eax
mov esi, ebx
not esi
lea esi, [esi]
movzx edx, byte [edi + eax - 0x30]
movzx ecx, byte [esp + eax + 0x20]
and edx, ebx
and ecx, esi
or edx, ecx
mov ecx, dword [ebp + 0xc]
mov byte [ecx + eax], dl
add eax, 1
cmp eax, 0x30
jne 0x416250
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
sar esi, 0x1f
mov ebx, esi
jmp 0x416239
movzx edx, byte [edi + 2]
mov ecx, 3
lea eax, [edx - 1]
not edx
and eax, edx
mov edx, 2
sar eax, 0x1f
movzx eax, al
not eax
and eax, ebx
jmp 0x415fef
call fcn.0049b030
mov dword [esp + 8], str.ossl_rsa_padding_check_PKCS1_type_2_TLS
mov dword [esp + 4], 0x138
mov dword [esp], str..._crypto_rsa_rsa_pk1.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0x9f
mov dword [esp], 4
call fcn.0049b230
mov eax, 0xffffffff
jmp 0x41626e
call fcn.0049b030
mov dword [esp + 8], str.ossl_rsa_padding_check_PKCS1_type_2_TLS
mov dword [esp + 4], 0x142
mov dword [esp], str..._crypto_rsa_rsa_pk1.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0103
mov dword [esp], 4
call fcn.0049b230
jmp 0x4162de