Function at 0x1034324a
Capabilities:
Authenticate hmac

Disassembly:
mov edx, edi
jae 0x1041f697
lea edi, [eax + edi - 1]
push eax
add eax, eax
shl al, 3
movzx edx, byte [edi + eax*2]
jp 0x104123e2
mov ecx, 0x17a7c1bc
rol cl, 0x61
lea esi, [esi + ecx*2 - 0x2f4f82f6]
lea ecx, [ecx*8 - 0x60dcfe4e]
lea edx, [ecx*8 + 0x7431b633]
jb 0x10441671
mov ecx, dword [esi]
add esi, 4
mov eax, 0xffad0c98
xor ecx, ebx
lea edx, [eax*4 + 0x471b5aa3]
sub edx, edx
add ax, 0xbba2
inc ecx
lea eax, [edx + edx*8 + 0x513ed626]
add al, dl
ror ecx, 3
lea ecx, [eax + ecx + 0x496b9091]
inc al
or dx, 0xe688
cmovae ax, dx
neg ecx
neg ax
or al, ah
sbb eax, edx
inc ecx
shr dl, 0x24
xor ebx, ecx
sal eax, 0x5d
shr dl, 0xc1
adc edi, ecx
ror eax, 0x97
ror edx, 0xfb
lea eax, [eax*4 + 0x6c9b00b1]
mov ecx, dword [ebp + edx - 0x1cc080]
mov edx, dword [ebp + eax - 0x6c9b01ad]
and eax, eax
lea ebp, [ebp + eax - 0x6c9b01ad]
jno 0x10459789
xor ebx, edx
and ax, 0xa52c
adc edi, edx
mov edx, ecx
call fcn.1034dd9a
lea ecx, [ecx + eax*2 + 0x53cd6094]
sub eax, dword [esp + eax - 0x306d8c8e]
xor ebx, ecx
xchg word [esp + 4], ax
shr eax, 0x92
add esi, ecx
mov ecx, 0x43291f3c
rol dx, 0xcb
pop edx
pop edx
pop edx
jb fcn.103ba716
xor eax, ebx
not eax
neg dword [esp]
mov edx, 0x789f87bc
adc word [esp + edx - 0x789f87bc], dx
lea eax, [eax + edx*2 - 0x638cf96c]
jo 0x1046b34a
mov ecx, 0xbe07661c
mov eax, ecx
lea edx, [eax*4 - 0x6bfbda6e]
mov edx, dword [ebp]
sar ecx, 0x5e
push eax
mov eax, dword [ebp + 4]
or ecx, 0x850a648c
not cl
mov cl, byte [ebp + 8]
adc ebp, 6
shld edx, eax, cl
mov ecx, dword [esp]
mov dword [ebp], edx
or dword [esp], 0x81aceea5
lea eax, [ecx + ecx*4 - 0x4a7c45cb]
lea esi, [eax + esi - 0x6ba8b8c5]
and al, cl
jns 0x1037d8c5
xor ax, bx
call fcn.10363f1b
rol eax, 1
xor word [esp + 5], cx
jns 0x10454f0e
mov ecx, 0xcc054b2a
lea edx, [ecx + ecx*8 + 0xb782bb]
xadd edx, ecx
mov edx, dword [ebp + ecx*2 - 0x59ce4e6a]
mov ecx, dword [ebp + ecx - 0x2ce72731]
mov eax, 0xa1b8111
call fcn.1046db4b
mov edx, 0x2c1f363d
mov esp, ebp
lea edi, [edx + edx - 0x75c42771]
mov ebx, 0x60a1293
pop ebp
pop eax
movzx ecx, bl
pop ecx
mov esi, edi
ror dx, 0x8f
pop esi
or edx, 0x7d85ea25
sal edx, 0x7d
popfd
call fcn.1046dc36
mov esp, ebp
mov eax, 0xaa0b0885
movzx ecx, al
ror cl, 0x66
pop eax
jae 0x10455557
mov ecx, 0x4039663e
call fcn.103e019e
movsx edx, cx
mov ecx, dword [eax + esi - 0x6ba8b800]
xor word [esp + eax - 0x6ba8b7ff], ax
xor ecx, ebx
rol ecx, 3
sub dword [esp + eax - 0x6ba8b800], 0x968f7386
dec al
and dl, byte [esp + edx - 0x661c]
xor ecx, 0x32061f0d
ror ecx, 1
xor ecx, 0x27304e82
dec eax
shl eax, 0xfc
dec ecx
or dword [esp + edx - 0x6614], edx
js 0x1034f56e
xor ebx, ecx
call fcn.103f73ec
mov word [edi + edx - 0xb5], ax
jno fcn.10401514
mov dword [esp + eax], 0x9183785
xor dl, bl
sub dl, 0xa5
sub al, 0x96
dec eax
not dl
shr eax, 0x61
inc dl
rol eax, 0x53
sbb eax, 0xde389f34
xor dl, 0xa4
dec dl
and eax, eax
rol dl, 1
not word [esp + eax*2 - 0x46cec197]
rol al, 0xc5
lea eax, [eax*4 - 0x2653dedc]
dec dl
shl dword [esp + eax - 0x6749a388], 0xbc
xor bl, dl
jmp 0x1043e90e
not edx
or ecx, edx
rol eax, 0x5e
mov edx, eax
mov dword [ebp], ecx
push eax
dec dx
mov dword [esp], 0x2b05722f
pop ecx
jmp edi
xor dword [esp + edx - 0x798187a8], eax
lea ecx, [ecx + edx + 0x52067360]
call fcn.1038f558
jmp ebp
mov eax, ecx
lea ebp, [ebp + edx*8 - 2]
movzx eax, word [edx + ebp]
shl edx, 0xf9
add ecx, edx
sar cl, 0x23
xor ax, bx
shl cl, 0x87
inc ax
lea ecx, [edx*8 - 0x59ef4967]
rol ax, 1
xchg ch, dl
dec dx
xor ax, 0x9193
add ax, 0xa50c
xor bx, ax
not cx
or dl, dl
lea edi, [edi + edx - 0xb7]
jne 0x10384f4a
mov cx, word [ebp]
mov eax, 0xacac3806
ror eax, 0x3c
add ebp, 2
inc eax
sub esi, 1
shr al, 0xe1
movsx edx, al
ror eax, 0xdf
movzx eax, byte [edx + esi - 0x35]
sub edx, edx
xor al, bl
neg dx
neg dx
or edx, 0x558f7028
not al
neg al
sub edx, edx
call fcn.103c7c62
not edx
not eax
jnp 0x1040702a
xor ebx, eax
sal cx, 0x4d
adc cl, dh
adc esi, eax
shl edx, 0x5d
jbe 0x103b36b0
lea ebp, [ebp + ecx*4 - 0xbd7c]
mov dword [ecx + ebp - 0x2f5e], eax
xor ecx, edx
jp fcn.1045c6b7
bswap ecx
jp 0x1037055e
mov edx, 0x798187a8
lea ebp, [edx + ebp - 0x798187ac]
movsx eax, dx
push eax
mov ecx, dword [edx + ebp - 0x798187a8]
sal eax, 0xfe
xadd byte [esp + edx - 0x798187a8], ah
not al
xor ecx, ebx
lea ecx, [ecx + eax*4 - 0x588c3e9b]
shl eax, 0xa7
adc dword [esp + eax*8 - 0x2a3fc00], edx
sal al, 0xc6
xor ecx, 0xaf8cf033
sar dword [esp + eax*8 - 0x2a3f800], 0xac
jne 0x103af4db
add edi, ecx
movzx ecx, al
bswap ecx
mov ax, word [ebp + ecx - 0x4d000000]
or ecx, ecx
lea ebp, [ecx + ebp - 0x4cfffffe]
lea esi, [esi + ecx - 0x4d000001]
adc cx, cx
shr cx, 0xed
mov dword [esp + ecx - 0x4cfffff8], ecx
movzx edx, byte [esi + ecx - 0x4d000000]
mov dword [esp + ecx - 0x4d000000], ecx
ror cl, 0xc5
xor dl, bl
mov dword [esp + ecx - 0x4cfffffc], 0x5530b7bd
not dl
call fcn.103ce018
mov edx, 0x940eb6ae
xor edx, edx
pop edi
popfd
mov esi, edx
call fcn.10371161
lea edx, [edx + ecx*2 + 0x2bf1e373]
push ecx
jnp 0x1041802b
lea edx, [edx + eax + 0x129b47a3]
neg eax
lea ecx, [eax - 0xdcf2348]
ror edx, 1
add eax, eax
or eax, 0x3a356b12
lea edx, [eax + edx - 0x63cbf8c7]
call fcn.1045d207
rol ecx, 1
xor ecx, 0xbb176b2d
lea eax, [eax*8 - 0x4af844e2]
lea ecx, [ecx + eax - 0x5de01721]
xor ebx, ecx
add edi, ecx
mov dword [esp + eax - 0x515b631e], eax
mov cx, word [ebp + eax - 0x515b631e]
mov ax, word [ebp + eax - 0x515b631c]
add ebp, 2
and cx, ax
pop edx
inc dword [esp + edx - 0x515b631e]
not cx
add edx, edx
mov word [ebp], cx
pop edx
not dx
jmp edi
jbe 0x10385d24
rol edx, 1
call fcn.103a9dae
lea edi, [eax + edi - 0x7d66]
mov dword [esp + eax*2 - 0xfab8], 0x6a7f4a4
mov dword [edi + eax - 0x7d62], edx
pop edx
pop eax
pop eax
pop edx
pop eax
jg fcn.10340606
sar edx, 0xc8
sub edi, 4
sal word [esp + 1], 0x29
shr dword [esp], 0x44
mov dword [edi], eax
sub esi, 4
lea eax, [edx + edx*2 + 0x2818e515]
push edx
mov eax, dword [esi + eax*2 - 0x4ef83092]
movzx ecx, dx
xor eax, ebx
dec edx
xadd byte [esp + ecx - 0xbbb9], cl
ror ecx, 0x84
not eax
jne 0x103b6baf
dec dl
xor ax, 0xbd36
xor ecx, ebx
shl ax, 0xa8
add eax, 0x333d90ba
bswap ecx
dec ecx
inc dl
ror edx, 0x6e
call fcn.10396273
mov edx, 0x7304451a
movzx eax, dx
lea ebp, [ebp + eax - 0x451e]
mov eax, dword [ebp + edx - 0x7304451a]
movzx ecx, dl
ror edx, cl
xor eax, ebx
push ecx
rol eax, 1
not eax
not cx
and byte [esp + ecx*8 - 0x7ff25], dl
pop edx
bswap eax
xor cl, 0x22
not dx
rol ecx, 0xe6
ror eax, 1
shr edx, 0xd5
inc eax
dec edx
jne 0x103b4eea
not ax
not ecx
bswap ecx
pop edx
rol dx, 0x2a
xor ebx, ecx
sar byte [esp + eax - 0x479a6cdf], 0xc3
call fcn.103f9321
sub edi, 4
mov edx, dword [edi]
mov ecx, 0xf9813817
mov eax, ecx
or ecx, 0xa8a4de1b
xor edx, ebx
add edx, 0x2d17581f
neg ecx
or ax, cx
xor edx, 0x7f92133f
lea eax, [eax + eax*4 - 0x4ef3e06f]
dec ecx
jge 0x103f8011
mov cx, word [ebp]
mov edx, 0x69347a3e
mov dx, word [edx + ebp - 0x69347a3c]
add ebp, 2
mov eax, 0x459bd919
not cx
call fcn.1045afd8
sub eax, 0xf78d3908
xchg cx, dx
ror edx, 0xcd
adc ecx, 0x602b072e
ror eax, 1
neg cx
lea eax, [eax + ecx + 0x4418170e]
xor ebx, eax
lea ebp, [ebp + ecx - 0x777a369c]
call fcn.103f8def
lea edx, [ecx*2 + 0x13236537]
call fcn.10458272
shr eax, 0x86
lea edx, [esp + edx + 4]
pop eax
mov dword [edx + eax - 0x50000000], ecx
mov ecx, eax
movzx edx, cx
lea edi, [edx + edi - 4]
sbb cx, cx
sar dl, 0x62
mov ecx, dword [edi + eax - 0x50000000]
jns 0x104245b6
mov dword [esp + ecx*2 - 0x1fc02], edi
ret 4
mov eax, dword [esi + ecx - 0x5c610d7a]
add cl, 0x88
xor eax, ebx
rol dl, cl
neg dl
adc edx, ecx
inc eax
ror eax, cl
add ecx, ecx
seta dl
inc eax
call fcn.1039987b
mov eax, dword [ebp]
mov edx, 0x6211c838
call fcn.10421f5c
mov dword [esp], 0xd8a7d120
mov word ss:[ecx], ax
sub ebp, 4
call fcn.103d9b2a
and edx, dword [esp + 4]
lea eax, [eax + edx*4 + 0x61eac6b0]
rol dl, 0x84
xadd word [esp + edx - 0x9902e], dx
xor eax, 0x99012112
sal byte [esp + edx - 0x9bbc4], 0xe2
sbb eax, 0x8f8516b8
ror eax, 1
inc word [esp + edx - 0x9bbc7]
setg dl
xor ebx, eax
neg cx
and ecx, edx
adc ebp, eax
pop edx
pop ecx
jmp fcn.10340606
pop ecx
jae 0x103ed2a7
not ecx
sal ax, 0x43
not eax
jae 0x1039f7e1
not eax
movzx ecx, word [esp + edx - 0x789f87bc]
sete cl
xor cx, 0xabac
bswap eax
sub ecx, dword [esp + ecx*2 - 0x16b58]
call fcn.1039afdb