Function at 0x41fb30
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x360
mov esi, esp
lea eax, [0x223af4]
mov dword [esi + 0x2cc], eax
mov al, byte [esi + 0x10c]
mov byte [esi + 0x110], al
mov byte [esi + 0x37], 0x59
mov byte [esi + 0x38], 0x33
mov byte [esi + 0x39], 0x51
mov byte [esi + 0x3a], 0x35
mov byte [esi + 0x3b], 0xaf
mov byte [esi + 0x3c], 0x37
mov byte [esi + 0x3d], 0x6c
mov byte [esi + 0x3e], 0x39
mov byte [esi + 0x3f], 0x14
mov byte [esi + 0x40], 0x3b
mov byte [esi + 0x41], 0x58
mov byte [esi + 0x42], 0x3d
mov byte [esi + 0x43], 0x5c
mov byte [esi + 0x44], 0x3f
mov byte [esi + 0x45], 0x20
mov byte [esi + 0x46], 0x21
xor eax, eax
cmp eax, 0x10
jae 0x41fbca
movzx edx, byte [esi + eax + 0x37]
mov ecx, eax
add ecx, 0x24040422
xor ecx, edx
add ecx, 0xdfdfdeef
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esi + eax + 0x37], cl
add eax, 1
jmp 0x41fb9b
lea eax, [esi + 0x37]
sub esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00415640
add esp, 0x10
and al, 1
movzx eax, al
mov dword [esi + 0x164], eax
mov al, byte [esi + 0x108]
mov byte [esi + 0x114], al
mov byte [esi + 0x47], 0xaf
mov byte [esi + 0x48], 0xd
mov byte [esi + 0x49], 0xab
mov byte [esi + 0x4a], 0xf
mov byte [esi + 0x4b], 0xa2
mov byte [esi + 0x4c], 0x11
mov byte [esi + 0x4d], 0xa6
mov byte [esi + 0x4e], 0x13
mov byte [esi + 0x4f], 0xed
mov byte [esi + 0x50], 0x15
mov byte [esi + 0x51], 0xf8
mov byte [esi + 0x52], 0x17
mov byte [esi + 0x53], 0xbc
mov byte [esi + 0x54], 0x19
mov byte [esi + 0x55], 0xb8
mov byte [esi + 0x56], 0x1b
mov byte [esi + 0x57], 0x1c
mov byte [esi + 0x58], 0x1d
xor eax, eax
cmp eax, 0x12
jae 0x41fc82
movzx edi, byte [esi + eax + 0x47]
mov ecx, eax
add ecx, 0x6c
mov edx, 0x93
sub edx, eax
and edx, edi
mov ebx, edi
shl ebx, 1
xor ebx, 0xffffffff
add ebx, edi
and ecx, ebx
or ecx, edx
add cl, 0xa0
mov byte [esi + eax + 0x47], cl
add eax, 1
jmp 0x41fc51
lea eax, [esi + 0x47]
sub esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00415640
add esp, 0x10
and al, 1
movzx eax, al
mov edx, dword [esi + 0x164]
mov ecx, edx
and ecx, eax
xor edx, eax
or ecx, edx
cmp ecx, 0
setne byte [esi + 0x23]
mov al, byte [esi + 0x104]
mov byte [esi + 0x118], al
mov byte [esi + 0x8d], 0x7f
mov byte [esi + 0x8e], 0xdd
mov byte [esi + 0x8f], 0x71
mov byte [esi + 0x90], 0xdf
mov byte [esi + 0x91], 0xf
mov byte [esi + 0x92], 0xa1
mov byte [esi + 0x93], 9
mov byte [esi + 0x94], 0xa3
mov byte [esi + 0x95], 0xd
mov byte [esi + 0x96], 0xa5
mov byte [esi + 0x97], 3
mov byte [esi + 0x98], 0xa7
mov byte [esi + 0x99], 0x1b
mov byte [esi + 0x9a], 0xa9
mov byte [esi + 0x9b], 0x44
mov byte [esi + 0x9c], 0xab
mov byte [esi + 0x9d], 0x1f
mov byte [esi + 0x9e], 0xad
mov byte [esi + 0x9f], 0x1f
mov byte [esi + 0xa0], 0xaf
mov byte [esi + 0xa1], 0x1c
mov byte [esi + 0xa2], 0xb1
mov byte [esi + 0xa3], 0x1b
mov byte [esi + 0xa4], 0xb3
mov byte [esi + 0xa5], 0
mov byte [esi + 0xa6], 0xb5
mov byte [esi + 0xa7], 0x13
mov byte [esi + 0xa8], 0xb7
mov byte [esi + 0xa9], 0xb8
mov byte [esi + 0xaa], 0xb9
xor ebx, ebx
cmp ebx, 0x1e
jae 0x41fe0d
movzx edx, byte [esi + ebx + 0x8d]
mov ecx, 0xc3
sub ecx, ebx
mov eax, 0xc3
sub eax, ebx
and ecx, eax
mov edi, 0x1c4896c3
sub edi, ebx
mov eax, edx
shl eax, 1
xor eax, 0xffffffff
add eax, edx
and edi, eax
mov eax, ebx
add eax, 0xe3b7693c
or eax, edx
xor edi, 0xffffffff
and eax, edi
xor edx, 0xffffffff
or ecx, edx
and ecx, eax
add ecx, 0xe244b61f
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov byte [esi + ebx + 0x8d], cl
mov eax, ebx
shl eax, 1
and eax, 2
xor ebx, 1
add ebx, eax
jmp 0x41fda2
lea eax, [esi + 0x8d]
sub esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00415640
add esp, 0x10
and al, 1
movzx eax, al
mov cl, byte [esi + 0x23]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne byte [esi + 0x22]
mov al, byte [esi + 0x100]
mov byte [esi + 0x11c], al
mov byte [esi + 0x59], 0x79
mov byte [esi + 0x5a], 0xc6
mov byte [esi + 0x5b], pe_nt_image_headers32
mov byte [esi + 0x5c], 0xd8
mov byte [esi + 0x5d], 0x7e
mov byte [esi + 0x5e], 0xda
mov byte [esi + 0x5f], 0x62
mov byte [esi + 0x60], 0xdc
mov byte [esi + 0x61], 0x63
mov byte [esi + 0x62], 0xde
mov byte [esi + 0x63], 0x6c
mov byte [esi + 0x64], 0xd0
mov byte [esi + 0x65], 0x2f
mov byte [esi + 0x66], 0xd2
mov byte [esi + 0x67], 0x69
mov byte [esi + 0x68], 0xd4
mov byte [esi + 0x69], 0x66
mov byte [esi + 0x6a], 0xd6
mov byte [esi + 0x6b], 0x68
mov byte [esi + 0x6c], 0xa8
mov byte [esi + 0x6d], 0x17
mov byte [esi + 0x6e], 0xaa
mov byte [esi + 0x6f], 0xab
mov byte [esi + 0x70], 0xac
xor ebx, ebx
cmp ebx, 0x18
jae 0x41fef0
mov cl, byte [esi + ebx + 0x59]
movzx edi, cl
mov eax, ebx
shl eax, 1
and eax, 0x86e8db5a
mov edx, ebx
xor edx, 0xc3746dad
add edx, eax
mov eax, edx
and eax, edi
shl eax, 1
sub edx, eax
add dl, cl
add dl, 0x98
mov byte [esi + ebx + 0x59], dl
add ebx, 1
jmp 0x41febb
lea eax, [esi + 0x59]
sub esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.00415640
add esp, 0x10
and al, 1
movzx eax, al
mov cl, byte [esi + 0x22]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0xfc]
mov byte [esi + 0x120], al
mov byte [esi + 0xca], 0x84
mov byte [esi + 0xcb], 0xe3
mov byte [esi + 0xcc], 0x8b
mov byte [esi + 0xcd], 0xe5
mov byte [esi + 0xce], 0x74
mov byte [esi + 0xcf], 0xe7
mov byte [esi + 0xd0], 0x85
mov byte [esi + 0xd1], 0xe9
mov byte [esi + 0xd2], 0x82
mov byte [esi + 0xd3], 0xeb
mov byte [esi + 0xd4], 0x85
mov byte [esi + 0xd5], 0xed
mov byte [esi + 0xd6], 0x7d
mov byte [esi + 0xd7], 0xef
mov byte [esi + 0xd8], 0x84
mov byte [esi + 0xd9], 0x11
mov byte [esi + 0xda], 0x7d
mov byte [esi + 0xdb], 0x13
mov byte [esi + 0xdc], 0x86
mov byte [esi + 0xdd], 0x15
mov byte [esi + 0xde], 0x8f
mov byte [esi + 0xdf], 0x17
mov byte [esi + 0xe0], 0x36
mov byte [esi + 0xe1], 0x19
mov byte [esi + 0xe2], 0x89
mov byte [esi + 0xe3], 0x1b
mov byte [esi + 0xe4], 0x8d
mov byte [esi + 0xe5], 0x1d
mov byte [esi + 0xe6], 0x72
mov byte [esi + 0xe7], 0x1f
mov byte [esi + 0xe8], 0x69
mov byte [esi + 0xe9], 1
mov byte [esi + 0xea], 0x96
mov byte [esi + 0xeb], 3
mov byte [esi + 0xec], 0x61
mov byte [esi + 0xed], 5
mov byte [esi + 0xee], 6
mov byte [esi + 0xef], 7
xor eax, eax
cmp eax, 0x26
jae 0x420066
mov cl, byte [esi + eax + 0xca]
mov dl, al
add dl, 0x72
xor dl, cl
add dl, 0x70
mov byte [esi + eax + 0xca], dl
add eax, 1
jmp 0x420044
sub esp, 0x10
lea eax, [esi + 0xca]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov edi, eax
mov dword [esp + 4], edi
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00415640
add esp, 0x10
or bl, al
and bl, 1
movzx eax, byte [edi + 0x10]
mov dword [esi + 0x2c8], eax
mov eax, dword [esi + 0x2cc]
mov ecx, dword [esi + 0x2c8]
mov eax, dword [eax + ecx*4]
push eax
mov edx, esp
mov dword [edx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x190], ecx
mov dword [ecx], 1
push eax
mov edi, esp
mov dword [edi], 0x223afc
push eax
mov dword [esi + 0x194], esp
push eax
mov ecx, esp
mov dword [esi + 0x198], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x18c], ecx
mov dword [ecx], 0x26
push eax
mov ecx, esp
mov dword [esi + 0x188], ecx
mov dword [ecx], 0x223b04
push eax
mov dword [esi + 0x184], esp
push eax
mov ecx, esp
mov dword [esi + 0x1b4], ecx
mov dword [ecx], 0x223b0c
push eax
mov dword [esi + 0x1b0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1ac], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x1a4], ecx
mov dword [ecx], 6
push eax
mov ecx, esp
mov dword [esi + 0x1a8], ecx
mov dword [ecx], 0x223b14
push eax
mov dword [esi + 0x1a0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1d4], ecx
mov dword [ecx], 0x223b1c
push eax
mov dword [esi + 0x1c8], esp
push eax
mov ecx, esp
mov dword [esi + 0x1d0], ecx
mov dword [ecx], 0x223b24
push eax
mov dword [esi + 0x1c4], esp
push eax
mov ecx, esp
mov dword [esi + 0x1cc], ecx
mov dword [ecx], 0x223b2c
push eax
mov dword [esi + 0x1c0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1ec], ecx
mov dword [ecx], 0x223b34
push eax
mov dword [esi + 0x1e0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1e8], ecx
mov dword [ecx], 0x223b3c
push eax
mov dword [esi + 0x1dc], esp
push eax
mov ecx, esp
mov dword [esi + 0x1fc], ecx
mov dword [ecx], 0x223b44
push eax
mov dword [esi + 0x1f8], esp
push eax
mov ecx, esp
mov dword [esi + 0x214], ecx
mov dword [ecx], 0x223b4c
push eax
mov dword [esi + 0x208], esp
push eax
mov ecx, esp
mov dword [esi + 0x210], ecx
mov dword [ecx], 0x223b54
push eax
mov dword [esi + 0x204], esp
push eax
mov ecx, esp
mov dword [esi + 0x21c], ecx
mov dword [ecx], 0x223b5c
push eax
mov dword [esi + 0x218], esp
push eax
mov ecx, esp
mov dword [esi + 0x20c], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x200], ecx
mov dword [ecx], 0x11
push eax
mov ecx, esp
mov dword [esi + 0x2c4], ecx
mov dword [ecx], 0x223b64
push eax
mov dword [esi + 0x2c0], esp
push eax
mov ecx, esp
mov dword [esi + 0x2bc], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x2b8], ecx
mov dword [ecx], 0x1e
push eax
mov ecx, esp
mov dword [esi + 0x2b4], ecx
mov dword [ecx], 0x223b6c
push eax
mov dword [esi + 0x2b0], esp
push eax
mov ecx, esp
mov dword [esi + 0x2ac], ecx
mov dword [ecx], 0x223b74
push eax
mov dword [esi + 0x2a8], esp
push eax
mov ecx, esp
mov dword [esi + 0x2a4], ecx
mov dword [ecx], 0x223b7c
push eax
mov dword [esi + 0x2a0], esp
push eax
mov ecx, esp
mov dword [esi + 0x294], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x280], ecx
mov dword [ecx], 0x1d
push eax
mov ecx, esp
mov dword [esi + 0x274], ecx
mov dword [ecx], 0x223b84
push eax
mov dword [esi + 0x270], esp
push eax
mov ecx, esp
mov dword [esi + 0x26c], ecx
mov dword [ecx], 0x223b8c
push eax
mov dword [esi + 0x268], esp
push eax
mov ecx, esp
mov dword [esi + 0x264], ecx
mov dword [ecx], 0x223b94
push eax
mov dword [esi + 0x260], esp
push eax
mov ecx, esp
mov dword [esi + 0x25c], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x258], ecx
mov dword [ecx], 0x1b
push eax
mov ecx, esp
mov dword [esi + 0x254], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x250], ecx
mov dword [ecx], 0x1c
push eax
mov ecx, esp
mov dword [esi + 0x24c], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x248], ecx
mov dword [ecx], 0x1d
push eax
mov ecx, esp
mov dword [esi + 0x244], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x23c], ecx
mov dword [ecx], 0x11
push eax
mov ecx, esp
mov dword [esi + 0x240], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x230], ecx
mov dword [ecx], 0x1f
push eax
mov ecx, esp
mov dword [esi + 0x238], ecx
mov dword [ecx], 0x223b9c
push eax
mov dword [esi + 0x22c], esp
push eax
mov ecx, esp
mov dword [esi + 0x234], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x228], ecx
mov dword [ecx], 0x21
push eax
mov ecx, esp
mov dword [esi + 0x224], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x220], ecx
mov dword [ecx], 0x22
push eax
mov ecx, esp
mov dword [esi + 0x29c], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x288], ecx
mov dword [ecx], 0x23
push eax
mov ecx, esp
mov dword [esi + 0x290], ecx
mov dword [ecx], 0x223ba4
push eax
mov dword [esi + 0x27c], esp
push eax
mov ecx, esp
mov dword [esi + 0x28c], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x278], ecx
mov dword [ecx], 0x25
push eax
mov ecx, esp
mov dword [esi + 0x298], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x284], ecx
mov dword [ecx], 0x26
push eax
mov ecx, esp
mov dword [esi + 0x170], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x16c], ecx
mov dword [ecx], 4
push eax
mov ecx, esp
mov dword [esi + 0x178], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x174], ecx
mov dword [ecx], 7
push eax
mov ecx, esp
mov dword [esi + 0x180], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x17c], ecx
mov dword [ecx], 0xa
push eax
mov ecx, esp
mov dword [esi + 0x1bc], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x1b8], ecx
mov dword [ecx], 0xf
push eax
mov ecx, esp
mov dword [esi + 0x1f4], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x1f0], ecx
mov dword [ecx], 0x14
push eax
mov ecx, esp
mov dword [esi + 0x1e4], ecx
mov dword [ecx], 0x223a10
push eax
mov ecx, esp
mov dword [esi + 0x1d8], ecx
mov dword [ecx], 0x19
jmp eax