Function at 0x78c320
Capabilities:
Authenticate hmac

Disassembly:
dec dword [esp + edx - 0x240b1730]
mov dword [esp + edx*2 - 0x48162e68], ebx
jge 0x763407
sar dword [esp], 0x91
adc dl, 0xb6
xor ecx, ecx
jbe 0xb8e640
push eax
cdq
sub cx, dx
neg cx
sal al, 0x42
cdq
adc word [esp + 1], ax
xor bx, cx
shr eax, 0xaa
xadd dword [esp + eax - 0x34e02c], edx
add al, al
mov word [eax + edi - 0x34e05a], cx
mov edx, dword [esi + eax*8 - 0x1a702c6]
push eax
bts ax, ax
movsx ecx, al
xor edx, ebx
bts cx, 0x8d
jae 0xbea968
rol cl, 1
lea edx, [edx + edx - 0x73d922d5]
not cl
ror word [esp], 0xb
ror cl, 1
and word [esp + 2], dx
sub byte [esp + 2], dh
neg cl
shr dx, 0x21
rol dl, 0x44
xor bl, cl
lea ecx, [esp + ecx + 4]
mov dword [ecx], eax
push edx
inc dl
sub dword [esp + 1], edx
mov eax, dword [ebp - 9]
adc word [esp + 1], dx
xor eax, ebx
xadd dword [esp + 4], edx
bswap eax
xadd dword [esp + edx - 0x184ddda1], edx
ror eax, 1
dec eax
shr edx, 0xf7
neg eax
xor ebx, eax
mov dword [edx + edi - 0xe8], eax
mov eax, edx
push eax
movzx ecx, byte [esp + edx - 0xe1]
mov dh, 0x8c
adc al, 0x1f
invalid
invalid
dec dword [edx - 0xf1d56c]
invalid
dec dword [ebp - 0xf1d754]
invalid
call [ecx - 0x79]
test byte [esp + esi - 2], al
invalid
push dword [0x312059b3]
xor dl, bl
call fcn.00c54bee
movzx cx, byte [ebp]
mov edx, 0xe6be920b
lea eax, [edx + edx*8 - 0x2568b0dd]
mov al, byte [ebp + 2]
ror dx, 0x23
add dl, 0x9c
adc ebp, 2
not cl
not al
sar dl, 0x63
inc edx
neg dx
or cl, al
shl edx, 0x86
mov word [ebp], cx
bts edx, edx
jae 0xb22f24
xor ebx, eax
shr ecx, 0xa1
bts ecx, ecx
adc edi, eax
movzx eax, byte [esp + ecx*2 - 0x4000032]
mov dword [esp + ecx*4 - 0x8000064], edi
ret
xor bl, al
add eax, esp
rol edx, 0x87
mov cx, word [eax]
push edx
sbb edi, 1
shr edx, 0xce
add edx, 0xef16101a
mov word [edi], cx
movzx ecx, dl
xadd dword [esp + ecx - 0x20], edx
lea eax, [edx + edx*8 - 0x20c8c769]
lea esi, [esi + ecx*8 - 0x104]
bswap eax
mov edx, dword [esi + ecx*4 - 0x80]
xor edx, ebx
bts cx, ax
inc edx
sal eax, 0x16
ror edx, 1
neg eax
setae cl
sal ax, 3
dec edx
inc ecx
dec esi
inc esp
bt edx, ebx
inc ecx
ror esi, 3
mov esi, edx
inc esp
movzx edi, dl
inc ecx
sal edx, 0x68
inc ecx
xor esi, 0xde255809
bt esi, 0x23
inc ecx
xor ecx, edi
inc ecx
dec esi
inc eax
rol dh, 0x25
push ecx
inc esp
movzx esp, cl
dec edx
add dword [esp + ebx*2 - 0x5621bc5c], ebp
inc esi
xor dword [esp + ebx*2 - 0x5621bc5c], esi
dec ecx
sar eax, 0x55
dec ecx
lea eax, [edx + esi*8 + 0x77b92d82]
add si, si
pop ebp
dec ebp
arpl si, si
inc ebp
bt eax, ebx
dec ebp
adc ebp, esi
inc cx
mov edx, dword [ebx + edi - 0x2b10de2e]
inc esp
movzx esi, cl
dec edx
lea edi, [edi + ebx*2 - 0x5621bc5a]
xor dx, bp
inc esp
xadd ecx, esp
rol dx, 1
xor dx, 0x7db3
inc ecx
push esi
dec edx
rol dword [esp + ebx*2 - 0x5621bc5c], 0x4d
adc dx, 0x9400
neg dx
inc ebp
add ebx, esi
inc ax
adc dx, 0x15a6
inc edx
neg byte [esp + edx - 0x254fe1fd]
not dx
js 0xb82f4c
xor bp, dx
dec eax
shl esi, 0x50
dec edi
lea ecx, [ecx + ebx - 0x2b10de30]
inc dx
inc dword [esp + ebx - 0x2b10de2b]
push esi
inc bx
mov dword [ebx + ecx - 0x2b10de2e], edx
inc dx
sar dword [esp + ebx - 0x2b10de29], 0x4a
pop eax
inc ecx
pop edi
jae fcn.0079a4c9
mov edx, 0x5930401
btr dx, dx
movzx edx, byte [ebp + edx*8 - 0x2c982008]
mov ecx, 0xdd319221
setb cl
mov eax, 0x37177e9b
lea ebp, [eax + ebp - 0x37177e9a]
xchg cx, ax
or eax, 0x7c2663b7
xor dl, bl
push ecx
shl cx, 0x68
neg dl
sal ecx, 0x1f
btr ecx, 0x1e
cmovb eax, dword [esp + ecx*4]
sbb dl, 0x82
sub word [esp + ecx + 1], ax
not dl
push eax
sbb dl, cl
neg eax
neg dl
xor bl, dl
btr eax, ecx
lea eax, [eax + ecx*2 + 0x263aad2b]
lea edx, [esp + edx + 8]
jb 0xbcd6ca
xor ebx, edx
call fcn.00ae8dce
lea eax, [edx*2 - 0x28ed3bf9]
lea esi, [esi + eax - 0x3659460d]
ror eax, 0x6e
mov eax, dword [esi + eax - 0x1824d965]
adc edx, 0x492521be
xor eax, ebx
sar edx, 0xa6
mov ecx, 0xccaf30a3
call fcn.00cea4b2
call fcn.00c67d23
mov edx, dword [ebp + 4]
add ebp, 8
mov dword fs:[eax], edx
add word [esp + 2], 0x110a
ja 0xc0bcf4
jae 0xc66bad
neg eax
add word [esp + ecx*2 - 0x63], 0x55a5
bswap eax
not eax
jno 0x7b0584
xor dword [esp + ecx*8], esi
ret
bts ax, 9
bswap ecx
ror ax, 0xc2
jb 0xc4ad35
mov esi, 0x968ea095
movsx eax, si
shl esi, 0x47
mov edx, dword [edi + esi - 0x47504a80]
mov ebx, 0x85123e02
inc esp
mov eax, eax
inc esp
movzx edi, al
dec edx
lea edi, [edi + edi - 0x91]
inc ecx
mov ebx, 0x3bb142b7
dec ax
xor edx, ebp
bswap edx
cbw
dec ecx
lea ecx, [edi + ebx*4 + 0x20b9ef9d]
rol edx, 1
jmp 0xbf4951
neg cl
not dl
add dword [esp + ecx*2], eax
dec dl
and eax, 0xfc3c209e
inc ecx
shl dword [esp + ecx - 1], 0x12
not dl
not ecx
add ecx, ecx
shl ecx, 0x81
xor bl, dl
lea edx, [esp + edx + 4]
or word [esp + 1], cx
shl cl, 2
movzx cx, byte [edx]
movsx edx, byte [esp]
mul edx
movzx cx, cl
shr byte [esp + eax*2 + 2], 0x67
ror al, 0x67
adc dl, byte [edx + edi]
add cl, dl
movzx edx, ax
ror eax, 0x33
mov word [edi + eax*4], cx
neg edx
lea ecx, [eax*8 + 0x41a327b1]
cwde
movzx ecx, byte [eax + ebp + 5]
dec dword [esp + eax*2]
lea ebp, [ebp + eax*2 + 6]
xor cl, bl
sal dl, 0x63
ror cl, 1
mov dword [esp + eax], edx
not cl
rol edx, 0x88
bt eax, 0x26
adc cl, 0x37
push edx
xor cl, 0x92
rol dword [esp + eax*2 + 4], 0x50
not dword [esp + eax*2 + 4]
cwd
xor bl, cl
not dx
inc al
sar dl, 0x65
lea ecx, [esp + ecx + 8]
movzx dx, byte [ecx + eax - 1]
jne 0xce4d40
dec ecx
cwde
mov cx, word [edx]
lea edx, [eax*2 + 0x5d2ecb99]
lea edi, [edi + edx - 0x5d2e3e81]
mov word [edi + edx - 0x5d2e3e7f], cx
mov edx, dword [ebp + edx - 0x5d2e3e7f]
sal eax, 0xc9
adc ebp, 3
xor edx, ebx
ror edx, 1
lea ecx, [eax + eax*4 + 0x3d28ceb6]
ror cx, 0x24
sbb edx, 0x6289853c
lea ecx, [ecx + 0xd3d679f]
and eax, dword [esp + ecx - 0x47a4cc6a]
jge 0xc2b068
neg dword [esp + eax - 0x34e156]
ror edx, 1
neg edx
sar byte [esp + eax*2 - 0x69c2ac], 0x86
or ecx, eax
not edx
neg dword [esp + eax - 0x34e157]
jne 0xc29b5f
push ebp
push ebx
inc ebp
push edx
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [esi + 0x33], ah
ret
inc ecx
mov esi, 0x6a3883a1
inc edx
rol edx, 1
neg ebx
xor edx, 0xfc823a26
call fcn.00c0253b
movzx edx, cx
rol cx, 0x63
xor al, bl
sub dl, dl
lea edx, [edx*8 - 0x4d4f6f41]
btr dx, 0x20
ror al, 1
add al, 7
push ecx
ror al, 1
inc al
sar ecx, 0x18
neg al
pop ecx
inc edx
inc al
bt ecx, ecx
jae 0xc58e55
mov ecx, dword [esp]
pop ecx
jmp edi
ror edx, 1
pop ecx
ror word [esp + eax*4 - 0xd3855e], 0x4c
xor ebx, edx
add ebp, edx
mov edx, dword [esi + eax*2 - 0x69c2ba]
xchg word [esp + eax - 0x34e158], cx
lea esi, [esi + eax*2 - 0x69c2ba]
sub ecx, 0xaf2a1a16
or eax, eax
xor edx, ebx
xor edx, 0x89a3cf06
shr cx, 0xad
inc edx
neg edx
neg eax
btc ecx, 0xad
not ecx
dec edx
inc ecx
xor edx, 0x59297d15
pop ecx
bswap eax
dec edx
sar ecx, cl
xor ebx, edx
bswap eax
inc eax
neg ax
mov dword [edi + ecx - 0x39], edx
sbb cl, ah
lea edi, [edi + ecx - 0x57]
jbe fcn.007b8565
mov edx, 0x6114bc05
movsx eax, dl
mov ecx, dword [ebp + edx - 0x6114bc05]
mul eax
dec ax
add eax, eax
lea ebp, [ebp + edx*2 + 4]
xadd edx, eax
add dl, 0x8d
xadd dl, al
xor ecx, ebx
lea ecx, [ecx + edx*2 + 0x24bdce3c]
xor ecx, 0x9b08511
inc ecx
ror eax, 0x7f
call fcn.00c41a45
mov edx, 0xf982c980
sub ebp, 4
lea ecx, [edx + edx*8 - 0x747bc457]
sal ecx, 0x32
btc edx, ecx
mov edx, dword [ecx + ebp - 0x44a40000]
xor edx, ebx
lea eax, [ecx*8 - 0x636b746e]
add cx, cx
xor edx, 0x41d15a3
imul cx, cx
neg edx
dec edx
call fcn.0075aaf4
dec esi
lea eax, [ebx*2 - 0x507c27e1]
inc ecx
bswap esi
jp 0xafccd3
mov ecx, dword [esi]
lea eax, [edx*4 - 0x3b6a15d6]
xor ecx, ebx
bswap eax
cwde
rol ecx, 3
xor dx, ax
shr eax, 0x2f
xor ecx, 0xc2822a19
bts edx, edx
or al, ah
bswap ecx
lea ecx, [edx + ecx - 0x5897bbcc]
btr dx, dx
xor ecx, 0x1ebf322c
xor ebx, ecx
call fcn.00a92577
mov eax, dword [edi]
mov edx, 0xd3b57d8c
lea ecx, [edx*8 - 0x737cdfd4]
mov cl, byte [edi + ecx*2 - 0x545e1914]
sal eax, cl
sub edx, edx
lea ecx, [edx + edx - 0xd66e0f3]
mov dword [edx + edi + 2], eax
movsx eax, dl
xadd ax, cx
xor dl, dl
mov ecx, dword [edx + ebp - 4]
cdq
and dx, ax
xor ecx, ebx
not ecx
not ax
lea ecx, [edx + ecx - 0xb9d1abc]
neg ecx
dec ecx
btr dx, dx
rol ecx, 1
sal dx, 0xec
not ecx
xchg ah, dl
bts eax, edx
add edx, eax
xor ebx, ecx
ror ax, 9
adc esi, ecx
not eax
mov eax, dword [edi + edx*2 - 0x3a4]
sal edx, 0xd
jb 0xb7785e
xor edx, edx
lea edi, [edi + edx + 6]
movsx ecx, dl
and ecx, ecx
xor dl, byte [ebp + edx*4 - 5]
lea ebp, [ecx + ebp - 5]
neg ecx
adc cl, cl
xor dl, bl
btr cx, cx
lea ecx, [ecx + ecx*8 + 0x2312d4a4]
not cx
adc dl, 0x9b
inc ecx
shl ecx, cl
xor dl, 0xa0
shl ecx, 0x49
lea ecx, [ecx*4 + 0x51055e23]
sbb dl, 8
sub cl, 0x81
sar ecx, 0xfd
ror dl, 1
sar ecx, cl
push ecx
and cl, byte [esp + ecx*4 + 1]
xor bl, dl
lea edx, [esp + edx + 4]
btr ecx, 0x36
neg ecx
seta byte [esp + ecx + 1]
mov dword [edx + ecx*8], eax
jns 0xb56799
aaa
pop ecx
xor edi, dword [ebp - 0x72]
fimul dword [ebx - 0x70faf3e2]
jo 0xc29daa
add ch, ch
xor esi, esp
mov ecx, 0xb7284a0a
jae 0xc29db6
and dh, byte [0x6b5e2667]
test ch, ah
jp 0xc29db3
imul ecx, dword [ecx + 0x48d61c00], 0xdce47b8c
salc
dec eax
mov ebx, ss
pushal
sub al, 0xd8
stosd dword es:[edi], eax
dec eax
daa
movsd dword es:[edi], dword [esi]
adc al, 0
int1
out dx, eax
jg 0xc29da1
in eax, dx
daa
mov dh, 0xa7
out dx, al
or edi, dword [edi]
retf
invalid
adc esp, dword [edx - 0x72]
add ah, bl
idiv edi
pop ecx
push ss
int3
not edx
jb 0xa9f2e6
call fcn.00cdfeee
dec al
lea ecx, [ecx + eax - 0x2f075d2e]
sub eax, edx
enter 0xffffffffffff8c8d, 1
shl byte [edx - 0x3dd42f08], cl
not al
cmovns eax, edx
not ecx
mov dword [esp + edx - 0x3ed17e9d], eax
lea ecx, [ecx + edx - 0x58e7893f]
call fcn.00bacf46
into
loopne 0xc2b0d8
cmp eax, 0x8148015e
fsubr st(0)
and al, 0xf5
sub dword [ebx - 0x4d], edi
jae 0xc2b0c9
mov dword [ecx + 0x2b586e72], ebp
in al, 0xbf
mov eax, dword [0x6c00dd05]
les edi, [ebp - 0xcebe1d]
dec dword [ebx - 0x73b37b09]
push eax
jecxz 0xc2b076
test byte [esp + ecx*4 - 0x70], cl
aas
push edi
ror ebp, 1
mov word [eax - 0x322ea8c1], ss
arpl word [ecx + 0x6bfd747c], sp
sbb al, byte [eax]
invalid
mov cl, 0x92
push cs
aaa
popfd
add byte [eax], al
add cl, ch
add bh, byte [eax + eax*8]
dec byte [esi]
loope 0xc2b0e9
stosb byte es:[edi], al
fadd st(0), st(0)
sub al, 0x21
call dword [ecx + 0x504cbf13]
mov dword [0x7fc2b6a5], eax
jmp dword [esi]
xor ebx, ecx
imul dword [esp + edx - 0xffe6]
xchg dword [esp + edx*2 - 0x7554bc2], eax
add ebp, ecx
xadd word [esp + edx*4 - 0xeaa9783], ax
lea ecx, [edx*4 + 0x3492d480]
rol dword [esp + eax - 0x547e9775], cl
mov eax, dword [edi + eax - 0x547e9779]
shr ecx, cl
lea edi, [edx + edi - 0x3aaa5dd]
mov dword [esp + edx*2 - 0x7554bbe], eax
movzx eax, word [esp + edx - 0x3aaa5e1]
push dword [esp + 4]
popfd
mov dword [esp + edx - 0x3aaa5e1], ebp
ret 4
adc dword [esp + ecx - 0x1bbc497d], 0x882ab530
not al
or dx, dx
xor bl, al
rol word [esp + ecx - 0x1bbc497c], 0xc4
xor edx, dword [esp + ecx - 0x1bbc497d]
lea eax, [esp + eax + 4]
xchg ecx, edx
call fcn.00ae9415
shl ecx, cl
xor edx, ebx
neg edx
shl ecx, 0x21
sbb edx, 0x7d06233e
movsx eax, word [esp + ecx*2 - 0x67f62000]
rol edx, 1
neg eax
not cx
shl byte [esp + ecx*2 - 0x67f7dffe], 0xe1
not edx
idiv byte [esp + ecx*2 - 0x67f7dffe]
shl eax, 0x7b
xor ebx, edx
add esi, edx
mov dword [esp + ecx - 0x33fbefff], esi
ret