Function at 0x41a700
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x340
mov esi, esp
mov edi, dword [ebp + 0xc]
lea eax, [0x443174]
mov dword [esi + 0x2ac], eax
mov al, byte [esi + 0xa8]
mov byte [esi + 0xc0], al
mov byte [esi + 0xac], 0x1f
mov byte [esi + 0xad], 0x89
mov byte [esi + 0xae], 0xdb
mov byte [esi + 0xaf], 0xb7
mov byte [esi + 0xb0], 0x2d
mov byte [esi + 0xb1], 0xb5
mov byte [esi + 0xb2], 0xee
mov byte [esi + 0xb3], 0xb3
mov byte [esi + 0xb4], 0xe2
mov byte [esi + 0xb5], 0xb1
mov byte [esi + 0xb6], 0xd2
mov byte [esi + 0xb7], 0xbf
mov byte [esi + 0xb8], 0xd2
mov byte [esi + 0xb9], 0xbd
mov byte [esi + 0xba], 0xba
mov byte [esi + 0xbb], 0xbb
mov eax, 0x10
mov byte [esi + eax + 0xac], 0
add eax, 1
cmp eax, 0x11
jne 0x41a7a1
xor eax, eax
cmp eax, 0x11
jae 0x41a818
movzx edx, byte [esi + eax + 0xac]
mov edi, 0x61
sub edi, eax
mov ecx, 0x61
sub ecx, eax
or edi, ecx
mov ecx, 0x9a110561
sub ecx, eax
and edi, ecx
xor edi, 0xffffffff
mov ecx, edx
and ecx, edi
mov edi, 0xcd088261
sub edi, eax
mov ebx, edx
shl ebx, 1
xor ebx, 0xffffffff
add ebx, edx
and edi, ebx
or ecx, edi
mov edi, dword [ebp + 0xc]
mov edx, ecx
xor edx, 0xffffffff
shl edx, 1
and edx, 0xd2
xor ecx, 0x16
add ecx, edx
add cl, 1
mov byte [esi + eax + 0xac], cl
add eax, 1
jmp 0x41a7b3
lea eax, [esi + 0xac]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413840
add esp, 0xc
and al, 1
movzx ebx, al
mov al, byte [esi + 0xa4]
mov byte [esi + 0xc4], al
mov byte [esi + 0x138], 0x47
mov byte [esi + 0x139], 0x39
mov byte [esi + 0x13a], 0x4b
mov byte [esi + 0x13b], 0x37
mov byte [esi + 0x13c], 0xba
mov byte [esi + 0x13d], 0x35
mov byte [esi + 0x13e], 0xbe
mov byte [esi + 0x13f], 0x33
mov byte [esi + 0x140], 0x79
mov byte [esi + 0x141], 0x31
mov byte [esi + 0x142], 0x7c
mov byte [esi + 0x143], 0x4f
mov byte [esi + 0x144], 0x30
mov byte [esi + 0x145], 0x4d
mov byte [esi + 0x146], 0x34
mov byte [esi + 0x147], 0x4b
mov byte [esi + 0x148], 0x48
mov byte [esi + 0x149], 0x49
mov eax, 0x12
mov byte [esi + eax + 0x138], 0
add eax, 1
cmp eax, 0x18
jne 0x41a8cb
xor eax, eax
cmp eax, 0x18
jae 0x41a932
movzx ecx, byte [esi + eax + 0x138]
mov edx, eax
add edx, 0xb6
and edx, ecx
add ecx, eax
add ecx, 0xa18463b6
shl edx, 1
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xe2
xor ecx, 0x71
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x138], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
xor eax, 0xffffffff
add edx, eax
sub ecx, edx
mov eax, ecx
jmp 0x41a8dd
lea eax, [esi + 0x138]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413840
add esp, 0xc
and al, 1
movzx eax, al
mov ecx, eax
xor ecx, 0xffffffff
mov edx, ebx
and edx, ecx
mov ecx, ebx
xor ecx, eax
add ebx, ecx
sub ebx, edx
cmp ebx, 0
setne byte [esi + 7]
mov al, byte [esi + 0xa0]
mov byte [esi + 0xc8], al
mov byte [esi + 0x44], 0x56
mov byte [esi + 0x45], 0xcb
mov byte [esi + 0x46], 0x5b
mov byte [esi + 0x47], 0xc9
mov byte [esi + 0x48], 0x46
mov byte [esi + 0x49], 0xc7
mov byte [esi + 0x4a], 0x55
mov byte [esi + 0x4b], 0xc5
mov byte [esi + 0x4c], 0x5c
mov byte [esi + 0x4d], 0xc3
mov byte [esi + 0x4e], 0x55
mov byte [esi + 0x4f], 0xc1
mov byte [esi + 0x50], 0x4d
mov byte [esi + 0x51], 0xff
mov byte [esi + 0x52], 0x72
mov byte [esi + 0x53], 0xfd
mov byte [esi + 0x54], 0x6d
mov byte [esi + 0x55], 0xfb
mov byte [esi + 0x56], 0x74
mov byte [esi + 0x57], 0xf9
mov byte [esi + 0x58], 0x7f
mov byte [esi + 0x59], 0xf7
mov byte [esi + 0x5a], 0xa4
mov byte [esi + 0x5b], 0xf5
mov byte [esi + 0x5c], 0x79
mov byte [esi + 0x5d], 0xf3
mov byte [esi + 0x5e], 0x7d
mov byte [esi + 0x5f], 0xf1
mov byte [esi + 0x60], 0x64
mov byte [esi + 0x61], 0xef
mov byte [esi + 0x62], 0x79
mov byte [esi + 0x63], 0xed
mov byte [esi + 0x64], 0x60
mov byte [esi + 0x65], 0xeb
mov byte [esi + 0x66], 0x71
mov byte [esi + 0x67], 0xe9
mov byte [esi + 0x68], 0xe8
mov byte [esi + 0x69], 0xe7
mov eax, 0x26
mov byte [esi + eax + 0x44], 0
add eax, 1
cmp eax, 0x28
jne 0x41aa17
xor eax, eax
cmp eax, 0x28
jae 0x41aa8f
movzx ecx, byte [esi + eax + 0x44]
mov edi, 0xc7b5a6ac
sub edi, eax
and edi, 0xa112699b
mov edx, eax
add edx, 0x384a5954
mov ebx, 0xc7b5a6ac
sub ebx, eax
or ebx, 0x5eed9664
add ebx, edx
or edi, ebx
mov edx, ecx
xor edx, 0x64
mov ebx, ecx
xor ebx, 0x5eed9664
or edx, ebx
and edx, edi
xor ecx, 0x5eed9664
or ecx, edi
mov edi, dword [ebp + 0xc]
xor ecx, 0xffffffff
or edx, ecx
mov ecx, edx
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, 0x60
add edx, ecx
mov byte [esi + eax + 0x44], dl
add eax, 1
jmp 0x41aa26
lea eax, [esi + 0x44]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413840
add esp, 0xc
and al, 1
movzx eax, al
mov cl, byte [esi + 7]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0x9c]
mov byte [esi + 0xcc], al
mov byte [esi + 0x114], 0x33
mov byte [esi + 0x115], 0x91
mov byte [esi + 0x116], 5
mov byte [esi + 0x117], 0x93
mov byte [esi + 0x118], 0xb
mov byte [esi + 0x119], 0x9d
mov byte [esi + 0x11a], 0x35
mov byte [esi + 0x11b], 0x9f
mov byte [esi + 0x11c], 0x31
mov byte [esi + 0x11d], 0x99
mov byte [esi + 0x11e], 0x37
mov byte [esi + 0x11f], 0x9b
mov byte [esi + 0x120], 0x17
mov byte [esi + 0x121], 0x85
mov byte [esi + 0x122], 0x50
mov byte [esi + 0x123], 0x87
mov byte [esi + 0x124], 0x13
mov byte [esi + 0x125], 0x81
mov byte [esi + 0x126], 0x13
mov byte [esi + 0x127], 0x83
mov byte [esi + 0x128], 0x18
mov byte [esi + 0x129], 0x8d
mov byte [esi + 0x12a], 0x27
mov byte [esi + 0x12b], 0x8f
mov byte [esi + 0x12c], 0x14
mov byte [esi + 0x12d], 0x89
mov byte [esi + 0x12e], 0x27
mov byte [esi + 0x12f], 0x8b
mov byte [esi + 0x130], 0x74
mov byte [esi + 0x131], 0x75
mov eax, 0x1e
mov byte [esi + eax + 0x114], 0
add eax, 1
cmp eax, 0x21
jne 0x41aba4
xor eax, eax
cmp eax, 0x21
jae 0x41abf5
movzx edx, byte [esi + eax + 0x114]
mov ecx, eax
add ecx, 0x51e629e4
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x16
xor ecx, 0x66812e8b
mov edi, ecx
add edi, edx
and ecx, 1
or edi, 1
add ecx, edi
mov edi, dword [ebp + 0xc]
mov byte [esi + eax + 0x114], cl
add eax, 1
jmp 0x41abb6
lea eax, [esi + 0x114]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.00413840
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx edx, bl
mov ecx, edx
xor ecx, 0xffffffff
mov edi, eax
xor edi, 0xffffffff
and ecx, edi
or eax, edx
xor eax, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0
setne bl
mov al, byte [esi + 0x98]
mov byte [esi + 0xd0], al
mov byte [esi + 0x10], 0xc8
mov byte [esi + 0x11], 0x2b
mov byte [esi + 0x12], 0xbb
mov byte [esi + 0x13], 0x29
mov byte [esi + 0x14], 0xc1
mov byte [esi + 0x15], 0x2f
mov byte [esi + 0x16], 0xc1
mov byte [esi + 0x17], 0x2d
mov byte [esi + 0x18], 0xbe
mov byte [esi + 0x19], 0xd3
mov byte [esi + 0x1a], 0x47
mov byte [esi + 0x1b], 0xd1
mov byte [esi + 0x1c], 2
mov byte [esi + 0x1d], 0xd7
mov byte [esi + 0x1e], 0x38
mov byte [esi + 0x1f], 0xd5
mov byte [esi + 0x20], 0x41
mov byte [esi + 0x21], 0xdb
mov byte [esi + 0x22], 0x4b
mov byte [esi + 0x23], 0xd9
mov byte [esi + 0x24], 0x4a
mov byte [esi + 0x25], 0xdf
mov byte [esi + 0x26], 0xde
mov byte [esi + 0x27], 0xdd
xor eax, eax
cmp eax, 0x18
jae 0x41acc5
mov cl, byte [esi + eax + 0x10]
mov dl, al
add dl, 0xf7
xor dl, cl
add dl, 0x2d
mov byte [esi + eax + 0x10], dl
add eax, 1
jmp 0x41aca9
lea eax, [esi + 0x10]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00413840
add esp, 0xc
and al, 1
movzx edx, al
and bl, 1
movzx eax, bl
mov ecx, eax
xor ecx, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
and eax, 0xec398733
and edx, 0xec398733
or eax, 0x13c678cc
or edx, 0x13c678cc
xor eax, edx
or ecx, edi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or eax, ecx
cmp eax, 0
setne bl
mov al, byte [esi + 0x94]
mov byte [esi + 0xd4], al
mov byte [esi + 0x28], 0xd4
mov byte [esi + 0x29], 0x47
mov byte [esi + 0x2a], 0xd2
mov byte [esi + 0x2b], 0x41
mov byte [esi + 0x2c], 0xe3
mov byte [esi + 0x2d], 0x43
mov byte [esi + 0x2e], 0xef
mov byte [esi + 0x2f], 0x4d
mov byte [esi + 0x30], 0xe3
mov byte [esi + 0x31], 0x4f
mov byte [esi + 0x32], 0xd3
mov byte [esi + 0x33], 0x49
mov byte [esi + 0x34], 0x1e
mov byte [esi + 0x35], 0x4b
mov byte [esi + 0x36], 0xd7
mov byte [esi + 0x37], 0xb5
mov byte [esi + 0x38], 0x27
mov byte [esi + 0x39], 0xb7
mov byte [esi + 0x3a], 0x22
mov byte [esi + 0x3b], 0xb1
mov byte [esi + 0x3c], 0x1b
mov byte [esi + 0x3d], 0xb3
mov byte [esi + 0x3e], 0x2e
mov byte [esi + 0x3f], 0xbd
mov byte [esi + 0x40], 0x13
mov byte [esi + 0x41], 0xbf
mov byte [esi + 0x42], 0xbe
mov byte [esi + 0x43], 0xb9
xor eax, eax
cmp eax, 0x1c
jae 0x41ade8
movzx edx, byte [esi + eax + 0x28]
mov ecx, eax
add ecx, 0xb2279b71
mov edi, 0x8e
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0x94
mov edi, ecx
shl edi, 1
and edi, 0x94
add edi, 0x36
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x28], cl
add eax, 1
jmp 0x41ad9f
sub esp, 0xc
lea eax, [esi + 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00413840
add esp, 0xc
or al, bl
and al, 1
mov byte [esi + 6], al
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
mov dword [esi + 0x2a8], eax
mov eax, dword [esi + 0x2ac]
mov ecx, dword [esi + 0x2a8]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0x178], eax
push eax
mov eax, esp
mov dword [esi + 0x180], eax
mov dword [eax], 0x44317c
push eax
mov dword [esi + 0x174], esp
push eax
mov eax, esp
mov dword [esi + 0x188], eax
mov dword [eax], 0x443184
push eax
mov dword [esi + 0x184], esp
push eax
mov eax, esp
mov dword [esi + 0x17c], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x170], eax
mov dword [eax], 0x37
push eax
mov eax, esp
mov dword [esi + 0x1bc], eax
mov dword [eax], 0x44318c
push eax
mov dword [esi + 0x1a8], esp
push eax
mov eax, esp
mov dword [esi + 0x1e4], eax
mov dword [eax], 0x443194
push eax
mov dword [esi + 0x1d4], esp
push eax
mov eax, esp
mov dword [esi + 0x1dc], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1b8], eax
mov dword [eax], 0x18
push eax
mov eax, esp
mov dword [esi + 0x1c8], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1a4], eax
mov dword [eax], 0x19
push eax
mov eax, esp
mov dword [esi + 0x1a0], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x198], eax
mov dword [eax], 0x1a
push eax
mov eax, esp
mov dword [esi + 0x19c], eax
mov dword [eax], 0x44319c
push eax
mov dword [esi + 0x194], esp
push eax
mov eax, esp
mov dword [esi + 0x1e8], eax
mov dword [eax], 0x4431a4
push eax
mov dword [esi + 0x1d8], esp
push eax
mov eax, esp
mov dword [esi + 0x1d0], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1b4], eax
mov dword [eax], 0x1d
push eax
mov eax, esp
mov dword [esi + 0x1e0], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1c4], eax
mov dword [eax], 0x1e
push eax
mov eax, esp
mov dword [esi + 0x1cc], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1b0], eax
mov dword [eax], 0x1f
push eax
mov eax, esp
mov dword [esi + 0x1c0], eax
mov dword [eax], 0x4431ac
push eax
mov dword [esi + 0x1ac], esp
push eax
mov eax, esp
mov dword [esi + 0x1f8], eax
mov dword [eax], 0x4431b4
push eax
mov dword [esi + 0x1f0], esp
push eax
mov eax, esp
mov dword [esi + 0x1f4], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1ec], eax
mov dword [eax], 0x22
push eax
mov ecx, esp
mov dword [esi + 0x26c], ecx
mov dword [ecx], 0x4431bc
push eax
mov dword [esi + 0x268], esp
push eax
mov ecx, esp
mov dword [esi + 0x264], ecx
mov dword [ecx], 0x443010
push eax
mov ecx, esp
mov dword [esi + 0x260], ecx
mov dword [ecx], 0x2a
push eax
mov ecx, esp
mov dword [esi + 0x25c], ecx
mov dword [ecx], 0x4431c4
push eax
mov dword [esi + 0x258], esp
push eax
mov ecx, esp
mov dword [esi + 0x254], ecx
mov dword [ecx], 0x443010
push eax
mov ecx, esp
mov dword [esi + 0x250], ecx
mov dword [ecx], 0x29
push eax
mov ecx, esp
mov dword [esi + 0x24c], ecx
mov dword [ecx], 0x4431cc
push eax
mov dword [esi + 0x244], esp
push eax
mov eax, esp
mov dword [esi + 0x240], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x238], eax
mov dword [eax], 0x28
push eax
mov eax, esp
mov dword [esi + 0x234], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x230], eax
mov dword [eax], 0x29
push eax
mov eax, esp
mov dword [esi + 0x22c], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x214], eax
mov dword [eax], 0x22
push eax
mov eax, esp
mov dword [esi + 0x228], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x210], eax
mov dword [eax], 0x2b
push eax
mov eax, esp
mov dword [esi + 0x220], eax
mov dword [eax], 0x4431d4
push eax
mov dword [esi + 0x20c], esp
push eax
mov eax, esp
mov dword [esi + 0x150], eax
mov dword [eax], 0x4431dc
push eax
mov dword [esi + 0x224], esp
push eax
mov eax, esp
mov dword [esi + 0x21c], eax
mov dword [eax], 0x4431e4
push eax
mov dword [esi + 0x208], esp
push eax
mov eax, esp
mov dword [esi + 0x218], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x204], eax
mov dword [eax], 0x2f
push eax
mov eax, esp
mov dword [esi + 0x200], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x1fc], eax
mov dword [eax], 0x30
push eax
mov ecx, esp
mov dword [ecx], 0x443010
push eax
mov edx, esp
mov dword [esi + 0x290], edx
mov dword [edx], 0x31
push eax
mov edx, esp
mov dword [esi + 0x29c], edx
mov dword [edx], 0x4431ec
push eax
mov dword [esi + 0x284], esp
push eax
mov edx, esp
mov dword [esi + 0x298], edx
mov dword [edx], 0x443010
push eax
mov edx, esp
mov dword [esi + 0x27c], edx
mov dword [edx], 0x33
push eax
mov edx, esp
mov dword [esi + 0x288], edx
mov dword [edx], 0x4431f4
push eax
mov dword [esi + 0x274], esp
push eax
mov edx, esp
mov dword [esi + 0x2a0], edx
mov dword [edx], 0x4431fc
push eax
mov dword [esi + 0x28c], esp
push eax
mov edx, esp
mov dword [esi + 0x280], edx
mov dword [edx], 0x443010
push eax
mov edx, esp
mov dword [esi + 0x270], edx
mov dword [edx], 0x36
push eax
mov edx, esp
mov dword [edx], 0x443010
push eax
mov edi, esp
mov dword [esi + 0x278], edi
mov dword [edi], 0x37
push eax
mov edi, esp
mov dword [edi], 0x443010
push eax
mov ebx, esp
mov dword [ebx], 0x13
push eax
mov eax, esp
mov dword [esi + 0x16c], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x168], eax
mov dword [eax], 0x1b
push eax
mov eax, esp
mov dword [esi + 0x190], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [esi + 0x18c], eax
mov dword [eax], 0x2c
push eax
mov eax, esp
mov dword [esi + 0x248], eax
mov dword [eax], 0x443010
push eax
mov eax, esp
mov dword [eax], 0x34
jmp dword [esi + 0x178]