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

Disassembly:
push 0x5c
mov eax, 0x4371f2
call fcn.0041da77
mov eax, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x34], eax
xor ebx, ebx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x14], ebx
push 0x441e50
mov dword [ebp - 4], 2
call fcn.00404163
lea edi, [ebp - 0x24]
mov esi, 0x442414
push 0x37
mov dword [ebp - 0x14], 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
cmp byte [0x44241d], bl
je 0x40cc0d
mov ecx, ebx
xor edx, edx
mov eax, ecx
div esi
add dl, 0x36
xor byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 0xa
jl 0x40cbfa
lea eax, [ebp + 8]
push eax
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x68]
call fcn.00404fd1
pop ecx
push 2
push 0x441e54
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.00404367
push eax
lea ecx, [ebp - 0x30]
call fcn.0040412a
mov dword [ebp - 0x14], 3
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004042eb
lea ecx, [ebp - 0x30]
call fcn.004026b1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 2
call fcn.004026b1
lea ecx, [ebp - 0x4c]
call fcn.00415024
mov dword [ebp - 0x34], eax
mov esi, 0x442194
mov byte [ebp - 4], 5
cmp byte [0x44219d], 0
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40cca2
push 0x37
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x36
xor byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 0xa
jl 0x40cc8c
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x68]
call fcn.00409019
pop ecx
push 3
push 0x441e58
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.00404367
push eax
lea ecx, [ebp - 0x30]
call fcn.0040412a
mov dword [ebp - 0x14], 7
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004042eb
lea ecx, [ebp - 0x30]
call fcn.004026b1
lea ecx, [ebp - 0x68]
call fcn.004026b1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.004026b1
lea ecx, [ebp - 0x68]
call fcn.00410823
mov dword [ebp - 0x34], eax
mov esi, 0x44200c
mov byte [ebp - 4], 8
cmp byte [0x442015], 0
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x40cd3c
push 0x37
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x36
xor byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 0xa
jl 0x40cd26
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x4c]
call fcn.00409019
pop ecx
push 3
push 0x441e58
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.00404367
push eax
lea ecx, [ebp - 0x30]
call fcn.0040412a
mov dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004042eb
lea ecx, [ebp - 0x30]
call fcn.004026b1
lea ecx, [ebp - 0x4c]
call fcn.004026b1
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 2
call fcn.004026b1
mov esi, 0x4421bc
lea edi, [ebp - 0x2c]
push 0x37
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x36
xor byte [ebp + ecx - 0x2c], dl
inc ecx
cmp ecx, 0x11
jl 0x40cda9
push 0x44ade0
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x4c]
call fcn.00404fd1
pop ecx
push 3
push 0x441e58
mov ecx, eax
mov byte [ebp - 4], 0xb
call fcn.00404367
push eax
lea ecx, [ebp - 0x30]
call fcn.0040412a
mov dword [ebp - 0x14], 0x1f
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004042eb
lea ecx, [ebp - 0x30]
call fcn.004026b1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.004026b1
mov esi, 0x442158
lea edi, [ebp - 0x24]
push 0x37
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edx, edx
mov eax, ebx
div ecx
add dl, 0x36
xor byte [ebp + ebx - 0x24], dl
inc ebx
cmp ebx, 0xb
jl 0x40ce23
lea eax, [ebp + 0x20]
push eax
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x4c]
call fcn.00404fd1
pop ecx
push 1
push str.____n_
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.00404367
push eax
lea ecx, [ebp - 0x30]
call fcn.0040412a
mov dword [ebp - 0x14], 0x3f
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x30]
mov ebx, dword [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.004042eb
lea ecx, [ebp - 0x30]
call fcn.004026b1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call fcn.004026b1
push 1
push str.1_x
mov ecx, ebx
call fcn.00404367
lea ecx, [ebp + 8]
call fcn.004026b1
lea ecx, [ebp + 0x20]
call fcn.004026b1
mov eax, ebx
call fcn.0041da45
ret