Function at 0x101bd183
Capabilities:
Authenticate hmac
Packed with generic packer

Disassembly:
shl ecx, 0x2a
neg eax
ror edx, 0x7a
not cl
dec eax
and cl, cl
bswap ecx
xor ebx, eax
xor cx, cx
ja 0x102da67c
adc esi, eax
add cx, word [edx + ebp - 0x5ef8407d]
mov eax, 0x4a2ebdac
lea ebp, [ebp + eax - 0x4a2ebda8]
sar al, 0xe7
movzx eax, byte [edi + eax - 0x4a2ebdfb]
ja 0x10260235
add ebp, 8
dec edx
mov dword [eax], ecx
jne 0x102e0e40
sbb ecx, 0x95964109
shr eax, 0x27
ja 0x101a1715
sbb edx, 0x601e1d00
xor ebx, ecx
add edi, ecx
neg edx
movzx ecx, word [esi + eax*4 - 0x4dbd80a]
inc dx
lea esi, [esi + eax*2 - 0x26dec08]
add al, dh
not edx
xor cx, bx
bswap eax
add cx, 0xd70f
sal edx, 0xb7
rol cx, 1
xor dx, dx
cmovg eax, edx
not cx
inc cx
not al
xor eax, eax
add edx, eax
xor bx, cx
dec edx
mov word [ebp + eax*4], cx
movzx ecx, dl
bswap ecx
add cx, word [ebp + edx - 0x427fffff]
or ax, word [ebp + eax + 2]
call fcn.103b86d1
mov word [ebp + eax*2 - 0x82d7ffe], cx
mov eax, dword [edi + eax*4 - 0x105b0000]
movzx ecx, dl
shr ecx, 0x10
not dx
xor eax, ebx
mov dword [esp + ecx*2], edx
rol eax, 1
pop ecx
and cl, 3
setno dl
not eax
jns 0x101821e8
xor ebx, eax
sar dl, 0x22
adc ebp, eax
shl cl, 4
not dl
mov eax, dword [edi + edx - 0x1a]
dec edx
jg 0x1038b22c
shl edx, 0x67
dec edx
movzx edx, byte [ebp + ecx - 5]
not ecx
xor dl, bl
inc dl
jmp 0x10223e08
neg dl
ror cx, 0x88
sub cx, cx
setbe cl
ror dl, cl
not dl
sub dl, 0x9b
neg dl
inc ecx
sar byte [esp], cl
ror dl, 1
call fcn.1020eb92
sub byte [esp + edx - 4], dh
mov ecx, dword [edx + esi - 7]
xor ecx, ebx
shr dl, 0x41
sub byte [esp + edx*8 - 0x17], 0x12
shl eax, 0xd8
ror ecx, 1
dec ecx
sal al, 0x81
neg ecx
shr eax, 0x36
call fcn.102c0c78
mov edx, 0x5b80c63d
movsx ecx, dl
mov eax, dword [ebp + ecx*2 - 0x7a]
mov ecx, dword [ebp + ecx*2 - 0x76]
lea ebp, [ebp + edx - 0x5b80c635]
mov dword [eax + edx - 0x5b80c63d], ecx
movsx ecx, dl
sub ecx, 0xf7a0012c
mov eax, ecx
mov ecx, dword [edi + ecx*4 - 0x217ffc44]
cmove eax, edx
lea edi, [edi + eax*2 - 0x10bffe1e]
xadd al, dh
xor ecx, ebx
call fcn.1021e471
movzx edx, byte [eax + esi - 0xb00dd9d]
xor dl, bl
add cx, ax
not dl
push ecx
neg byte [esp + ecx - 0xbb38]
rol dl, 1
push eax
add dl, 0xac
xor dl, 0xaf
add dword [esp + eax*2 - 0x1601bb38], eax
xor bl, dl
lea edx, [esp + edx + 8]
pop eax
movzx cx, byte [edx + ecx - 0xbb3a]
lea eax, [eax + eax*4 - 0x4d6318dd]
add eax, dword [esp]
sbb ebp, 2
movsx edx, byte [esp]
mov word [ebp + edx - 0x3a], cx
shr dl, 0x23
sal byte [esp + edx*2 - 0xb], 0x47
lea esi, [edx + esi - 0xb]
je 0x1024d512
sub dword [esp], 0xf92bf02a
not dword [esp]
neg eax
ror cl, 0x26
lea edx, [ecx + ecx*4 - 0x30cf3248]
xor eax, 0xd7bd5daf
xor dword [esp], ecx
mov word [esp + 2], dx
lea edx, [ecx*2 - 0x37c2cf6d]
bswap eax
xadd dl, dh
xadd cl, dh
xor eax, 0xd2a4b623
xadd word [esp + edx - 0x6af5ff34], cx
neg eax
pop edx
inc eax
call fcn.101f89b4
mov dword [ebp + eax - 0x690e1e03], edx
mov edx, 0x5e06e38b
not dl
mov ecx, dword [eax + ebp - 0x690e1e03]
call fcn.101c61cc
mov edx, 0x7bb1f8d
mov dx, word [edx + ebp - 0x7bb1f8d]
mov ecx, 0xff25be8d
lea ecx, [esp + 0x38]
mov eax, 0xd319fe8c
sal al, 5
mov word [ecx], dx
mov ecx, dword [edi]
movsx edx, al
xor eax, edx
sub edx, edx
xor ecx, ebx
not ecx
ror ecx, 2
push edx
xadd word [esp + eax - 0x2ce600ff], dx
ror dword [esp + eax - 0x2ce60100], 0x39
xor ecx, 0x2991eaa3
sal dword [esp + eax - 0x2ce60100], 0xa5
xor al, dh
ror ecx, 1
shl edx, 0x8d
setae dl
sbb ecx, edx
sub edx, dword [esp + eax*2 - 0x59cc0200]
xadd byte [esp + eax*2 - 0x59cc01fd], dl
xor ebx, ecx
xadd ax, dx
call fcn.103bc366
mov eax, dword [ebp]
mov edx, 0x9995fb8a
mov ecx, dword [ebp + 4]
je 0x1018dd8d
mov eax, 0xb00dd9c
lea esi, [esi + eax*8 - 0x5806ece1]
inc eax
movzx ecx, ax
jg 0x10299354
mov eax, dword [esp + 8]
add eax, 0xfffa59df
jmp eax
shr dx, 0xea
neg eax
xor ecx, ebx
call fcn.10292991
lea ecx, [edx*2 - 0x12c49058]
mov ecx, dword [esi + ecx*2 - 0x40cecd74]
lea eax, [edx*8 - 0x71f7dc4f]
sub edx, eax
sub al, al
lea esi, [edx + esi - 0x3eddfb8c]
jle 0x102db1cc
neg cl
mov dl, byte [edi + edx*8 - 0xc4]
add edi, 6
neg cl
jl 0x102c4523
mov byte ss:[eax], dl
jmp ebp