Function at 0x40b1e0
Capabilities:
Authenticate hmac

Disassembly:
aaa
sub eax, 0x66383034
sub eax, 0x31343861
sub eax, 0x63666436
bound esp, qword [esi + 0x36]
xor eax, 0x1613461
add byte [edx], dh
add dword [ecx], 0x656c6946
inc esi
outsd dx, dword [esi]
jb 0x40b23e
popal
je 0x40b22b
popal
jbe 0x40b23c
jb 0x40b249
outsb dx, byte [esi]
je 0x40b20b
push eax
jb 0x40b24f
jo 0x40b247
jb 0x40b258
imul esp, dword [ebp + 0x73], 0x7365522e
outsd dx, dword [esi]
jne 0x40b260
arpl word [ebp + 0x73], sp
jb 0x40b259
jae 0x40b265
jne 0x40b26a
arpl word [ebp + 0x73], sp
add dword [eax], eax
popal
add esp, dword [0x9d3d1f16]
outsd dx, dword [esi]
nop
add dword [ebx + ecx], eax
pop es
mov gs, word [ecx - 0x73]
nop
add dword [esp + ecx], eax
push ss
adc eax, dword [edi]
sub eax, dword [ecx + 8]
adc dword [edi], eax
imul ecx, dword [ebp + 0xc040190], 0x2b071316
inc ecx
or byte [ecx], dl
pop es
jb 0x40b1ab
add dword [ebx], eax
jo 0x40b247
nop
add dword [edx + esi*2], eax
nop
add dword [ebx], eax
jo 0x40b248
add byte [ecx], al
add byte [eax], al
adc al, 0x14
add byte [esp + edx], dl
sbb byte [ebp + 0x25040190], cl
push ss
pop es
adc dword [edi], eax
lcall 0x8c10, 0x1f1725a2
nop
add dword [edx], eax
outsd dx, dword [esi]
pop ds
adc byte [eax + edx*4 + 0x6fa20401], cl
mov word [eax + 0x6fa20401], ss
nop
add dword [0x9c040190], eax
movsd dword es:[edi], dword [esi]
nop
add dword [esp + ebx*4], eax
adc dword [edi], eax
pop ss
pop eax
adc eax, dword [edi]
adc dword [edi], eax
pop es
mov gs, word [ecx - 2]
add al, 0x13
or byte [ecx], dl
or byte [0x90], ch
adc ecx, dword [eax]
adc dword [eax], ecx
sub eax, 0x90
add byte [eax], al
js 0x40b2a7
add dword [eax], eax
add al, 0
add byte [eax + eax], al
add al, 0
or eax, 0x41232100
ja 0x40b2d3
jb 0x40b2d9
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
xor esi, dword [edx]
das
inc edi
popal
bound esi, qword [eax + 0x61]
je 0x40b2ea
add byte [ecx], al
add byte [ebx], cl
add dword [ebp + 0x75], ebp
je 0x40b2f0
js 0x40b2dc
inc ebx
push edx
arpl word gs:[eax], ax
add dword [eax], eax
or al, byte [ecx]
dec edi
inc ebx
push ebp
jo 0x40b2ff
popal
je 0x40b303
jb 0x40b2a0
add dword [eax], eax
invalid
jne 0x40b30e
jae 0x40b2d9
outsb dx, byte [esi]
ja 0x40b2dd
js 0x40b317
add byte [ecx], al
add byte [ebx], cl
add dword [edi + 0x6e], ebp
arpl word [ebp + 0x65], si
jae 0x40b2ec
js 0x40b326
add byte [ecx], al
add byte [ebx], dl
add dword [edi + 0x61], esp
bound esi, qword [eax + 0x61]
je 0x40b335
arpl word cs:[edi + 0x6d], bp
das
jne 0x40b344
jo 0x40b339
jo 0x40b340
jo 0x40b340
jo 0x40b2db
add dword [eax], eax
add byte [edx], dl
adc al, byte [ecx]
add dword [ebx + 0x6c], esp
imul esp, dword [ebp + 0x6e], 0x6f2e7374
arpl word [ecx + ebp*2 + 0x65], bp
outsb dx, byte [esi]
je 0x40b357
outsd dx, dword cs:[esi]
outsb dx, byte [esi]
arpl word [ebp + 0x65], si
jae 0x40b31a
arpl word [edi + 0x6d], bp
add dword [eax], eax
adc dword [ecx], eax
push ebx
outsd dx, dword [esi]
add byte [ecx], dl
add dword [ebx + 0x6f], edx
je 0x40b36f
popal
jb 0x40b360
pop esp
pop esp
dec edi
outsb dx, byte [esi]
arpl word [ebp + 0x65], si
jae 0x40b304
add byte [ecx], al
add byte [ebx], dl
add dword [edi + 0x6e], ecx
add dword [eax], eax
adc eax, dword [ecx]
dec edi
outsb dx, byte [esi]
inc ebx
jne 0x40b372
jae 0x40b36b
pop esp
dec edi
inc ebx
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x40b385
outsb dx, byte [esi]
outsb dx, byte gs:[esi]
je 0x40b38e
jae 0x40b31d
add dword [eax], eax
add byte [eax], dl
add dword [edi], ebp
adc byte [ecx], al
das
dec edi
inc ebx
inc esi
inc esi
xor eax, dword [ebx + 0x6f]
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x40b399
outsb dx, byte [esi]
outsb dx, byte gs:[esi]
je 0x40b35e
add dword [eax], eax
adc eax, dword [ecx]
aas
inc ecx
push esi
inc ebx
inc esi
inc esi
xor eax, dword [ebx + 0x6f]
insd dword es:[edi], dx
jo 0x40b3af
outsb dx, byte [esi]
outsb dx, byte gs:[esi]
je 0x40b385
inc eax
inc eax
add dword [eax], eax
adc eax, 0x413f2e01
push esi
inc ebx
dec edi
inc ebx
dec ecx
outsb dx, byte [esi]
jae 0x40b3c9
popal
insb byte es:[edi], dx
insb byte es:[edi], dx
jb 0x40b39c
jo 0x40b3cd
inc eax
inc eax
add dword [eax], eax
sbb byte [ecx], al
inc ecx
jo 0x40b3d6
add byte [eax], bl
add dword [ecx + 0x70], eax
jo 0x40b3d3
insb byte es:[edi], dx
imul esp, dword [ebx + 0x61], 0x6e6f6974
and byte [ecx + 0x74], al
imul ebp, dword [edi + 0x6e], 0x74614420
inc esp
popal
je 0x40b3d4
popal
pop esp
outsd dx, dword [esi]
outsb dx, byte [esi]
arpl word [ebp + 0x65], si
jae 0x40b37b
add dword [eax], eax
sub byte [ecx], al
xor al, 0x35
xor al, 0x64
xor al, 0x66
js 0x40b3eb
ja 0x40b3ef
jae 0x40b3ef
insw word es:[edi], dx
jae 0x40b405
jbe 0x40b3c9
cmp dword [eax], edi
xor al, 0x6f
cmp byte [edi + ebp*2], dh
xor eax, 0x75666a38
insd dword es:[edi], dx
xor esi, dword [edx]
xor al, 0x74
xor eax, 0x32343332
je 0x40b3d3
xor dh, byte [ebx]
xor al, 0x32
xor esi, dword [0x333476]
add byte [eax + 0x43], bh
add dword [eax], eax
add eax, 0x7000500
add byte [ecx], ah
add eax, 0x21000700
and eax, dword [ecx + 0x4c]
inc esi
cmp cl, byte [eax + 0x53]
push esp
push edx
cmp dl, byte [edx + esi*2 + 0x6f]
push 0x61
outsb dx, byte [esi]
cmp cl, byte [ebp + 0x53]
dec ecx
dec esp
das
dec eax
outsd dx, dword [esi]
je 0x40b433
jbe 0x40b431
jbe 0x40b431
push ebx
xor byte [eax], dh
xor byte [ecx], dh
add byte [ecx], al
add byte [edx], ch
add dword [ecx], ecx
outsb dx, byte [esi]
add byte [ebx], dh
xor dword [eax], eax
add dword [eax], eax
sub al, byte [ecx]
dec ecx
add byte [esi], ch
jae 0x40b3e0
je 0x40b3e2
popal
add byte [eax + eax + 0x6c], ch
add byte [esi], ch
add byte [ebx], dl
je 0x40b3ee
add byte [eax + eax + 0x61], dh
popal
add byte [edx], dh
je 0x40b3f4
jne 0x40b3f6
jo 0x40b3f8
inc esi
add byte [edi], ch
insb byte es:[edi], dx
add byte [eax + eax + 0x65], ah
add byte [edx], dh
add dword [eax], eax
push ds
add byte [esi], bl
add dword [edi], ecx
jo 0x40b40c
je 0x40b40e
imul eax, dword [eax], 0x6e006f
jae 0x40b416
add byte cs:[ebx], al
push 0x63006500
add byte [ebx], ch
push esi
add byte [ebp], cl
add dword [eax], eax
sub byte [ecx], al
dec edi
add byte [eax], dh
je 0x40b430
imul eax, dword [eax], 0x6e006f
add byte [edi], ch
outsb dx, byte [esi]
add byte [ebx], dh
add byte [esi], ch
jae 0x40b438
add byte cs:[ebx], al
push 0x63006500
add byte [ebx], ch
push ebx
add byte [ecx], ah
outsb dx, byte [esi]
add byte [eax + eax + 0x62], ah
add byte [edi], ch
js 0x40b452
add dword [eax], eax
add dword cs:[edi], ecx
jo 0x40b45a
je 0x40b45c
imul eax, dword [eax], 0x6e006f
jae 0x40b464
add byte cs:[ebp], cl
outsd dx, dword [esi]
add byte [esi], ch
imul eax, dword [eax], 0x6f0074
jb 0x40b474
push edx
add byte [ebp], ah
add byte [bx + di], ch
jae 0x40b47e
je 0x40b480
jb 0x40b482
jns 0x40b484
add dword [eax], eax
and al, byte [ecx]
dec edi
add byte [eax], dh
je 0x40b48e
imul eax, dword [eax], 0x6e006f
jae 0x40b496
add byte cs:[ebp], dl
inc ecx
add byte [ebx], al
inc edx
add byte [ecx], bh
jo 0x40b4a4
popal
add byte [ebx], dh
jae 0x40b4aa
add dword [eax], eax
push ss
add dword [ecx], ecx
outsb dx, byte [esi]
add byte [ebx], dh
je 0x40b4b6
popal
add byte [eax + eax + 0x6c], ch
add byte [esi], ch
add byte [ebx], cl
add byte gs:[ecx], bh
add dword [eax], eax
add dword es:[edi], ecx
jo 0x40b4cc
je 0x40b4ce
imul eax, dword [eax], 0x6e006f
jae 0x40b4d6
add byte cs:[ebp], cl
outsd dx, dword [esi]
add byte [esi], ch
imul eax, dword [eax], 0x6f0074
jb 0x40b4e6
push ebx
add byte [ebp], ah
insb byte es:[edi], dx
add byte [esi], ah
add byte [eax], al
js 0x40b535
add dword [eax], eax
add eax, 0x16000500
add byte [ecx], ah
and ecx, dword [eax + 0x53]
push esp
push edx
cmp al, byte [esi + 0x72]
imul ebp, dword [esi + 0x76], 0x2e707261
inc ecx
xor dword [eax], eax
add dword [eax], eax
or byte [ecx], al
aaa
cmp dword [ebp + 0x46], eax
xor dword [ebx + esi + 0x44], eax
add dword [eax], eax
or byte [ecx], al
inc ebx
xor dh, byte [0x35384235]
xor dword [ecx], eax
add byte [eax], cl
add dword [esi + 0x45], eax
xor dword [ecx], esi
aaa
inc ebx
cmp dword [ebx + 1], eax
add byte [eax], cl
add dword [ecx], edi
inc ecx
cmp byte [ebp + 0x46], al
cmp dword [ecx + 0x38], eax
inc ebp
inc esi
inc esi
xor dword [eax], edi
add dword [eax], eax
or byte [ecx], al
inc esp
inc esi
aaa
xor byte [ecx], bh
inc esp
inc edx
inc esp
add dword [eax], eax
or byte [ecx], al
xor dh, byte [ebx]
xor esi, dword [0x30463835]
add dword [eax], eax
or byte [ecx], al
inc esp
cmp dword [eax*2 + 0x38354642], esi
add dword [eax], eax
push cs
add dword [ecx], edi
xor al, byte [ebp + 0x46]
xor bh, byte [ecx]
inc esp
xor dh, byte [esi]
inc ebx
cmp dword [esp + esi + 0x33], eax
add dword [eax], eax
or al, byte [ecx]
xor al, byte [ebx + 0x43]
inc ecx
xor dword [ecx + 0x43], eax
inc esp
xor dword [esi + 1], eax
add byte [ecx + eax], cl
inc ecx
inc ebx
cmp byte [0x44413438], dh
xor al, 0x32
inc ebp
cmp byte [ecx], al
add byte [eax], cl
add dword [ebp + 0x44], eax
xor byte [eax], dh
xor eax, 0x1323841
add byte [eax], cl
add dword [ebp + 0x46], eax
xor al, 0x39
xor al, 0x30
xor al, byte [ebp + 1]
add byte [ecx + eax], cl
inc ebp
cmp dword [edi + esi], esi
xor al, 0x32
inc esi
xor dh, byte [eax]
inc ebx
xor bh, byte [eax]
add dword [eax], eax
or byte [ecx], al
xor eax, dword [ecx + 0x46]
inc esp
xor eax, 0x1444637
add byte [ecx + eax], cl
inc esp
inc edx
xor eax, 0x36344235
cmp dword ss:[ebp + 0x34], eax
inc ebp
add dword [eax], eax
or byte [ecx], al
xor byte [edx + esi], dh
xor al, byte [edx + 0x34]
xor eax, 0xc000141
add dword [edx + 0x31], eax
cmp byte [eax], bh
cmp byte [ecx], dh
inc ecx
xor dword [0x1333944], esi
add byte [eax], cl
add dword [ebp + 0x32], eax
xor dword [esp + esi], esi
xor dword [esi + 0x44], eax
add dword [eax], eax
or al, 1
xor al, 0x44
inc esp
xor eax, dword [edx + 0x45]
inc ebx
xor dword [esi], esi
inc ebx
cmp byte [ecx], al
add byte [eax], cl
add dword [eax], edi
inc ebp
inc ecx
cmp byte [ebx], dh
inc ebx
inc esi
xor byte [ecx], al
add byte [ecx + eax], cl
inc esp
inc edx
xor eax, 0x36344235
cmp byte [ecx], bh
xor byte [edx + 0x34], al
add dword [eax], eax
or byte [ecx], al
xor dh, byte [ebx + eax*2]
cmp byte [ecx], dh
inc esp
xor eax, dword [edx]
add byte [eax + 0x43], bh
add dword [eax], eax
pop es
add byte [edi], al
add byte [edi], al
add byte [ecx], ah
and eax, dword [ecx + 0x6c]
insb byte es:[edi], dx
outsd dx, dword [esi]
ja 0x40b695
imul esi, dword [ebx + 0x74], 0x4146573a
arpl word [ecx + ebp*2 + 0x76], si
popal
je 0x40b6bc
add byte [ecx], al
add byte [eax], dl
add dword [esi + 0x69], edx
jb 0x40b6c7
jae 0x40b6d8
imul ebp, dword [esp + ebp*2 + 0x65], 0x2e2e2e72
add dword [eax], eax
sbb al, byte [ecx]
push esp
add byte [ecx], cl
dec esi
add byte [edi], al
inc edx
add byte [edi], cl
inc edi
add byte [edi], bl
dec esp
add byte [edi], cl
inc edi
add byte [ecx], cl
dec esi
add byte [ecx], al
add byte [eax], ch
add dword [eax + eax], edi
add byte [edi], ch
jb 0x40b696
add byte [ebp], ch
and byte [eax], al
outsb dx, byte [esi]
add byte [ecx], ah
insd dword es:[edi], dx
add byte [ebp], ah
cmp eax, 0x52002200
insd dword es:[edi], dx
add byte [eax], ah
add byte [esi], ch
popal
add byte [ebp], ch
add byte gs:[0x52002200], bh
add byte [ebx], cl
dec esi
add byte [eax + eax + 0x6f], cl
add byte [edi], ah
imul eax, dword [eax], 0x1006e
inc esi
add dword [eax + eax], edi
jne 0x40b6be
jb 0x40b6c0
insb byte es:[edi], dx
add byte [esi], bh
add byte [eax], ch
je 0x40b6c8
add byte [eax + eax + 0x70], dh
add byte [ebx], dh
je 0x40b6ca
jo 0x40b6cc
jae 0x40b6ce
cmp al, byte [eax]
das
add byte [edi], ch
add byte [eax + eax + 0x69], dh
add byte [esi], ch
add byte [si], ch
jns 0x40b6e0
outsb dx, byte [esi]
add byte [edi], ah
insb byte es:[edi], dx
add byte [ecx], bh
jae 0x40b6e2
outsb dx, byte [esi]
add byte [ecx], ch
outsb dx, byte [esi]
add byte [edi], ah
add byte cs:[eax + eax + 0x6f], ah
add byte [ebp], ch
jae 0x40b6f4
je 0x40b6f6
outsd dx, dword [esi]
add byte [eax + eax + 0x2e], ch
add byte [eax + eax + 0x6b], ah
add byte [ecx], al
add byte [ecx + eax], bh
das
add byte [ebx], ah
imul eax, dword [eax], 0x730063
das
add byte [eax + eax + 0x6d], ah
add byte [edi], dh
add byte [bx], ch
add byte [ebx], ah
jae 0x40b71e
arpl word [eax], ax
ja 0x40b722
bound eax, qword [eax]
add byte fs:[ecx], ch
jae 0x40b72a
das
add byte [edx], ah
insd dword es:[edi], dx
add byte [ebp], ah
outsb dx, byte [esi]
add byte [ebp], dh
imul eax, dword [eax], 0x68002e
je 0x40b73e
insd dword es:[edi], dx
add byte [ecx], al
add byte [eax], bl
add dword [esi], ecx
jns 0x40b748
imul eax, dword [eax], 0x72
add byte [ebp], ah
add byte fs:[ecx], ch
je 0x40b754
and byte [eax], al
inc ecx
add byte [edi], ch
add byte [ebx], dl
add dword [eax], eax
sbb al, 1
push edi
add byte [esi], al
inc ecx
add byte [ebx], ah
je 0x40b76a
imul eax, dword [eax], 0x610076
je 0x40b772
add byte gs:[esi], ch
add byte [ebp], ah
js 0x40b77a
add byte gs:[eax], al
add byte [eax + 0x43], bh
add dword [eax], eax
pop es
add byte [edi], al
add byte [edi], al
add byte [ecx], ah
and ecx, dword [eax + 0x53]
push esp
push edx
cmp dl, byte [edx + esi*2 + 0x6f]
push 0x61
outsb dx, byte [esi]
cmp cl, byte [ebp + 0x53]
dec ecx
dec esp
das
inc ecx
outsb dx, byte gs:[si]
je 0x40b7f5
jae 0x40b810
popal
inc ecx
dec ebp
dec ebp
dec ecx
dec edi
xor dh, byte [ebx]
xor esp, dword [ecx]
dec ebp
push esp
inc edx
add byte [ecx], al
add byte [eax], ah
add dword [ecx], 0x6e35716e
cmp byte [eax + 0x70], ch
bound esi, qword [ebx + 0x6d]
ja 0x40b83e
arpl word [ebx + 0x65], si
bound esi, qword [0x76706376]
bound esi, qword [esp + ebp*2 + 0x61]
jne 0x40b808
push 0x75
insb byte es:[edi], dx
bound edi, qword [eax]
add dword [eax], eax
and byte [ecx + 0x7a367401], al
arpl word [edi + 0x36], sp
push 0x62617062
jb 0x40b85c
jae 0x40b863
cmp byte [eax + ebp*2 + 0x33], ah
bound esp, qword [ecx + edi + 0x68]
xor al, 0x67
xor si, word [ebx + 0x76]
cmp dword [eax + 0x34], ebp
xor si, word [bp + di + 0x76]
add dword [eax], eax
and byte [ecx + 0x727a7201], al
jo 0x40b83d
jb 0x40b842
jb 0x40b875
bound ebp, qword [eax + 0x35]
popaw
cmp byte [edx + 0x7a], bh
arpl word gs:[bx + si + 0x33], bp
aaa
imul esi, dword [ecx + edi*2], 0x66
jno 0x40b824
add byte [eax], ah
add dword [ecx], 0x6a667071
js 0x40b863
and byte [ecx + 0x66707101], al
push 0x78
aaa
aaa
push 0x72
jae 0x40b898
jo 0x40b899
cmp dword [ebx], esi
je 0x40b899
jp 0x40b8a8
xor eax, 0x73356164
popal
xor eax, 0x39336173
jae 0x40b8a1
xor edi, dword [ecx]
xor ebp, dword [ebx + 0x71]
cmp byte [edx + 1], ah
add byte [ecx + eax*4], cl
add dword [esi], ebp
jb 0x40b8b6
jae 0x40b8c2
jne 0x40b8c7
arpl word [ebp + 0x73], sp
add dword [eax], eax
xor eax, 0x69560181
add dword [esi + 0x69], edx
jb 0x40b8d5
jne 0x40b8c4
insb byte es:[edi], dx
dec ebp
insd dword es:[edi], dx
push ebx
imul ebp, dword [ebp + 0x2e], 0x61746144
inc ecx
arpl word [ebx + 0x65], sp
jae 0x40b8e8
inc esi
jb 0x40b8d9
insd dword es:[edi], dx
ja 0x40b8eb
jb 0x40b8e9
push edx
jae 0x40b8f2
jne 0x40b8f7
arpl word [ebp + 0x31], sp
jb 0x40b8f0
jae 0x40b8fc
jne 0x40b901
arpl word [ebp + 0x73], sp
add dword [eax], eax
sub al, 0x81
add dword [esi + 0x69], edx
imul esi, dword [edx + 0x74], 0x4d6c6175
jb 0x40b90f
jne 0x40b8fe
insb byte es:[edi], dx
dec ebp
insd dword es:[edi], dx
push ebx
imul ebp, dword [ebp + 0x2e], 0x706f7250
jb 0x40b920
jo 0x40b90f
jb 0x40b920
imul esp, dword [ebp + 0x73], 0x7365522e
outsd dx, dword [esi]
jne 0x40b928
arpl word [ebp + 0x73], sp
jb 0x40b921
jae 0x40b92d
jne 0x40b932
arpl word [ebp + 0x73], sp
add byte [eax], al
js 0x40b90a
jae 0x40b8c4
add byte [eax + 0x43], bh
add dword [eax], eax
or byte [eax], al
or byte [eax], al
or eax, 0x48232100
push ebx
push esp
push edx
cmp dl, byte [edx + esi*2 + 0x6f]
push 0x61
outsb dx, byte [esi]
cmp dl, byte [edi + 0x69]
outsb dx, byte [esi]
push esp
insb byte es:[edi], dx
dec ebp
push esp
je 0x40b971
jb 0x40b969
jae 0x40b930
inc esi
inc esi
imul ebp, dword [esi + 0x64], 0x7365722e
outsd dx, dword [esi]
jae 0x40b912
add byte [eax], bl
add byte [ecx], 0x54
je 0x40b98b
imul esi, dword [ebx + 0x2e], 0x65746f4e
popal
add byte [ecx], 0x46
inc esi
jb 0x40b9a4
popal
insb byte es:[edi], dx
jb 0x40b96f