Function at 0x4245c0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f8
mov esi, esp
mov ebx, dword [ebp + 0xc]
lea eax, [0x44cf44]
mov dword [esi + 0x284], eax
mov al, byte [esi + 0xa4]
mov byte [esi + 0xbc], al
mov byte [esi + 0xa8], 0x1f
mov byte [esi + 0xa9], 0x89
mov byte [esi + 0xaa], 0xdb
mov byte [esi + 0xab], 0xb7
mov byte [esi + 0xac], 0x2d
mov byte [esi + 0xad], 0xb5
mov byte [esi + 0xae], 0xee
mov byte [esi + 0xaf], 0xb3
mov byte [esi + 0xb0], 0xe2
mov byte [esi + 0xb1], 0xb1
mov byte [esi + 0xb2], 0xd2
mov byte [esi + 0xb3], 0xbf
mov byte [esi + 0xb4], 0xd2
mov byte [esi + 0xb5], 0xbd
mov byte [esi + 0xb6], 0xba
mov byte [esi + 0xb7], 0xbb
mov eax, 0x10
mov byte [esi + eax + 0xa8], 0
add eax, 1
cmp eax, 0x13
jne 0x424661
xor eax, eax
cmp eax, 0x13
jae 0x4246a1
mov dl, byte [esi + eax + 0xa8]
mov edi, eax
shl edi, 1
and edi, 0x3c
mov ecx, eax
xor ecx, 0x9e
add ecx, edi
xor cl, dl
add cl, 0xea
mov byte [esi + eax + 0xa8], cl
add eax, 1
jmp 0x424673
lea eax, [esi + 0xa8]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.0041da00
add esp, 0xc
and al, 1
movzx ebx, al
mov al, byte [esi + 0xa0]
mov byte [esi + 0xc0], al
mov byte [esi + 0x13c], 0x87
mov byte [esi + 0x13d], 0x19
mov byte [esi + 0x13e], 0x8b
mov byte [esi + 0x13f], 0x17
mov byte [esi + 0x140], 0x9a
mov byte [esi + 0x141], 0x15
mov byte [esi + 0x142], 0x9e
mov byte [esi + 0x143], 0x13
mov byte [esi + 0x144], 0xd9
mov byte [esi + 0x145], 0x11
mov byte [esi + 0x146], 0xdc
mov byte [esi + 0x147], 0xf
mov byte [esi + 0x148], 0x90
mov byte [esi + 0x149], 0xd
mov byte [esi + 0x14a], 0x94
mov byte [esi + 0x14b], 0xb
mov byte [esi + 0x14c], 8
mov byte [esi + 0x14d], 9
mov eax, 0x12
mov byte [esi + eax + 0x13c], 0
add eax, 1
cmp eax, 0x18
jne 0x424754
xor eax, eax
cmp eax, 0x18
jae 0x4247b3
movzx edx, byte [esi + eax + 0x13c]
mov edi, eax
and edi, 0x1ab2efba
xor edi, 0x1ab2efba
mov ecx, eax
and ecx, 0xe54d1045
sub ecx, edi
mov edi, ecx
and edi, edx
add ecx, edx
shl edi, 1
sub ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0x42
xor ecx, 0xa1
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x13c], cl
add eax, 1
jmp 0x424766
lea eax, [esi + 0x13c]
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.0041da00
add esp, 0xc
and al, 1
movzx ecx, al
xor ebx, 0xffffffff
xor ecx, 0xffffffff
mov eax, ebx
and eax, 0x9af1bd9
mov edx, ecx
and edx, 0x9af1bd9
or eax, 0
or edx, 0
xor eax, edx
or ebx, ecx
xor ebx, 0xffffffff
and ebx, 0xffffffff
or eax, ebx
cmp eax, 0
setne bl
mov al, byte [esi + 0x9c]
mov byte [esi + 0xc4], al
mov byte [esi + 0xec], 0x36
mov byte [esi + 0xed], 0x8b
mov byte [esi + 0xee], 0x3b
mov byte [esi + 0xef], 0x89
mov byte [esi + 0xf0], 6
mov byte [esi + 0xf1], 0x87
mov byte [esi + 0xf2], 0x35
mov byte [esi + 0xf3], 0x85
mov byte [esi + 0xf4], 0x3c
mov byte [esi + 0xf5], 0x83
mov byte [esi + 0xf6], 0x35
mov byte [esi + 0xf7], 0x81
mov byte [esi + 0xf8], 0xd
mov byte [esi + 0xf9], 0x9f
mov byte [esi + 0xfa], 0x12
mov byte [esi + 0xfb], 0x9d
mov byte [esi + 0xfc], 0x2d
mov byte [esi + 0xfd], 0x9b
mov byte [esi + 0xfe], 0x14
mov byte [esi + 0xff], 0x99
mov byte [esi + 0x100], 0x1f
mov byte [esi + 0x101], 0x97
mov byte [esi + 0x102], 0xe4
mov byte [esi + 0x103], 0x95
mov byte [esi + 0x104], 0x19
mov byte [esi + 0x105], 0x93
mov byte [esi + 0x106], 0x1d
mov byte [esi + 0x107], 0x91
mov byte [esi + 0x108], 0x24
mov byte [esi + 0x109], 0xef
mov byte [esi + 0x10a], 0x59
mov byte [esi + 0x10b], 0xed
mov byte [esi + 0x10c], 0x60
mov byte [esi + 0x10d], 0xeb
mov byte [esi + 0x10e], 0x51
mov byte [esi + 0x10f], 0xe9
mov byte [esi + 0x110], 0xe8
mov byte [esi + 0x111], 0xe7
mov eax, 0x26
mov byte [esi + eax + 0xec], 0
add eax, 1
cmp eax, 0x2a
jne 0x424922
xor eax, eax
cmp eax, 0x2a
jae 0x42496f
mov dl, byte [esi + eax + 0xec]
mov edi, eax
add edi, 0xa3
mov ecx, 0x5c
sub ecx, eax
and ecx, 0x7a
and edi, 0x85
or ecx, edi
xor cl, dl
xor cl, 0x85
mov dl, 0xd0
sub dl, cl
mov byte [esi + eax + 0xec], dl
add eax, 1
jmp 0x424934
lea eax, [esi + 0xec]
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.0041da00
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
cmp eax, 0
setne byte [esi + 3]
mov al, byte [esi + 0x98]
mov byte [esi + 0xc8], al
mov byte [esi + 0x118], 0xf1
mov byte [esi + 0x119], 0x9b
mov byte [esi + 0x11a], 0xeb
mov byte [esi + 0x11b], 0x99
mov byte [esi + 0x11c], 0xe9
mov byte [esi + 0x11d], 0xa7
mov byte [esi + 0x11e], 0xd3
mov byte [esi + 0x11f], 0xa5
mov byte [esi + 0x120], 0xd3
mov byte [esi + 0x121], 0xa3
mov byte [esi + 0x122], 0xc9
mov byte [esi + 0x123], 0xa1
mov byte [esi + 0x124], 0xdd
mov byte [esi + 0x125], 0xaf
mov byte [esi + 0x126], 0x9c
mov byte [esi + 0x127], 0xad
mov byte [esi + 0x128], 0xd1
mov byte [esi + 0x129], 0xab
mov byte [esi + 0x12a], 0xd5
mov byte [esi + 0x12b], 0xa9
mov byte [esi + 0x12c], 0xdc
mov byte [esi + 0x12d], 0xb7
mov byte [esi + 0x12e], 0xc1
mov byte [esi + 0x12f], 0xb5
mov byte [esi + 0x130], 0xc8
mov byte [esi + 0x131], 0xb3
mov byte [esi + 0x132], 0xd9
mov byte [esi + 0x133], 0xb1
mov byte [esi + 0x134], 0xb0
mov byte [esi + 0x135], 0xbf
mov eax, 0x1e
mov byte [esi + eax + 0x118], 0
add eax, 1
cmp eax, 0x21
jne 0x424a97
xor ebx, ebx
cmp ebx, 0x21
jae 0x424b41
movzx ecx, byte [esi + ebx + 0x118]
mov edx, ebx
and edx, 0xddfda719
mov eax, ebx
and eax, 2
xor eax, 2
mov edi, ebx
and edi, 0xddfda719
imul edi, eax
mov eax, ebx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov edi, ebx
xor edi, 0xddfda71b
add edi, edx
mov eax, edi
xor eax, 0xffffffff
or eax, 0x92540518
mov edx, edi
or edx, 0x92540518
add edi, eax
mov eax, 0xfffffffe
sub eax, edi
and edx, eax
xor edx, ecx
mov eax, edx
shl eax, 1
and eax, 0xda3aa8fa
xor eax, 0x280830
xor edx, 0xff495165
add edx, eax
mov eax, edx
shl eax, 1
and eax, 0xf0
xor edx, 0x78
add edx, eax
add dl, 0x84
mov byte [esi + ebx + 0x118], dl
add ebx, 1
jmp 0x424aa9
lea eax, [esi + 0x118]
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.0041da00
add esp, 0xc
and al, 1
movzx eax, al
mov cl, byte [esi + 3]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0x78]
mov byte [esi + 0xcc], al
mov byte [esi + 0x7c], 0
mov byte [esi + 0x7d], 0x9f
mov byte [esi + 0x7e], 0xf
mov byte [esi + 0x7f], 0x91
mov byte [esi + 0x80], 9
mov byte [esi + 0x81], 0x93
mov byte [esi + 0x82], 9
mov byte [esi + 0x83], 0x95
mov byte [esi + 0x84], 0xa
mov byte [esi + 0x85], 0x97
mov byte [esi + 0x86], 3
mov byte [esi + 0x87], 0x89
mov byte [esi + 0x88], 0xd6
mov byte [esi + 0x89], 0x8b
mov byte [esi + 0x8a], 0x10
mov byte [esi + 0x8b], 0x8d
mov byte [esi + 0x8c], 0x19
mov byte [esi + 0x8d], 0x8f
mov byte [esi + 0x8e], 0x1f
mov byte [esi + 0x8f], 0x81
mov byte [esi + 0x90], 0x1e
mov byte [esi + 0x91], 0x83
mov byte [esi + 0x92], 0x82
mov byte [esi + 0x93], 0x85
mov eax, 0x18
mov byte [esi + eax + 0x7c], 0
add eax, 1
cmp eax, 0x1c
jne 0x424c23
xor eax, eax
cmp eax, 0x1c
jae 0x424c7c
movzx edx, byte [esi + eax + 0x7c]
mov edi, eax
add edi, 0x25
mov ecx, 0x5a
sub ecx, eax
and ecx, 0x80
and edi, 0x7f
or ecx, edi
xor ecx, 0x80
and ecx, edx
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edi, edx
mov edx, 0x5a
sub edx, eax
and edi, edx
or ecx, edi
mov dl, 0xc6
sub dl, cl
mov byte [esi + eax + 0x7c], dl
add eax, 1
jmp 0x424c32
lea eax, [esi + 0x7c]
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.0041da00
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx edx, bl
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, eax
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
cmp ecx, 0
setne byte [esi + 2]
mov al, byte [esi + 0x54]
mov byte [esi + 0xd0], al
mov byte [esi + 0x58], 0xf4
mov byte [esi + 0x59], 0x5b
mov byte [esi + 0x5a], 0xe6
mov byte [esi + 0x5b], 0x59
mov byte [esi + 0x5c], 0xff
mov byte [esi + 0x5d], 0x5f
mov byte [esi + 0x5e], 0xfb
mov byte [esi + 0x5f], 0x5d
mov byte [esi + 0x60], 0xe7
mov byte [esi + 0x61], 0x53
mov byte [esi + 0x62], 0xe7
mov byte [esi + 0x63], 0x51
mov byte [esi + 0x64], 0x22
mov byte [esi + 0x65], 0x57
mov byte [esi + 0x66], 0xe3
mov byte [esi + 0x67], 0x55
mov byte [esi + 0x68], 0xe3
mov byte [esi + 0x69], 0xab
mov byte [esi + 0x6a], 0x16
mov byte [esi + 0x6b], 0xa9
mov byte [esi + 0x6c], 0x17
mov byte [esi + 0x6d], 0xaf
mov byte [esi + 0x6e], 0x1a
mov byte [esi + 0x6f], 0xad
mov byte [esi + 0x70], 0x17
mov byte [esi + 0x71], 0xa3
mov byte [esi + 0x72], 0xa2
mov byte [esi + 0x73], 0xa1
mov eax, 0x1c
mov byte [esi + eax + 0x58], 0
add eax, 1
cmp eax, 0x1d
jne 0x424d3f
xor eax, eax
cmp eax, 0x1d
jae 0x424de1
movzx edi, byte [esi + eax + 0x58]
mov dword [esi + 0x168], edi
mov edx, eax
mov ebx, edx
add ebx, 0x71c552ef
mov ecx, 0xe3aad10
sub ecx, edx
or ecx, edi
mov edi, 0xe3aad10
sub edi, edx
and edi, 0xaa5f7c71
and ebx, 0x55a0838e
or edi, ebx
mov eax, edi
xor eax, 0xaa5f7c71
xor edi, 0xaa5f7c71
or eax, edi
xor eax, 0xffffffff
mov ebx, 0xe3aad10
sub ebx, edx
or ebx, eax
mov eax, ebx
shl eax, 1
xor eax, 0xffffffff
add ebx, eax
mov eax, dword [esi + 0x168]
xor eax, 0xffffffff
or ebx, eax
add ecx, ebx
mov eax, edx
mov edx, 0xfe
sub edx, ecx
add ecx, 1
and ecx, 0x54
xor ecx, 0x54
or edx, 0x54
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x58], cl
add eax, 1
jmp 0x424d4e
sub esp, 0xc
lea eax, [esi + 0x58]
mov dword [esp + 8], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041da00
add esp, 0xc
mov cl, byte [esi + 2]
or cl, al
and cl, 1
mov byte [esi + 2], cl
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
mov dword [esi + 0x280], eax
mov eax, dword [esi + 0x284]
mov ecx, dword [esi + 0x280]
mov ecx, dword [eax + ecx*4]
push eax
mov eax, esp
mov dword [esi + 0x17c], eax
mov dword [eax], 0x44ce10
push eax
mov edx, esp
mov dword [edx], 0x2f
push eax
mov eax, esp
mov dword [esi + 0x184], eax
mov dword [eax], 0x44cf4c
push eax
mov dword [esi + 0x180], esp
push eax
mov eax, esp
mov dword [esi + 0x18c], eax
mov dword [eax], 0x44cf54
push eax
mov dword [esi + 0x188], esp
push eax
mov eax, esp
mov dword [esi + 0x194], eax
mov dword [eax], 0x44cf5c
push eax
mov dword [esi + 0x190], esp
push eax
mov eax, esp
mov dword [esi + 0x1c4], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [esi + 0x1bc], eax
mov dword [eax], 0x15
push eax
mov eax, esp
mov dword [esi + 0x1c0], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [esi + 0x1b4], eax
mov dword [eax], 0x16
push eax
mov eax, esp
mov dword [esi + 0x1b8], eax
mov dword [eax], 0x44cf64
push eax
mov dword [esi + 0x1ac], esp
push eax
mov eax, esp
mov dword [esi + 0x1b0], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [esi + 0x1a8], eax
mov dword [eax], 0x18
push eax
mov edi, esp
mov dword [esi + 0x278], edi
mov dword [edi], 0x44cf6c
push eax
mov dword [esi + 0x268], esp
push eax
mov edi, esp
mov dword [esi + 0x260], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x254], edi
mov dword [edi], 0x22
push eax
mov edi, esp
mov dword [esi + 0x250], edi
mov dword [edi], 0x44cf74
push eax
mov dword [esi + 0x24c], esp
push eax
mov edi, esp
mov dword [esi + 0x248], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x244], edi
mov dword [edi], 0x21
push eax
mov edi, esp
mov dword [esi + 0x240], edi
mov dword [edi], 0x44cf7c
push eax
mov dword [esi + 0x23c], esp
push eax
mov edi, esp
mov dword [esi + 0x238], edi
mov dword [edi], 0x44cf84
push eax
mov dword [esi + 0x234], esp
push eax
mov edi, esp
mov dword [esi + 0x230], edi
mov dword [edi], 0x44cf8c
push eax
mov dword [esi + 0x22c], esp
push eax
mov edi, esp
mov dword [esi + 0x228], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x224], edi
mov dword [edi], 0x20
push eax
mov edi, esp
mov dword [esi + 0x220], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x218], edi
mov dword [edi], 0x21
push eax
mov edi, esp
mov dword [esi + 0x210], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x204], edi
mov dword [edi], 0x18
push eax
mov edi, esp
mov dword [esi + 0x208], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x1f4], edi
mov dword [edi], 0x23
push eax
mov edi, esp
mov dword [esi + 0x200], edi
mov dword [edi], 0x44cf94
push eax
mov dword [esi + 0x1e4], esp
push eax
mov edi, esp
mov dword [esi + 0x1f0], edi
mov dword [edi], 0x44cf9c
push eax
mov dword [esi + 0x1dc], esp
push eax
mov edi, esp
mov dword [esi + 0x21c], edi
mov dword [edi], 0x44cfa4
push eax
mov dword [esi + 0x214], esp
push eax
mov edi, esp
mov dword [esi + 0x20c], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x1fc], edi
mov dword [edi], 0x27
push eax
mov edi, esp
mov dword [esi + 0x1f8], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x1d8], edi
mov dword [edi], 0x28
push eax
mov edi, esp
mov dword [esi + 0x1e8], edi
mov dword [edi], 0x44cfac
push eax
mov dword [esi + 0x1d4], esp
push eax
mov edi, esp
mov dword [esi + 0x28], edi
mov dword [edi], 0x44cfb4
push eax
mov dword [esi + 0x1ec], esp
push eax
mov edi, esp
mov dword [esi + 0x1e0], edi
mov dword [edi], 0x44ce10
push eax
mov edi, esp
mov dword [esi + 0x1d0], edi
mov dword [edi], 0x2b
push eax
mov edi, esp
mov dword [edi], 0x44ce10
push eax
mov ebx, esp
mov dword [esi + 0x264], ebx
mov dword [ebx], 0x2c
push eax
mov ebx, esp
mov dword [esi + 0x270], ebx
mov dword [ebx], 0x44cfbc
push eax
mov dword [esi + 0x25c], esp
push eax
mov ebx, esp
mov dword [esi + 0x26c], ebx
mov dword [ebx], 0x44ce10
push eax
mov ebx, esp
mov dword [esi + 0x258], ebx
mov dword [ebx], 0x2e
push eax
mov ebx, esp
mov dword [esi + 0x274], ebx
mov dword [ebx], 0x44ce10
push eax
mov ebx, esp
mov dword [ebx], 0x2f
push eax
mov eax, esp
mov dword [esi + 0x19c], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [esi + 0x198], eax
mov dword [eax], 0x1d
push eax
mov eax, esp
mov dword [esi + 0x1a4], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [esi + 0x1a0], eax
mov dword [eax], 0x25
push eax
mov eax, esp
mov dword [esi + 0x1cc], eax
mov dword [eax], 0x44ce10
push eax
mov eax, esp
mov dword [eax], 0x29
jmp ecx