Function at 0x41b1d0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x320
mov esi, esp
mov edi, dword [ebp + 0xc]
lea eax, [0x444138]
mov dword [esi + 0x28c], eax
mov al, byte [esi + 0x88]
mov byte [esi + 0xa0], al
mov byte [esi + 0x8c], 0x97
mov byte [esi + 0x8d], 0x39
mov byte [esi + 0x8e], 0x9b
mov byte [esi + 0x8f], 0x3f
mov byte [esi + 0x90], 0xa5
mov byte [esi + 0x91], 0x3d
mov byte [esi + 0x92], 0x76
mov byte [esi + 0x93], 0x23
mov byte [esi + 0x94], 0x72
mov byte [esi + 0x95], 0x21
mov byte [esi + 0x96], 0x82
mov byte [esi + 0x97], 0x27
mov byte [esi + 0x98], 0x82
mov byte [esi + 0x99], 0x25
mov byte [esi + 0x9a], 0x2a
mov byte [esi + 0x9b], 0x2b
mov eax, 0x10
mov byte [esi + eax + 0x8c], 0
add eax, 1
cmp eax, 0x13
jne 0x41b271
xor eax, eax
cmp eax, 0x13
jae 0x41b2a5
mov cl, byte [esi + eax + 0x8c]
mov dl, al
add dl, 0xa
xor dl, cl
add dl, 0xce
mov byte [esi + eax + 0x8c], dl
add eax, 1
jmp 0x41b283
lea eax, [esi + 0x8c]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413a80
add esp, 0xc
and al, 1
movzx ebx, al
mov al, byte [esi + 0x84]
mov byte [esi + 0xa4], al
mov byte [esi + 0x144], 0x23
mov byte [esi + 0x145], 0x81
mov byte [esi + 0x146], 0x27
mov byte [esi + 0x147], 0x83
mov byte [esi + 0x148], 0x36
mov byte [esi + 0x149], 0x85
mov byte [esi + 0x14a], 0x32
mov byte [esi + 0x14b], 0x87
mov byte [esi + 0x14c], 0xf1
mov byte [esi + 0x14d], 0x89
mov byte [esi + 0x14e], 0xe4
mov byte [esi + 0x14f], 0x8b
mov byte [esi + 0x150], 0x28
mov byte [esi + 0x151], 0x8d
mov byte [esi + 0x152], 0x2c
mov byte [esi + 0x153], 0x8f
mov byte [esi + 0x154], 0x90
mov byte [esi + 0x155], 0x91
mov eax, 0x12
mov byte [esi + eax + 0x144], 0
add eax, 1
cmp eax, 0x15
jne 0x41b358
xor eax, eax
cmp eax, 0x15
jae 0x41b3b6
movzx edx, byte [esi + eax + 0x144]
mov edi, eax
xor edi, 0x94efc8df
mov ecx, eax
or ecx, 0x6b103720
and ecx, edi
mov edi, eax
or edi, 0x6b103720
add ecx, edi
mov edi, dword [ebp + 0xc]
xor ecx, edx
add ecx, 0xe8aeec5f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esi + eax + 0x144], cl
add eax, 1
jmp 0x41b36a
lea eax, [esi + 0x144]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413a80
add esp, 0xc
and al, 1
movzx eax, al
or ebx, eax
cmp ebx, 0
setne bl
mov al, byte [esi + 0x80]
mov byte [esi + 0xa8], al
mov byte [esi + 0xf4], 0x7e
mov byte [esi + 0xf5], 0xdb
mov byte [esi + 0xf6], 0x6b
mov byte [esi + 0xf7], 0xd9
mov byte [esi + 0xf8], 0x6e
mov byte [esi + 0xf9], 0xdf
mov byte [esi + 0xfa], 0x6d
mov byte [esi + 0xfb], 0xdd
mov byte [esi + 0xfc], 0x64
mov byte [esi + 0xfd], 0xd3
mov byte [esi + 0xfe], 0x6d
mov byte [esi + 0xff], 0xd1
mov byte [esi + 0x100], 0x65
mov byte [esi + 0x101], 0xd7
mov byte [esi + 0x102], 0x62
mov byte [esi + 0x103], 0xd5
mov byte [esi + 0x104], 0x65
mov byte [esi + 0x105], 0xab
mov byte [esi + 0x106], 0x1c
mov byte [esi + 0x107], 0xa9
mov byte [esi + 0x108], 0x27
mov byte [esi + 0x109], 0xaf
mov byte [esi + 0x10a], 0x5c
mov byte [esi + 0x10b], 0xad
mov byte [esi + 0x10c], 0x19
mov byte [esi + 0x10d], 0xa3
mov byte [esi + 0x10e], 0x15
mov byte [esi + 0x10f], 0xa1
mov byte [esi + 0x110], 0x1c
mov byte [esi + 0x111], 0xa7
mov byte [esi + 0x112], 0x19
mov byte [esi + 0x113], 0xa5
mov byte [esi + 0x114], 0x10
mov byte [esi + 0x115], 0xbb
mov byte [esi + 0x116], 1
mov byte [esi + 0x117], 0xb9
mov byte [esi + 0x118], 0xb8
mov byte [esi + 0x119], 0xbf
mov eax, 0x26
mov byte [esi + eax + 0xf4], 0
add eax, 1
cmp eax, 0x29
jne 0x41b4fd
xor edi, edi
cmp edi, 0x29
jae 0x41b545
movzx edx, byte [esi + edi + 0xf4]
mov ecx, edi
add ecx, 0x2f
mov eax, edi
add eax, 0x2f
or ecx, eax
and ecx, edx
mov eax, edi
add eax, 0xaf
add eax, edx
shl ecx, 1
sub eax, ecx
add al, 0x95
mov byte [esi + edi + 0xf4], al
add edi, 1
jmp 0x41b50f
lea eax, [esi + 0xf4]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov edi, dword [ebp + 0xc]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413a80
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0x7c]
mov byte [esi + 0xac], al
mov byte [esi + 0x120], 0xa7
mov byte [esi + 0x121], 0xc9
mov byte [esi + 0x122], 0xa5
mov byte [esi + 0x123], 0xd7
mov byte [esi + 0x124], 0xa7
mov byte [esi + 0x125], 0xd5
mov byte [esi + 0x126], 0xa5
mov byte [esi + 0x127], 0xd3
mov byte [esi + 0x128], 0xb9
mov byte [esi + 0x129], 0xd1
mov byte [esi + 0x12a], 0xb3
mov byte [esi + 0x12b], 0xdf
mov byte [esi + 0x12c], 0xa3
mov byte [esi + 0x12d], 0xdd
mov byte [esi + 0x12e], 0xe8
mov byte [esi + 0x12f], 0xdb
mov byte [esi + 0x130], 0xa7
mov byte [esi + 0x131], 0xd9
mov byte [esi + 0x132], 0x97
mov byte [esi + 0x133], 0xe7
mov byte [esi + 0x134], 0x90
mov byte [esi + 0x135], 0xe5
mov byte [esi + 0x136], 0x8b
mov byte [esi + 0x137], 0xe3
mov byte [esi + 0x138], 0x9c
mov byte [esi + 0x139], 0xe1
mov byte [esi + 0x13a], 0x83
mov byte [esi + 0x13b], 0xef
mov byte [esi + 0x13c], 0xec
mov byte [esi + 0x13d], 0xed
mov eax, 0x1e
mov byte [esi + eax + 0x120], 0
add eax, 1
cmp eax, 0x23
jne 0x41b65a
xor eax, eax
cmp eax, 0x23
jae 0x41b6b8
movzx edi, byte [esi + eax + 0x120]
mov edx, eax
add edx, 0xb84b424e
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xb1
sub ecx, eax
and ecx, edi
mov edi, dword [ebp + 0xc]
or ecx, edx
mov edx, ecx
and edx, 0x87
xor edx, 0x87
and ecx, 0x78
sub ecx, edx
add cl, 1
mov byte [esi + eax + 0x120], cl
add eax, 1
jmp 0x41b66c
lea eax, [esi + 0x120]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413a80
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0x5c]
mov byte [esi + 0xb0], al
mov byte [esi + 0x60], 0x1c
mov byte [esi + 0x61], 0x89
mov byte [esi + 0x62], 0x25
mov byte [esi + 0x63], 0xb7
mov byte [esi + 0x64], 0xdf
mov byte [esi + 0x65], 0xb5
mov byte [esi + 0x66], 0xdb
mov byte [esi + 0x67], 0xb3
mov byte [esi + 0x68], 0x22
mov byte [esi + 0x69], 0xb1
mov byte [esi + 0x6a], 0x21
mov byte [esi + 0x6b], 0xbf
mov byte [esi + 0x6c], 0xee
mov byte [esi + 0x6d], 0xbd
mov byte [esi + 0x6e], 0x2c
mov byte [esi + 0x6f], 0xbb
mov byte [esi + 0x70], 0x27
mov byte [esi + 0x71], 0xb9
mov byte [esi + 0x72], 0x35
mov byte [esi + 0x73], 0xa7
mov byte [esi + 0x74], 0x36
mov byte [esi + 0x75], 0xa5
mov byte [esi + 0x76], 0xa2
mov byte [esi + 0x77], 0xa3
mov eax, 0x18
mov byte [esi + eax + 0x60], 0
add eax, 1
cmp eax, 0x1a
jne 0x41b758
xor eax, eax
cmp eax, 0x1a
jae 0x41b7a9
movzx edi, byte [esi + eax + 0x60]
mov edx, eax
add edx, 0x5c60bf1e
mov ecx, edi
xor ecx, 0xffffffff
and edx, ecx
mov ecx, 0xe1
sub ecx, eax
and ecx, edi
mov edi, dword [ebp + 0xc]
or ecx, edx
mov edx, ecx
xor edx, 0x2f
shl ecx, 1
and ecx, 0xa0
sub ecx, edx
add cl, 0x99
mov byte [esi + eax + 0x60], cl
add eax, 1
jmp 0x41b767
lea eax, [esi + 0x60]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413a80
add esp, 0xc
and al, 1
movzx ecx, al
and bl, 1
movzx eax, bl
mov edx, ecx
xor edx, 0xffffffff
mov edi, eax
and edi, edx
mov edx, eax
xor edx, ecx
add eax, edx
sub eax, edi
xor ebx, ebx
cmp eax, 0
setne byte [esi + 3]
mov al, byte [esi + 0x38]
mov byte [esi + 0xb4], al
mov byte [esi + 0x3c], 0x4c
mov byte [esi + 0x3d], 0x3f
mov byte [esi + 0x3e], 0x42
mov byte [esi + 0x3f], 0x31
mov byte [esi + 0x40], 0x53
mov byte [esi + 0x41], 0x33
mov byte [esi + 0x42], 0x57
mov byte [esi + 0x43], 0x35
mov byte [esi + 0x44], 0x53
mov byte [esi + 0x45], 0x37
mov byte [esi + 0x46], 0x43
mov byte [esi + 0x47], 0x49
mov byte [esi + 0x48], 0x76
mov byte [esi + 0x49], 0x4b
mov byte [esi + 0x4a], 0x3f
mov byte [esi + 0x4b], 0x4d
mov byte [esi + 0x4c], 0x3f
mov byte [esi + 0x4d], 0x4f
mov byte [esi + 0x4e], 0x32
mov byte [esi + 0x4f], 0x41
mov byte [esi + 0x50], 0x3b
mov byte [esi + 0x51], 0x43
mov byte [esi + 0x52], 0x36
mov byte [esi + 0x53], 0x45
mov byte [esi + 0x54], 0x23
mov byte [esi + 0x55], 0x47
mov byte [esi + 0x56], 0x46
mov byte [esi + 0x57], 0x59
mov eax, 0x1c
mov byte [esi + eax + 0x3c], 0
add eax, 1
cmp eax, 0x1e
jne 0x41b868
xor eax, eax
mov edi, dword [ebp + 0xc]
cmp eax, 0x1e
jae 0x41b896
mov cl, byte [esi + eax + 0x3c]
mov dl, 0x4a
sub dl, al
xor dl, cl
mov cl, 0x76
sub cl, dl
mov byte [esi + eax + 0x3c], cl
add eax, 1
jmp 0x41b87a
sub esp, 0xc
lea eax, [esi + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00413a80
add esp, 0xc
movzx eax, al
mov cl, byte [esi + 3]
mov bl, cl
mov edx, ebx
and edx, 1
not ebx
mov ecx, eax
not ecx
or edx, 0x7098ef4e
or eax, 0x7098ef4e
xor edx, eax
or ebx, ecx
not ebx
or edx, ebx
mov eax, edx
mov dword [esi + 0x14], eax
test edx, edx
setne al
xor ecx, ecx
cmp dword [ebp + 0x10], 0
sete cl
mov dword [esi + 0x288], ecx
mov ecx, dword [esi + 0x28c]
mov edx, dword [esi + 0x288]
mov ecx, dword [ecx + edx*4]
mov dword [esi + 0x18c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x190], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x188], ecx
mov dword [ecx], 0x28
push eax
mov ecx, esp
mov dword [esi + 0x198], ecx
mov dword [ecx], 0x444140
push eax
mov dword [esi + 0x194], esp
push eax
mov ecx, esp
mov dword [esi + 0x1a8], ecx
mov dword [ecx], 0x444148
push eax
mov dword [esi + 0x1a0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1a4], ecx
mov dword [ecx], 0x444150
push eax
mov dword [esi + 0x19c], esp
push eax
mov ecx, esp
mov dword [esi + 0x1c8], ecx
mov dword [ecx], 0x444158
push eax
mov dword [esi + 0x1bc], esp
push eax
mov ecx, esp
mov dword [esi + 0x1c0], ecx
mov dword [ecx], 0x444160
push eax
mov dword [esi + 0x1b4], esp
push eax
mov ecx, esp
mov dword [esi + 0x1e0], ecx
mov dword [ecx], 0x444168
push eax
mov dword [esi + 0x1d4], esp
push eax
mov ecx, esp
mov dword [esi + 0x1dc], ecx
mov dword [ecx], 0x444170
push eax
mov dword [esi + 0x1d0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1e8], ecx
mov dword [ecx], 0x444178
push eax
mov dword [esi + 0x1e4], esp
push eax
mov ecx, esp
mov dword [esi + 0x1d8], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x1cc], ecx
mov dword [ecx], 0x14
push eax
mov ebx, esp
mov dword [ebx], 0x444180
push eax
mov dword [esi + 0x27c], esp
push eax
mov edi, esp
mov dword [esi + 0x278], edi
mov dword [edi], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x260], ecx
mov dword [ecx], 0x1e
push eax
mov ecx, esp
mov dword [esi + 0x258], ecx
mov dword [ecx], 0x444188
push eax
mov dword [esi + 0x254], esp
push eax
mov ecx, esp
mov dword [esi + 0x250], ecx
mov dword [ecx], 0x444190
push eax
mov dword [esi + 0x24c], esp
push eax
mov ecx, esp
mov dword [esi + 0x248], ecx
mov dword [ecx], 0x444198
push eax
mov dword [esi + 0x244], esp
push eax
mov ecx, esp
mov dword [esi + 0x240], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x23c], ecx
mov dword [ecx], 0x1d
push eax
mov ecx, esp
mov dword [esi + 0x238], ecx
mov dword [ecx], 0x4441a0
push eax
mov dword [esi + 0x234], esp
push eax
mov ecx, esp
mov dword [esi + 0x230], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x22c], ecx
mov dword [ecx], 0x1c
push eax
mov ecx, esp
mov dword [esi + 0x228], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x224], ecx
mov dword [ecx], 0x1d
push eax
mov ecx, esp
mov dword [esi + 0x21c], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x204], ecx
mov dword [ecx], 0x14
push eax
mov ecx, esp
mov dword [esi + 0x218], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x200], ecx
mov dword [ecx], 0x1f
push eax
mov ecx, esp
mov dword [esi + 0x210], ecx
mov dword [ecx], 0x4441a8
push eax
mov dword [esi + 0x1fc], esp
push eax
mov ecx, esp
mov dword [esi + 0x220], ecx
mov dword [ecx], 0x4441b0
push eax
mov dword [esi + 0x214], esp
push eax
mov ecx, esp
mov dword [esi + 0x20c], ecx
mov dword [ecx], 0x4441b8
push eax
mov dword [esi + 0x1f8], esp
push eax
mov ecx, esp
mov dword [esi + 0x208], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x1f4], ecx
mov dword [ecx], 0x23
push eax
mov ecx, esp
mov dword [esi + 0x1f0], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x1ec], ecx
mov dword [ecx], 0x24
push eax
mov edi, esp
mov dword [esi + 0x284], edi
mov dword [edi], 0x443ff0
push eax
mov edi, esp
mov dword [esi + 0x26c], edi
mov dword [edi], 0x25
push eax
mov edi, esp
mov dword [esi + 0x274], edi
mov dword [edi], 0x4441c0
push eax
mov dword [esi + 0x264], esp
push eax
mov edi, esp
mov dword [esi + 0x270], edi
mov dword [edi], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x25c], ecx
mov dword [ecx], 0x27
push eax
mov edi, esp
mov dword [edi], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x268], ecx
mov dword [ecx], 0x28
push eax
mov ecx, esp
mov dword [esi + 0x17c], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x178], ecx
mov dword [ecx], 0xe
push eax
mov ecx, esp
mov dword [esi + 0x184], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x180], ecx
mov dword [ecx], 0x12
push eax
mov ecx, esp
mov dword [esi + 0x1b0], ecx
mov dword [ecx], 0x443ff0
push eax
mov ecx, esp
mov dword [esi + 0x1ac], ecx
mov dword [ecx], 0x18
push eax
mov ecx, esp
mov dword [ecx], 0x443ff0
push eax
mov edx, esp
mov dword [esi + 0x1b8], edx
mov dword [edx], 0x20
jmp dword [esi + 0x18c]