Function at 0xd3a875
Capabilities:
Authenticate hmac

Disassembly:
cwde
xor ecx, ebx
mov edx, eax
sub ecx, 0xbf34a739
call fcn.012e06a0
jno 0xb7d9dd
cmp dh, byte [edi + 0x2e79caf4]
outsb dx, byte [esi]
div dword [esi + 0x6ece78b2]
div dword [esi + 0x66157351]
invalid
jae 0xb7d9af
invalid
in al, dx
aam 0x37
mov dl, 0x41
or cl, byte [ecx - 0x2e]
mov esp, 0xa40fa36
dec ecx
std
in al, dx
aaa
xchg esp, eax
push ds
stc
mov al, byte [0x27d96565]
adc bl, dh
xor byte [edi + 0x4737fb19], dl
mov ebp, 0x6418e188
inc eax
inc eax
push eax
push cs
xor ah, byte [ebx - 1]
out 0x1f, al
pop ds
or dword [eax + 0x4023f4be], edx
cmp eax, 0x6887cd6f
nop
sub eax, 0x677e00c1
loopne 0xb7d998
test al, 0x58
and byte [edi - 0x26], dl
cmpsd dword [esi], dword es:[edi]
clc
push eax
mov eax, 0x60a7da57
push 0x28f37031
jmp 0xb7da15
mov eax, dword [0xbdec699c]
sbb dh, ch
in al, 0x52
mov eax, 0x99cd58fd
push 0x160611bf
pop ds
xchg esi, eax
dec ebp
aad 0x5f
shl cl, cl
inc si
add ah, byte [edi + 0x40962dfa]
out dx, al
xor al, 0x3a
loope 0xb7da28
mov cl, 0xc
sub ah, byte [eax - 0x471573d3]
std
pop eax
jne 0xb7d9d5
mov edx, 0x2558fdb8
add eax, 0xc3509954
das
iretd
jae 0xd0ddc5
mov ecx, 0xe7ac9f0a
movzx eax, cl
mov edx, dword [ebp + eax*4 - 0x28]
ror ax, cl
and cl, 0x1c
xadd eax, ecx
mov eax, dword [ebp + ecx*2 - 0x4fc]
mov ecx, dword [ebp + ecx*4 - 0x9f8]
jne 0x14bcef3
mov eax, dword [edi - 4]
push 0x5fb833bb
push 0xd3a83996
xor eax, ebx
dec dword [esp + 4]
dec eax
ror eax, 1
mov edx, 0x1a1d2aac
inc eax
xor eax, 0x5e1e64b9
neg dword [esp + edx*4 - 0x6874aaae]
not eax
rol eax, 2
movzx ecx, dx
xadd dl, dh
jbe 0x13b1a9b
xor ebx, eax
neg byte [esp + edx*2 - 0x343b59a5]
jno 0x158104a
xor cx, 0xaa3b
dec al
rol cx, 1
inc cx
shl word [esp + edx*2 - 0x8000], 0xe8
dec edx
sub dx, dx
xor bx, cx
rol edx, 0xd4
jae 0xc70a7c
lea edi, [edx + edi - 2]
ror edx, 0xc3
mov word [edi + edx*2], cx
pop edx
jae fcn.01556dc6
push 0xaba241b7
call fcn.01529c50
mov ecx, dword [ebp]
jne 0xb7d976
call fcn.0156dbdb
mov ecx, dword [esi - 4]
mov edx, 0x51b31b21
ror edx, 0x6a
sbb esi, 3
and dx, dx
jne 0x14b4aad
not dword [esp + 4]
lea esp, [esp + 0x10]
je 0x1422218
push edi
mov edi, 0xe934f22c
movzx edi, byte [ecx]
xor edi, eax
jmp 0x1552cd1
mov dword [esp + edx - 0x4001], eax
inc cx
jmp 0xcc5d62
add eax, edx
mov dword [esi + 4], eax
mov eax, 0x261085a8
jmp 0x13a8d28
inc ebp
movsx esp, ch
inc eax
ror eax, 1
dec esi
lea ebx, [ebp*2 + 0x2630fca7]
inc ecx
or ah, 0xb3
inc ecx
push edi
inc ebp
movzx eax, cx
inc ecx
movsx edx, cx
inc ecx
ror esp, 0xc5
inc edx
xor dword [esp + eax - 0x9e3e], eax
inc ecx
pop edi
inc ecx
push ebx
inc bp
xchg esp, eax
dec eax
arpl ax, ax
inc ecx
dec esp
inc edx
and dword [esp + eax*2 - 9], 0xf9a0900e
movzx ecx, dl
dec eax
adc edi, eax
inc esi
add byte [esp + eax - 5], al
inc edx
add byte [esp + eax - 5], 0x99
inc edi
mov ebp, dword [eax + esi - 5]
inc dx
mov ecx, dword [esi + eax - 0xb]
inc ecx
xor ecx, 0x3e3bbd14
inc ecx
sal ecx, 0x42
dec dx
inc cx
xor ecx, edi
inc dx
shl dword [esp + eax + 1], 0x4d
sbb cx, 0xc8af
xor cx, 0xd835
movzx eax, dl
not cx
dec ecx
lea ebp, [ebx - 0x4ddef1d8]
ror cx, 1
and al, al
inc sp
xor edi, ecx
dec ecx
shl ecx, 0xff
dec eax
lea ecx, [esp + ecx + 8]
inc ebp
mov dword [ecx + ecx], ebp
dec esp
and eax, eax
dec edx
div dword [esp + ecx*4]
inc edx
movzx edx, word [esi + ecx - 8]
dec ebp
xor ecx, eax
dec ecx
lea esi, [ecx + esi - 0xd]
dec eax
xor ebp, 0xa6997137
sbb eax, 0x6e22498e
inc cx
xor edx, edi
dec eax
cwde
ror dx, 1
dec ecx
shr esp, 0x53
ja 0x14bcdd1
mov ecx, 0x10a9b823
mov edx, ecx
push edx
mov dx, word [esi + ecx - 0x10a9b823]
inc byte [esp + ecx*2 - 0x21537045]
shr ecx, 0x36
mov eax, 0x4cb99814
mov cx, word [esi + ecx*2 - 0x82]
lea esi, [eax + esi - 0x4cb99812]
lea eax, [eax*8 - 0x37766a4f]
not dx
xor word [esp + eax - 0x2e56564f], 0x688d
or ax, ax
shl ax, 0x63
not cx
xor byte [esp + eax - 0x2e56b288], ah
cbw
and dx, cx
lea ecx, [eax - 0x11e4ab58]
idiv al
sub eax, dword [esp + eax - 0x2e560001]
mov word [esi + ecx - 0x1c725430], dx
lea ebp, [ebp + ecx - 0x1c725434]
setno al
movsx edx, cl
neg cl
mov eax, dword [ebp + ecx*4 - 0x71c95340]
sub dword [esp + ecx*2 - 0x38e4a9a0], edx
sar dword [esp + ecx - 0x1c7254d0], cl
pop ecx
xor eax, ebx
add eax, 0xe1b71733
neg eax
call fcn.013bec1f
cwde
ror dword [ecx], 0x64
std
invalid
movzx edx, ax
mov eax, dword [ebp + eax*2 - 0x4c210b54]
jmp 0x14d6bf5
ror edx, 1
and byte [esp + eax - 0x4b8893fa], 0xa5
jae 0x143bdba
dec esp
xchg ebx, ebp
inc ecx
and cl, dl
dec ecx
xor ebp, 0x2c9822b6
not cl
dec ecx
rol eax, 0x56
sbb bp, 0x601c
inc ecx
adc bl, ch
inc cx
mov dword [esi + ebp - 0xaa34], ecx
dec eax
sar ebx, 0x65
inc esp
movsx ebx, dx
dec eax
xor ebx, edi
jmp ebx
jmp eax
call fcn.00c9b782
mov eax, 0x6280442a
mov eax, dword [esi + eax - 0x6280442a]
mov edx, dword [esi + 4]
jmp 0x1315407
neg edx
call fcn.00b907cb
mov eax, dword [ebp + ecx*4 - 0x547be48c]
mov edx, dword [ebp + ecx*4 - 0x547be488]
btc cx, cx
dec ecx
lea ebp, [ebp + ecx*2 - 0x2a3df24c]
and ecx, ecx
bts ecx, ecx
mov dword [eax + ecx - 0x151efd2a], edx
mov eax, dword [esi + ecx*4 - 0x547bf4a8]
lea esi, [esi + ecx*2 - 0x2a3dfa50]
xor eax, ebx
lea eax, [eax + ecx*4 - 0x650f7fe7]
neg eax
xor eax, 0xe6066d0b
mov dword [esp + ecx - 0x151efd2a], ecx
pop edx
inc eax
bt edx, edx
rol dl, 0x27
shl dl, 0xe6
xor ebx, eax
sal ecx, 0x2e
lea edx, [ecx + edx*2 - 0x24383f1]
add edi, eax
xor dx, dx
jmp edi
dec esp
or ecx, eax
neg dx
cwde
dec ebx
lea ebx, [eax + ebx*4 - 0x757660e2]
inc ebp
movsx edx, sp
sub dx, 0xc5bd
not dx
inc esi
mov ebp, dword [esp + ecx - 0xc522ffc]
inc edx
xor dword [esp + ecx*2 - 0x18a45ffb], 0x41a30fbe
jl 0x13aa071
inc sp
xor edi, edx
dec eax
lea edx, [esp + edx + 8]
inc dx
xadd dword [esp - 0xf7fc], ebp
inc ecx
pop edx
dec esi
mov ebp, dword [edx + ecx*2 - 0x18a45ffe]
dec ecx
shr esp, 0xda
inc ecx
movzx edx, sp
dec esi
lea eax, [0x2337a6b5]
dec edi
mov dword [ecx + esi - 0xc523003], ebp
call fcn.012b64fb
mov dword [ebp - 4], eax
push 0xd70e4f11
dec dword [esp]
shl dword [esp], 0x95
test ebx, ebx
call fcn.00d0d267
mov eax, 0x5e3538a4
cbw
mov ecx, dword [edi + eax - 0x5e35ffa4]
lea edx, [eax*2 + 0x3e8b6210]
mov eax, dword [edi + eax - 0x5e35ffa0]
and ecx, eax
mov eax, edx
not ecx
push eax
cdq
cwde
mov dword [edi + eax*8 - 0x30abc], ecx
bswap edx
lea ecx, [edx + edx*2 - 0x7c418251]
imul byte [esp + eax*2 - 0xc2ae]
mov edx, dword [esi + eax*2 - 0x1f9d0]
sbb eax, dword [esp + eax - 0xfce8]
or dword [esp + eax*2 - 0xa13371e], eax
xor edx, ebx
not byte [esp + eax*2 - 0xa13371b]
call fcn.014ab3f3
ror eax, 0xb1
xor dl, bl
neg dl
call fcn.00cd38f5
mov dword [esp + eax - 0x2b], ebx
cbw
mov ebx, edx
btc ax, 2
movzx edx, ax
mov edx, ebx
not eax
btr eax, eax
rol ax, 0x86
sal edx, 2
ror eax, 0xa9
mov eax, ebp
push 0x62a8fb85
adc eax, edx
jmp 0xd35e3f
adc ebp, 4
call fcn.01408b04
mov ecx, 0xcb860ca5
movzx edx, cx
movzx ecx, byte [edx + esi - 0xca5]
shr edx, 0x24
lea esi, [esi + edx - 0xc9]
xor cl, bl
mov eax, edx
add edx, eax
xchg dh, dl
not cl
sbb cl, 0x9b
call fcn.01338950
mov eax, dword [esi - 4]
inc ecx
xor eax, edi
inc eax
inc ecx
mov ebp, 0x86389e3e
rol eax, 1
inc ebp
mov ecx, ebp
jmp 0x1326371
movsx ecx, dx
neg cx
lea ebp, [ebp + edx*4 - 0x216a4]
bswap edx
xor cx, dx
neg cl
xor eax, ebx
not edx
ror eax, 1
inc eax
ror dl, 3
neg edx
bswap eax
sub cl, dh
btc ecx, edx
rol eax, 1
btr cx, dx
bswap edx
sbb eax, 0xa83e6aa8
bt ecx, edx
neg cx
xor ebx, eax
dec cl
shr edx, cl
adc edi, eax
mov edx, dword [esi + edx + 2]
mov cl, byte [esi + 8]
add esi, 0xa
mov eax, 0xd6111b95
mov byte [edx], cl
sub ax, 0x6016
mov edx, eax
movsx ecx, ax
jmp edi
neg ax
btc ax, 0x1e
lea edi, [edi + eax - 0x580d39d5]
not dl
not cl
call fcn.0144c1f6
imul cx, dx
dec edx
ror eax, 1
sar cl, 1
and ecx, edx
sbb dl, dh
inc eax
rol ecx, 0xb7
xor ebx, eax
xadd edx, ecx
adc edi, eax
jmp edi
push 0x312872ab
and edi, 0xff
mov edi, dword [edi*4 + 0x1500df8]
shr eax, 8
call fcn.014428d2
xor ebx, eax
add ebp, eax
or dl, byte [edi + ecx*2 - 0x60000000]
mov eax, 0x580d8629
add cl, byte [edi + ecx*2 - 0x5ffffffe]
jmp 0x1534fb0
shr dword [esp + edx - 0x1a1dacd4], 0x12
adc esi, eax
mov eax, ebp
mov dword [edx + ebp - 0x1a1dacda], eax
rol byte [esp + edx*4 - 0x6876b352], 0x64
movzx eax, cl
mov eax, dword [ebp + edx*2 - 0x343b59b0]
movzx ecx, byte [edi + edx*2 - 0x343b59b1]
ror byte [esp + edx - 0x1a1dacd2], 0x25
lea edi, [edx + edi - 0x1a1dacdb]
not dx
xor cl, bl
btr dx, dx
xor cl, 0x1b
add edx, 0x3a257d03
dec edx
rol cl, 1
not byte [esp + edx - 0x5442ce29]
dec cl
neg cl
xchg dh, dl
shl edx, 0xdc
xor bl, cl
inc dx
lea ecx, [esp + ecx + 8]
sal dword [esp], 0x58
shr dword [esp + 3], 0x82
mov dword [ecx], eax
lea eax, [edx - 0x3df0ded0]
pop edx
pop eax
jmp esi