Function at 0x1007c970
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov edi, dword [ebp + 8]
mov esi, ecx
lea eax, [esp + 0x80]
push 2
push str.::C:UsersFrank.cargo_registry_srcgithub.com_1ecc6299db9ec823log4rs_1.2.0_srclib.rs
push edi
push edx
push eax
call fcn.100b4330
add esp, 0x14
movsd xmm1, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa8]
movq xmm0, qword [esp + 0xb8]
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [esp + 0xa0]
movsd qword [esp + 0x58], xmm2
movsd xmm2, qword [esp + 0x98]
movq qword [esp + 0x68], xmm0
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0x90]
movsd qword [esp + 0x48], xmm2
movsd xmm2, qword [esp + 0x80]
movsd qword [esp + 0x40], xmm1
movq xmm1, qword [esp + 0x88]
movsd qword [esp + 0x30], xmm2
movq qword [esp + 0x38], xmm1
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], edi
mov word [esp + 0x78], 1
mov ebx, dword [esp + 0x60]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x30]
call fcn.1007b430
cmp dword [esp + 0x24], 0
je 0x1007ca60
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
sub edx, ecx
add ebx, ecx
mov dword [esp + 0x70], eax
mov ecx, edx
test ebx, ebx
jne 0x1007ca95
jmp 0x1007cbff
cmp byte [esp + 0x79], 0
jne 0x1007cbff
cmp byte [esp + 0x78], 0
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
jne 0x1007ca82
cmp ecx, ebx
je 0x1007cbff
mov byte [esp + 0x79], 1
sub ecx, ebx
add ebx, dword [esp + 0x60]
test ebx, ebx
je 0x1007cbff
cmp dword [esi + 0x1c], 0
je 0x1007cbff
test ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 8], esi
mov dword [esp + 0x20], ebx
je 0x1007cb00
mov esi, 0xcbf29ce4
mov eax, 0x84222325
mov edi, ecx
nop dword [eax + eax]
movzx ecx, byte [ebx]
mov edx, 0x1b3
imul esi, esi, 0x1b3
inc ebx
xor ecx, eax
mov eax, ecx
shl ecx, 8
mul edx
add ecx, edx
add esi, ecx
dec edi
jne 0x1007cac0
xor eax, 0xff
mov ecx, 0x1b3
mul ecx
mov ecx, dword [esp + 0x10]
sub edx, esi
mov esi, dword [esp + 8]
mov edi, eax
shld edx, eax, 7
jmp 0x1007cb07
mov dl, 0x43
mov edi, 0x8602eb6e
mov ebx, dword [esi + 0x10]
and dl, 0x7f
mov esi, dword [esi + 0x14]
mov dword [esp + 0xc], 0
movzx eax, dl
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
and edi, ebx
lea eax, [esi - 0x2c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
pshufd xmm0, xmm0, 0
mov edx, edi
mov dword [esp + 0x14], eax
movdqa xmmword [esp + 0xc0], xmm0
mov eax, dword [esp + 0x18]
movdqa xmm0, xmmword [esp + 0xc0]
movdqu xmm1, xmmword [eax + edx]
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0xd0], xmm1
pmovmskb esi, xmm0
test esi, esi
jne 0x1007cbac
movdqa xmm1, xmmword [esp + 0xd0]
pcmpeqd xmm0, xmm0
pcmpeqb xmm1, xmm0
pmovmskb eax, xmm1
test eax, eax
jne 0x1007cbfb
mov eax, dword [esp + 0xc]
lea edx, [edx + eax + 0x10]
add eax, 0x10
mov dword [esp + 0xc], eax
and edx, ebx
jmp 0x1007cb49
lea eax, [esi - 1]
and eax, esi
test ax, ax
mov esi, eax
je 0x1007cb70
bsf ax, si
movzx eax, ax
add eax, edx
and eax, ebx
neg eax
imul edi, eax, 0x2c
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax + edi + 8]
jne 0x1007cba0
push ecx
push dword [eax + edi]
push dword [esp + 0x28]
mov ebx, edx
call sub.VCRUNTIME140.dll_memcmp
mov edx, ebx
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x1007cba0
cmp byte [esp + 0x79], 0
lea esi, [eax + edi + 0xc]
je 0x1007ca28
jmp 0x1007cbff
mov esi, dword [esp + 8]
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret