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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
xor ebp, ebp
mov dword [esp + 0x34], ecx
push edi
mov dword [esp + 0x3c], 0xa6881
mov ebx, 0xbcd3e
mov dword [esp + 0x40], ebp
mov edi, 0x3fe85
mov esi, 0x55443
mov ecx, 0xc51bd
mov edx, 0x64fd5
mov eax, 0x5e509
cmp ebx, eax
jg 0x36e8c0
je 0x36e6d7
cmp ebx, 0x25e85
je 0x36e686
cmp ebx, edi
je 0x36ed2c
cmp ebx, 0x49413
je 0x36e473
cmp ebx, esi
jne 0x36ed1e
mov dword [esp + 0x14], 0x4a0e95
mov ecx, 0x3510f0
or dword [esp + 0x14], 0x453241b5
shl dword [esp + 0x14], 0xb
xor dword [esp + 0x14], 0xd27f7731
mov dword [esp + 0x18], 0xcbf94a
imul eax, dword [esp + 0x18], 3
mov dword [esp + 0x18], eax
shr dword [esp + 0x18], 0xb
xor dword [esp + 0x18], 0x6ae15
mov dword [esp + 0x1c], 0xca23d1
xor dword [esp + 0x1c], 0x4f6287e
xor dword [esp + 0x1c], 0x434a687
push dword [esp + 0x1c]
push dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
call fcn.0035f201
mov dword [esp + 0x18], 0xfb6fb9
mov esi, eax
shl dword [esp + 0x18], 0xe
xor edx, edx
shr dword [esp + 0x18], 8
shl dword [esp + 0x18], 8
xor dword [esp + 0x18], 0x96ac044b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], 0x2b70b8
or dword [esp + 0x24], 0x3cacee93
xor dword [esp + 0x24], 0x3caffeba
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], eax
mov dword [esp + 0x18], 0xa6c16b
or dword [esp + 0x18], 0xd0ba4c2
imul eax, dword [esp + 0x18], 0x3a
pop ecx
pop ecx
push 0x5c
pop ecx
mov dword [esp + 0x10], eax
or dword [esp + 0x10], 0x18c51763
xor dword [esp + 0x10], 0x19df175f
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], eax
mov dword [esp + 0x2c], 0xd01838
xor dword [esp + 0x2c], 0x44c07d98
xor dword [esp + 0x2c], 0x4413e8ba
mov dword [esp + 0x14], 0x717932
shl dword [esp + 0x14], 1
imul eax, dword [esp + 0x14], 0x4f
push 6
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
div ecx
xor edx, edx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0xccf4af
mov dword [esp + 0x14], 0x7253a7
shr dword [esp + 0x14], 0xe
shr dword [esp + 0x14], 0xc
add dword [esp + 0x14], 0x6b75
xor dword [esp + 0x14], 0xd3ce4
mov dword [esp + 0x2c], 0x1f273
xor dword [esp + 0x2c], 0xef4b288e
xor dword [esp + 0x2c], 0xef402148
mov dword [esp + 0x20], 0xbe7bc7
shr dword [esp + 0x20], 5
xor dword [esp + 0x20], 0x6e56ddba
xor dword [esp + 0x20], 0x6e590089
mov dword [esp + 0x28], 0xa2bd1d
mov eax, dword [esp + 0x28]
pop ecx
div ecx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x10bdd2
mov dword [esp + 0x20], 0x3ccdf7
add dword [esp + 0x20], 0xde3b
xor dword [esp + 0x20], 0x3252e4
mov dword [esp + 0x18], 0x108d5d
xor dword [esp + 0x18], 0x5d578185
xor edx, edx
mov eax, dword [esp + 0x18]
push 0x25
pop ecx
div ecx
mov edx, esi
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x28f95b8
mov eax, dword [0x371b88]
push dword [eax + 0x78]
push dword [eax + 0x7c]
push dword [esp + 0x20]
push ecx
push dword [esp + 0x30]
lea ecx, [esp + 0x70]
push dword [esp + 0x48]
push dword [esp + 0x3c]
push dword [esp + 0x38]
push dword [esp + 0x48]
push dword [esp + 0x34]
push dword [esp + 0x3c]
sub esp, 0xc
push dword [esp + 0x64]
call fcn.00360716
add esp, 0x3c
test eax, eax
jne 0x36e412
xor ebp, ebp
mov ebx, edi
inc ebp
jmp 0x36e417
mov ebx, 0x25e85
mov dword [esp + 0x14], 0x3c3f60
xor edx, edx
add dword [esp + 0x14], 0x4a9d
add dword [esp + 0x14], 0x8751
mov eax, dword [esp + 0x14]
push 0x7a
pop ecx
div ecx
mov ecx, esi
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x888de
mov dword [esp + 0x2c], 0xc27d6f
add dword [esp + 0x2c], 0x4f3a
xor dword [esp + 0x2c], 0xc6ff86
push dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
call fcn.00356177
pop ecx
jmp 0x36ed0a
mov dword [esp + 0x18], 0x48d42f
mov ecx, 0x3510a0
add dword [esp + 0x18], 0x5083
imul eax, dword [esp + 0x18], 0x15
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x600850f
mov dword [esp + 0x1c], 0xc5ebd7
add dword [esp + 0x1c], 0xffff8982
imul eax, dword [esp + 0x1c], 0x2d
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x22b4baf9
mov dword [esp + 0x14], 0x5b47d
add dword [esp + 0x14], 0xffff81be
shr dword [esp + 0x14], 3
imul eax, dword [esp + 0x14], 0x2d
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x1782b0
push dword [esp + 0x14]
push dword [esp + 0x20]
mov edx, dword [esp + 0x20]
call fcn.0035f201
mov dword [esp + 0x30], 0x17aed7
mov edi, eax
shl dword [esp + 0x30], 0x10
xor edx, edx
xor dword [esp + 0x30], 0xaed7a9e9
mov dword [esp + 0x24], 0x3fefa9
mov eax, dword [esp + 0x24]
push 0x30
pop ecx
div ecx
push 0x44
mov dword [esp + 0x28], eax
xor edx, edx
add dword [esp + 0x28], 0x90f7
xor dword [esp + 0x28], 0x729e2
mov dword [esp + 0x38], 0x5b4819
mov eax, dword [esp + 0x38]
pop ecx
div ecx
mov ecx, 0x351050
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0x8c10c
push dword [esp + 0x34]
push dword [esp + 0x28]
mov edx, dword [esp + 0x38]
call fcn.0035f201
mov dword [esp + 0x24], 0x79678c
mov esi, eax
xor dword [esp + 0x24], 0x7fc4f017
mov edx, esi
shl dword [esp + 0x24], 4
add dword [esp + 0x24], 0xffff9836
xor dword [esp + 0x24], 0xfbdae0f8
mov dword [esp + 0x38], 0xf0a951
imul eax, dword [esp + 0x38], 0x6f
mov dword [esp + 0x38], eax
lea eax, [esp + 0x44]
xor dword [esp + 0x38], 0x68588439
mov dword [esp + 0x3c], 0x1257c3
add dword [esp + 0x3c], 0xdb29
xor dword [esp + 0x3c], 0x1b3491
push dword [esp + 0x3c]
push eax
push dword [esp + 0x40]
push dword [esp + 0x30]
push edi
call fcn.0036d219
mov dword [esp + 0x4c], 0x5deeec
test eax, eax
mov eax, 0x64fd5
mov ebx, 0x7553b
cmove ebx, eax
add dword [esp + 0x4c], 0xf322
xor dword [esp + 0x4c], 0x576870
mov dword [esp + 0x50], 0x4c4011
imul eax, dword [esp + 0x50], 6
mov dword [esp + 0x50], eax
xor dword [esp + 0x50], 0x1caf8eb
push dword [esp + 0x50]
mov edx, dword [esp + 0x50]
mov ecx, edi
call fcn.00356177
mov dword [esp + 0x54], 0x8bdc7b
xor edx, edx
shr dword [esp + 0x54], 2
xor dword [esp + 0x54], 0x20a2ea
mov dword [esp + 0x3c], 0xb676da
mov eax, dword [esp + 0x3c]
push 0x24
pop ecx
div ecx
push 0xa
mov dword [esp + 0x40], eax
xor edx, edx
mov eax, dword [esp + 0x40]
pop ecx
div ecx
mov ecx, esi
mov dword [esp + 0x3c], eax
add dword [esp + 0x3c], 0x2d9e
xor dword [esp + 0x3c], 0xa24db
push dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
call fcn.00356177
add esp, 0x2c
jmp 0x36ed05
mov dword [esp + 0x2c], 0x11e091
shl dword [esp + 0x2c], 9
xor dword [esp + 0x2c], 0x23c36454
mov dword [esp + 0x1c], 0x984c53
shr dword [esp + 0x1c], 9
imul eax, dword [esp + 0x1c], 0x63
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x14511f
push dword [esp + 0x1c]
mov edx, dword [0x371b88]
mov ecx, dword [esp + 0x30]
mov edx, dword [edx + 0x78]
call fcn.00370621
pop ecx
mov ebx, edi
jmp 0x36e1a3
mov dword [esp + 0x1c], 0x4627d5
mov ecx, 0x3510c0
shr dword [esp + 0x1c], 0x10
add dword [esp + 0x1c], 0xa222
xor dword [esp + 0x1c], 0x1a430
mov dword [esp + 0x14], 0x6e2e8a
add dword [esp + 0x14], 0xffff6c42
add dword [esp + 0x14], 0xffff4e30
add dword [esp + 0x14], 0xd6e7
xor dword [esp + 0x14], 0x65aae2
mov dword [esp + 0x2c], 0xf00dbc
shl dword [esp + 0x2c], 0xd
xor dword [esp + 0x2c], 0x1bb5afa
push dword [esp + 0x2c]
push dword [esp + 0x18]
mov edx, dword [esp + 0x24]
call fcn.0035f201
mov dword [esp + 0x20], 0xe5db47
mov esi, eax
imul eax, dword [esp + 0x20], 0x36
xor edx, edx
pop ecx
pop ecx
push 0x26
pop ecx
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xffff54ff
add dword [esp + 0x18], 0xffffda3e
xor dword [esp + 0x18], 0x3073a5a3
mov dword [esp + 0x24], 0x80ea2b
mov eax, dword [esp + 0x24]
div ecx
push 0x24
mov dword [esp + 0x28], eax
xor edx, edx
xor dword [esp + 0x28], 0x1bf3d
mov dword [esp + 0x2c], 0xd87cce
add dword [esp + 0x2c], 0xffff3410
xor dword [esp + 0x2c], 0xdebd7e
mov dword [esp + 0x30], 0xba2136
imul eax, dword [esp + 0x30], 0x55
pop ecx
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0x3dc27609
mov dword [esp + 0x10], 0xa63d77
xor dword [esp + 0x10], 0x752f0994
imul eax, dword [esp + 0x10], 0x6a
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
div ecx
mov dword [esp + 0x10], eax
lea eax, [esp + 0x30]
xor dword [esp + 0x10], 0x4bcebb4
mov dword [esp + 0x14], 0x3d7432
xor dword [esp + 0x14], 0xc361593d
or dword [esp + 0x14], 0xa861105b
xor dword [esp + 0x14], 0x229fec68
xor dword [esp + 0x14], 0xc9e788df
push dword [esp + 0x14]
push esi
push dword [esp + 0x18]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x3c]
mov eax, dword [0x371b88]
add eax, 0x7c
push eax
push ecx
push dword [esp + 0x54]
push dword [esp + 0x48]
mov edx, dword [esp + 0x40]
call fcn.003696b5
test eax, eax
mov dword [esp + 0x40], 0xb4cf33
mov ebx, edi
mov eax, 0xc51bd
cmove ebx, eax
shr dword [esp + 0x40], 0x10
add dword [esp + 0x40], 0xffff852c
shr dword [esp + 0x40], 0xb
xor dword [esp + 0x40], 0x1f34a0
mov dword [esp + 0x44], 0xbbcb41
xor edx, edx
mov eax, dword [esp + 0x44]
push 0xa
pop ecx
div ecx
push 0x38
mov dword [esp + 0x48], eax
xor edx, edx
mov eax, dword [esp + 0x48]
pop ecx
div ecx
mov ecx, esi
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0xa8f4
push dword [esp + 0x44]
mov edx, dword [esp + 0x44]
call fcn.00356177
add esp, 0x2c
jmp 0x36ed0a
cmp ebx, edx
je 0x36e955
cmp ebx, 0xbcd3e
je 0x36e94b
cmp ebx, ecx
jne 0x36ed1e
mov dword [esp + 0x18], 0x64dd70
add dword [esp + 0x18], 0xe4a6
add dword [esp + 0x18], 0xb5ca
add dword [esp + 0x18], 0xe3b2
xor dword [esp + 0x18], 0x65943d
mov dword [esp + 0x1c], 0x4e4bb0
xor dword [esp + 0x1c], 0x8f2ec5ad
shr dword [esp + 0x1c], 0xa
xor dword [esp + 0x1c], 0x2d301b
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [0x371b88]
push ecx
mov edx, dword [edx + 0x7c]
call fcn.003532c0
pop ecx
mov ecx, eax
mov ebx, edi
mov eax, dword [0x371b88]
test ecx, ecx
cmovne ebx, esi
mov dword [eax + 0x78], ecx
jmp 0x36e1a3
mov ebx, 0x49413
jmp 0x36e1b2
mov dword [esp + 0x18], 0x2fe34b
xor edx, edx
shl dword [esp + 0x18], 2
add dword [esp + 0x18], 0xffff8550
xor dword [esp + 0x18], 0xb6d732
mov dword [esp + 0x1c], 0x577643
imul eax, dword [esp + 0x1c], 0x53
push 0x7e
pop ecx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0xdf2da7cd
xor dword [esp + 0x1c], 0xc37a37b4
mov dword [esp + 0x2c], 0xe31822
mov eax, dword [esp + 0x2c]
div ecx
mov ecx, 0x351030
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0xde5d6
push dword [esp + 0x2c]
push dword [esp + 0x20]
mov edx, dword [esp + 0x20]
call fcn.0035f201
mov dword [esp + 0x20], 0x8ec5aa
mov edi, eax
add dword [esp + 0x20], 0x48cb
xor edx, edx
add dword [esp + 0x20], 0xffff6b1a
xor dword [esp + 0x20], 0x85a862
mov dword [esp + 0x34], 0xff38c5
shr dword [esp + 0x34], 6
xor dword [esp + 0x34], 0xa0865
mov dword [esp + 0x24], 0x2bc23c
add dword [esp + 0x24], 0xffff75c2
mov eax, dword [esp + 0x24]
push 0x57
pop ecx
div ecx
mov ecx, 0x351090
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0xd6c57
push dword [esp + 0x24]
push dword [esp + 0x38]
mov edx, dword [esp + 0x28]
call fcn.0035f201
mov dword [esp + 0x2c], 0xe670c9
mov esi, eax
or dword [esp + 0x2c], 0xa8f7693b
xor edx, edx
add dword [esp + 0x2c], 0xffff1c00
xor dword [esp + 0x2c], 0xa8f695fb
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x38], 0xb4ba0e
mov eax, dword [esp + 0x38]
push 0x42
pop ecx
div ecx
mov dword [esp + 0x38], eax
xor dword [esp + 0x38], 0x2bd01
mov dword [esp + 0x28], 0xc16742
add dword [esp + 0x28], 0x486f
add dword [esp + 0x28], 0xffff64f1
xor dword [esp + 0x28], 0xc131e7
mov dword [esp + 0x2c], 0x2b2bb2
xor dword [esp + 0x2c], 0x7964915f
shl dword [esp + 0x2c], 6
xor dword [esp + 0x2c], 0x53ee1699
mov dword [esp + 0x3c], 0x331d8c
add dword [esp + 0x3c], 0x7078
xor dword [esp + 0x3c], 0x3f2900
push dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push edi
call fcn.00352753
add eax, dword [esp + 0x40]
add esp, 0x18
add eax, eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], 0x154c76
add dword [esp + 0x2c], 0xfffff4ff
xor edx, edx
xor dword [esp + 0x2c], 0x154175
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], 0x5e4de2
add dword [esp + 0x1c], 0xc357
add dword [esp + 0x1c], 0xfffffcbe
xor dword [esp + 0x1c], 0x5f0df6
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], 0xb6dd4e
shl dword [esp + 0x1c], 5
add dword [esp + 0x1c], 0xb599
xor dword [esp + 0x1c], 0x16dc5f79
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], 0x2a4e9d
or dword [esp + 0x24], 0xb5c955f3
xor dword [esp + 0x24], 0xb5e5c42d
mov dword [esp + 0x14], 0xbb2a02
add dword [esp + 0x14], 0xffffb656
add dword [esp + 0x14], 0x23a4
add dword [esp + 0x14], 0xffffcf7f
xor dword [esp + 0x14], 0xb69397
mov dword [esp + 0x18], 0xf204a3
add dword [esp + 0x18], 0xffff1732
mov eax, dword [esp + 0x18]
push 0x3a
pop ecx
div ecx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x30]
or dword [esp + 0x18], 0x5ef9be91
xor dword [esp + 0x18], 0x5ef297cf
mov dword [esp + 0x28], 0xa6da09
add dword [esp + 0x28], 0xffff431e
xor dword [esp + 0x28], 0xadec2e
push eax
mov dword [esp + 0x30], 0xf870e2
lea eax, [esp + 0x54]
shr dword [esp + 0x30], 1
xor dword [esp + 0x30], 0x7cf1af
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x3c]
push dword [esp + 0x48]
push dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
push esi
push ecx
mov ecx, dword [esp + 0x44]
push eax
lea eax, [esp + 0x8c]
push eax
call 0x37043e
mov dword [esp + 0x44], 0xe54f7f
test eax, eax
mov eax, 0x5e509
mov ebx, 0x3fe85
cmove ebx, eax
mov eax, dword [esp + 0x44]
push 9
xor edx, edx
pop ecx
div ecx
mov ecx, edi
mov dword [esp + 0x44], eax
imul eax, dword [esp + 0x44], 0x61
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0x9a29059
mov dword [esp + 0x40], 0xfbb60e
shr dword [esp + 0x40], 0xc
or dword [esp + 0x40], 0xbd9339c2
shl dword [esp + 0x40], 0xc
xor dword [esp + 0x40], 0x33f252be
push dword [esp + 0x40]
mov edx, dword [esp + 0x48]
call fcn.00356177
mov dword [esp + 0x48], 0xa52df5
mov ecx, esi
or dword [esp + 0x48], 0x97a8c942
imul eax, dword [esp + 0x48], 0x63
mov dword [esp + 0x48], eax
xor dword [esp + 0x48], 0xa84fb61b
mov dword [esp + 0x44], 0x5d2414
or dword [esp + 0x44], 0x41f16f76
add dword [esp + 0x44], 0xcd6d
add dword [esp + 0x44], 0xffff2488
xor dword [esp + 0x44], 0x41f0b8fe
push dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
call fcn.00356177
add esp, 0x30
mov edi, 0x3fe85
mov edx, 0x64fd5
mov ecx, 0xc51bd
mov esi, 0x55443
mov eax, 0x5e509
cmp ebx, 0x7553b
jne 0x36e1b2
jmp 0x36ed9a
mov dword [esp + 0x28], 0xec14cc
xor edx, edx
mov eax, dword [esp + 0x28]
push 0x70
pop ecx
div ecx
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x98b95
mov dword [esp + 0x18], 0x2bda1a
shl dword [esp + 0x18], 1
shr dword [esp + 0x18], 6
add dword [esp + 0x18], 0x7aa2
xor dword [esp + 0x18], 0x34b5c
mov dword [esp + 0x2c], 0x19903e
shl dword [esp + 0x2c], 9
xor dword [esp + 0x2c], 0x33214833
push dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
push dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x34]
call fcn.003701b6
add esp, 0xc
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x78
ret