Function at 0x4556fc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov eax, dword [0x4df19c]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
xor eax, ebp
test edi, edi
mov dword [esp + 0x38], eax
cmove edi, dword [ebp + 0x14]
mov esi, dword [ebx + 4]
mov eax, dword [esi + 4]
test eax, eax
je 0x45576e
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi]
mov dword [esp + 8], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], ecx
xor ecx, ecx
or ecx, dword [edx]
add edx, 4
dec eax
jne 0x45573e
test ecx, ecx
je 0x45576e
push esi
call fcn.0044968c
add esp, 4
dec eax
and eax, 7
mov dword [esp + 0x1c], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x45577c
push ebx
call eax
add esp, 4
mov edx, eax
jmp 0x45578d
push 0x259
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push pe_nt_image_headers32
jmp 0x4557ed
push esi
call fcn.0044968c
add esp, 4
mov edx, eax
add edx, 7
shr edx, 3
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x14]
jne 0x4557a4
mov eax, dword [ebp + 0xc]
dec edx
mov byte [eax], 0
inc eax
mov dword [esp + 8], eax
lea eax, [ecx + 2]
cmp edx, eax
jae 0x4557b2
push 0x266
jmp 0x4557e6
mov eax, dword [ebp + 0x1c]
mov ebx, ecx
cmp eax, 0xffffffff
je 0x4557d6
cmp eax, 0xfffffffe
jne 0x4557cc
mov ebx, 0xfffffffe
sub ebx, ecx
add ebx, edx
jmp 0x4557d6
test eax, eax
mov ebx, eax
js 0x455988
mov esi, edx
sub esi, ecx
lea eax, [esi - 2]
cmp eax, ebx
jae 0x45581b
push 0x27b
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x72
push 0
push 4
call fcn.0047805e
add esp, 0x14
xor edi, edi
xor esi, esi
push esi
call fcn.0045d84c
add esp, 4
mov ecx, dword [esp + 0x38]
xor ecx, ebp
call fcn.004956a1
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], esi
je 0x45584b
push ebx
call fcn.0045d829
add esp, 4
test eax, eax
je 0x4559c8
mov esi, eax
push 0x4c90f5
push ebx
push eax
call fcn.0044eb4f
add esp, 0xc
jmp 0x45584d
xor esi, esi
xorps xmm0, xmm0
lea eax, [esp + 0x20]
movaps xmmword [eax], xmm0
sub esp, 4
push dword [ebp + 0x14]
push eax
call fcn.0044f8e0
add esp, 0xc
test eax, eax
je 0x45599c
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx - 1]
dec ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
push 8
push 0x4c9196
lea ecx, [esp + 0x28]
push ecx
call dword [eax + 0x10]
add esp, 0xc
mov eax, dword [esp + 0x20]
push dword [esp + 0x14]
push dword [ebp + 0x10]
lea ecx, [esp + 0x28]
push ecx
call dword [eax + 0x10]
add esp, 0xc
mov eax, dword [esp + 0x20]
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
call dword [eax + 0x10]
add esp, 0xc
mov eax, dword [esp + 0x20]
push dword [esp + 0x18]
lea ecx, [esp + 0x24]
push ecx
call dword [eax + 0x14]
add esp, 8
mov eax, dword [esp + 0x20]
push dword [eax + 0x1c]
push dword [esp + 0x28]
call fcn.0045d87c
add esp, 8
push dword [esp + 0x24]
call fcn.0045d84c
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x455903
push dword [esp + 0x28]
call dword [eax]
add esp, 4
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
push edi
mov edi, dword [esp + 0x18]
push edi
push dword [esp + 0x20]
call fcn.00454fea
add esp, 0xc
test eax, eax
je 0x4559c1
mov eax, 0xfffffffe
mov ecx, dword [esp + 8]
sub eax, edi
add eax, dword [esp + 0xc]
sub eax, ebx
xor byte [ecx + eax], 1
test ebx, ebx
je 0x45595e
mov eax, dword [esp + 0xc]
neg ebx
mov ecx, esi
dec eax
sub eax, edi
add eax, dword [esp + 8]
mov dl, byte [ecx]
inc ecx
xor byte [eax + ebx], dl
inc ebx
jne 0x455955
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 8]
test eax, eax
je 0x455977
mov cl, 8
sub cl, al
mov eax, 0xff
shr eax, cl
and byte [edx], al
mov eax, dword [esp + 0xc]
xor edi, edi
inc edi
mov byte [edx + eax - 1], 0xbc
jmp 0x4557fd
push 0x274
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x8a
jmp 0x4557ed
push dword [esp + 0x24]
call fcn.0045d84c
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4559b9
push dword [esp + 0x28]
call dword [eax]
add esp, 4
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
xor edi, edi
jmp 0x4557fd
push 0x282
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_padding.c
push 0x41
jmp 0x4557ed