Function at 0x101d3b70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x10284f40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
test eax, eax
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov esi, ebx
mov dword [ebp - 0x17c], ecx
mov ecx, dword [ebp + 0xc]
mov edi, 0x1000
cmovg edi, eax
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x184], edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x101d3bb3
sub esi, ecx
mov dword [ebp - 0x180], 0x1000000
push esi
lea eax, [ebp - 0x174]
push ebx
push eax
call fcn.101d36a0
push dword [ebp - 0x178]
lea eax, [ebp - 0x174]
push dword [ebp - 0x17c]
push eax
call fcn.101d44a0
push 4
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
lea eax, [ebp - 0x174]
push eax
call fcn.101d4490
push 0x40
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
push 0x20
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
add esp, 0x48
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
movups xmm0, xmmword [ebp - 0x44]
add esp, 8
movups xmmword [ebp - 0x64], xmm0
movups xmm0, xmmword [ebp - 0x34]
movups xmmword [ebp - 0x54], xmm0
cmp edi, 2
jl 0x101d3d30
dec edi
push esi
lea eax, [ebp - 0x174]
push ebx
push eax
call fcn.101d36a0
push 0x20
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
lea eax, [ebp - 0x174]
push eax
call fcn.101d4490
push 0x40
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
push 0x20
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
add esp, 0x44
xor eax, eax
nop
movups xmm0, xmmword [ebp + eax - 0x64]
movups xmm1, xmmword [ebp + eax - 0x84]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x64], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x101d3cf0
movups xmm0, xmmword [ebp - 0x84]
movups xmmword [ebp - 0x44], xmm0
movups xmm0, xmmword [ebp - 0x74]
movups xmmword [ebp - 0x34], xmm0
sub edi, 1
jne 0x101d3c74
mov edi, dword [ebp - 0x184]
push 0x20
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d36a0
push 0xa
lea eax, [ebp - 0x174]
push str.Client_Key
push eax
call fcn.101d44a0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
lea eax, [ebp - 0x174]
push eax
call fcn.101d4490
push 0x40
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
push 0x20
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
add esp, 0x44
lea eax, [ebp - 0x134]
push eax
call fcn.101d4490
push 0x20
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.101d44a0
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.101d44b0
push 0x20
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d36a0
push 0xa
lea eax, [ebp - 0x174]
push str.Server_Key
push eax
call fcn.101d44a0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
lea eax, [ebp - 0x174]
push eax
call fcn.101d4490
push 0x40
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
add esp, 0x48
lea eax, [ebp - 0x24]
push 0x20
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44a0
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x174]
push eax
call fcn.101d44b0
push dword [ebp - 0x178]
call fcn.101d3240
push 0x20
mov esi, eax
call fcn.101d3240
push 0x20
add esi, eax
call fcn.101d3240
add eax, 0x1c
add eax, esi
push eax
call fcn.100f426e
mov ebx, eax
add esp, 0x24
test ebx, ebx
jne 0x101d3ea2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e40d6
mov esp, ebp
pop ebp
ret
push edi
push str.SCRAM_SHA_256__d:
push ebx
call fcn.101d48d0
lea esi, [ebx + eax]
push esi
push dword [ebp - 0x178]
push dword [ebp - 0x17c]
call fcn.101d3070
add esi, eax
lea eax, [ebp - 0xa4]
mov byte [esi], 0x24
inc esi
push esi
push 0x20
push eax
call fcn.101d3070
add esi, eax
lea eax, [ebp - 0xc4]
mov byte [esi], 0x3a
inc esi
push esi
push 0x20
push eax
call fcn.101d3070
mov ecx, dword [ebp - 4]
add esp, 0x30
xor ecx, ebp
mov byte [eax + esi], 0
mov eax, ebx
pop edi
pop esi
pop ebx
call fcn.100e40d6
mov esp, ebp
pop ebp
ret