Function at 0x658520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x80e040]
xor eax, ebp
test ecx, ecx
cmove ecx, dword [ebp + 0x14]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x6585be
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 4]
mov dword [ebp - 0x24], edx
mov edx, dword [eax]
xor esi, esi
xor ebx, ebx
or ebx, dword [edx + esi*4]
inc esi
cmp ecx, esi
jne 0x65855b
test ebx, ebx
je 0x6585be
push eax
call fcn.0064b7e0
add esp, 4
mov esi, eax
add esi, 7
mov edx, esi
and edx, 7
mov eax, dword [edi]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x6585b9
mov esi, edx
call dword [0x8072c0]
push edi
call ecx
mov edx, esi
add esp, 4
mov esi, eax
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x24]
test edx, edx
jne 0x6585a4
mov byte [ebx], 0
inc ebx
dec esi
lea eax, [ecx + 2]
cmp esi, eax
jae 0x6585f7
push 0x156
push str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x72
jmp 0x6585ca
shr esi, 3
jmp 0x658595
push 0x149
push str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push pe_nt_image_headers32
push 0
push 4
call fcn.006be890
add esp, 0x14
xor esi, esi
xor edi, edi
push edi
call fcn.00565f50
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005c9f16
mov eax, esi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, ecx
mov eax, dword [ebp + 0x1c]
cmp eax, 0xffffffff
je 0x65860d
cmp eax, 0xfffffffe
jne 0x658622
mov edi, esi
sub edi, ecx
add edi, 0xfffffffe
mov eax, esi
sub eax, ecx
mov dword [ebp - 0x30], eax
add eax, 0xfffffffe
cmp eax, edi
jae 0x658671
push 0x16b
jmp 0x6585b0
mov edi, eax
test eax, eax
jns 0x65860d
push 0x164
push str....._third_party_boringssl_srccrypto_fipsmodule_rsapadding.c
push 0x8a
jmp 0x6585ca
push dword [ebp - 0x1c]
call fcn.00565f50
add esp, 4
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x65865c
mov ecx, dword [eax]
mov esi, dword [ebp - 0x18]
call dword [0x8072c0]
push esi
call ecx
add esp, 4
xorps xmm0, xmm0
movups xmmword [ebp - 0x20], xmm0
xor esi, esi
jmp 0x6585da
mov dword [ebp - 0x2c], edi
xor edi, edi
jmp 0x65869f
mov dword [ebp - 0x38], edx
test edi, edi
je 0x65866a
push edi
call fcn.00565eb0
add esp, 4
test eax, eax
je 0x6585d6
mov ecx, edi
mov edi, eax
push 0x793527
mov dword [ebp - 0x2c], ecx
push ecx
push eax
call fcn.00650b80
add esp, 0xc
xorps xmm0, xmm0
lea eax, [ebp - 0x20]
movups xmmword [eax], xmm0
sub esp, 4
push dword [ebp + 0x14]
push eax
call fcn.004c0e60
add esp, 0xc
test eax, eax
je 0x658639
mov eax, dword [ebp - 0x30]
lea ecx, [ebx + eax]
dec ecx
mov dword [ebp - 0x34], ecx
dec eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x10]
call dword [0x8072c0]
push 8
push 0x793587
lea eax, [ebp - 0x20]
push eax
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x10]
call dword [0x8072c0]
push dword [ebp - 0x24]
push dword [ebp + 0x10]
lea eax, [ebp - 0x20]
push eax
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x10]
call dword [0x8072c0]
push dword [ebp - 0x2c]
push edi
lea eax, [ebp - 0x20]
push eax
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x14]
call dword [0x8072c0]
push dword [ebp - 0x34]
lea eax, [ebp - 0x20]
push eax
call ecx
add esp, 8
mov eax, dword [ebp - 0x20]
push dword [eax + 0x1c]
push dword [ebp - 0x1c]
call fcn.00565f90
add esp, 8
push dword [ebp - 0x1c]
call fcn.00565f50
add esp, 4
mov eax, dword [ebp - 0x14]
test eax, eax
mov dword [ebp - 0x28], ebx
je 0x65876f
mov ecx, dword [eax]
mov ebx, dword [ebp - 0x18]
call dword [0x8072c0]
push ebx
mov ebx, dword [ebp - 0x28]
call ecx
add esp, 4
xorps xmm0, xmm0
movups xmmword [ebp - 0x20], xmm0
push dword [ebp - 0x3c]
push dword [ebp - 0x24]
push dword [ebp - 0x34]
push dword [ebp - 0x30]
push ebx
call fcn.004c2a20
add esp, 0x14
test eax, eax
je 0x658663
mov ecx, ebx
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x24]
add edx, ebx
mov eax, esi
sub eax, edx
xor byte [eax + ecx - 2], 1
test ebx, ebx
je 0x6587be
not edx
add edx, dword [ebp - 0x28]
add edx, esi
xor eax, eax
mov cl, byte [edi + eax]
xor byte [edx + eax], cl
inc eax
cmp ebx, eax
jne 0x6587b3
mov eax, dword [ebp - 0x38]
test eax, eax
mov edx, dword [ebp - 0x28]
je 0x6587d5
mov cl, 8
sub cl, al
mov eax, 0xff
shr eax, cl
and byte [edx], al
mov byte [esi + edx - 1], 0xbc
xor esi, esi
inc esi
jmp 0x6585da