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

Disassembly:
sub esp, 0x18c
mov dword [esp + 0x154], 0xa0cd19
xor edx, edx
push ebx
push ebp
xor ebp, ebp
mov dword [esp + 0x140], ecx
and dword [esp + 0x160], ebp
mov ebx, 0x41de8e2
and dword [esp + 0x164], ebp
mov dword [esp + 0x68], 0x1109eb
add dword [esp + 0x68], 0xcb
or dword [esp + 0x68], 0xecff95c2
xor dword [esp + 0x68], 0xa1bddbbd
mov dword [esp + 0x98], 0xe28eec
add dword [esp + 0x98], 0x19d6
or dword [esp + 0x98], 0xcaf404bd
xor dword [esp + 0x98], 0xcaf6acfe
mov dword [esp + 0x118], 0x517500
add dword [esp + 0x118], 0x84ec
xor dword [esp + 0x118], 0x51f9ec
mov dword [esp + 0x3c], 0xbde49
imul eax, dword [esp + 0x3c], 0x35
push esi
push edi
push 0x31
pop ecx
mov dword [esp + 0x44], eax
shl dword [esp + 0x44], 9
add dword [esp + 0x44], 0x7afe
xor dword [esp + 0x44], 0xea0ab4fe
mov dword [esp + 0xb4], 0xd06c4e
or dword [esp + 0xb4], 0x98bd8447
add dword [esp + 0xb4], 0xffff492f
xor dword [esp + 0xb4], 0x98fd357e
mov dword [esp + 0xb0], 0xf2a19d
shl dword [esp + 0xb0], 8
or dword [esp + 0xb0], 0xeb063d66
xor dword [esp + 0xb0], 0xfba7bd66
mov dword [esp + 0x6c], 0x7cba75
shl dword [esp + 0x6c], 0x10
shr dword [esp + 0x6c], 0xd
xor dword [esp + 0x6c], 0x5d3a8
mov dword [esp + 0xc0], 0xced2db
shr dword [esp + 0xc0], 0xb
imul eax, dword [esp + 0xc0], 0x6a
push 0x4d
mov dword [esp + 0xc4], eax
xor dword [esp + 0xc4], 0xab444
mov dword [esp + 0x3c], 0x98a5e4
xor dword [esp + 0x3c], 0xdd9204f6
or dword [esp + 0x3c], 0x4689a95f
imul eax, dword [esp + 0x3c], 0x48
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0xdf47a2b8
mov dword [esp + 0x7c], 0x99ac6b
imul eax, dword [esp + 0x7c], 0x35
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
div ecx
mov dword [esp + 0x7c], eax
xor dword [esp + 0x7c], 0xa637e1
mov dword [esp + 0x44], 0x8d86f8
add dword [esp + 0x44], 0x9ec9
add dword [esp + 0x44], 0xfffff441
imul eax, dword [esp + 0x44], 0x3a
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0x2031e474
mov dword [esp + 0xd0], 0x39dd97
shl dword [esp + 0xd0], 0x10
add dword [esp + 0xd0], 0x9a19
xor dword [esp + 0xd0], 0xdd979a19
mov dword [esp + 0x13c], 0xd2197
add dword [esp + 0x13c], 0x97e4
xor dword [esp + 0x13c], 0xdb95b
mov dword [esp + 0x5c], 0x771ce
shl dword [esp + 0x5c], 1
xor dword [esp + 0x5c], 0x580a954c
xor dword [esp + 0x5c], 0x580cba62
xor edx, edx
mov dword [esp + 0x40], 0xd79a55
mov eax, dword [esp + 0x40]
pop esi
div esi
push 0x2c
mov dword [esp + 0x40], eax
xor edx, edx
shl dword [esp + 0x40], 5
add dword [esp + 0x40], 0xffffa0ed
xor dword [esp + 0x40], 0x5b1fb1
mov dword [esp + 0x98], 0xbc6795
add dword [esp + 0x98], 0x99f5
or dword [esp + 0x98], 0xde86e00c
xor dword [esp + 0x98], 0xdeb9ffad
mov dword [esp + 0xb0], 0x2649df
add dword [esp + 0xb0], 0x8f57
add dword [esp + 0xb0], 0xffffdcf3
xor dword [esp + 0xb0], 0x2859eb
mov dword [esp + 0xec], 0x284ff
add dword [esp + 0xec], 0xfffffbe4
xor dword [esp + 0xec], 0x4b053
mov dword [esp + 0xa8], 0x43d81c
imul eax, dword [esp + 0xa8], 0x30
pop ecx
mov dword [esp + 0xa4], eax
add dword [esp + 0xa4], 0x77f1
xor dword [esp + 0xa4], 0xcb65cea
mov dword [esp + 0xf8], 0x561af9
imul eax, dword [esp + 0xf8], 0x5f
mov dword [esp + 0xf8], eax
xor dword [esp + 0xf8], 0x1ff767f2
mov dword [esp + 0xf0], 0x424117
mov eax, dword [esp + 0xf0]
div ecx
mov dword [esp + 0xf0], eax
xor dword [esp + 0xf0], 0xedcdb
mov dword [esp + 0x4c], 0xedf003
add dword [esp + 0x4c], 0xffff11da
shr dword [esp + 0x4c], 2
shr dword [esp + 0x4c], 9
xor dword [esp + 0x4c], 0xc05d4
mov dword [esp + 0xc4], 0xec53cc
or dword [esp + 0xc4], 0x30e2710b
imul eax, dword [esp + 0xc4], 0x1f
mov dword [esp + 0xc4], eax
xor dword [esp + 0xc4], 0xeced0588
mov dword [esp + 0xbc], 0xc36dcc
imul eax, dword [esp + 0xbc], 0x64
mov dword [esp + 0xbc], eax
imul eax, dword [esp + 0xbc], 0xc
mov dword [esp + 0xbc], eax
xor dword [esp + 0xbc], 0x9413d5fd
mov dword [esp + 0x108], 0x5fde01
xor dword [esp + 0x108], 0x51967584
xor dword [esp + 0x108], 0x51c7dbee
mov dword [esp + 0x100], 0x26546c
xor dword [esp + 0x100], 0x8ec08bcd
xor dword [esp + 0x100], 0x8eeee361
mov dword [esp + 0x10], 0x210674
xor dword [esp + 0x10], 0xb585172f
shr dword [esp + 0x10], 9
xor dword [esp + 0x10], 0x5fa8c9ed
xor dword [esp + 0x10], 0x5ff25ba7
mov dword [esp + 0x12c], 0xa4fdb5
xor dword [esp + 0x12c], 0x7ac22777
xor dword [esp + 0x12c], 0x7a606cfd
mov dword [esp + 0xfc], 0x7fe066
or dword [esp + 0xfc], 0xe6d7910f
xor dword [esp + 0xfc], 0xe6fe40a3
mov dword [esp + 0x104], 0xb045a1
xor dword [esp + 0x104], 0x733bf74
xor dword [esp + 0x104], 0x78d93a6
mov dword [esp + 0x1c], 0x7bd524
add dword [esp + 0x1c], 0xffff236c
imul eax, dword [esp + 0x1c], 0x7b
mov dword [esp + 0x1c], eax
add dword [esp + 0x1c], 0xffffb98b
xor dword [esp + 0x1c], 0x3b1735e1
mov dword [esp + 0x14], 0x61d9a1
add dword [esp + 0x14], 0xab93
add dword [esp + 0x14], 0xffff054c
or dword [esp + 0x14], 0xc62dc39c
xor dword [esp + 0x14], 0xc661791a
mov dword [esp + 0x24], 0x1528d1
xor edx, edx
shl dword [esp + 0x24], 8
add dword [esp + 0x24], 0xffff31a1
shr dword [esp + 0x24], 9
xor dword [esp + 0x24], 0xf3b72
mov dword [esp + 0x90], 0x199e3d
xor dword [esp + 0x90], 0x3c18ecc0
shr dword [esp + 0x90], 0xf
xor dword [esp + 0x90], 0x85298
mov dword [esp + 0x128], 0x9d324d
imul eax, dword [esp + 0x128], 0x35
push 0x5b
pop ecx
push 0x39
mov dword [esp + 0x12c], eax
xor dword [esp + 0x12c], 0x2088a224
mov dword [esp + 0x110], 0xea008e
imul eax, dword [esp + 0x110], 0x31
mov dword [esp + 0x110], eax
xor dword [esp + 0x110], 0x2cc3d943
mov dword [esp + 0xd8], 0xbe23d7
mov eax, dword [esp + 0xd8]
div ecx
xor edx, edx
mov dword [esp + 0xd8], eax
xor dword [esp + 0xd8], 0x6a720
mov dword [esp + 0x30], 0xbc3a01
shr dword [esp + 0x30], 2
shl dword [esp + 0x30], 1
or dword [esp + 0x30], 0x91e27348
xor dword [esp + 0x30], 0x91f48308
mov dword [esp + 0x68], 0x81ba05
xor dword [esp + 0x68], 0x6d6d273d
add dword [esp + 0x68], 0x9af1
xor dword [esp + 0x68], 0x6ded9aad
mov dword [esp + 0x60], 0xa9a2ca
mov eax, dword [esp + 0x60]
div esi
xor edx, edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
pop ecx
div ecx
push 0xb
mov dword [esp + 0x60], eax
xor edx, edx
xor dword [esp + 0x60], 0x5ef3e
mov dword [esp + 0x118], 0x8e55db
mov eax, dword [esp + 0x118]
pop ecx
div ecx
push 0x55
mov dword [esp + 0x118], eax
xor edx, edx
xor dword [esp + 0x118], 0x10f6d
mov dword [esp + 0x78], 0x9a02a3
or dword [esp + 0x78], 0xc0bbeea6
xor dword [esp + 0x78], 0xfebfff47
xor dword [esp + 0x78], 0x3e0de8e7
mov dword [esp + 0xdc], 0x628794
shr dword [esp + 0xdc], 7
xor dword [esp + 0xdc], 0x33c53
mov dword [esp + 0x38], 0xc75687
mov eax, dword [esp + 0x38]
pop ecx
div ecx
push 0x4a
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x38]
pop ecx
div ecx
push 0x66
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x38]
pop ecx
div ecx
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0x6bc1c
mov dword [esp + 0x7c], 0xb89ddb
xor edx, edx
imul eax, dword [esp + 0x7c], 0x7b
push 0x5c
pop ecx
push 0x78
mov dword [esp + 0x80], eax
add dword [esp + 0x80], 0x220a
xor dword [esp + 0x80], 0x58b2320e
mov dword [esp + 0x134], 0x352a49
or dword [esp + 0x134], 0x42677ea4
xor dword [esp + 0x134], 0x427d3f06
mov dword [esp + 0x54], 0x1123f9
add dword [esp + 0x54], 0xfffffbdd
add dword [esp + 0x54], 0xffff8b7f
or dword [esp + 0x54], 0xcf6269e1
xor dword [esp + 0x54], 0xcf7a63e7
mov dword [esp + 0xe0], 0x15ba5c
add dword [esp + 0xe0], 0xffff7d63
xor dword [esp + 0xe0], 0x11de47
mov dword [esp + 0xd4], 0xd88287
shr dword [esp + 0xd4], 1
xor dword [esp + 0xd4], 0x6fcfd9
mov dword [esp + 0x6c], 0x394063
or dword [esp + 0x6c], 0x23438f89
xor dword [esp + 0x6c], 0x95557e79
xor dword [esp + 0x6c], 0xb625da34
mov dword [esp + 0x9c], 0x6632ca
shl dword [esp + 0x9c], 0xc
mov eax, dword [esp + 0x9c]
div ecx
xor edx, edx
mov dword [esp + 0x9c], eax
xor dword [esp + 0x9c], 0x11a1b64
mov dword [esp + 0x64], 0x1ead1d
shr dword [esp + 0x64], 0xf
shl dword [esp + 0x64], 0xe
xor dword [esp + 0x64], 0xacc6a
mov dword [esp + 0x1c], 0xc01c7d
shr dword [esp + 0x1c], 9
or dword [esp + 0x1c], 0xa159bc3f
xor dword [esp + 0x1c], 0x1058b9c4
xor dword [esp + 0x1c], 0xb10bd724
mov dword [esp + 0xa0], 0x2459a9
add dword [esp + 0xa0], 0xffff58c0
shr dword [esp + 0xa0], 0xc
xor dword [esp + 0xa0], 0x386a3
mov dword [esp + 0x4c], 0xa38d0b
mov eax, dword [esp + 0x4c]
pop ecx
div ecx
mov dword [esp + 0x48], eax
xor dword [esp + 0x48], 0x3e3bd45c
add dword [esp + 0x48], 0xf3c0
xor dword [esp + 0x48], 0x3e3a819a
mov dword [esp + 0x20], 0x2dd945
shl dword [esp + 0x20], 4
add dword [esp + 0x20], 0xffffb7c2
shl dword [esp + 0x20], 6
xor dword [esp + 0x20], 0xb75574a7
mov dword [esp + 0x8c], 0xf6939e
or dword [esp + 0x8c], 0x851c2f86
add dword [esp + 0x8c], 0xffff0412
xor dword [esp + 0x8c], 0x85fd1a3b
mov dword [esp + 0xe0], 0x2c17e
shr dword [esp + 0xe0], 3
xor dword [esp + 0xe0], 0xc5ae0
mov dword [esp + 0x84], 0xf08b81
or dword [esp + 0x84], 0x75266007
xor dword [esp + 0x84], 0xc75f894a
xor dword [esp + 0x84], 0xb2a4e63e
mov dword [esp + 0x28], 0x6f48a0
shl dword [esp + 0x28], 0xa
shr dword [esp + 0x28], 0x10
or dword [esp + 0x28], 0x5e122b7b
xor dword [esp + 0x28], 0x5e16ce05
mov dword [esp + 0xe4], 0x747075
add dword [esp + 0xe4], 0xcea0
xor dword [esp + 0xe4], 0x7a5d3b
mov dword [esp + 0x11c], 0x4ebeca
add dword [esp + 0x11c], 0xffffee54
xor dword [esp + 0x11c], 0x4a846f
xor edx, edx
mov dword [esp + 0x124], 0xe78fe5
mov esi, 0x80c65ec
add dword [esp + 0x124], 0xffff4f7b
mov edi, 0xf9e92c1
xor dword [esp + 0x124], 0xe2ece2
mov dword [esp + 0x88], 0xe2917e
shl dword [esp + 0x88], 6
add dword [esp + 0x88], 0xffff0dfb
xor dword [esp + 0x88], 0x38a72339
mov dword [esp + 0xec], 0x1ec236
xor dword [esp + 0xec], 0x7af5486d
xor dword [esp + 0xec], 0x7aeb8f45
mov dword [esp + 0xa8], 0x4d92e1
imul eax, dword [esp + 0xa8], 0x4a
push 0x5f
pop ecx
mov dword [esp + 0x144], 0x20
mov dword [esp + 0xa8], eax
or dword [esp + 0xa8], 0x7c3f7c28
xor dword [esp + 0xa8], 0x7e7c1ac2
mov dword [esp + 0x80], 0xc8aa60
add dword [esp + 0x80], 0x32b9
add dword [esp + 0x80], 0xffff127a
xor dword [esp + 0x80], 0xc1b775
mov dword [esp + 0xb8], 0x32f957
shl dword [esp + 0xb8], 0xa
xor dword [esp + 0xb8], 0xe304a089
xor dword [esp + 0xb8], 0x28edcf32
mov dword [esp + 0x30], 0x1a55e7
imul eax, dword [esp + 0x30], 0x68
mov dword [esp + 0x30], eax
imul eax, dword [esp + 0x30], 0x36
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0xa842ca33
xor dword [esp + 0x30], 0xe9f59c27
mov dword [esp + 0xf4], 0x34b570
or dword [esp + 0xf4], 0x6b6928c5
xor dword [esp + 0xf4], 0x6b739674
mov dword [esp + 0x134], 0x8a8082
imul eax, dword [esp + 0x134], 0x3f
mov dword [esp + 0x134], eax
xor dword [esp + 0x134], 0x2214377a
mov dword [esp + 0xc8], 0x18307b
xor dword [esp + 0xc8], 0x4b6e1055
xor dword [esp + 0xc8], 0x41119872
xor dword [esp + 0xc8], 0xa6c434c
mov dword [esp + 0x118], 0x8b3f3c
shl dword [esp + 0x118], 2
xor dword [esp + 0x118], 0x22c35f2
mov dword [esp + 0x54], 0x314aa5
or dword [esp + 0x54], 0xbabb419f
mov eax, dword [esp + 0x54]
div ecx
mov dword [esp + 0x54], eax
add dword [esp + 0x54], 0xe73f
xor dword [esp + 0x54], 0x1f1132e
mov dword [esp + 0x110], 0x403514
add dword [esp + 0x110], 0xffff4e06
xor dword [esp + 0x110], 0x39264a
mov ecx, 0xf0ee26a
mov edx, 0xbf4f028
mov eax, 0xc1f5c56
cmp ebx, eax
jg 0x10003a69
je 0x1000392a
cmp ebx, 0xdec32e
je 0x10003907
cmp ebx, 0x41de8e2
je 0x100038fd
cmp ebx, esi
je 0x10003829
cmp ebx, edx
jne 0x10003baf
push dword [esp + 0xdc]
mov edx, 0x100018b4
push dword [esp + 0x54]
mov ecx, dword [esp + 0x138]
call fcn.1001dcf7
pop ecx
pop ecx
push dword [esp + 0x9c]
mov esi, eax
lea edx, [esp + 0x144]
push dword [esp + 0x140]
push dword [esp + 0x20]
push dword [esp + 0x6c]
push dword [esp + 0xa8]
push dword [esp + 0x7c]
mov eax, dword [0x10023dfc]
add eax, 0x54
push eax
push ecx
push dword [esp + 0xf0]
mov ecx, esi
push dword [esp + 0xe4]
call fcn.10020b68
mov ecx, eax
mov ebx, edi
mov eax, dword [esp + 0x60]
mov edx, esi
push dword [esp + 0x48]
cmp ecx, eax
mov ecx, dword [esp + 0x74]
mov eax, 0xf0ee26a
cmove ebx, eax
call fcn.1000a8b0
jmp 0x10003b98
push dword [esp + 0x11c]
mov edx, 0x10001904
push dword [esp + 0xe8]
mov ecx, dword [esp + 0x30]
call fcn.1001dcf7
mov esi, eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0xa8]
pop ecx
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x13c]
pop ecx
mov dword [esp + 0x178], eax
mov eax, dword [0x10023dfc]
push dword [eax + 0x50]
lea eax, [esp + 0x174]
push eax
push esi
push ecx
push dword [esp + 0x88]
push dword [esp + 0xcc]
push dword [esp + 0x98]
push dword [esp + 0xc4]
push dword [esp + 0x10c]
mov eax, dword [0x10023dfc]
push dword [esp + 0x160]
push dword [eax + 0x54]
push dword [esp + 0xb4]
mov eax, dword [0x10023dfc]
mov edx, dword [esp + 0x154]
add eax, 0x64
push eax
call fcn.1001d84c
add esp, 0x34
cmp eax, dword [esp + 0x40]
jne 0x100038e0
xor ebp, ebp
mov ebx, edi
inc ebp
jmp 0x100038e5
mov ebx, 0xdec32e
push dword [esp + 0xf4]
mov ecx, dword [esp + 0x34]
mov edx, esi
call fcn.1000a8b0
pop ecx
jmp 0x10003b9b
mov ebx, 0xe078043
jmp 0x10003766
mov eax, dword [0x10023dfc]
mov edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x134]
push dword [eax + 0x50]
call fcn.10018519
pop ecx
mov ebx, edi
jmp 0x10003757
push dword [esp + 0xfc]
mov edx, 0x10001884
push dword [esp + 0x130]
mov ecx, dword [esp + 0x18]
call fcn.1001dcf7
push dword [esp + 0x1c]
mov edx, 0x10001924
mov edi, eax
push dword [esp + 0x28]
mov ecx, dword [esp + 0x114]
call fcn.1001dcf7
mov esi, eax
mov edx, edi
mov eax, dword [esp + 0x130]
push dword [esp + 0x11c]
mov dword [esp + 0x164], eax
push dword [esp + 0x13c]
push dword [esp + 0xa8]
mov ecx, dword [esp + 0x40]
call fcn.1000cb52
push dword [esp + 0xcc]
and dword [esp + 0x178], 0
lea ecx, [esp + 0x19c]
push dword [esp + 0x134]
lea eax, [eax*2 + 2]
mov dword [esp + 0x178], edi
push dword [esp + 0x80]
mov dword [esp + 0x174], eax
lea eax, [esp + 0x174]
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x16c]
push eax
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x184]
push eax
push dword [esp + 0x94]
lea eax, [esp + 0x174]
mov dword [esp + 0x190], 1
push esi
push dword [esp + 0x180]
push eax
push dword [esp + 0x6c]
mov edx, dword [esp + 0x118]
call fcn.10008d13
mov ecx, eax
add esp, 0x44
mov eax, dword [esp + 0x6c]
mov ebx, 0xf9e92c1
cmp ecx, eax
mov edx, edi
mov eax, 0xbf4f028
push dword [esp + 0xd8]
mov ecx, dword [esp + 0x78]
cmove ebx, eax
call fcn.1000a8b0
push dword [esp + 0x80]
mov ecx, dword [esp + 0x3c]
mov edx, esi
call fcn.1000a8b0
pop ecx
pop ecx
mov edi, 0xf9e92c1
jmp 0x10003b9b
cmp ebx, 0xe078043
je 0x10003aef
cmp ebx, ecx
je 0x10003ab2
cmp ebx, edi
jne 0x10003baf
push dword [esp + 0x110]
push dword [esp + 0xd0]
push dword [esp + 0x5c]
mov edx, dword [esp + 0x124]
mov ecx, dword [esp + 0x148]
call fcn.1000957d
add esp, 0xc
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x18c
ret
mov eax, dword [esp + 0x84]
mov eax, dword [esp + 0xe0]
mov eax, dword [esp + 0x8c]
mov edx, dword [0x10023dfc]
push ecx
push ecx
mov edx, dword [edx + 0x54]
call fcn.10007ff2
pop ecx
pop ecx
mov ecx, eax
mov ebx, edi
mov eax, dword [0x10023dfc]
test ecx, ecx
cmovne ebx, esi
mov dword [eax + 0x50], ecx
jmp 0x10003757
push dword [esp + 0x94]
mov edx, 0x100018e4
push dword [esp + 0x40]
mov ecx, dword [esp + 0x60]
call fcn.1001dcf7
push dword [esp + 0xac]
mov edx, 0x10001814
mov edi, eax
push dword [esp + 0xf4]
mov ecx, dword [esp + 0xbc]
call fcn.1001dcf7
push dword [esp + 0x54]
mov esi, eax
mov ecx, edi
push dword [esp + 0x60]
lea eax, [esp + 0x154]
push esi
push eax
push dword [esp + 0x110]
mov edx, dword [esp + 0x11c]
call fcn.10009462
mov ecx, eax
mov ebx, 0x1d0239b
mov eax, dword [esp + 0xd8]
mov edx, edi
push dword [esp + 0xe0]
cmp ecx, eax
mov ecx, dword [esp + 0xec]
mov eax, 0xc1f5c56
cmove ebx, eax
call fcn.1000a8b0
push dword [esp + 0x128]
mov ecx, dword [esp + 0x134]
mov edx, esi
call fcn.1000a8b0
mov edi, 0xf9e92c1
add esp, 0x2c
mov edx, 0xbf4f028
mov ecx, 0xf0ee26a
mov esi, 0x80c65ec
mov eax, 0xc1f5c56
cmp ebx, 0x1d0239b
jne 0x10003766
jmp 0x10003aa5