Function at 0x4bfec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xac
mov ecx, dword [ebp + 0x14]
mov eax, dword [0x80e040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov esi, dword [ecx + 4]
test esi, esi
jle 0x4c0406
mov eax, ecx
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [ebp - 0x9c], ecx
test cl, 1
je 0x4c0406
cmp dword [eax + 0xc], 0
jne 0x4c03f8
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0xc], 0
jne 0x4c0414
mov ebx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, esi
mov dword [ebp - 0x94], esi
mov ecx, esi
cmovb ecx, eax
mov dword [ebp - 0xa0], eax
test eax, eax
mov dword [ebp - 0xa8], edx
je 0x4c034b
xor esi, esi
xor eax, eax
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [ebx + eax*4]
mov ebx, edx
xor ebx, ecx
mov edi, edx
sub edi, ecx
lea ecx, [ebx - 1]
xor edi, edx
or edi, ebx
not ebx
and ecx, ebx
mov ebx, dword [ebp - 0x98]
xor edi, edx
mov edx, dword [ebp - 0xa8]
sar ecx, 0x1f
sar edi, 0x1f
or edi, 1
xor esi, edi
and esi, ecx
mov ecx, dword [ebp - 0xa4]
xor esi, edi
inc eax
cmp ecx, eax
jne 0x4bff46
mov ecx, dword [ebp - 0x94]
mov edi, dword [ebp - 0xa0]
cmp edi, ecx
jb 0x4c032e
ja 0x4c035c
test esi, esi
jns 0x4c0414
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
jle 0x4c0433
mov ecx, dword [ecx]
cmp dword [ecx + eax*4 - 4], 0
je 0x4c0173
lea esi, [eax - 1]
shl esi, 5
mov eax, dword [ecx + eax*4 - 4]
xor ebx, ebx
test eax, eax
setne bl
mov ecx, eax
shr ecx, 0x10
cmp eax, 0x10000
cmovb ecx, eax
mov eax, 0
setae al
shl eax, 4
mov dword [ebp - 0x98], eax
mov eax, ecx
shr eax, 8
xor edx, edx
cmp ecx, 0x100
cmovb eax, ecx
setae dl
mov dword [ebp - 0xa4], edx
mov edi, eax
shr edi, 4
xor ecx, ecx
cmp eax, 0x10
cmovb edi, eax
setae cl
mov dword [ebp - 0xa0], ecx
mov eax, edi
shr eax, 2
xor edx, edx
cmp edi, 4
cmovb eax, edi
setae dl
xor ecx, ecx
cmp eax, 2
setae cl
or ebx, esi
add ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
lea eax, [ebx + eax*8]
mov esi, dword [ebp - 0xa0]
lea eax, [eax + esi*4]
lea ebx, [eax + edx*2]
add ebx, ecx
je 0x4c0381
mov esi, dword [ebp + 0x18]
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x20], xmm0
movdqu xmmword [ebp - 0x2c], xmm0
movdqu xmmword [ebp - 0x3c], xmm0
movdqu xmmword [ebp - 0x4c], xmm0
movdqu xmmword [ebp - 0x5c], xmm0
movdqu xmmword [ebp - 0x6c], xmm0
movdqu xmmword [ebp - 0x7c], xmm0
movdqu xmmword [ebp - 0x8c], xmm0
cmp byte [esi + 0x14], 0
jne 0x4c00b3
mov ecx, dword [esi + 8]
mov edx, esi
mov esi, dword [esi + 0x10]
cmp ecx, dword [edx + 0xc]
je 0x4c02dc
mov eax, dword [edx + 4]
mov dword [eax + ecx*4], esi
inc dword [edx + 8]
mov esi, edx
push esi
call fcn.004bfbf0
add esp, 4
mov edi, eax
push esi
call fcn.004bfbf0
add esp, 4
mov dword [ebp - 0x90], eax
xor ecx, ecx
test edi, edi
je 0x4c0553
mov edx, eax
mov eax, 0
test edx, edx
je 0x4c02a1
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [ebp - 0xa8], ecx
test ecx, ecx
je 0x4c052b
cmp ebx, 0x29f
mov dword [ebp - 0x9c], eax
ja 0x4c0440
cmp ebx, 0xef
ja 0x4c044f
cmp ebx, 0x4f
ja 0x4c045e
xor eax, eax
cmp ebx, 0x18
setae al
lea eax, [eax*2 + 1]
mov dword [ebp - 0xa4], eax
push esi
mov eax, dword [ebp - 0xa8]
push eax
push eax
push dword [ebp + 0xc]
mov esi, edx
push edx
call fcn.004c0660
add esp, 0x14
xor ecx, ecx
test eax, eax
je 0x4c0354
cmp dword [ebp - 0xa4], 2
jae 0x4c046d
dec ebx
mov dword [ebp - 0x98], 0
lea esi, [ebx - 1]
jmp 0x4c01b5
lea edx, [eax - 1]
cmp eax, 1
mov eax, edx
jg 0x4bffb9
jmp 0x4c0381
test byte [ebp - 0x98], 1
je 0x4c01ab
push dword [ebp + 0x18]
push dword [ebp - 0xa8]
push edi
push edi
push edi
call fcn.004c0660
add esp, 0x14
test eax, eax
je 0x4c0352
sub ebx, 1
jb 0x4c0283
dec esi
test ebx, ebx
js 0x4c0186
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov ecx, ebx
shr ecx, 5
cmp ecx, eax
jae 0x4c0186
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
bt ecx, ebx
jae 0x4c0186
cmp dword [ebp - 0xa4], 2
jb 0x4c01e6
test ebx, ebx
jne 0x4c055a
xor esi, esi
xor eax, eax
inc eax
test byte [ebp - 0x98], 1
jne 0x4c0224
and eax, 0xfffffffe
push dword [ebp + eax*2 - 0x90]
push edi
call fcn.004bfa40
add esp, 8
test eax, eax
je 0x4c0352
cmp ebx, esi
je 0x4c0283
not esi
add ebx, esi
mov al, 1
mov dword [ebp - 0x98], eax
jmp 0x4c016e
mov dword [ebp - 0x94], esi
xor esi, esi
dec esi
mov dword [ebp - 0xa0], eax
push dword [ebp + 0x18]
push dword [ebp - 0xa8]
push edi
push edi
push edi
call fcn.004c0660
add esp, 0x14
test eax, eax
je 0x4c0352
inc esi
cmp dword [ebp - 0x94], esi
mov eax, dword [ebp - 0xa0]
jne 0x4c0233
mov esi, dword [ebp - 0x94]
and eax, 0xfffffffe
push dword [ebp + 0x18]
push dword [ebp - 0xa8]
push dword [ebp + eax*2 - 0x90]
push edi
push edi
call fcn.004c0660
add esp, 0x14
jmp 0x4c0207
mov esi, dword [ebp + 0x18]
push esi
push dword [ebp - 0xa8]
push edi
push dword [ebp + 8]
call fcn.004c0800
add esp, 0x10
mov ecx, eax
mov eax, dword [ebp - 0x9c]
mov edi, ecx
push eax
call fcn.004c0a00
add esp, 4
cmp byte [esi + 0x14], 0
jne 0x4c02c5
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x10], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005c9f16
mov eax, edi
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x4c051d
cmp edi, 0x3fffffff
ja 0x4c051d
lea eax, [edi*4]
push eax
mov eax, dword [ebp + 0x18]
push dword [eax + 4]
call fcn.00565fb0
add esp, 8
test eax, eax
je 0x4c051d
mov edx, dword [ebp + 0x18]
mov dword [edx + 4], eax
mov dword [edx + 0xc], edi
mov ecx, dword [edx + 8]
jmp 0x4c00ab
xor eax, eax
or eax, dword [edx + edi*4]
inc edi
cmp ecx, edi
jne 0x4c0330
mov ecx, eax
not ecx
dec eax
and eax, ecx
sar eax, 0x1f
not eax
or esi, eax
jmp 0x4bffa1
xor esi, esi
jmp 0x4bff87
xor ecx, ecx
mov esi, dword [ebp + 0x18]
jmp 0x4c029b
xor eax, eax
or eax, dword [ebx + ecx*4]
inc ecx
cmp dword [ebp - 0xa0], ecx
jne 0x4c035e
mov ecx, eax
not ecx
dec eax
and eax, ecx
sar eax, 0x1f
xor esi, 1
and esi, eax
xor esi, 1
jmp 0x4bffa1
mov edx, dword [ebp - 0x9c]
and edx, 0xfffffffe
cmp dword [ebp - 0x94], 1
je 0x4c03b5
mov ecx, dword [ebp - 0x94]
cmp ecx, 3
mov eax, 2
cmovge eax, ecx
xor ecx, ecx
inc ecx
mov esi, dword [ebp - 0xa8]
or edx, dword [esi + ecx*4]
inc ecx
cmp eax, ecx
jne 0x4c03ad
test edx, edx
je 0x4c03e5
push 1
push dword [ebp + 8]
call fcn.0064b290
add esp, 8
test eax, eax
je 0x4c042c
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], 0
mov eax, dword [ecx]
xor edx, edx
inc edx
mov dword [eax], edx
mov edi, edx
mov dword [ecx + 4], edx
jmp 0x4c02c5
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc], eax
mov dword [ecx + 4], eax
xor edi, edi
inc edi
jmp 0x4c02c5
push 0x27e
push str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c
push 0x6d
jmp 0x4c0420
push 0x27a
push str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c
push 0x68
jmp 0x4c0420
push 0x283
push str....._third_party_boringssl_srccrypto_fipsmodule_bnexponentiation.c
push 0x6b
push 0
push 3
call fcn.006be890
add esp, 0x14
xor edi, edi
jmp 0x4c02c5
je 0x4c0381
mov ecx, dword [ecx]
jmp 0x4bffc4
mov dword [ebp - 0xa4], 6
jmp 0x4c0135
mov dword [ebp - 0xa4], 5
jmp 0x4c0135
mov dword [ebp - 0xa4], 4
jmp 0x4c0135
mov dword [ebp - 0xb0], edi
push dword [ebp + 0x18]
call fcn.004bfbf0
add esp, 4
mov dword [ebp - 0x98], eax
test eax, eax
je 0x4c050d
push dword [ebp + 0x18]
push dword [ebp - 0xa8]
push esi
push esi
push dword [ebp - 0x98]
call fcn.004c0660
add esp, 0x14
test eax, eax
je 0x4c050d
mov eax, dword [ebp - 0xa4]
mov ecx, eax
dec cl
xor esi, esi
inc esi
mov eax, esi
shl eax, cl
mov dword [ebp - 0x94], eax
push dword [ebp + 0x18]
call fcn.004bfbf0
add esp, 4
mov dword [ebp + esi*4 - 0x90], eax
test eax, eax
je 0x4c050d
push dword [ebp + 0x18]
push dword [ebp - 0xa8]
push dword [ebp - 0x98]
push dword [ebp + esi*4 - 0x94]
push eax
call fcn.004c0660
add esp, 0x14
test eax, eax
je 0x4c050d
inc esi
cmp dword [ebp - 0x94], esi
mov edi, dword [ebp - 0xb0]
jne 0x4c04c0
jmp 0x4c0163
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp - 0x9c]
xor ecx, ecx
jmp 0x4c02a1
mov esi, dword [ebp + 0x18]
mov word [esi + 0x14], 0x101
jmp 0x4c00b3
push esi
push dword [ebp + 0x14]
mov dword [ebp - 0x98], edx
call fcn.0064c6d0
mov edx, dword [ebp - 0x98]
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x4c00f9
xor ecx, ecx
xor eax, eax
jmp 0x4c02a1
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0x94], 0
xor ecx, ecx
inc ecx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xb4], 0
test esi, esi
js 0x4c05ab
mov ecx, esi
shr ecx, 5
mov dword [ebp - 0xb4], 0
cmp ecx, eax
jae 0x4c05ab
mov edi, dword [edx + ecx*4]
xor ecx, ecx
bt edi, esi
setb cl
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0xac]
sub ecx, dword [ebp - 0x94]
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0xb8], edi
shl dword [ebp - 0xb8], cl
or dword [ebp - 0xb8], 1
cmp dword [ebp - 0xb4], 0
mov ecx, dword [ebp - 0xa0]
cmovne ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xa0], ecx
mov edi, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x94]
cmovne ecx, edi
mov dword [ebp - 0x94], ecx
lea ecx, [edi + 1]
cmp ecx, dword [ebp - 0xa4]
jae 0x4c061d
dec esi
cmp dword [ebp - 0xac], ebx
mov dword [ebp - 0xac], ecx
jl 0x4c0579
test byte [ebp - 0x98], 1
jne 0x4c063d
mov esi, dword [ebp - 0x94]
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xb0]
jmp 0x4c01f4
mov esi, dword [ebp - 0x94]
test esi, esi
mov eax, dword [ebp - 0xa0]
mov edi, dword [ebp - 0xb0]
js 0x4c0264
jmp 0x4c0224