Function at 0x152e04a
Capabilities:
Authenticate hmac
Manually build aes constants

Disassembly:
sal ecx, 0xe9
lea edi, [edx + edi - 0x49be3fae]
sub edx, 0x9bbcf089
movzx edx, word [edi + ecx - 0x7f5800]
lea eax, [ecx*2 - 0x70c05bda]
xor ecx, 0x1389e13
sar cl, 0xe5
xor dx, bx
xor ecx, ecx
sub eax, eax
ror dx, 1
sal ax, 0xc2
ror ecx, 0x96
sbb dx, 0x3b94
not dx
not cl
add dx, 0x4d3d
sub ax, 0xe8a9
add cx, cx
push eax
not dx
xor bx, dx
sub byte [esp + ecx - 0x1fc], al
sbb eax, dword [esp + eax - 0x1757]
push ecx
lea ebp, [ebp + ecx - 0x200]
or cx, word [esp + ecx*8 - 0xfee]
rol al, 0x63
shr ecx, cl
mov word [ebp + ecx], dx
and dword [esp + ecx*2 + 2], 0xf1a7dd26
movsx edx, al
and al, byte [esp + ecx*2 + 3]
lea edi, [edi + ecx - 4]
seto al
sar dword [esp + ecx*2 + 2], 0x35
and dword [esp + ecx*2], 0xa1a50f1e
add ecx, dword [edi + ecx]
and al, ah
xor ecx, ebx
neg ecx
push edx
mul word [esp + 7]
xchg byte [esp + 9], al
xor ecx, 0xde1a6396
add word [esp + 2], dx
mul edx
xor dl, dh
neg ecx
not eax
pop eax
rol ecx, 1
pop eax
neg dword [esp + eax - 0x80011e]
pop edx
xor ebx, ecx
cwd
add esi, ecx
dec al
btr edx, 0xb5
jae fcn.01508028
inc ebp
inc esi
mov dword [esp + edi - 0x802b9e], edi
neg ebp
dec ebp
lea esp, [edi + 0x7b99c8b6]
not ebp
dec ebp
inc ecx
push edi
dec esi
mov dword [esp + edi*2 - 0x1005738], ebp
inc esi
movzx esi, word [esp + edi - 0x802b9f]
inc si
sub dword [esp + edi - 0x802b9b], edi
inc esi
movsx ebp, byte [esp + edi - 0x802b9d]
inc edx
xor dword [esp + edi*2 - 0x1005738], ebp
dec ecx
and edi, 0x82b09e38
dec ebx
lea ecx, [esi - 0x38d33746]
dec esi
mov ebp, dword [esp + edi - 0x800a18]
dec eax
arpl bp, bp
dec esp
adc ebx, ebp
dec edx
mov dword [esp + edi - 0x800a18], 0xdb172eb0
dec ecx
mov ebx, edx
inc ecx
add esp, 0xdfbf1f14
inc ecx
mov esi, esp
dec edi
lea edx, [edx + edi - 0x800a24]
inc cx
sar edi, 0xae
inc ecx
setne bh
inc ebx
mov dword [edx + edi*2 - 0x1000000], ebx
inc esi
mov eax, dword [esp + edi - 0x7fffff]
pop edx
pop ebx
jae fcn.00cccd16
dec eax
mov dword [esp + esi - 0x4123859a], 0xde887c9a
pop eax
inc esp
mov eax, dword [edi + esi - 0x4123859a]
cdq
movzx ebp, ax
inc ebp
xor eax, ebp
dec eax
mov dword [esp + esi - 0x41238592], ebx
inc ecx
xor eax, 0xe9a0ffaa
inc ecx
neg eax
push ecx
or bl, 0x94
inc esp
xor eax, edx
jmp 0x14c2aa7
ror dword [esp + 8], 0x6c
push 0x50183ba2
xor esi, ebx
dec eax
mov dword [esp + 8], 0x6683cf28
jmp 0xcfd9d8
ror byte [ebx - 0x32cdbe30], 0x55
ror cl, 1
shl byte [esp + ebp - 0x25213105], 0x64
inc ecx
mov esp, 0xfb1dc83f
and word [esp + ebp - 0x25213109], 0xe20d
not cl
inc cl
not cl
jmp 0xc95a91
inc esp
mov edi, edx
inc edx
mov ebp, dword [edi + edi - 0x43080da4]
inc ebp
mov esp, edi
inc ebp
bts edi, esp
inc ecx
xor ebp, ebp
dec eax
shl edx, 0x22
inc cx
dec edi
inc cx
and edi, 0xcdff88a4
dec eax
dec edx
call fcn.00cb3105
jp 0xce0171
dec eax
push eax
mov cl, 0xd7
lcall 0xfacb, 0xb0917814
add al, 0x78
xchg ecx, eax
mov al, 0xdb
and bl, byte [eax + edi*2 - 0x6f]
mov al, 0x83
xchg esi, eax
js 0xce01c4
xchg ecx, eax
mov al, 0xa7
fnstenv [esp + ebx*4 + 0xa]
cld
loopne 0xce00d8
sbb al, 0x5b
das
test byte [edi + 0x563a4c83], cl
inc esp
push es
lahf
invalid
sub byte [0x468842d1], ch
push eax
lodsd eax, dword [esi]
ror dword [edx + 0x7f67f573], 1
dec esp
imul ebx, dword [eax - 0x65], 0x9e703778
mov bh, 0x74
pop es
loopne 0xce0163
mov bh, 0x74
xchg dword [si], esi
retf 0x74b7
inc ecx
adc eax, esi
inc ecx
mul ah
dec esi
mov ebp, dword [esp + esi*2 - 0x4d9b9288]
inc ecx
xchg ah, dh
dec ebp
arpl di, di
inc dx
rol dword [esp + esi*2 - 0x4d9b928c], 0xae
dec ebp
adc ebx, edi
dec edi
lea edi, [ecx + ecx*4 - 0x77c4b6fd]
not bl
dec eax
sal esi, 0x61
pop ebx
inc ecx
pop edi
jne fcn.00cccd16
xlatb
insd dword es:[edi], dx
jp 0xce027b
imul edx, dword [ebx + ecx - 0x65], 0x315a7dfa
xchg dword [esi + 0xf], esp
bt cx, cx
sbb cl, 0x13
sbb dl, 0x32
xor bl, dl
shr cx, 0x26
lea edx, [esp + edx + 4]
sbb cx, cx
mov byte [edx + ecx*8 - 0x7fff8], al
lea eax, [ecx + ecx*2 - 0x5cd28f57]
jge 0x1507f73
xor ecx, 0x5206462b
lea edi, [edi + ecx - 0x5206b9d8]
jo 0xc9b4d7
mov eax, dword [edi + ecx - 0x5206b9d4]
movsx edx, cx
mov dword [esp + ecx - 0x5206b9d4], ecx
xor eax, ebx
bswap edx
dec eax
not dword [esp + ecx - 0x5206b9d4]
bt ecx, 0x1d
not eax
sal byte [esp + ecx - 0x5206b9d3], 0x27
xor dword [esp + ecx - 0x5206b9d4], ecx
rol eax, 1
dec cl
seto dl
jne 0x15294bf
dec ebx
call fcn.0151725e
dec eax
inc ebp
cdq
inc esp
xor dword [esp + esi - 0x4123858a], eax
xadd bp, ax
dec esp
mov ebp, dword [esp + esi - 0x4123858a]
pop esi
dec ebp
arpl ax, ax
call fcn.014c2c95
dec eax
inc edx
sal dword [esp + 0x13], 0x83
jns 0xd06ff9
mov ebp, 0x3aa22e85
dec eax
lea edi, [edi + ebp*2 - 0x75445d0e]
inc eax
movzx eax, ch
dec eax
lea edx, [eax - 0x11dba0dc]
mov ebx, dword [edi + ebp*2 - 0x75445d0a]
inc ecx
xor ebx, ebp
inc esp
movzx eax, al
inc esp
movzx ecx, al
lea ebx, [ebx + ebp - 0x66ac6ca6]
mov esi, ebp
ror ebx, 1
dec eax
lea ecx, [ebp*4 + 0x2a2e2232]
dec eax
bts eax, 0xb3
btr dx, ax
bswap ebx
xor ebx, 0x27805c3f
inc ecx
sar cl, 0xe2
inc ecx
mov esp, 0x23a096bd
add bp, 0xb22c
neg ebx
inc ebp
movsx esi, cl
rol esi, cl
not ebx
inc ecx
push ebp
dec eax
lea ecx, [edx + edx*8 + 0x262ca388]
cwde
inc cx
bts eax, 0x12
xor dword [esp + ebp*2 - 0x7545c162], ebx
inc eax
ror dh, 0xc5
or si, 0x8607
inc ecx
pop ebp
dec eax
add esi, ebp
not cl
bts ecx, esi
dec eax
arpl bx, bx
dec ecx
sar esp, cl
dec esp
lea edi, [eax + ecx*4 - 0x6259fd78]
inc ecx
add eax, esp
dec esp
adc ebx, ebx
inc cx
dec edi
cdq
dec ebp
bt eax, esp
dec ecx
add edx, dword [edx + eax*2 - 0x10a]
rol esi, cl
inc ecx
cmovb ebp, edi
dec ebp
lea edx, [edx + ebp - 0x3aa2e0a9]
dec ecx
lea ebx, [esi + ebp*8 + 0x3823edb2]
dec eax
lea edi, [edi + ebp - 0x3aa2e0b2]
movzx ecx, byte [edi + ebp*2 - 0x7545c162]
call fcn.00cc0525
jp 0xcad420
xor esi, 0xfe15b02e
dec eax
rol dword [esp + 0x18], 0x23
jae 0x153c712
jmp 0xce0104
inc ecx
bswap eax
dec esp
mov dword [esp + ecx*4 - 0x80], ebp
jmp 0xce7b0f
not eax
ror ecx, cl
setne dl
add ecx, 0x81be62b2
xor eax, 0x61b26c92
sal ecx, 0x62
sbb eax, 0xdd8c5625
lea ecx, [edx*2 - 0x1f611eea]
lea edx, [edx + ecx*4 + 0x24a93b19]
sub edx, edx
xor ebx, eax
xadd cx, dx
not edx
adc esi, eax
rol ecx, 0xff
mov dword [esp + ecx - 0x45096f8c], esi
ret
inc ecx
mov ebx, dword [edi + ebx*4]
neg dword [esp + 0x12]
jle 0xcc0364
shr esi, 8
jmp 0xcccc47