Function at 0x156dbdb
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
jmp 0x13b458e
neg edx
neg cx
sub ecx, ecx
sbb edx, 0x90b373b2
shr cl, 0x82
shl ecx, 0xa8
bswap edx
dec edx
not edx
xor ebx, edx
add esi, edx
add ecx, dword [ecx + ebp]
mov edx, 0x181dd52a
inc edx
mov edx, dword [ebp + edx*4 - 0x607754a8]
push 0x4fbd0d38
push 0x2510138b
add ebp, 4
xor eax, eax
call fcn.01416d3d
adc esi, edx
imul eax, ecx
rdtsc
sbb dword [esp], ecx
xchg byte [esp + 2], cl
jb 0x12ef34f
mov edx, 0x7120fab2
btc dx, 0x22
mov eax, 0xefa86322
mov eax, dword [ebp + edx - 0x7120fab6]
btc edx, edx
mov ecx, dword [edx + ebp - 0x7160fab2]
or edx, edx
adc eax, ecx
movzx ecx, dl
mov dword [ebp + edx - 0x7160fab2], eax
bt edx, 0x11
add dx, cx
movsx eax, cx
lea eax, [ecx + ebp - 0xb2]
shl dx, 0xf
mov dword [ebp + ecx*2 - 0x16c], eax
mov eax, 0x23100fb3
and edx, edx
mov edx, dword [esi + ecx - 0xb6]
cwde
lea esi, [esi + ecx - 0xb2]
bt eax, eax
sal ecx, 0xe8
xor edx, ebx
btc ax, cx
adc ax, 0x8c3f
shr ecx, 0x1b
inc edx
neg edx
ror eax, 0x6d
neg eax
sbb al, cl
dec edx
imul ax, cx
sub ax, 0x2a0e
xor al, 0xb7
bswap edx
sar ax, 8
rol ax, 0xaf
inc edx
and ecx, 0xd924cbbf
xor edx, 0x46ba1bbd
call fcn.01443179
neg ax
not ax
xadd cx, dx
call fcn.0138b9f9
call fcn.014ffaf4
mov ecx, 0x8c9ebebf
and cx, cx
add cx, cx
sbb edi, 3
mov edx, dword [edi]
bts cx, 0x1c
ror ecx, 0x17
not ecx
xor edx, ebx
ror edx, 1
btr ecx, ecx
jb 0xcab0cd
inc al
or ecx, edx
imul ax, ax
mov edx, eax
cdq
xor ecx, edx
idiv ax
mov dword [edi], ecx
movsx ecx, dx
sal eax, 0x64
add ecx, dword [esi + ecx*8]
cbw
add esi, 4
not edx
xor ecx, ebx
or al, 7
xor eax, eax
and edx, edx
adc ecx, 0xb7a6a480
cdq
ror dx, 0xc5
jb 0x1511c6a
not ecx
neg dl
inc edx
adc dl, al
sbb ecx, edx
sub ax, dx
jae 0x145ddb9
ror ecx, 1
btc dx, dx
setae dl
ror ax, 1
xor ecx, 0x2f00f906
add ecx, 0x918edd39
neg edx
xor ecx, 0x69b25cbf
neg dl
shl edx, 9
imul eax
xor ebx, ecx
add ebp, ecx
lea ecx, [edx - 0x3067b956]
or edx, ebp
jmp edx
mov dword [ebp], eax
mov dword [ebp - 4], edx
mov edx, ecx
add byte [esp + 6], 0x24
movzx eax, dl
lea ebp, [eax + ebp - 0x103]
sbb cl, 0x90
shl word [esp + eax - 0xfa], cl
pop edx
pop eax
jne fcn.01497d09
dec esp
lea edx, [ebx - 0x43777dfd]
dec ecx
mov dword [esi + ebx - 0x38263134], ebp
dec esi
lea esi, [ebx + esi - 0x38263134]
inc ecx
shr ebp, 0xd2
dec esp
sub dword [esp + ebx*2 - 0x704c6276], ebx
dec eax
mov dword [esp + edx - 0xde17fd0], edi
ret 8
dec eax
lea ebx, [ebp + ebx - 0x24f6424e]
not cx
cbw
inc cx
mul esp
dec esp
add ebp, edx
inc cx
push ebx
inc ecx
ror ch, 0x25
xor cx, 0xeab2
inc ecx
not ch
imul ebp
sar bp, 0x49
adc cx, ax
cwde
inc sp
xor edi, ecx
neg byte [esp + ebx*2 - 0x704c6275]
inc ecx
shl ch, 0x81
push ebp
dec eax
lea ecx, [esp + ecx + 0x10]
inc ebp
adc ebp, ebp
dec eax
mov ebp, dword [ecx + ebx*2 - 0x704c6278]
dec esp
lea ecx, [ebx*4 + 0x6da918a2]
jae 0x1379b43
and dh, ah
out dx, al
and dx, dx
mov ebx, 0xebb9f92e
mov bh, 0x3f
mov byte [0x7e14f47e], dh
sbb byte [0xcb87f47e], dh
in eax, 0x3c
mov ebp, 0xfd92ecd2
jg 0x13b2b47
sti
retf
ret
test eax, 0x71693959
pop eax
test eax, 0xd158e959
pop eax
test eax, 0x52c90959
clc
jge 0x13b2afb
and eax, dword [esi]
jmp edx
call fcn.00c57596
sub edi, 1
mov eax, 0x71933b90
sub al, 0xbd
sbb eax, eax
movzx ecx, byte [edi]
xor cl, bl
rol eax, 0xf8
shl al, 0x82
inc al
adc cl, 0x9a
movzx edx, ax
lea eax, [eax*4 + 0x698257b3]
idiv ax
rol cl, 1
push eax
dec cl
neg cl
cdq
sub dx, word [esp + eax - 0x6982fff9]
rol cl, 1
idiv eax
inc edx
or eax, dword [esp + eax - 0x11]
xor bl, cl
neg dl
jle 0x1496201
call fcn.015759fc
mov ecx, 0xaa8b649e
mov dx, word [edi]
mov ax, word [edi + 2]
add ecx, ecx
not dx
not ax
btc ecx, ecx
sub cx, cx
or dx, ax
mov eax, ecx
sub eax, eax
mov word [edi + ecx - 0x4515fffe], dx
movzx edx, cl
xor edx, dword [esi + eax]
sal cx, 0xea
lea esi, [esi + eax + 4]
xor edx, ebx
sal ax, 0x83
dec edx
and eax, ecx
jle 0x152b8bb
dec edx
sub cl, byte [esp + eax - 0xf0ef]
xor ebx, edx
xor cl, byte [esp + eax - 0xf0eb]
js 0xd9bf14
mov eax, dword [edi + ecx - 0x45800000]
xor cx, cx
imul ecx, dword [esp + ecx - 0x45800000]
add cl, byte [edi + 6]
shr dword [esp], 0xc2
mov edx, 0x3a032291
setae byte [esp + edx - 0x3a032291]
shr eax, cl
movzx ecx, dl
mov dword [ecx + edi - 0x8d], eax
pop ecx
lea edi, [edi + edx*2 - 0x7406451e]
btr edx, edx
movzx eax, dx
jmp ebp
lea ebp, [eax + ebp - 0x6982fffb]
mov word [ebp + eax - 0x6982fff9], cx
mov ecx, edx
lea edi, [edi + ecx - 0x67d00093]
shl ecx, 0x4b
loope 0x13f3002
dec byte [esp + edx - 0x67d0008f]
and al, byte [esp + edx - 0x67d0008f]
mov eax, dword [edi + eax - 0x6982fff8]
ror byte [esp + edx - 0x67d0008c], 0xa1
not ecx
xor eax, ebx
neg word [esp + edx - 0x67d0008f]
setp dl
sar ecx, 0x8f
neg eax
shr dl, 0x64
rol eax, 1
xor eax, 0x6eb5b4a9
bswap ecx
neg dword [esp + edx - 0x67d00000]
pushfd
adc al, 0
add byte [eax], dh
cwde
not eax
mov dword [esp + edx - 0x67d00000], edx
sar dword [esp + edx - 0x67d00000], 0x1e
xor byte [eax + 0x14bcc1], bl
add byte [eax], dh
cwde
push ds
call fcn.014372ac
push ebp
loopne 0x13f306f
mov dword [edi], esi
jg 0x13f3026
je 0x13f2fb5
mov edx, 0x36565d1a
jae 0x13f305e
int1
xchg ebp, eax
jmp 0x38305df2
int1
mov dh, byte ss:[edx + 0x36f18dba]
mov dl, byte [edx]
inc esi
and dword [ebx + eax*8 + 0x5f], esi
dec ecx
push esi
xchg ecx, eax
jp 0x13f2ff5
push ds
invalid
outsd dx, dword [esi]
and ah, al
bound esp, qword [edi - 0x37]
out 0x4e, eax
sub ecx, dword [edi]
imul ebp, dword [eax - 0x5ec9c27], 0x20297c77
jl 0x13f309a
sub dword [eax], esp
and byte [edi], dl
pop ss
jb 0x13f3070
test eax, 0x676ee759
scasb al, byte es:[edi]
stosb byte es:[edi], al
pop ecx
mov edi, 0xaaae8fc7
pop ecx
push edi
push ss
aas
scasb al, byte es:[edi]
stosb byte es:[edi], al
pop ecx
daa
xchg byte [edi + 0x4759aaae], bl
cmpsb byte [esi], byte es:[edi]
mov dword ds:[ebx - 0x7c161b2a], eax
xor byte [esi], bh
mov ah, 0x53
mov ah, 0x53
rcl esp, 1
mov ebx, 0xe121249b
ficomp word [edi + 0x40c77f05]
invalid
jb 0x13f2f9c
bswap ecx
xor ebx, edx
and ecx, dword [esp + eax*2 - 0x96e2]
or byte [esp + ecx*8 - 0x400203fd], al
neg dword [esp + ecx - 0x8004080]
add esi, edx
pop edx
or edx, edx
sete cl
lea edi, [edi + ecx - 0x8004002]
or al, ch
mov ax, word [edi + ecx - 0x8004000]
neg edx
or ecx, ecx
xor ax, bx
btr ecx, 0x38
jae 0x12d8814
inc sp
and ebp, eax
dec eax
lea esi, [esi + ebx*4 - 0x16]
setne dl
dec esp
or esp, eax
inc cx
xor ecx, edi
xor cx, 0x2e33
sub cx, 0x372e
xor cx, 0x62a0
and al, 0x1f
dec cx
inc cx
imul ebx
inc ecx
or ch, 0x20
xor cx, 0xd727
jmp 0x13b2a71
ror edx, 2
sal ecx, 0x46
btc eax, eax
shr cl, 0xe7
lea edx, [ecx + edx + 0x172c953a]
rol edx, 1
push ecx
neg edx
ror edx, 1
dec dword [esp + eax*8 - 8]
xor ebx, edx
bts ecx, eax
inc al
adc ebp, edx
jmp 0x13bdc33
mov dword [esp], 0xdc146b09
mov dword [ebp - 4], eax
not dword [esp]
test ebx, ebx
not byte [esp + 3]
lea esp, [esp + 8]
je 0xb92d47
call fcn.013a5fb8