Function at 0x4d38f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [esp + 0x24]
cmp dword [edi + 0xc], 0
je 0x4d393b
push 0x135
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
push 0x1c
push str.external_boringssl_src_crypto_fipsmodule_ec_scalar.c
push 0x85
push 0
push 0xf
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor eax, eax
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov ebp, dword [eax + 0xc]
mov ebx, dword [edi + 4]
mov esi, ebx
sub esi, ebp
jbe 0x4d3a91
mov ecx, dword [edi]
xor eax, eax
mov edx, ebp
cmp esi, 8
jb 0x4d3a70
mov dword [esp], ebp
mov dword [esp + 4], esi
mov edx, esi
and edx, 0xfffffff8
lea eax, [edx - 8]
mov esi, eax
shr esi, 3
add esi, 1
mov ebp, esi
and ebp, 3
cmp eax, 0x18
jae 0x4d398b
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x4d3a07
and esi, 0xfffffffc
mov eax, dword [esp]
lea eax, [ecx + eax*4]
add eax, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop dword [eax + eax]
movdqu xmm2, xmmword [eax + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 - 0x50]
movdqu xmm3, xmmword [eax + edi*4 - 0x40]
movdqu xmm4, xmmword [eax + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4]
por xmm1, xmm2
add edi, 0x20
add esi, 0xfffffffc
jne 0x4d39b0
test ebp, ebp
je 0x4d3a3a
add edi, dword [esp]
lea eax, [ecx + edi*4]
add eax, 0x10
shl ebp, 5
xor esi, esi
nop dword [eax]
movdqu xmm2, xmmword [eax + esi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + esi]
por xmm1, xmm2
add esi, 0x20
cmp ebp, esi
jne 0x4d3a20
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [esp + 4], edx
jne 0x4d3a63
mov edi, dword [esp + 0x24]
mov ebp, dword [esp]
jmp 0x4d3a7a
mov ebp, dword [esp]
add edx, ebp
mov edi, dword [esp + 0x24]
nop dword [eax]
or eax, dword [ecx + edx*4]
add edx, 1
cmp ebx, edx
jne 0x4d3a70
mov ebx, ebp
test eax, eax
je 0x4d3a91
push 0x13c
push str.external_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x4d390d
mov esi, dword [esp + 0x20]
shl ebp, 2
test ebp, ebp
je 0x4d3aa8
push ebp
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
shl ebx, 2
test ebx, ebx
je 0x4d3abb
push ebx
push dword [edi]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4d3919
mov ecx, dword [eax + 8]
cmp edx, 1
mov dword [esp + 4], edx
jne 0x4d3ade
xor eax, eax
mov ebx, esi
xor esi, esi
jmp 0x4d3b34
and edx, 0xfffffffe
mov dword [esp], edx
xor eax, eax
mov ebx, esi
xor esi, esi
nop word [eax + eax]
mov edx, dword [ebx + esi*4]
mov ebp, dword [ecx + esi*4]
mov edi, edx
sub edi, ebp
xor ebp, edx
xor edi, edx
or edi, ebp
xor edi, edx
mov edx, dword [ebx + esi*4 + 4]
sar edi, 0x1f
or edi, 1
test ebp, ebp
mov ebp, dword [ecx + esi*4 + 4]
cmove edi, eax
mov eax, edx
sub eax, ebp
xor ebp, edx
xor eax, edx
or eax, ebp
xor eax, edx
sar eax, 0x1f
or eax, 1
test ebp, ebp
cmove eax, edi
add esi, 2
cmp dword [esp], esi
jne 0x4d3af0
test byte [esp + 4], 1
je 0x4d3b58
mov edi, dword [ebx + esi*4]
mov edx, dword [ecx + esi*4]
mov ecx, edi
sub ecx, edx
xor edx, edi
xor ecx, edi
or ecx, edx
xor ecx, edi
sar ecx, 0x1f
or ecx, 1
test edx, edx
cmovne eax, ecx
test eax, eax
jns 0x4d3919
mov eax, 1
jmp 0x4d3933