Function at 0x4b5960
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, dword [ebp + 0x28]
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x575010]
xor eax, ebp
mov dword [ebp - 0x10], eax
test edx, edx
jne 0x4b599e
push 0x4a90a0
push 0x585818
mov esi, ecx
call fcn.004dba90
mov ecx, esi
add esp, 8
mov edx, 0x58581c
test edi, edi
cmove edi, edx
mov esi, dword [edx + 4]
lea eax, [esi*2 + 2]
mov dword [ebp - 0x94], 0
cmp eax, ecx
jbe 0x4b59fe
push 0x1e4
push str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x85
push 0
push 4
call fcn.004dc3c0
add esp, 0x14
mov edi, dword [ebp - 0x94]
push edi
call fcn.004c8870
add esp, 4
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00508d63
mov eax, esi
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x9c], edx
mov ebx, esi
not ebx
add ebx, ecx
push ebx
call fcn.004c8820
add esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x4b5bc0
mov eax, dword [ebp + 0x14]
add eax, esi
inc eax
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x20], xmm0
movdqu xmmword [ebp - 0x30], xmm0
movdqu xmmword [ebp - 0x40], xmm0
movdqu xmmword [ebp - 0x50], xmm0
lea ecx, [ebp - 0x50]
mov edx, esi
push edi
push ebx
mov dword [ebp - 0xa0], eax
push eax
call fcn.004b57c0
add esp, 0xc
test eax, eax
je 0x4b59d6
test esi, esi
je 0x4b5a7d
mov eax, dword [ebp + 0x14]
inc eax
xor ecx, ecx
nop word [eax + eax]
movzx edx, byte [eax + ecx]
xor byte [ebp + ecx - 0x50], dl
inc ecx
cmp esi, ecx
jne 0x4b5a70
mov ecx, dword [ebp - 0x94]
mov edx, ebx
push edi
mov dword [ebp - 0x98], esi
push esi
lea eax, [ebp - 0x50]
push eax
call fcn.004b57c0
add esp, 0xc
test eax, eax
je 0x4b59d6
mov ecx, dword [ebp + 0x20]
test ebx, ebx
mov edi, dword [ebp - 0x94]
mov esi, dword [ebp - 0xa0]
je 0x4b5ad0
xor edx, edx
nop word cs:[eax + eax]
mov eax, ebx
movzx ebx, byte [esi + edx]
xor byte [edi + edx], bl
mov ebx, eax
inc edx
cmp eax, edx
jne 0x4b5ac0
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x60], xmm0
movdqu xmmword [ebp - 0x70], xmm0
movdqu xmmword [ebp - 0x80], xmm0
movdqu xmmword [ebp - 0x90], xmm0
sub esp, 4
lea esi, [ebp - 0x90]
push dword [ebp - 0x9c]
push 0
push esi
push ecx
push dword [ebp + 0x1c]
call fcn.004a8dc0
add esp, 0x18
test eax, eax
je 0x4b59dc
mov eax, esi
mov esi, dword [ebp - 0x98]
push esi
push eax
push edi
call fcn.004c8990
add esp, 0xc
mov ecx, eax
not ecx
dec eax
and eax, ecx
mov ecx, dword [ebp + 0x14]
movzx edx, byte [ecx]
dec edx
and edx, eax
not edx
sar edx, 0x1f
cmp esi, ebx
mov dword [ebp - 0xa4], ebx
jae 0x4b5bc7
lea ebx, [esi + esi]
not ebx
add ebx, dword [ebp + 0x18]
mov edi, 0xffffffff
mov dword [ebp - 0x9c], 0
mov ecx, esi
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
movzx ebx, byte [ecx + eax]
mov esi, ebx
xor esi, 1
dec esi
sar esi, 0x1f
mov eax, esi
and eax, edi
mov ecx, eax
not eax
and eax, dword [ebp - 0x9c]
and ecx, dword [ebp - 0x98]
or eax, ecx
not esi
and esi, edi
test ebx, ebx
cmovne ebx, esi
or edx, ebx
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x98]
inc ecx
mov dword [ebp - 0x9c], eax
mov edi, esi
dec ebx
jne 0x4b5b60
jmp 0x4b5bce
xor edi, edi
jmp 0x4b59dc
xor eax, eax
mov esi, 0xffffffff
or edx, esi
test edx, edx
jne 0x4b59bb
inc eax
mov ecx, dword [ebp - 0xa4]
mov esi, ecx
sub esi, eax
cmp esi, dword [ebp + 0x10]
jbe 0x4b5bf9
push 0x1d7
push str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x71
jmp 0x4b59ca
mov edi, dword [ebp + 0xc]
cmp ecx, eax
mov ebx, dword [ebp - 0x94]
je 0x4b5c17
mov ecx, ebx
add ecx, eax
push esi
push ecx
push dword [ebp + 8]
call fcn.0050b5c0
add esp, 0xc
mov dword [edi], esi
push ebx
call fcn.004c8870
add esp, 4
mov esi, 1
jmp 0x4b59e7