Function at 0x55a1c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov edi, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x7a8498]
xor eax, ebp
test ecx, ecx
cmove ecx, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], eax
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 4]
test eax, eax
je 0x55a331
mov edx, dword [ecx]
xor ecx, ecx
mov esi, 0
cmp eax, 8
jb 0x55a2f0
mov ecx, eax
and ecx, 0xfffffff8
lea edi, [ecx - 8]
mov ebx, edi
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp edi, 0x18
jae 0x55a22f
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x55a297
and ebx, 0xfffffffc
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop dword [eax]
movdqu xmm2, xmmword [edx + edi*4]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 + 0x10]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + edi*4 + 0x20]
movdqu xmm3, xmmword [edx + edi*4 + 0x30]
movdqu xmm4, xmmword [edx + edi*4 + 0x40]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + edi*4 + 0x50]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + edi*4 + 0x60]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + edi*4 + 0x70]
por xmm1, xmm2
add edi, 0x20
add ebx, 0xfffffffc
jne 0x55a240
test esi, esi
je 0x55a2ca
lea edi, [edx + edi*4]
add edi, 0x10
shl esi, 5
xor ebx, ebx
nop word cs:[eax + eax]
movdqu xmm2, xmmword [edi + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edi + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp esi, ebx
jne 0x55a2b0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
cmp eax, ecx
mov edi, dword [ebp + 0x14]
je 0x55a2fa
nop dword [eax + eax]
or esi, dword [edx + ecx*4]
add ecx, 1
cmp eax, ecx
jne 0x55a2f0
test esi, esi
je 0x55a331
mov ecx, eax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
mov eax, ecx
xor ecx, ecx
test eax, eax
cmovs ecx, eax
mov dword [esp + 8], ecx
mov dword [esp], eax
mov ecx, eax
nop dword [eax]
test ecx, ecx
jle 0x55a342
mov esi, dword [edx + ecx*4 - 4]
add ecx, 0xffffffff
test esi, esi
je 0x55a320
jmp 0x55a359
push 0x259
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push pe_nt_image_headers32
jmp 0x55a51a
xor ecx, ecx
cmp dword [esp], 0
jns 0x55a3d8
mov esi, dword [esp + 8]
lea ecx, [esi - 1]
mov esi, dword [edx + esi*4 - 4]
shl ecx, 5
xor ebx, ebx
test esi, esi
setne bl
mov edi, esi
shr edi, 0x10
xor eax, eax
cmp esi, 0x10000
setae al
cmovb edi, esi
shl eax, 4
mov dword [esp + 0x14], eax
mov esi, edi
shr esi, 8
xor eax, eax
cmp edi, 0x100
cmovb esi, edi
setae al
mov dword [esp + 4], eax
mov edi, esi
shr edi, 4
xor eax, eax
cmp esi, 0x10
cmovb edi, esi
setae al
mov dword [esp + 0xc], eax
mov esi, edi
shr esi, 2
xor eax, eax
cmp edi, 4
cmovb esi, edi
mov edi, dword [ebp + 0x14]
setae al
or ebx, ecx
add ebx, dword [esp + 0x14]
mov ecx, dword [esp + 4]
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0xc]
lea ecx, [ecx + ebx*4]
cmp esi, 2
lea ecx, [ecx + eax*2]
sbb ecx, 0xffffffff
add ecx, 0xffffffff
and ecx, 7
mov dword [esp + 0x14], ecx
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x55a3ff
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x55a4b3
mov ecx, dword [esp]
nop word cs:[eax + eax]
nop dword [eax]
test ecx, ecx
jle 0x55a421
mov esi, dword [edx + ecx*4 - 4]
add ecx, 0xffffffff
test esi, esi
je 0x55a410
jmp 0x55a43b
xor eax, eax
cmp dword [esp], 0
mov ebx, dword [ebp + 0xc]
jns 0x55a4b6
mov ecx, dword [esp + 8]
mov esi, dword [edx + ecx*4 - 4]
add ecx, 0xffffffff
shl ecx, 5
mov ebx, esi
shr ebx, 0x10
xor eax, eax
cmp esi, 0x10000
setae al
cmovb ebx, esi
shl eax, 4
mov dword [esp], eax
mov edi, ebx
shr edi, 8
xor eax, eax
cmp ebx, 0x100
cmovb edi, ebx
setae al
mov dword [esp + 4], eax
mov eax, edi
shr eax, 4
xor ebx, ebx
cmp edi, 0x10
cmovb eax, edi
setae bl
mov edi, eax
shr edi, 2
xor edx, edx
cmp eax, 4
cmovb edi, eax
setae dl
cmp esi, 1
sbb ecx, 0
add ecx, 8
or ecx, dword [esp]
cmp edi, 2
mov edi, dword [ebp + 0x14]
mov eax, dword [esp + 4]
lea eax, [ecx + eax*8]
lea eax, [eax + ebx*4]
lea eax, [eax + edx*2]
sbb eax, 0xffffffff
shr eax, 3
mov ebx, dword [ebp + 0xc]
cmp dword [esp + 0x14], 0
jne 0x55a4c6
mov byte [ebx], 0
add ebx, 1
add eax, 0xffffffff
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0x1c]
lea ecx, [edx + 2]
cmp eax, ecx
jae 0x55a4db
push 0x266
jmp 0x55a513
mov ecx, edx
cmp esi, 0xffffffff
je 0x55a4fa
cmp esi, 0xfffffffe
jne 0x55a4f0
mov ecx, eax
sub ecx, edx
add ecx, 0xfffffffe
jmp 0x55a4fa
mov ecx, esi
test esi, esi
js 0x55a6d9
mov dword [esp], ecx
mov esi, edi
mov edi, eax
sub edi, edx
lea ecx, [edi - 2]
cmp ecx, dword [esp]
mov ecx, dword [esp]
jae 0x55a548
push 0x27b
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x72
push 0
push 4
call fcn.00590370
add esp, 0x14
xor esi, esi
xor eax, eax
push eax
call fcn.004c9be0
add esp, 4
mov ecx, dword [esp + 0x38]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], eax
test ecx, ecx
je 0x55a579
push ecx
call fcn.004c9bb0
add esp, 4
test eax, eax
je 0x55a6ed
push 0x748e13
push dword [esp + 4]
mov dword [esp + 0xc], eax
push eax
call fcn.0053b0d0
add esp, 0xc
jmp 0x55a581
mov dword [esp + 4], 0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x20], xmm0
test esi, esi
je 0x55a5bc
push dword [esi + 0x1c]
call fcn.004c9bb0
add esp, 4
test eax, eax
je 0x55a6fe
push 0
mov dword [esp + 0xc], eax
call fcn.004c9be0
add esp, 4
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
lea eax, [ebx + edi]
add eax, 0xffffffff
mov dword [esp + 8], eax
add edi, 0xffffffff
mov ecx, dword [esi + 0xc]
call dword [section..00cfg]
lea esi, [esp + 0x20]
push esi
call ecx
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push 8
push 0x748eb4
push esi
call ecx
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push dword [esp + 0x10]
push dword [ebp + 0x10]
push esi
call ecx
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
push dword [esp]
push dword [esp + 8]
push esi
call ecx
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x14]
call dword [section..00cfg]
push dword [esp + 8]
push esi
call ecx
add esp, 8
mov eax, dword [esp + 0x20]
push dword [eax + 0x1c]
push dword [esp + 0x28]
call fcn.004c9c70
add esp, 8
push dword [esp + 0x24]
call fcn.004c9be0
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x55a67a
mov ecx, dword [eax]
mov esi, dword [esp + 0x28]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
pxor xmm0, xmm0
movdqa xmmword [esp + 0x20], xmm0
mov ecx, ebx
mov edx, edi
push dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push esi
push dword [esp + 0x10]
call fcn.005592f0
add esp, 0xc
test eax, eax
je 0x55a72a
mov ecx, dword [esp]
add esi, ecx
mov edx, dword [esp + 0xc]
sub edx, esi
mov dword [esp + 0x18], ebx
xor byte [edx + ebx - 2], 1
test ecx, ecx
je 0x55a8ea
mov ebx, dword [esp + 0x18]
lea edi, [edx + ebx]
add edi, 0xfffffffe
xor eax, eax
cmp ecx, 8
jae 0x55a731
mov edx, edi
jmp 0x55a87b
push 0x274
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x8a
jmp 0x55a51a
push 0x282
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x41
jmp 0x55a51a
push 0xcd
push str..._.._third_party_boringssl_src_crypto_fipsmodule_digest_digest.c
push 0x41
push 0
push 0x1d
call fcn.00590370
add esp, 0x14
push 0
call fcn.004c9be0
add esp, 4
pxor xmm0, xmm0
movdqa xmmword [esp + 0x20], xmm0
xor esi, esi
jmp 0x55a911
mov dword [esp + 8], edi
mov edi, dword [esp + 0xc]
add edi, 0xffffffff
mov dword [esp + 0x1c], edi
sub edi, esi
add edi, ebx
mov esi, dword [esp + 4]
add esi, ecx
cmp edi, esi
jae 0x55a76a
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x10]
add ecx, ebx
cmp dword [esp + 4], ecx
jae 0x55a76a
mov edx, dword [esp + 8]
mov ecx, dword [esp]
jmp 0x55a87b
xor eax, eax
mov ecx, dword [esp]
cmp ecx, 0x20
jb 0x55a845
mov eax, ecx
and eax, 0xffffffe0
lea esi, [eax - 0x20]
mov ecx, esi
shr ecx, 5
add ecx, 1
test esi, esi
je 0x55a7f4
mov esi, ecx
and esi, 0xfffffffe
lea edi, [edx + ebx]
add edi, 0x2f
xor edx, edx
mov ebx, dword [esp + 4]
movups xmm0, xmmword [ebx + edx]
movups xmm1, xmmword [ebx + edx + 0x10]
movups xmm2, xmmword [edi + edx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [edi + edx - 0x20]
xorps xmm0, xmm1
movups xmmword [edi + edx - 0x30], xmm2
movups xmmword [edi + edx - 0x20], xmm0
movdqu xmm0, xmmword [ebx + edx + 0x20]
movdqu xmm1, xmmword [ebx + edx + 0x30]
movdqu xmm2, xmmword [edi + edx - 0x10]
pxor xmm2, xmm0
movdqu xmm0, xmmword [edi + edx]
pxor xmm0, xmm1
movdqu xmmword [edi + edx - 0x10], xmm2
movdqu xmmword [edi + edx], xmm0
add edx, 0x40
add esi, 0xfffffffe
jne 0x55a79d
jmp 0x55a7fa
xor edx, edx
mov ebx, dword [esp + 4]
test cl, 1
je 0x55a82e
movdqu xmm0, xmmword [ebx + edx]
movdqu xmm1, xmmword [ebx + edx + 0x10]
mov ecx, dword [esp + 8]
movdqu xmm2, xmmword [ecx + edx + 1]
pxor xmm2, xmm0
movdqu xmm0, xmmword [ecx + edx + 0x11]
pxor xmm0, xmm1
movdqu xmmword [ecx + edx + 1], xmm2
movdqu xmmword [ecx + edx + 0x11], xmm0
mov ecx, dword [esp]
cmp ecx, eax
je 0x55a8ea
test cl, 0x18
je 0x55a91a
mov ecx, dword [esp]
mov esi, eax
mov eax, ecx
and eax, 0xfffffff8
mov ecx, dword [esp + 8]
lea edx, [ecx + eax]
add ecx, 1
mov edi, dword [esp + 4]
movq xmm0, qword [edi + esi]
movq xmm1, qword [ecx + esi]
pxor xmm1, xmm0
movq qword [ecx + esi], xmm1
add esi, 8
cmp eax, esi
jne 0x55a85a
mov ecx, dword [esp]
cmp ecx, eax
je 0x55a8ea
mov edi, eax
not edi
add edi, ecx
mov esi, ecx
and esi, 3
je 0x55a8a2
mov ebx, dword [esp + 4]
nop dword [eax]
movzx ecx, byte [ebx + eax]
xor byte [edx + 1], cl
add edx, 1
add eax, 1
add esi, 0xffffffff
jne 0x55a890
cmp edi, 3
mov esi, dword [esp]
jb 0x55a8ea
sub esi, eax
mov ecx, dword [esp + 4]
add eax, ecx
add eax, 3
xor ecx, ecx
nop word [eax + eax]
movzx ebx, byte [eax + ecx - 3]
xor byte [edx + ecx + 1], bl
movzx ebx, byte [eax + ecx - 2]
xor byte [edx + ecx + 2], bl
movzx ebx, byte [eax + ecx - 1]
xor byte [edx + ecx + 3], bl
movzx ebx, byte [eax + ecx]
xor byte [edx + ecx + 4], bl
add ecx, 4
cmp esi, ecx
jne 0x55a8c0
mov eax, dword [esp + 0x14]
test eax, eax
mov edx, dword [esp + 0x18]
je 0x55a903
mov cl, 8
sub cl, al
mov eax, 0xff
shr eax, cl
and byte [edx], al
mov eax, dword [esp + 0xc]
mov byte [eax + edx - 1], 0xbc
mov esi, 1
mov eax, dword [esp + 4]
jmp 0x55a52a
mov edx, dword [esp + 8]
add edx, eax
jmp 0x55a762