Function at 0x16f85d
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push dword [esp + 0x64]
push edx
push 0x20
call fcn.00163128
add esp, 0x20
mov dword [esp + 0x40], 0x7ff18
xor ebp, ebp
mov ebx, 0x5b2b5
mov dword [esp + 0x44], ebp
mov esi, 0x583f2
mov edi, 0x285ec
mov eax, 0x1dd3f
mov ecx, 0xf5cee
mov edx, 0x9f072
cmp ebx, esi
jg 0x16fedc
je 0x16fdd1
cmp ebx, 0x108ab
je 0x16fd6e
cmp ebx, eax
je 0x16fcb3
cmp ebx, edi
je 0x170236
cmp ebx, 0x362cc
je 0x16f9a2
cmp ebx, 0x3aba5
jne 0x170228
mov dword [esp + 0x24], 0x8cf181
xor edx, edx
or dword [esp + 0x24], 0xc8cb6ef2
xor dword [esp + 0x24], 0xc8c6c388
mov dword [esp + 0x18], 0x17e473
mov eax, dword [esp + 0x18]
push 0x4a
pop ecx
div ecx
mov dword [esp + 0x18], eax
shl dword [esp + 0x18], 0xe
or dword [esp + 0x18], 0x1450f1e1
xor dword [esp + 0x18], 0x14f50fdd
mov dword [esp + 0x1c], 0x2c6d1d
shr dword [esp + 0x1c], 2
imul eax, dword [esp + 0x1c], 0x60
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x42ba8e9
mov dword [esp + 0x14], 0xc2c66b
xor dword [esp + 0x14], 0x8a406231
add dword [esp + 0x14], 0xf95e
or dword [esp + 0x14], 0xce1d2406
xor dword [esp + 0x14], 0xce90f4a5
push dword [esp + 0x14]
push dword [esp + 0x3c]
push dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
call fcn.001685d0
add esp, 0xc
mov ebx, edi
jmp 0x16f8a4
mov dword [esp + 0x14], 0xdd15d3
imul eax, dword [esp + 0x14], 0x25
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x14], 0x3c
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x7d303b19
mov dword [esp + 0x24], 0xa1ae94
shr dword [esp + 0x24], 2
xor dword [esp + 0x24], 0x27d1ec
mov dword [esp + 0x18], 0x94bd7
xor dword [esp + 0x18], 0x4220e7aa
add dword [esp + 0x18], 0x3461
xor dword [esp + 0x18], 0x4221989d
mov dword [esp + 0x1c], 0x66ec3e
add dword [esp + 0x1c], 0xc186
shr dword [esp + 0x1c], 0xc
xor dword [esp + 0x1c], 0x61a32
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
push 0x1611fc
call fcn.0016e533
mov dword [esp + 0x28], 0x188319
mov edi, eax
add dword [esp + 0x28], 0x67c
add esp, 0xc
or dword [esp + 0x1c], 0x1aa354e1
xor edx, edx
xor dword [esp + 0x1c], 0x1abb9713
mov dword [esp + 0x14], 0xec8ec1
or dword [esp + 0x14], 0x6b5e4a72
shl dword [esp + 0x14], 0xa
xor dword [esp + 0x14], 0x2b37ab5d
xor dword [esp + 0x14], 0xd000630d
mov dword [esp + 0x24], 0x89840a
imul eax, dword [esp + 0x24], 0x36
push 0x31
pop ecx
push 0x62
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x1d097389
mov dword [esp + 0x1c], 0x34de97
or dword [esp + 0x1c], 0xe9997372
mov eax, dword [esp + 0x1c]
div ecx
pop ecx
mov dword [esp + 0x18], eax
xor edx, edx
mov eax, dword [esp + 0x18]
div ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x9f7e4
push dword [esp + 0x18]
push dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push 0x16121c
call fcn.0016e533
mov dword [esp + 0x28], 0xd7119a
mov esi, eax
add dword [esp + 0x28], 0x4c27
add esp, 0xc
or dword [esp + 0x1c], 0xe5effdb5
xor dword [esp + 0x1c], 0xe5f8d9bc
mov dword [esp + 0x14], 0xe2fa2
shl dword [esp + 0x14], 0x10
add dword [esp + 0x14], 0xffffc760
add dword [esp + 0x14], 0xffff0fc3
xor dword [esp + 0x14], 0x2fa32126
mov dword [esp + 0x18], 0xa864ce
imul eax, dword [esp + 0x18], 0x4b
mov dword [esp + 0x18], eax
shl dword [esp + 0x18], 4
imul eax, dword [esp + 0x18], 0xe
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x2ad48e72
mov dword [esp + 0x24], 0x66091f
or dword [esp + 0x24], 0x497ceafa
xor dword [esp + 0x24], 0x49712ffd
push dword [esp + 0x24]
push esi
push dword [esp + 0x20]
lea edx, [esp + 0x3c]
push dword [esp + 0x20]
push edi
push dword [esp + 0x30]
call fcn.00162ed2
mov dword [esp + 0x30], 0xa86f6b
test eax, eax
mov eax, 0xe21de
mov ebx, 0x8201
cmove ebx, eax
imul eax, dword [esp + 0x30], 0x32
push edi
mov dword [esp + 0x34], eax
imul eax, dword [esp + 0x34], 0x5c
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0x712c3406
xor dword [esp + 0x34], 0xa3b1f317
mov dword [esp + 0x38], 0x5580be
imul eax, dword [esp + 0x38], 0x12
mov dword [esp + 0x38], eax
imul eax, dword [esp + 0x38], 0x37
mov dword [esp + 0x38], eax
add dword [esp + 0x38], 0xb390
xor dword [esp + 0x38], 0x4aa867cf
mov dword [esp + 0x30], 0x446486
add dword [esp + 0x30], 0xffff4662
add dword [esp + 0x30], 0x11b1
xor dword [esp + 0x30], 0x49727a
push dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
call fcn.00164fd3
mov dword [esp + 0x40], 0xb7dfeb
xor edx, edx
mov eax, dword [esp + 0x40]
push 0x45
pop ecx
div ecx
push 0x22
mov dword [esp + 0x44], eax
xor edx, edx
xor dword [esp + 0x44], 0xd1ba8
mov dword [esp + 0x48], 0x151c1
imul eax, dword [esp + 0x48], 0x2b
pop ecx
push esi
mov dword [esp + 0x48], eax
xor dword [esp + 0x48], 0x3b62fd
mov dword [esp + 0x40], 0xb8acb1
imul eax, dword [esp + 0x40], 0x24
mov dword [esp + 0x40], eax
shr dword [esp + 0x40], 1
mov eax, dword [esp + 0x40]
div ecx
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x6e8276
push dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
call fcn.00164fd3
add esp, 0x28
mov edi, 0x285ec
mov esi, 0x583f2
mov eax, 0x1dd3f
mov ecx, 0xf5cee
mov edx, 0x9f072
jmp 0x170228
mov dword [esp + 0x1c], 0x7b13c4
xor edx, edx
xor dword [esp + 0x1c], 0xd41b1492
imul eax, dword [esp + 0x1c], 0xf
push 0x33
pop ecx
mov dword [esp + 0x1c], eax
or dword [esp + 0x1c], 0xf5d9e86
xor dword [esp + 0x1c], 0x7ffefcdb
mov dword [esp + 0x24], 0x379b2
add dword [esp + 0x24], 0xffff714c
xor dword [esp + 0x24], 0x523d6
mov dword [esp + 0x14], 0x7e4c65
shl dword [esp + 0x14], 0xe
xor dword [esp + 0x14], 0xf4af6d54
xor dword [esp + 0x14], 0x67bd7f3d
mov dword [esp + 0x18], 0xd85a2a
or dword [esp + 0x18], 0xcfa288d1
mov eax, dword [esp + 0x18]
div ecx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x41c2741
push dword [esp + 0x2c]
push dword [esp + 0x64]
push dword [esp + 0x20]
push dword [esp + 0x20]
push ecx
push dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
push 0x20
pop edx
call fcn.0017ab86
xor ecx, ecx
add esp, 0x18
inc ecx
mov ebx, 0x108ab
test eax, eax
cmove ebp, ecx
jmp 0x16f8a4
mov dword [esp + 0x1c], 0x1675b0
xor edx, edx
mov eax, dword [esp + 0x1c]
push 0x26
pop ecx
div ecx
push 0x65
mov dword [esp + 0x20], eax
xor edx, edx
imul eax, dword [esp + 0x20], 0x7d
pop ecx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x436b16
mov dword [esp + 0x24], 0xa07dbf
mov eax, dword [esp + 0x24]
div ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0xf4654
push dword [esp + 0x24]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
call fcn.001709c1
pop ecx
mov ebx, 0x3aba5
jmp 0x16f8a4
mov dword [esp + 0x24], 0xade6a
xor edx, edx
xor dword [esp + 0x24], 0x38107c1c
or dword [esp + 0x24], 0x4c7540df
xor dword [esp + 0x24], 0x7c7a9038
mov dword [esp + 0x20], 0xcde258
or dword [esp + 0x20], 0xe0d5e8c5
add dword [esp + 0x20], 0xffffbec1
xor dword [esp + 0x20], 0xe0db8069
mov dword [esp + 0x14], 0x1b3fed
add dword [esp + 0x14], 0xffff557b
imul eax, dword [esp + 0x14], 0x4d
push 0x22
pop ecx
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x7f37757
mov dword [esp + 0x18], 0x1efbfe
add dword [esp + 0x18], 0x75c4
imul eax, dword [esp + 0x18], 0x7d
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0xf5214f1
mov dword [esp + 0x1c], 0x6e27e9
shr dword [esp + 0x1c], 0xb
mov eax, dword [esp + 0x1c]
div ecx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x2c]
xor dword [esp + 0x1c], 0x6df63
mov dword [esp + 0x28], 0x1cc993
add dword [esp + 0x28], 0xad9a
xor dword [esp + 0x28], 0x1864de
push eax
push dword [esp + 0x2c]
push dword [esp + 0x24]
push dword [esp + 0x24]
push ecx
push dword [esp + 0x50]
push dword [esp + 0x2c]
push ecx
push dword [esp + 0x50]
push dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x64]
call fcn.00166ac9
add esp, 0x2c
mov ebx, 0x3aba5
test eax, eax
mov ecx, 0xf5cee
mov eax, 0x1dd3f
cmove ebx, ecx
jmp 0x16f8ae
cmp ebx, 0x5b2b5
je 0x170223
cmp ebx, edx
je 0x17019a
cmp ebx, 0xe21de
je 0x16ffa6
cmp ebx, ecx
jne 0x170228
mov dword [esp + 0x1c], 0x36e566
or dword [esp + 0x1c], 0x10a6fc1e
xor dword [esp + 0x1c], 0x10bd9457
mov dword [esp + 0x20], 0x5ec970
or dword [esp + 0x20], 0xfbf93ce5
xor dword [esp + 0x20], 0xfbffeb6b
mov dword [esp + 0x24], 0xda4db9
imul eax, dword [esp + 0x24], 0xc
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xfffff3a7
xor dword [esp + 0x24], 0xa37dadb
mov dword [esp + 0x28], 0x492648
add dword [esp + 0x28], 0xffff70b7
xor dword [esp + 0x28], 0x416fd7
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
push dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
push ecx
push dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
call fcn.0017d128
add esp, 0x18
mov ebx, 0x108ab
test eax, eax
mov eax, 0x1dd3f
cmove ebx, eax
jmp 0x16f8a9
mov dword [esp + 0x24], 0xc837c
xor edx, edx
add dword [esp + 0x24], 0xcf4
shr dword [esp + 0x24], 0xb
xor dword [esp + 0x24], 0x8ba4a
mov dword [esp + 0x28], 0x87942c
mov eax, dword [esp + 0x28]
push 0x18
pop ecx
div ecx
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x7a64e
mov dword [esp + 0x18], 0xc76eb0
add dword [esp + 0x18], 0xffff2183
shl dword [esp + 0x18], 0xf
shr dword [esp + 0x18], 5
xor dword [esp + 0x18], 0x24288b3
mov dword [esp + 0x1c], 0x69433c
shl dword [esp + 0x1c], 9
add dword [esp + 0x1c], 0xffffd247
add dword [esp + 0x1c], 0xa4f4
xor dword [esp + 0x1c], 0xd2804a02
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push 0x1612ac
call fcn.0016e533
mov dword [esp + 0x2c], 0x842b63
mov esi, eax
add dword [esp + 0x2c], 0xffffd6e4
xor edx, edx
xor dword [esp + 0x2c], 0x8f384f
mov dword [esp + 0x30], 0x1b2ea9
or dword [esp + 0x30], 0x684a4daa
xor dword [esp + 0x30], 0x685ee49e
mov dword [esp + 0x24], 0x8660b6
add dword [esp + 0x24], 0x13f1
shr dword [esp + 0x24], 0xd
xor dword [esp + 0x24], 0x9b4e69ae
xor dword [esp + 0x24], 0x9b418f80
mov dword [esp + 0x34], 0xd43113
xor dword [esp + 0x34], 0x8f349ad7
xor dword [esp + 0x34], 0x8fe15dca
mov dword [esp + 0x28], 0x27618a
mov eax, dword [esp + 0x28]
push 0x73
pop ecx
div ecx
add esp, 8
mov dword [esp + 0x20], eax
lea eax, [esp + 0x38]
shl dword [esp + 0x20], 0x10
shr dword [esp + 0x20], 4
xor dword [esp + 0x20], 0x572f218
push dword [esp + 0x20]
push eax
push dword [esp + 0x34]
push dword [esp + 0x28]
push ecx
push dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x58]
push dword [esp + 0x4c]
push esi
call fcn.00173770
add esp, 0x24
mov dword [esp + 0x24], 0x5f1155
test eax, eax
mov ebx, edi
mov eax, 0x9f072
cmove ebx, eax
mov eax, dword [esp + 0x24]
push 0x6d
xor edx, edx
pop ecx
div ecx
mov dword [esp + 0x24], eax
imul eax, dword [esp + 0x24], 9
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x65d55
mov dword [esp + 0x18], 0x192cc6
shr dword [esp + 0x18], 1
or dword [esp + 0x18], 0xb219c35c
shr dword [esp + 0x18], 3
xor dword [esp + 0x18], 0x164332fa
mov dword [esp + 0x1c], 0x28bd09
shl dword [esp + 0x1c], 0xe
imul eax, dword [esp + 0x1c], 0x78
push esi
mov dword [esp + 0x20], eax
shr dword [esp + 0x20], 0xa
xor dword [esp + 0x20], 0x7504a
push dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
call fcn.00164fd3
pop ecx
pop ecx
jmp 0x16fc9a
mov dword [esp + 0x1c], 0x7aa34d
xor dword [esp + 0x1c], 0xe3c81c2
add dword [esp + 0x1c], 0xffff7055
xor dword [esp + 0x1c], 0xa4a03190
xor dword [esp + 0x1c], 0xaaee37d4
mov dword [esp + 0x28], 0x2f42a1
add dword [esp + 0x28], 0x4395
xor dword [esp + 0x28], 0x2f9666
mov dword [esp + 0x24], 0x6fab44
xor dword [esp + 0x24], 0x60a23d40
or dword [esp + 0x24], 0x5a2b1f6c
xor dword [esp + 0x24], 0x7ae59a1a
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
push ecx
push ecx
call fcn.00169952
test eax, eax
mov dword [esp + 0x40], eax
pop ecx
mov ebx, edi
pop ecx
cmovne ebx, esi
jmp 0x16f8a4
mov ebx, 0x362cc
cmp ebx, 0x8201
jne 0x16f8b3
jmp 0x17029b
mov dword [esp + 0x18], 0x73adfa
imul eax, dword [esp + 0x18], 0x71
mov dword [esp + 0x18], eax
shl dword [esp + 0x18], 0x10
or dword [esp + 0x18], 0xbd83ba13
xor dword [esp + 0x18], 0xffd83192
mov dword [esp + 0x1c], 0xb671a5
imul eax, dword [esp + 0x1c], 0x5d
mov dword [esp + 0x1c], eax
imul eax, dword [esp + 0x1c], 0x57
mov dword [esp + 0x1c], eax
imul eax, dword [esp + 0x1c], 0x49
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x46765eee
push dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00179716
pop ecx
pop ecx
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3c
ret