Function at 0x100dcd50
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x78
call fcn.10022920
mov eax, dword [0x101fd024]
xor eax, esp
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
push esi
mov esi, dword [esp + 0xa0]
xor ebp, ebp
push edi
mov edi, dword [esp + 0x8c]
push esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 1
call fcn.1003d130
mov ecx, eax
add esp, 4
mov dword [esp + 0x1c], ecx
test ecx, ecx
jle 0x100dcde8
mov eax, dword [esp + 0xac]
xor edx, edx
div ecx
cmp eax, 0xffffffff
jb 0x100dcdfd
call fcn.1002efd0
push str.pbkdf2_derive
push 0x127
push str.providersimplementationskdfspbkdf2.c
call fcn.1002f0d0
push ebp
push 0x69
push 0x39
call fcn.1002f180
add esp, 0x18
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x74]
xor ecx, esp
call fcn.10021a20
add esp, 0x78
ret
cmp dword [esp + 0xb0], ebp
je 0x100dcea1
mov eax, dword [esp + 0xac]
shl eax, 3
cmp eax, 0x70
jae 0x100dce3b
call fcn.1002efd0
push str.pbkdf2_derive
push 0x12d
push str.providersimplementationskdfspbkdf2.c
call fcn.1002f0d0
push 0
push 0xab
jmp 0x100dcdde
cmp dword [esp + 0x98], 0x10
jge 0x100dce67
call fcn.1002efd0
push str.pbkdf2_derive
push 0x131
push str.providersimplementationskdfspbkdf2.c
call fcn.1002f0d0
push 0
push 0x70
jmp 0x100dcdde
cmp dword [esp + 0xa0], ebp
ja 0x100dcea1
jb 0x100dce7f
cmp dword [esp + 0x9c], 0x3e8
jae 0x100dcea1
call fcn.1002efd0
push str.pbkdf2_derive
push 0x135
push str.providersimplementationskdfspbkdf2.c
call fcn.1002f0d0
push 0
push 0x7b
jmp 0x100dcdde
call fcn.10137340
mov dword [esp + 0x14], eax
test eax, eax
je 0x100dcde8
push 0
push esi
push dword [esp + 0x98]
mov esi, eax
push edi
push esi
call fcn.10137530
add esp, 0x14
test eax, eax
je 0x100dd15f
call fcn.10137340
mov ebp, eax
mov dword [esp + 0x40], ebp
test ebp, ebp
je 0x100dd15f
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x100dd157
mov edx, 1
jmp 0x100dcf04
mov esi, dword [esp + 0x14]
cmp ecx, dword [esp + 0x1c]
mov edi, ecx
mov eax, edx
mov byte [esp + 0x13], dl
cmovg edi, dword [esp + 0x1c]
shr eax, 0x18
mov byte [esp + 0x10], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x11], al
mov eax, edx
shr eax, 8
push esi
push ebp
mov dword [esp + 0x44], edi
mov byte [esp + 0x1a], al
call fcn.10137230
add esp, 8
test eax, eax
je 0x100dd15f
push dword [esp + 0x98]
push dword [esp + 0x34]
push ebp
call fcn.10137850
add esp, 0xc
test eax, eax
je 0x100dd15f
push 4
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.10137850
add esp, 0xc
test eax, eax
je 0x100dd15f
push 0
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.10137480
add esp, 0xc
test eax, eax
je 0x100dd15f
push edi
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.10146360
xor eax, eax
add esp, 0xc
mov esi, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
cmp eax, dword [esp + 0xa0]
ja 0x100dd130
jb 0x100dcfd0
cmp esi, dword [esp + 0x9c]
jae 0x100dd130
nop word [eax + eax]
push dword [esp + 0x14]
push ebp
call fcn.10137230
add esp, 8
test eax, eax
je 0x100dd15f
push dword [esp + 0x1c]
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.10137850
add esp, 0xc
test eax, eax
je 0x100dd15f
push 0
lea eax, [esp + 0x48]
push eax
push ebp
call fcn.10137480
add esp, 0xc
test eax, eax
je 0x100dd15f
xor ecx, ecx
test edi, edi
jle 0x100dd102
cmp edi, 0x40
jb 0x100dd0dd
lea edx, [ebx - 1]
lea eax, [esp + edi + 0x43]
add edx, edi
cmp ebx, eax
ja 0x100dd043
lea eax, [esp + 0x44]
cmp edx, eax
jae 0x100dd0dd
mov eax, edi
and eax, 0x8000003f
jns 0x100dd051
dec eax
or eax, 0xffffffc0
inc eax
mov edx, edi
lea esi, [esp + 0x44]
lea edi, [esp + 0x64]
sub edx, eax
sub edi, ebx
lea ebp, [esp + 0x54]
mov dword [esp + 0x34], edi
sub esi, ebx
sub ebp, ebx
lea edi, [esp + 0x74]
sub edi, ebx
mov eax, ebx
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
nop
movups xmm0, xmmword [eax]
add ecx, 0x40
lea eax, [eax + 0x40]
movups xmm1, xmmword [esi + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movups xmm0, xmmword [eax - 0x30]
movups xmm1, xmmword [eax + ebp - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
movups xmm0, xmmword [eax - 0x20]
movups xmm1, xmmword [edi + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm0, xmmword [eax - 0x10]
movups xmm1, xmmword [ebx + eax - 0x40]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp ecx, edx
jl 0x100dd080
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
cmp ecx, edi
jge 0x100dd102
lea esi, [esp + 0x44]
mov edx, edi
sub esi, ebx
lea eax, [ecx + ebx]
sub edx, ecx
nop
mov cl, byte [esi + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x100dd0f0
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
add esi, 1
mov dword [esp + 0x18], esi
adc eax, 0
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0xa0]
jb 0x100dcfd0
ja 0x100dd130
cmp esi, dword [esp + 0x9c]
jb 0x100dcfd0
mov ecx, dword [esp + 0xac]
add ebx, edi
mov edx, dword [esp + 0x24]
sub ecx, edi
inc edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ebx
test ecx, ecx
jne 0x100dcf00
mov dword [esp + 0x2c], 1
push ebp
call fcn.101372e0
push dword [esp + 0x18]
call fcn.101372e0
mov ecx, dword [esp + 0x8c]
add esp, 8
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10021a20
add esp, 0x78
ret