Function at 0x55d1e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [esp + 0x50]
mov ebx, ecx
test eax, eax
je 0x55d378
cmp byte [edx], 0
mov ebp, edx
je 0x55d30b
lea ecx, [eax + 3]
mov esi, 4
mov edx, 4
mov dword [esp + 0x14], ebx
cmp ecx, 4
mov dword [esp + 8], ecx
jb 0x55d24b
test ecx, ecx
js 0x55d90e
mov ebx, ecx
and ebx, 0xfffffffc
js 0x55d90e
mov ecx, 8
mov edx, ebx
call fcn.0071ee80
mov edx, eax
test eax, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x50]
je 0x55d913
mov edi, ecx
mov dword [esp + 4], edx
xor edx, edx
mov ebx, eax
shr edi, 2
and eax, 3
cmovne esi, eax
mov eax, ebx
mov ebx, dword [esp + 0x14]
setne dl
shr eax, 2
add edx, eax
cmp edx, edi
ja 0x55d327
cmp ecx, 4
mov dword [esp + 0xc], edx
jb 0x55d293
and ecx, 0xfffffffc
push ecx
push 0
push dword [esp + 0xc]
call fcn.007bdf30
mov edx, dword [esp + 0x18]
add esp, 0xc
test edx, edx
je 0x55d333
lea eax, [edx - 1]
mov dword [esp], edi
cmp eax, edi
jae 0x55d792
mov cl, 1
xor ebx, ebx
xor eax, eax
xor edx, edx
mov edi, dword [esp + 0x50]
sub edi, eax
cmovb edi, ebx
jbe 0x55d317
mov byte [esp + 0x10], cl
lea ecx, [edx + 1]
dec esi
mov dword [esp + 0x18], ecx
xor ecx, ecx
nop word [eax + eax]
movzx ebx, byte [ebp + eax]
shl ecx, 8
inc eax
or ecx, ebx
sub esi, 1
jb 0x55d2e5
dec edi
jne 0x55d2d0
jmp 0x55d312
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 4]
not edx
mov ebx, 0
add edx, esi
mov dword [edi + edx*4], ecx
mov edx, dword [esp + 0x18]
cmp edx, esi
mov esi, 4
setb cl
jne 0x55d2b1
jmp 0x55d317
mov esi, 0x89beb0
jmp 0x55d37d
movzx ecx, byte [esp + 0x10]
test cl, 1
mov edi, dword [esp]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
je 0x55d335
mov esi, 0x89bebf
cmp ecx, 4
jae 0x55d366
jmp 0x55d37d
xor eax, eax
cmp eax, dword [esp + 0x50]
jne 0x55d35a
mov ecx, dword [esp + 8]
cmp ecx, 0x403
jbe 0x55d39d
mov eax, dword [esp + 4]
mov edi, 8
mov esi, 0x89bf54
jmp 0x55d3f3
cmp dword [esp + 8], 4
mov esi, 0x89bebf
jb 0x55d37d
push dword [esp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, 0x89bebf
mov edi, 0xf
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], edi
mov dword [ebx + 4], 0
mov dword [ebx], 0
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ecx, 0x10
jae 0x55d3b7
mov eax, dword [esp + 4]
mov esi, 0x89bebf
mov edi, 0xf
cmp ecx, 4
jb 0x55d382
jmp 0x55d3f3
push edi
mov ebp, dword [esp + 8]
push ebp
call fcn.00772780
add esp, 8
test eax, eax
je 0x55d3d7
mov eax, ebp
mov edi, 0x10
mov esi, 0x89bf44
jmp 0x55d3f3
push edi
push 3
push ebp
call fcn.007728f0
add esp, 0xc
test eax, eax
je 0x55d407
mov eax, ebp
mov edi, 0xf
mov esi, 0x89bebf
push eax
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x55d382
push dword [ebp + 4]
push dword [ebp]
call fcn.00773c40
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov eax, 1
mov ecx, edi
mov edx, edi
mov dword [esp], edi
lea esi, [ecx - 1]
cmp ecx, 2
mov edi, esi
cmovb edi, eax
cmp esi, edx
jae 0x55d8ff
mov eax, dword [esp + 4]
mov dword [esp + 0xc], ecx
mov ebp, dword [eax + ecx*4 - 4]
push 0x1f
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d6d0
push 0x1e
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d6da
push 0x1d
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d6e4
push 0x1c
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d6ee
push 0x1b
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d6f8
push 0x1a
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d702
push 0x19
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d70c
push 0x18
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d716
push 0x17
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d720
push 0x16
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d72a
push 0x15
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d734
push 0x14
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d73e
push 0x13
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d748
push 0x12
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d752
push 0x11
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d75c
push 0x10
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d766
push 0xf
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d770
push 0xe
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d77a
push 0xd
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d784
push 0xc
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d78b
push 0xb
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7b7
push 0xa
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7be
push 9
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7c5
push 8
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7cc
push 7
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7d3
push 6
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7da
push 5
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7e1
push 4
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7e8
push 3
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7ef
push 2
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7f6
push 1
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d7fd
push 0
push ebp
call fcn.00772bc0
add esp, 8
test eax, eax
jne 0x55d804
xor esi, esi
cmp dword [esp + 0xc], 2
mov edx, dword [esp]
mov ebp, dword [esp + 0x5c]
mov eax, 1
jb 0x55d815
test edi, edi
mov ecx, edi
jne 0x55d429
jmp 0x55d815
mov eax, 0x20
jmp 0x55d809
mov eax, 0x1f
jmp 0x55d809
mov eax, 0x1e
jmp 0x55d809
mov eax, 0x1d
jmp 0x55d809
mov eax, 0x1c
jmp 0x55d809
mov eax, 0x1b
jmp 0x55d809
mov eax, 0x1a
jmp 0x55d809
mov eax, 0x19
jmp 0x55d809
mov eax, 0x18
jmp 0x55d809
mov eax, 0x17
jmp 0x55d809
mov eax, 0x16
jmp 0x55d809
mov eax, 0x15
jmp 0x55d809
mov eax, 0x14
jmp 0x55d809
mov eax, 0x13
jmp 0x55d809
mov eax, 0x12
jmp 0x55d809
mov eax, 0x11
jmp 0x55d809
mov eax, 0x10
jmp 0x55d809
mov eax, 0xf
jmp 0x55d809
mov eax, 0xe
jmp 0x55d809
mov eax, 0xd
jmp 0x55d809
mov ecx, dword [esp + 0x50]
dec esi
mov edx, dword [esp]
mov ebx, dword [esp + 0x14]
dec ecx
cmp esi, ecx
mov ecx, dword [esp + 8]
ja 0x55d327
mov ecx, eax
push 0x89db5c
call fcn.007c1be0
mov eax, 0xc
jmp 0x55d809
mov eax, 0xb
jmp 0x55d809
mov eax, 0xa
jmp 0x55d809
mov eax, 9
jmp 0x55d809
mov eax, 8
jmp 0x55d809
mov eax, 7
jmp 0x55d809
mov eax, 6
jmp 0x55d809
mov eax, 5
jmp 0x55d809
mov eax, 4
jmp 0x55d809
mov eax, 3
jmp 0x55d809
mov eax, 2
jmp 0x55d809
mov eax, 1
mov edx, dword [esp]
mov ebp, dword [esp + 0x5c]
shl esi, 5
add esi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
cmp ebp, 0x3ff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ecx
jbe 0x55d91f
mov eax, esi
mov ecx, esi
mov edi, esi
shr eax, 2
shr ecx, 1
or ecx, eax
or ecx, esi
and ecx, 1
lea eax, [esi + ecx*8]
mov esi, str.TooSmallassertion_failed:_digest_alg.block_len_____digest_alg.output_len__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_srchkdf.rss
and eax, 0xfffffff8
cmp eax, ebp
jb 0x55d861
cmp edi, dword [esp + 0x60]
mov esi, 0x89bf54
jbe 0x55d87d
push dword [esp + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, 8
jmp 0x55d382
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov edx, ebx
mov ecx, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x38], edi
and edx, 0xfffffffc
mov dword [esp + 0x10], edx
call fcn.0071ee80
test eax, eax
je 0x55d933
mov ebp, eax
xor eax, eax
cmp ebx, 0x20
mov edx, dword [esp]
mov ebx, dword [esp + 4]
jb 0x55d941
mov eax, edx
xor ecx, ecx
pcmpeqd xmm0, xmm0
and eax, 0xfffffff8
movdqu xmm1, xmmword [ebx + ecx*4]
movdqu xmm2, xmmword [ebx + ecx*4 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [ebp + ecx*4], xmm1
movdqu xmmword [ebp + ecx*4 + 0x10], xmm2
add ecx, 8
cmp eax, ecx
jne 0x55d8d7
jmp 0x55d94b
mov edx, dword [esp]
mov ecx, esi
push 0x89db3c
call fcn.007c1be0
call fcn.00418cb0
mov ecx, 4
mov edx, ebx
call fcn.007c1490
mov ecx, str.assertion_failed:_min_bits___MIN_BITSC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_src_rsapublic_modulus.rs
mov edx, 0x26
push 0x89e09c
call fcn.007c1ca0
mov edx, dword [esp + 0x10]
mov ecx, 4
call fcn.007c1490
mov ecx, dword [ebx + eax*4]
not ecx
mov dword [ebp + eax*4], ecx
inc eax
cmp edx, eax
jne 0x55d941
mov ecx, edx
or byte [ebp], 1
mov dword [esp + 8], edi
shl ecx, 5
sub ecx, edi
je 0x55d989
mov eax, dword [ebp + edx*4 - 4]
shl eax, cl
shr eax, cl
cmp ecx, 1
adc ecx, 0
mov dword [ebp + edx*4 - 4], eax
push edx
push ebx
push ebp
push ebp
mov esi, ecx
call fcn.00772a10
mov edx, dword [esp + 0x10]
mov ecx, esi
add esp, 0x10
dec ecx
jne 0x55d972
cmp edx, 1
mov edi, edx
lea esi, [esp + 0x30]
adc edi, 0
push edx
push ebx
push ebp
push ebp
call fcn.00772a10
mov edx, dword [esp + 0x10]
add esp, 0x10
dec edi
jne 0x55d995
push edx
push esi
push ebx
push ebp
push ebp
push ebp
mov edi, edx
call fcn.00762040
add esp, 0x18
push edi
push esi
push ebx
push ebp
push ebp
push ebp
call fcn.00762040
add esp, 0x18
push edi
push esi
push ebx
push ebp
push ebp
push ebp
call fcn.00762040
add esp, 0x18
push edi
push esi
push ebx
push ebp
push ebp
push ebp
call fcn.00762040
add esp, 0x18
push edi
push esi
push ebx
push ebp
push ebp
push ebp
call fcn.00762040
add esp, 0x18
mov eax, dword [esp + 0x58]
mov edx, 0x89bf54
mov edi, ebx
cmp eax, 5
jbe 0x55da07
mov esi, 8
jmp 0x55da84
mov esi, 0xf
mov edx, 0x89beb0
test eax, eax
je 0x55da84
mov eax, dword [esp + 0x54]
cmp byte [eax], 0
je 0x55da84
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
xor eax, eax
xor ecx, ecx
movzx ebx, byte [esi]
shld ecx, eax, 8
shl eax, 8
inc esi
or eax, ebx
dec edx
jne 0x55da2a
mov edx, eax
or edx, ecx
mov edx, str.TooSmallassertion_failed:_digest_alg.block_len_____digest_alg.output_len__C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_srchkdf.rss
je 0x55da7b
cmp eax, dword [esp + 0x64]
mov esi, ecx
sbb esi, dword [esp + 0x68]
jb 0x55da7b
mov edi, dword [esp + 4]
test ecx, 0xfffffffe
mov edx, 0x89bf54
mov esi, 8
jne 0x55da84
movzx edx, bl
test dl, 1
jne 0x55dabc
mov esi, 0x10
mov edx, 0x89bf44
jmp 0x55da80
mov esi, 8
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [eax + 4], 0
mov dword [eax], 0
push edi
push 0
push dword [0x94bf18]
call esi
push ebp
push 0
push dword [0x94bf18]
call esi
jmp 0x55d395
mov edx, dword [esp + 0x14]
mov ebx, dword [esp]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 8]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 4]
mov dword [edx], eax
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 0xc], ebx
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], edi
mov dword [edx + 0x18], esi
mov dword [edx + 0x1c], ebp
mov dword [edx + 0x20], ebx
jmp 0x55d395