Function at 0x7169b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
inc eax
je 0x717022
mov edi, dword [ecx + 4]
mov esi, ecx
lea ebx, [edi + 1]
mov dword [esp + 4], edi
mov edx, ebx
mov ecx, ebx
shr edx, 3
and ecx, 0xfffffff8
sub ecx, edx
cmp edi, 8
cmovb ecx, edi
mov edx, ecx
shr edx, 1
cmp eax, edx
jbe 0x716a0e
inc ecx
mov dword [esp + 0x28], ebx
cmp eax, ecx
cmova ecx, eax
cmp ecx, 8
jae 0x716a71
xor eax, eax
cmp ecx, 4
setae al
lea edi, [eax*4 + 4]
jmp 0x716aaa
mov ecx, ebx
mov ebp, dword [esi]
xor eax, eax
mov edx, ebx
shr ecx, 4
test bl, 0xf
setne al
add eax, ecx
je 0x716a46
movdqa xmm0, xmmword [0x725600]
mov ecx, ebp
nop dword [eax]
pxor xmm1, xmm1
dec eax
pcmpgtb xmm1, xmmword [ecx]
por xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
jne 0x716a30
cmp edx, 0x10
jae 0x716b34
lea eax, [ebp + 0x10]
push edx
push ebp
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp edi, 0xffffffff
jne 0x716b4a
mov edi, dword [esp + 0x18]
xor eax, eax
jmp 0x716da9
cmp ecx, 0x20000000
jae 0x717022
shl ecx, 3
mov edi, 1
cmp ecx, 0xe
jb 0x716aaa
mov edx, 0x24924925
mov eax, ecx
mov edi, 0xffffffff
mul edx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
dec ecx
bsr ecx, ecx
not ecx
shr edi, cl
inc edi
mov ecx, 0x18
mov eax, edi
mul ecx
jo 0x717022
add eax, 0xf
lea edx, [edi + 0x10]
and eax, 0xfffffff0
mov ebp, eax
add ebp, edx
jb 0x717022
cmp ebp, 0x7ffffff1
jae 0x717022
test ebp, ebp
je 0x716db3
mov dword [esp], edx
mov ebx, eax
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x716b08
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x717029
mov dword [0x919820], eax
lea ecx, [ebp + 0x10]
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x717029
mov edx, dword [esp]
mov ebp, esi
mov esi, eax
and esi, 0xfffffff0
mov dword [esi + 0xc], eax
add esi, 0x10
mov eax, ebx
jmp 0x716dba
movq xmm0, qword [ebp]
movq xmm1, qword [ebp + 8]
movq qword [ebp + edx + 8], xmm1
movq qword [ebp + edx], xmm0
mov dword [esp + 0xc], esi
xor edx, edx
mov esi, 0x1b3
mov dword [esp + 0x10], ebp
jmp 0x716b86
mov edx, dword [esp + 8]
and bl, 0x7f
mov edi, esi
lea eax, [edx - 0x10]
mov byte [ebp + edx], bl
and eax, esi
mov byte [eax + ebp + 0x10], bl
mov esi, 0x1b3
cmp edx, edi
lea edx, [edx + 1]
je 0x716d8c
cmp byte [ebp + edx], 0x80
jne 0x716b7b
lea eax, [edx*8]
mov ecx, ebp
mov dword [esp + 8], edx
neg edx
lea eax, [eax + eax*2]
mov dword [esp + 0x1c], edx
sub ecx, eax
add ecx, 0xffffffe8
mov dword [esp + 0x14], ecx
mov ecx, ebp
nop
mov eax, dword [esp + 0x1c]
mov dword [esp], ecx
lea eax, [eax + eax*2]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + eax*8 - 0x10]
movzx edi, al
mov ebx, eax
xor edi, 0x84222325
movzx ecx, bh
mov ebp, ebx
mov eax, edi
shl edi, 8
mul esi
xor ecx, eax
or edi, edx
mov eax, ecx
shl ecx, 8
imul edi, edi, 0x1b3
mul esi
add ecx, edx
mov edx, ebx
shr edx, 0x10
add ecx, edi
movzx edi, dl
imul ecx, ecx, 0x1b3
xor edi, eax
mov eax, edi
shl edi, 8
mul esi
mov ebx, eax
mov eax, ebp
add edi, edx
shr eax, 0x18
add edi, ecx
xor ebx, eax
imul ecx, edi, 0x1b3
mov eax, ebx
shl ebx, 8
mul esi
add ebx, edx
test ebp, ebp
lea ebx, [ecx + ebx - 0x3d29b2dc]
je 0x716c5a
mov ecx, dword [esp]
mov edi, dword [esp + 0x20]
mov edi, dword [ecx + edi*8 - 0x18]
nop word [eax + eax]
movzx ecx, byte [edi]
imul ebx, ebx, 0x1b3
inc edi
xor ecx, eax
mov eax, ecx
shl ecx, 8
mul esi
add ecx, edx
add ebx, ecx
dec ebp
jne 0x716c40
mov esi, dword [esp + 4]
mov ebp, dword [esp + 0x10]
shld ebx, eax, 7
and eax, esi
movdqu xmm0, xmmword [ebp + eax]
mov edx, eax
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x716c95
mov edi, 0x10
mov edx, eax
nop
add edx, edi
add edi, 0x10
and edx, esi
movdqu xmm0, xmmword [ebp + edx]
pmovmskb ecx, xmm0
test ecx, ecx
je 0x716c80
tzcnt ecx, ecx
add ecx, edx
and ecx, esi
cmp byte [ebp + ecx], 0
js 0x716cb1
movdqa xmm0, xmmword [ebp]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
mov edx, dword [esp + 8]
mov esi, dword [esp + 4]
mov edi, ecx
sub edi, eax
sub edx, eax
xor edi, edx
and edi, esi
cmp edi, 0x10
jb 0x716b60
movzx edx, byte [ebp + ecx]
lea eax, [ecx*8]
lea edi, [ecx - 0x10]
and bl, 0x7f
lea eax, [eax + eax*2]
and edi, esi
mov byte [ebp + ecx], bl
neg eax
mov byte [edi + ebp + 0x10], bl
lea eax, [ebp + eax - 0x18]
cmp dl, 0xff
je 0x716d50
mov ecx, dword [esp + 0x14]
movsd xmm1, qword [eax]
mov esi, 0x1b3
movsd xmm0, qword [ecx]
movsd qword [ecx], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + 8], xmm1
movsd qword [eax + 8], xmm0
movq xmm1, qword [eax + 0x10]
movq xmm0, qword [ecx + 0x10]
movq qword [ecx + 0x10], xmm1
mov ecx, dword [esp + 0xc]
movq qword [eax + 0x10], xmm0
mov ecx, dword [ecx]
jmp 0x716bb0
mov edx, dword [esp + 8]
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x14]
lea ecx, [edx - 0x10]
mov byte [ebp + edx], 0xff
and ecx, edi
mov byte [ecx + ebp + 0x10], 0xff
movsd xmm0, qword [esi + 0x10]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
jmp 0x716b76
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0xc]
lea eax, [ecx + 1]
mov edx, eax
and eax, 0xfffffff8
shr edx, 3
sub eax, edx
cmp ecx, 8
cmovb eax, ecx
sub eax, edi
mov dword [esi + 8], eax
jmp 0x717015
mov ebp, esi
mov esi, 0x10
mov ebx, edi
dec edi
mov ecx, ebx
and ebx, 0xfffffff8
shr ecx, 3
sub ebx, ecx
cmp edi, 8
cmovb ebx, edi
add esi, eax
push edx
push 0xff
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp]
sub ebx, eax
cmp dword [esp + 4], 0xffffffff
je 0x716fd8
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], ebp
lea edx, [ecx - 0x18]
xor ebp, ebp
mov ebx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 8], edx
jmp 0x716e7d
lea eax, [ecx - 0x10]
and bl, 0x7f
and eax, edi
mov byte [esi + ecx], bl
shl ecx, 3
mov byte [eax + esi + 0x10], bl
mov ebx, dword [esp + 0x14]
lea eax, [ebp*8]
lea eax, [eax + eax*2]
mov edx, ebx
sub edx, eax
lea eax, [ecx + ecx*2]
mov ecx, esi
movsd xmm0, qword [edx - 0x18]
sub ecx, eax
neg eax
movq xmm1, qword [edx - 0x10]
movsd qword [esi + eax - 0x18], xmm0
movq xmm0, qword [edx - 8]
mov edx, dword [esp + 8]
movq qword [ecx - 0x10], xmm1
movq qword [ecx - 8], xmm0
cmp ebp, dword [esp + 4]
lea ebp, [ebp + 1]
je 0x716fb7
cmp byte [ebx + ebp], 0
js 0x716e70
mov eax, ebp
mov ecx, 0x1b3
mov dword [esp + 0x20], ebp
mov ebp, 0x1b3
neg eax
lea eax, [eax + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + eax*8 + 8]
movzx ebx, al
mov dword [esp], eax
xor ebx, 0x84222325
mov eax, ebx
shl ebx, 8
mul ecx
mov ecx, dword [esp]
or ebx, edx
imul ebx, ebx, 0x1b3
movzx ecx, ch
xor ecx, eax
mov eax, ecx
shl ecx, 8
mul ebp
add ecx, edx
mov edx, dword [esp]
add ecx, ebx
imul ecx, ecx, 0x1b3
shr edx, 0x10
movzx ebx, dl
xor ebx, eax
mov eax, ebx
shl ebx, 8
mul ebp
mov ebp, eax
mov eax, dword [esp]
add ebx, edx
add ebx, ecx
mov ecx, 0x1b3
shr eax, 0x18
xor ebp, eax
mov eax, ebp
shl ebp, 8
mul ecx
imul ecx, ebx, 0x1b3
add ebp, edx
mov edx, dword [esp]
lea ebx, [ecx + ebp - 0x3d29b2dc]
test edx, edx
je 0x716f57
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 8]
mov edi, 0x1b3
mov ebp, dword [esi + ecx*8]
nop word cs:[eax + eax]
movzx ecx, byte [ebp]
mov esi, edx
imul ebx, ebx, 0x1b3
inc ebp
xor ecx, eax
mov eax, ecx
shl ecx, 8
mul edi
add ecx, edx
mov edx, esi
add ebx, ecx
dec edx
jne 0x716f30
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
shld ebx, eax, 7
and eax, edi
mov ebp, dword [esp + 0x20]
movdqu xmm0, xmmword [esi + eax]
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x716f94
mov edx, 0x10
nop word cs:[eax + eax]
nop dword [eax]
add eax, edx
add edx, 0x10
and eax, edi
movdqu xmm0, xmmword [esi + eax]
pmovmskb ecx, xmm0
test ecx, ecx
je 0x716f80
tzcnt ecx, ecx
add ecx, eax
and ecx, edi
cmp byte [esi + ecx], 0
js 0x716e20
movdqa xmm0, xmmword [esi]
pmovmskb eax, xmm0
tzcnt ecx, eax
jmp 0x716e20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov dword [eax], esi
mov esi, dword [esp + 4]
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
test esi, esi
jne 0x716fea
jmp 0x717015
mov dword [ebp], esi
mov esi, dword [esp + 4]
mov dword [ebp + 4], edi
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], eax
mov ebx, ecx
mov eax, dword [esp + 0x28]
mov ecx, 0x18
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
cmp esi, 0xffffffef
je 0x717015
sub ebx, eax
push dword [ebx - 4]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 0x80000001
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005df3b0
ud2
mov ecx, ebp
call fcn.005df3f0
ud2