Function at 0x10011d59
Capabilities:
Authenticate hmac

Disassembly:
mov dword [eax + eax], esi
push ebp
add byte [ebx - 0x7e], ch
insb byte es:[edi], dx
add byte [edx + 0x79], dl
jl 0x10011d07
add byte [ebx + 0x56], bl
sbb dword [eax + 0x6b], 0x57
jae 0x10011d17
imul ecx, dword [esp + ebx*2 + 0x6a5f89], 0
add byte [eax], al
outsd dx, dword [esi]
push esp
add byte [eax], al
jge 0x10011d35
add byte [edx + 0x76], dh
pop edx
pop ecx
pop eax
add byte [ecx], bh
add byte [ebp], ch
jbe 0x10011d40
jp 0x10011d37
push 0x5655
mov dword [eax], eax
add byte [eax], al
insd dword es:[edi], dx
pop edi
push 0
ja 0x10011ce7
pop eax
insb byte es:[edi], dx
add byte [edi + 0x6d], dl
add byte [eax], al
add byte [edi + 0x5c], dl
imul eax, dword [ebx + 0x57588568], 0x5b5358
push ebx
add dword [esp + ebx*2 + 0x89006b], 0
push edx
add byte [eax], al
pop ebx
jo 0x10011d0a
push 0x596c005c
add byte [eax], al
jbe 0x10011d13
add byte [edi + esi*2 - 0x78], bl
pop esp
add byte [edi], bl
push esi
mov word [edi], gs
jb 0x10011ca1
ja 0x10011d7d
cmp byte [esi + 0x6b], 0
insb byte es:[edi], dx
add byte [eax], al
sub byte [edx + 0x69], 0x71
pop ecx
add byte [eax], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al
ja 0x10011d90
add byte [eax], al
add byte [edi + 0x56], dh
test dword [ebx + 0x5a], ebx
pop esp
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp ecx, esi
jae 0x10011eb3
xor byte [0x100294b4], 0x38
and byte [0x10029773], 0x77
mov dword [0x10029664], eax
mov dword [0x100295bf], ebx
call 0x10011ead
push 0x690057
push ebx
push esp
push edx
jle 0x10011de5
push ebp
insb byte es:[edi], dx
add byte [ebp + 0x6a], dl
jne 0x10011de9
push 0x75
push esi
or byte [ecx + 0x755c6900], 0x77
jb 0x10011d1c
pop ecx
add byte [ecx + 0x6c], ch
pop ecx
jp 0x10011dfa
insd dword es:[edi], dx
add byte [eax], al
outsd dx, dword [esi]
jno 0x10011dfe
pop ebx
jge 0x10011dac
pop ecx
push edx
pop ecx
add byte [edx], ch
add byte [ebx + 0x79], dl
jle 0x10011e23
jge 0x10011e0c
pop dword [eax]
push 0x715b89
imul edi, dword [ebp + 0x55], 0x5c
add byte [ebx + 0x5b000054], al
add byte [edi + 0x57], ch
add byte [ebx], bl
outsd dx, dword [esi]
push edi
ja 0x10011e27
add byte [eax], al
add byte [ebx + 0x570000], al
add byte [edi], ch
jp 0x10011d63
outsd dx, dword [esi]
add byte [ebx], ch
add byte [eax], al
add byte [ebx + eax*4 - 0x73], bh
imul eax, dword [eax], 0x8600578d
pop eax
insb byte es:[edi], dx
lea ebp, [ecx]
lea edx, [edi]
xchg byte [eax + 0x6c], bl
push edi
add byte [esi + 0x546d6c58], al
insd dword es:[edi], dx
push esp
push esp
add byte [eax], al
push edi
imul ebp, dword [eax], 0
add byte [ebx + 0x69006800], al
add byte [eax], ch
imul eax, dword [eax], 0x7d596a68
js 0x10011e05
add byte [eax + 0x6a], ch
pop ecx
jge 0x10011e7c
add byte [edx], bl
add byte [esi], dl
jnp 0x10011e0c
pop edx
add byte [eax], al
push esi
add byte [ebx], bh
push ebx
add byte [edx + 0x58], bh
invalid
pop esp
push esi
push 0x6d006b69
pop esp
test dword [ebx], ebp
jns 0x10011e93
imul ebp, dword [edx + 0x57], 0
add byte [ecx], bh
push 0x57
add byte [eax], al
jns 0x10011e2e
jae 0x10011e8c
push ebp
push 0x6f008153
add byte [ebp + 0x52], dl
add byte [eax], al
add byte [eax], al
ja 0x10011dc8
add byte [ebp + 0x5b], ch
push esp
imul ebp, dword [eax], 0x59818c8f
pop ebx
pop ebx
add byte [eax], al
add byte [ecx - 0x77], ch
je 0x10011ed0
add byte [esi + 0x7e], dl
add byte [eax], al
add byte [edi + 0x5c], dl
add byte [edx], ch
add byte [esp + ebp*2], bl
mov dword [ecx + 0x7e], edi
push 0x54005b8c
xchg byte [eax], al
pop esp
pop eax
push esp
mov dword [ebx + 0x6c], edx
insb byte es:[edi], dx
jl 0x10011ede
outsd dx, dword [esi]
jb 0x10011e04
invalid
imul eax, dword [eax], 0x80000000
outsd dx, dword [esi]
push edi
test byte [eax], al
pop eax
push ebx
add byte [ebx + 0x6d005b5f], cl
pop ebx
add byte [ebp + 0x5b], ch
pop edi
add byte [esi + 0x59], dl
jg 0x10011e95
jno 0x10011e1b
push edi
je 0x10011ef1
insb byte es:[edi], dx
pop ecx
push edx
add byte [ecx + 0x5885], al
jg 0x10011ea5
add byte [edx], dl
nop
nop
nop
nop
nop
pop dword [0x100295da]
push dword fs:[eax]
test edx, ecx
jne 0x10011ee6
cmp edi, edx
jne 0x10011f01
mov dword [0x10029175], 0xbd
mov dword [0x10029515], 0x980
mov dword [0x10029023], edi
add dl, byte [eax]
mov dword [0x10029689], ebx
sub byte [0x100294d1], 0xf1
add byte [0x10029571], 0x44
add dl, byte [eax]
inc esp
and byte [0x1002924a], 0xf3
mov dword [0x100294dc], ecx
mov dword fs:[eax], esp
jmp 0x10011f29
pop dword fs:[0]
add esp, 4
test esi, edi
jne 0x10011f6b
test edx, edi
je 0x10011f75
mov dword [0x10029600], 0x874
sub byte [0x10029188], 0xe3
and word [0x1002981e], 0x93f
and byte [0x100295dc], 0x6a
xor byte [0x10029405], 0x36
mov dword [0x100292ac], 0xc0d
mov eax, dword [esi + 0xc]
add eax, ebx
cmp edx, 0x63c
jae 0x100120cd
sub word [0x1002957b], 0xfc5
mov dword [0x10029384], eax
call 0x100120b4
push esp
imul eax, dword [eax], 0x77777b00
push esp
add byte [eax + eax + 0x68], ch
pop eax
pop ebx
pop edi
pop edx
pop ecx
push ebp
pop dword [eax]
jge 0x10011fb0
xchg byte [ecx + 0x7e], ch
ja 0x10012011
add byte [ebx + 0x695600], cl
push ebp
jb 0x10011fbe
imul eax, dword [eax], 0
push esi
push edi
pop edx
add byte [edi + 0x57], dl
push 0x6b8f6d
pop edi
add byte [ecx + ebx*2 - 0x71], dl
push esp
jno 0x10011fd4
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x6b6d7a82], al
add byte [ebp + 0x7d55556c], cl
push ebp
jae 0x10011fe7
add byte [eax], al
test byte [ecx - 0x7a], ch
push 0x688276
insb byte es:[edi], dx
add byte [eax], bl
test byte [edx + eax*4], dh
push esi
insd dword es:[edi], dx
push esi
jb 0x10011ffe
adc byte [edi + 0x5a], 0x53
add byte [ebx + ebp*2 + 0x55], dl
jbe 0x10012060
add byte [edx], ch
pop ecx
pop esp
pop ebx
add byte [ecx + 0x52], ch
add byte [eax + 0x5a], ch
add byte [ecx], ch
insd dword es:[edi], dx
add byte [eax], al
add byte [edi + 0x5b5900], cl
add byte [eax + 0x77], bl
mov dword [eax + eax + 0x6d], ebx
test dword [eax + esi*2 - 0x74], ebx
add byte [edx], bl
push 0xffffffffffffff87
insb byte es:[edi], dx
test dword [eax], eax
push edi
add byte [eax + 0x6b], bl
push 0x5f
add byte [edi - 0x79], dl
pop edi
pop ebx
add byte [eax], al
xchg byte [ebx], dh
pop ecx
jge 0x100120ae
jnp 0x100120b8
pop ebx
add byte [eax + eax], ch
jne 0x100120ab
pop eax
jl 0x10012052
jb 0x10012054
pop ebx
add byte [eax], al
add byte [eax], al
xchg byte [ebp + 0x74], dh
push esi
push esp
add byte [edi + 0x55], dl
push ebp
push 0x71
imul eax, dword [eax], 0x6f
pop eax
pop ebx
jno 0x100120d6
add byte [eax + eax + 0x5c], bl
imul eax, dword [edi + 0x57520057], 0x87000000
push ebp
imul ebp, dword [eax + 0x68], 0x526d
push esi
push 0
add byte [eax], al
insb byte es:[edi], dx
pop edx
test byte [ebp + 0x78], ch
pop ecx
pop edx
imul ebx, dword [edx], 0
add byte [edi - 0x74], ch
pop edi
add byte [eax], al
insb byte es:[edi], dx
js 0x10012103
pop eax
push edi
sub dword [ebx + 0x5f], 0x858f5259
jno 0x10012110
add byte [ecx + ebx*2 + 0x78], bl
jne 0x10012100
jp 0x10012102
push esi
add byte [esp + edi*2 - 0x6f6f6f70], al
jl 0x10012040
nop
nop
nop
nop
pop dword [0x10029375]
add dl, byte [eax]
xor byte [0x100294a0], 0xc3
mov dword [0x10029412], ecx
mov dword [0x1002971d], ebx
add eax, 0x58
cmp eax, edx
jae 0x10012215
add byte [eax], al
call 0x100121ef
add byte [eax + eax - 0x77], ch
mov eax, dword [eax]
add byte [eax + eax], dh
pop eax
push 0x5c
push edi
push edi
add byte [eax], ch
insb byte es:[edi], dx
add byte [edi + 0x68], ch
invalid
add byte [eax + eax + 0x56], ch
add byte [esi + 0x55], dl
push esi
push ebp
pop edx
add byte [eax], al
add byte [ecx + 0x79], bl
add byte [eax - 0x75], ch
push ebp
pop edx
add byte [eax], al
mov gs, word [ebx + 0x69]
imul eax, dword [eax], 0
add byte [ebx - 0x7f], dh
add byte [ebx + 0x73], dl
jg 0x10012120
test dword [eax], eax
pop ecx
jo 0x10012125
add byte [eax + eax + 0x6a], dl
pop ebx
add byte [edi], dl
lea edi, [edi + 0x68]
pop ebx
push esi
push 0x5c
jae 0x10012136
add byte [ebx + edx*2 + 0x73], bl
outsd dx, dword [esi]
mov eax, dword [eax]
push 0x68
add byte [ecx], ch
pop ebx
pop edx
imul edx, dword [esi], 0xffffff85
xchg byte [eax], al
push ebx
add byte [esi - 0x78], bh
add byte [ecx + 0x6c], ch
jb 0x100121ca
pop edi
pop edi
pop edi
push edi
mov byte [eax], al
push edx
push 0xffffffffffffff84
pop ebx
mov ebp, dword [eax - 0x74]
pop dword [eax]
add byte [edx + 0x5b], bl
push edi
add byte [eax], al
pop ebx
push edx
imul eax, dword [eax], 0x7c687000
push 0x526f6c00
add byte [edx - 0x72], bl
add byte [edi + 0x55], bl
insb byte es:[edi], dx
pop ecx
push ebp
push 0x57
add byte [eax + 0x77], bl
push 0x6a
pop ecx
test byte [eax], al
add byte [eax + 0x74], bl
push 0x785a58
ja 0x1001220e
add byte [eax], al
push esi
add byte [ebx + 0x69], bl
mov word [edi + ebp*2 + 0x715f6f55], es
add byte [esi + 0x6a], dl
pop ebx
pop ecx
add byte [eax + 0x5f], ch
xchg dword [ecx], ebx
add byte [eax], al
jo 0x100121ae
add byte [edi - 0x71], ch
pop ecx
pop edi
push edi
jbe 0x1001220f
jl 0x10012223
add byte [edi - 0x7aa8927e], cl
add byte [edi + 0x5b786d], cl
pop esp
pop eax
add dword [eax], 0
push 0x6c567668
pop edx
push 0x5a6c5676
add byte [edx], dl
push edi
pop edx
jge 0x1001222b
xchg byte [ecx + ebx*2 + 0x5f], bl
invalid
jae 0x100121e1
jge 0x1001223b
imul ecx, dword [ebx + edx*2 - 0x7d94a997], 0x90909090
nop
pop dword [0x10029055]
xor byte [0x100298c3], 0xb3
mov dword [0x1002922e], 0xb6e
mov dword [0x10029070], ecx
add word [0x10029539], 0xc88
add eax, 0x10029539
mov byte [ecx + ebp*8], cl
out dx, eax
add eax, dword [eax]
add byte [ebx], bh
bnd je 0x1001236e
cmp dword [ebp + 0xc881002], edx
jmp 0x10012609
and byte [0x1002984c], 0xd2
or byte [0x100294d2], 0x59
call 0x1001234e
and eax, 0x1002984c
rol byte [eax + 0x294d20d], cl
adc byte [ecx - 0x18], bl
sbb dword [ecx], eax
add byte [eax], al
rcl byte [edx + eax + 0x19e85910], cl
add dword [eax], eax
add byte [eax + 0x74], ch
add byte [ecx + 0x56], bl
push 0x56590074
add byte [ecx + 0x7b008b], cl
push 0x535a0000
mov dword [ebx + 0x68007b00], ecx
add byte [eax], al
pop edx
push ebx
push ebx
pop ecx
push ebp
mov dword [ebx + 0x77], edx
add byte [ebp], dl
je 0x100121df
push edi
add byte [eax], al
push 0
imul ebx, dword [ebx - 0x7c], 0
add byte [esi + 0x52], bh
pop edi
push ebp
add byte [edi], dh
jne 0x10012263
jg 0x100122e2
add byte [edx - 0x7f], bl
pop edx
jle 0x100122e4
push ebx
push edx
push ebp
add byte [eax + 0x5c7588], cl
pop eax
pop ebx
add byte [ecx], ch
add byte [esi + 0x56566a00], al
add byte [ecx + 0x5a], ch
jnp 0x100122f9
outsd dx, dword [esi]
imul eax, dword [eax], 0x53880056
pop ecx
insb byte es:[edi], dx
pop edx
add byte [eax], al
push ebx
push 0x75537600
push ebx
add byte [eax], al
pop ebx
jns 0x100122f4
insd dword es:[edi], dx
add byte [ecx + 0x5a], ch
push ebx
pop ecx
insd dword es:[edi], dx
imul esi, dword [ebx + ebp*2], 0xffffff81
add byte [ebx + 0x5a], dh
pop ecx
push ebx
add byte [edi - 0x77], ch
add byte [ecx], dh
push esp
add byte [ecx + 0x53005986], cl
pop eax
push ebp
push ebp
add byte [ecx - 0x79], bl
push edi
add byte [edi], dl
xor dword [ebx - 0x7c], 0x697b58
push esi
push esp
add byte [esi + 0x54], dl
insd dword es:[edi], dx
add byte [edx + 0x59], bl
insb byte es:[edi], dx
add byte [edi + 0x70], bl
outsd dx, dword [esi]
lea esi, [eax + 0x5a]
add byte [ecx], dh
mov dword [eax], eax
add byte [eax + 0x6f], bl
add byte [ecx], ch
imul eax, dword [eax], 0x757800
mov ss, word [esi + 0x6a]
ja 0x10012346
add byte [eax + 0x75], bh
add byte [esi + 0x59776a56], cl
push edi
add byte [eax], al
add byte [eax], al
ja 0x10012346
jno 0x10012365
add byte [ebx + 0x5a], ch
add byte [eax], al
jp 0x10012374
jns 0x1001236b
pop esp
add byte [eax], al
jnp 0x1001236d
add dword [eax], 0x5a
add byte [ebx], ch
pop ecx
jne 0x10012369
push ebp
jne 0x10012369
add byte [ebx], bl
jl 0x1001237d
add byte [edx + 0x69], dh
add byte [eax], al
add byte [edx + edx*2 + 0x69000000], al
outsd dx, dword [esi]
pop eax
push esi
insb byte es:[edi], dx
mov edi, dword [ebx + 0x5f]
pop edi
add byte [eax + 0x74], ch
add byte [ecx + 0x6f], bh
pop eax
mov ebp, dword [eax + eax]
add byte [eax], al
add byte [eax], al
add byte [edi - 0x74], bl
push esp
push esi
add byte [edi - 0x79], dl
pop ecx
sbb dword [ebx], 0x6f
add byte [eax - 0x7e], dh
jo 0x100122ca
imul edx, dword [eax - 0x6f6f6f70], 0x946f058f
add dl, byte [eax]
mov dword [0x1002955e], 0x991
mov dword [0x1002954e], edx
mov dword [0x10029860], 0x193
add eax, 0x10029860
xchg ebx, eax
adc byte [ebx - 0x7cffffff], dl
sal byte [eax], 0x3b
int1
add dword [eax], eax
add byte [ebx - 0xec4cf40], al
test dword [eax - 0x17fffffe], edx
xor eax, dword [ecx]
add byte [eax], al
add byte [edi + 0x79], bl
add byte [eax + eax + 0x77], ch
add byte [edi + ecx*4 + 0x55], dl
imul eax, dword [eax], 0
add byte [edi + 0x59], dh
add byte [edi + 0x54], dh
add byte [ecx + 0x6a], ch
add byte [eax], al
imul eax, dword [ebp + esi*2 + 0x7f00006c], 0xffffff83
push 0x59
pop ecx
je 0x10012420
imul esi, dword [ebp - 0x7c], 0
mov word [ecx], gs
push 0x75005c5c
add byte [eax], 0x6b
add byte [eax], al
add byte [ebp], ch
pop eax
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x56], bl
add byte [edi], bl
add byte [edi + eax*4], bl
add byte [eax], al
pop eax
jne 0x10012446
add byte [ebp + 0x7d], ch
add byte [ecx], ch
mov dword [eax], eax
push esi
jg 0x1001235e
add byte [ebx], dl
mov gs, word [ecx + 0x55]
add byte [eax], al
add byte [eax], al
pop ebx
add byte [eax], al
add byte [eax + 0x55], ch
imul ebp, dword [ebp + 0x5f], 0x86680057
pop ebx
jg 0x10012445
add byte [edi], dl
outsd dx, dword [esi]
pop esp
push ebx
add byte [edx + 0x6f], dl
outsd dx, dword [esi]
add byte [edi + 0x7959006d], cl
push ebp
xchg byte [eax], al
add byte [eax], al
push edi
add byte [eax], al
pop edi
add byte [eax], bl
add byte [eax + 0x5f], bl
pop ecx
push ebp
add byte [eax], al
add byte [eax], al
push 0x6f6b0069
pop ebx
mov byte [eax], al
add byte [esp + ebx*2 + 0x59], bl
pop ecx
push 0x6c6c6b00
push 0
insb byte es:[edi], dx
add byte [ecx + eax*4 + 0x6f], dl
push 0x8f00876f
add byte [esi], bh
add byte [ebp + 0x54], dl
add byte [edi + 0x5c], dl
push esp
add byte [esi + 0x56], dh
add byte [eax + 0x5f], bl
add dword [eax], 0x6d
lea esi, [ebp + 0x54]
jne 0x1001249c
pop edx
push esi
insd dword es:[edi], dx
imul eax, dword [eax], 0
add byte [eax], al
push ebp
jb 0x100124c2
pop dword [eax]
jno 0x10012457
insd dword es:[edi], dx
pop ecx
push esi
pop ebx
pop esp
add byte [eax], al
add byte [eax], al
outsd dx, dword [esi]
pop edi
add byte [edx - 0x71], bl
pop ebx
pop ebx
insb byte es:[edi], dx
outsd dx, dword [esi]
insd dword es:[edi], dx
add byte [esi + 0x70], dl
add byte [eax], al
add byte [eax], al
pop edi
imul edi, dword [edx + 0x55], 0x59520054
add byte [eax + 0x5f007e], cl
insd dword es:[edi], dx
add byte [eax + eax + 0x59], bl
jp 0x10012486
add byte [edi], ch
add byte [edx], dl
pop edx
ja 0x1001248f
add byte [eax], al
sub byte [ecx - 0x73], 0
pop edx
jns 0x10012503
pop esp
mov word [edi + 0x58], ds
insd dword es:[edi], dx
add byte [ecx], ch
push 0x54
add byte [ebx + 0x58], bl
add byte [eax], al
push esp
jo 0x100124aa
add byte [eax - 0x6f6f6f70], dl
nop
pop dword [0x1002988a]
mov dword [0x10029500], esi
or byte [0x100298ae], 0xe7
adc bh, ah
call 0x100125f3
add byte [eax], al
jae 0x1001253e
insb byte es:[edi], dx
add byte [eax], al
pop ecx
add byte [eax], 0x56
jle 0x100124d6
add byte [ebp], bh
jo 0x1001245e
push 0x53
add byte [edi + 0x5f], ch
add byte [eax], al
pop ebx
ja 0x10012544
push edi
add byte [esi + esi*2], bl
push 0x58000080
test byte [edi], bl
xor byte [edi + 0x5b], 0x56
sub byte [edi], 0
add byte [edi], bl
pop ecx
add byte [ecx], bl
pop ebx
outsd dx, dword [esi]
xchg dword [eax], ebx
add byte [ebx + 0x76], bl
pop edx
add byte [eax], al
imul eax, dword [eax], 0x5f
add byte [ebx], ch
pop edi
add byte [edi - 0x80], ch
push ebp
invalid
push ebp
push 0x52
add byte [eax], al
add byte [ebx + 0x68000074], al
xor dword [eax + eax], 0x68
add dword [eax], 0
pop esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
push esi
add byte [ecx], bh
add byte [ebx + 0x79], bl
add byte [ebp], dl
jo 0x100125c9
push ebp
push 0x6c5300
push 0x5953577e
add byte [eax], al
xchg dword [eax], eax
pop esp
imul ebx, dword [eax + eax - 0x7a], 0
add byte [eax], al
add byte [eax], al
jl 0x100125ec
add byte [eax], al
add byte [ebp + 0x6a6d0000], cl
imul ebx, dword [eax + ebp*2], 0x59
jg 0x1001250b
jp 0x1001258b
mov eax, dword [eax]
push esp
push esi
imul ebp, dword [ebx + 0x78], 0x6b
jno 0x100125ef
insb byte es:[edi], dx
mov byte [eax], dh
insb byte es:[edi], dx
insb byte es:[edi], dx
jne 0x1001259d
lea eax, [eax]
add byte [esi], dh
pop edi
add byte [eax - 0x7a], dh
push ebp
add byte [eax], al
add byte [eax], al
push esp
imul eax, dword [eax], 0x54
push ebp
push 0x58
add byte [esi + 0x5b], dl
pop eax
pop ecx
push edi
jp 0x100125ba
test dword [ecx], esi
add byte [edi + 0x5c], ch
pop esp
add byte [eax], al
pop eax
lea eax, [eax]
pop ebx
push ebp
invalid
jo 0x100125cb
push 0x58
pop ebx
jne 0x10012623
add byte [ebx], ch
add byte [edx + 0x59], ch
add byte [eax], al
push esi
add byte [edi + 0x6f], dl
push esi
add byte [eax], al
push edi
add byte [ebp + 0x68], dl
pop dword [eax]
add byte [eax], al
push ebx
push 0x7900
push ebp
js 0x1001264b
add byte [ebp + 0x78], dl
pop ebx
nop
nop
nop
pop dword [0x10029752]
add byte [0x100296ad], 0x39
add word [0x100297b1], 0xf2c
and eax, 0x89100290
adc eax, 0x1002957f
cmp eax, 0x1002936d