Function at 0x100110d5
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10035519
call fcn.10034326
mov ebx, ecx
xor edx, edx
mov esi, 0xe10
push 0x3c
pop edi
cmp byte [ebx + 0x20], dl
je 0x10011295
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x10011103
dec ecx
mov dword [ebx + 0x24], ecx
test ecx, ecx
js 0x10011286
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
idiv edi
mov esi, eax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
push 0xa
pop ecx
mov dword [ebp - 4], eax
push edx
push esi
cmp esi, ecx
jae 0x10011199
cmp edx, ecx
jae 0x10011173
mov cl, 0x55
mov dword [ebp - 0x34], 0x31706555
mov dword [ebp - 0x30], 0x3170656f
mov byte [ebp - 0x2c], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10011164
mov cl, byte [ebp - 0x34]
jmp 0x10011155
xor edx, edx
mov byte [ebp - 0x2c], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
jmp 0x100111e1
mov cl, 0xe
mov dword [ebp - 0x34], 0x6a2b3e0e
mov dword [ebp - 0x30], 0x6a2b34
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10011192
mov cl, byte [ebp - 0x34]
jmp 0x10011183
xor edx, edx
mov byte [ebp - 0x2d], dl
jmp 0x10011169
cmp edx, ecx
jae 0x100111bc
mov cl, 0x7e
mov dword [ebp - 0x34], 0x441a5b7e
mov dword [ebp - 0x30], 0x1a5b4e
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10011192
mov cl, byte [ebp - 0x34]
jmp 0x100111ad
sub esp, 0x18
mov byte [ebp - 0x31], cl
lea ecx, [ebp - 0x34]
mov word [ebp - 0x34], 0x1530
mov byte [ebp - 0x32], 0x54
mov esi, esp
mov word [ebp - 0x30], 0x5415
mov byte [ebp - 0x2e], al
call fcn.10005161
mov ecx, esi
push eax
call fcn.10002604
lea eax, [ebp - 0x50]
push eax
call fcn.1000485c
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10005397
lea ecx, [ebp - 0x50]
call fcn.10002410
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003e6f0]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x2b05532d
mov ecx, edx
mov byte [ebp - 0x3c], dl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10011229
sub esp, 0x18
mov byte [ebp - 0x3c], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [ebx + 8]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x1001127e
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.100023e3
push 0x3c
mov esi, 0xe10
pop edi
xor ecx, ecx
xor edx, edx
cmp dword [ebx + 0x24], ecx
jg 0x10011295
mov byte [ebx + 0x20], cl
mov dword [ebx + 0x24], ecx
cmp byte [ebx + 0x21], 0
je 0x10011451
movzx eax, word [ebx + 0x28]
mov ecx, eax
test ax, ax
jle 0x100112b2
dec eax
mov word [ebx + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10011442
movsx ecx, cx
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
idiv edi
movzx esi, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
movzx ecx, dx
xor edx, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], dl
push 0xa
pop edi
mov dword [ebp - 4], 2
cmp si, di
jae 0x1001132a
cmp cx, di
jae 0x1001132a
push ecx
push esi
mov cl, 0x27
mov dword [ebp - 0x34], 0x43021727
mov dword [ebp - 0x30], 0x4302171d
mov eax, edx
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10011325
mov cl, byte [ebp - 0x34]
jmp 0x10011316
mov byte [ebp - 0x2c], dl
jmp 0x100113a5
mov eax, ecx
mov edx, esi
push eax
push edx
xor edx, edx
mov eax, edx
cmp si, di
jae 0x1001135d
mov cl, 0x6d
mov dword [ebp - 0x34], 0x9485d6d
mov dword [ebp - 0x30], 0x94857
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10011358
mov cl, byte [ebp - 0x34]
jmp 0x10011349
mov byte [ebp - 0x2d], dl
jmp 0x100113a5
cmp cx, di
jae 0x10011381
mov cl, 0x47
mov dword [ebp - 0x34], 0x7d236247
mov dword [ebp - 0x30], 0x236277
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10011358
mov cl, byte [ebp - 0x34]
jmp 0x10011372
mov cl, 0x36
mov dword [ebp - 0x34], 0xc521336
mov word [ebp - 0x30], 0x5213
mov byte [ebp - 0x2e], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100113a2
mov cl, byte [ebp - 0x34]
jmp 0x10011393
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10005397
lea ecx, [ebp - 0x68]
call fcn.10002410
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003e6d0]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x1f49374c
mov ecx, edx
mov word [ebp - 0x3c], 0x31
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x100113f8
sub esp, 0x18
mov byte [ebp - 0x3b], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.1000485c
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [ebx + 0xc]
call fcn.10009b96
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x28]
call fcn.10002410
xor edx, edx
cmp word [ebx + 0x28], dx
jg 0x10011451
xor eax, eax
mov byte [ebx + 0x21], dl
mov word [ebx + 0x28], ax
call fcn.100342e4
ret