Function at 0x10012b54
Capabilities:
Authenticate hmac

Disassembly:
sub esp, 0x6e4
mov dword [esp + 0x10], 0x98af
xor edx, edx
imul eax, dword [esp + 0x10], 7
mov ecx, 0x341c9255
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x20], eax
xor esi, esi
xor dword [esp + 0x20], 0x33c4fc6a
xor dword [esp + 0x20], 0xcec25379
xor dword [esp + 0x20], 0xfd0283f3
mov dword [esp + 0xd4], 0xb64c
add dword [esp + 0xd4], 0xffff9221
xor dword [esp + 0xd4], 0x5183
mov dword [esp + 0xb0], 0x97d2
imul eax, dword [esp + 0xb0], 0x6f
push 0x42
pop edi
push 0x41
mov dword [esp + 0xd0], esi
mov dword [esp + 0xb4], eax
xor dword [esp + 0xb4], 0x41f71d
mov dword [esp + 0xcc], 0x5148
shr dword [esp + 0xcc], 0xc
xor dword [esp + 0xcc], 0x7f87
mov dword [esp + 0x1c], 0xc57a
add dword [esp + 0x1c], 0xffff54fa
or dword [esp + 0x1c], 0x19e5fbb3
mov eax, dword [esp + 0x1c]
div edi
xor edx, edx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x647e67
mov dword [esp + 0x90], 0xb50d
shl dword [esp + 0x90], 9
imul eax, dword [esp + 0x90], 0x47
pop edi
push 0x12
mov dword [esp + 0x90], eax
xor dword [esp + 0x90], 0x646d0846
mov dword [esp + 0x40], 0x7e7
add dword [esp + 0x40], 0x2a55
shr dword [esp + 0x40], 0xf
shr dword [esp + 0x40], 4
xor dword [esp + 0x40], 0x2edc
mov dword [esp + 0x20], 0x31bd
imul eax, dword [esp + 0x20], 0x1d
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
div edi
xor edx, edx
mov dword [esp + 0x20], eax
shl dword [esp + 0x20], 7
xor dword [esp + 0x20], 0xb4669
mov dword [esp + 0x68], 0x36d6
mov eax, dword [esp + 0x68]
pop edi
div edi
push 0x1e
mov dword [esp + 0x68], eax
xor edx, edx
imul eax, dword [esp + 0x68], 0x31
pop edi
mov dword [esp + 0x64], eax
xor dword [esp + 0x64], 0xa029
mov dword [esp + 0x5c], 0xae2f
add dword [esp + 0x5c], 0xffffa442
mov eax, dword [esp + 0x5c]
div edi
mov dword [esp + 0x5c], eax
xor dword [esp + 0x5c], 0x29b8
mov dword [esp + 0x94], 0x1e39
shr dword [esp + 0x94], 7
or dword [esp + 0x94], 0x288846e2
xor dword [esp + 0x94], 0x288846c0
mov dword [esp + 0x74], 0x27c3
add dword [esp + 0x74], 0xffff9f85
add dword [esp + 0x74], 0x7cc6
xor dword [esp + 0x74], 0x13af
mov dword [esp + 0x84], 0xafe8
xor edx, edx
shr dword [esp + 0x84], 0xf
mov eax, dword [esp + 0x84]
push 0x3f
pop edi
div edi
push 6
mov dword [esp + 0x88], eax
xor edx, edx
xor dword [esp + 0x88], 0xe26
mov dword [esp + 0x70], 0xf75a
add dword [esp + 0x70], 0xf412
shr dword [esp + 0x70], 1
xor dword [esp + 0x70], 0xe4b2
mov dword [esp + 0x28], 0x3c3e
shr dword [esp + 0x28], 0x10
or dword [esp + 0x28], 0x62539d0c
add dword [esp + 0x28], 0x453b
xor dword [esp + 0x28], 0x6253ef14
mov dword [esp + 0x30], 0x2723
shr dword [esp + 0x30], 3
add dword [esp + 0x30], 0xffffd2a8
mov eax, dword [esp + 0x30]
pop ebx
div ebx
push 0x1d
mov dword [esp + 0x30], eax
xor edx, edx
xor dword [esp + 0x30], 0x2aaa9f1e
mov dword [esp + 0xac], 0x4217
mov eax, dword [esp + 0xac]
pop edi
div edi
push 0x7e
mov dword [esp + 0xac], eax
xor edx, edx
xor dword [esp + 0xac], 0x7f8c
mov dword [esp + 0xa0], 0x9759
mov eax, dword [esp + 0xa0]
pop edi
div edi
push 0x59
mov dword [esp + 0xa0], eax
xor edx, edx
xor dword [esp + 0xa0], 0x13b3
mov dword [esp + 0x50], 0x4b65
add dword [esp + 0x50], 0x130b
or dword [esp + 0x50], 0xba553358
mov eax, dword [esp + 0x50]
pop edi
div edi
push 0x2a
mov dword [esp + 0x50], eax
xor edx, edx
xor dword [esp + 0x50], 0x21795e6
mov dword [esp + 0x4c], 0x3a02
mov eax, dword [esp + 0x4c]
pop edi
div edi
push 0x47
mov dword [esp + 0x4c], eax
xor edx, edx
shl dword [esp + 0x4c], 6
add dword [esp + 0x4c], 0xffffd667
xor dword [esp + 0x4c], 0x5b37
mov dword [esp + 0x9c], 0xa607
add dword [esp + 0x9c], 0xbbc6
add dword [esp + 0x9c], 0xfdc3
xor dword [esp + 0x9c], 0x2773b
mov dword [esp + 0x94], 0x89f1
or dword [esp + 0x94], 0x603cf32
mov eax, dword [esp + 0x94]
pop edi
div edi
mov dword [esp + 0x90], eax
xor dword [esp + 0x90], 0x15921a
mov dword [esp + 0x88], 0xa54b
shl dword [esp + 0x88], 0xe
or dword [esp + 0x88], 0x4177bdd7
xor dword [esp + 0x88], 0x6977f0d2
mov dword [esp + 0xac], 0xb364
xor edx, edx
or dword [esp + 0xac], 0xe39fc53b
xor dword [esp + 0xac], 0xe39fea4b
mov dword [esp + 0xa4], 0x2b18
xor dword [esp + 0xa4], 0xba2241df
xor dword [esp + 0xa4], 0xba22085a
mov dword [esp + 0xa0], 0x7c4c
add dword [esp + 0xa0], 0x30e6
xor dword [esp + 0xa0], 0xfb20
mov dword [esp + 0x38], 0xf2b7
imul eax, dword [esp + 0x38], 0x6a
push 0x36
pop edi
push 0x21
mov dword [esp + 0x3c], eax
shr dword [esp + 0x3c], 8
or dword [esp + 0x3c], 0xe698474e
xor dword [esp + 0x3c], 0xe6981857
mov dword [esp + 0xc4], 0x538c
mov eax, dword [esp + 0xc4]
div edi
xor edx, edx
mov dword [esp + 0xc4], eax
xor dword [esp + 0xc4], 0x4135
mov dword [esp + 0x84], 0x4a38
shl dword [esp + 0x84], 2
imul eax, dword [esp + 0x84], 0x2d
pop edi
push 0x28
mov dword [esp + 0x84], eax
xor dword [esp + 0x84], 0x3455ef
mov dword [esp + 0x7c], 0xf7ff
shl dword [esp + 0x7c], 9
shl dword [esp + 0x7c], 0xc
xor dword [esp + 0x7c], 0xffe034f4
mov dword [esp + 0x74], 0x6d41
xor dword [esp + 0x74], 0xd9255773
shr dword [esp + 0x74], 0x10
xor dword [esp + 0x74], 0x85c9
mov dword [esp + 0x2c], 0x69b1
add dword [esp + 0x2c], 0x5f75
add dword [esp + 0x2c], 0xffff59c5
add dword [esp + 0x2c], 0xffffdf35
xor dword [esp + 0x2c], 0xde2
mov dword [esp + 0x6c], 0xcfe5
mov eax, dword [esp + 0x6c]
div edi
xor edx, edx
mov dword [esp + 0x6c], eax
or dword [esp + 0x6c], 0xce43aaa9
xor dword [esp + 0x6c], 0xce43d17a
mov dword [esp + 0xd4], 0x9051
mov eax, dword [esp + 0xd4]
pop edi
div edi
push 0x7b
mov dword [esp + 0xd4], eax
xor edx, edx
xor dword [esp + 0xd4], 0x7fb1
mov dword [esp + 0xbc], 0x7cb6
imul eax, dword [esp + 0xbc], 0x70
pop edi
mov dword [esp + 0xb8], eax
xor dword [esp + 0xb8], 0x369ab1
mov dword [esp + 0xd8], 0xac11
add dword [esp + 0xd8], 0xa6ba
xor dword [esp + 0xd8], 0x10ece
mov dword [esp + 0x54], 0x8386
shl dword [esp + 0x54], 7
mov eax, dword [esp + 0x54]
div edi
mov dword [esp + 0x54], eax
or dword [esp + 0x54], 0x63e2c348
xor dword [esp + 0x54], 0x63e2ceb2
mov dword [esp + 0x7c], 0xf36
add dword [esp + 0x7c], 0xf4a0
xor dword [esp + 0x7c], 0xa57ad337
xor dword [esp + 0x7c], 0xa57bfd99
mov dword [esp + 0x14], 0x6073
or dword [esp + 0x14], 0x1318f247
shl dword [esp + 0x14], 0xa
xor edx, edx
shr dword [esp + 0x14], 0xc
xor dword [esp + 0x14], 0x62ae8
mov dword [esp + 0x10], 0x382c
imul eax, dword [esp + 0x10], 0x64
push 0x1c
pop edi
push 0x29
mov ebp, dword [esp + 0xd0]
mov dword [esp + 0x14], eax
imul eax, dword [esp + 0x14], 0x59
mov dword [esp + 0x14], eax
add dword [esp + 0x14], 0x253f
xor dword [esp + 0x14], 0x7a0ddfb
mov dword [esp + 0x38], 0xa809
xor dword [esp + 0x38], 0x4e541c28
or dword [esp + 0x38], 0x47d50bb2
add dword [esp + 0x38], 0xba55
xor dword [esp + 0x38], 0x4fd62748
mov dword [esp + 0x48], 0xd580
or dword [esp + 0x48], 0x7bdadedc
imul eax, dword [esp + 0x48], 0x63
mov dword [esp + 0x48], eax
shl dword [esp + 0x48], 0xd
xor dword [esp + 0x48], 0x9242e778
mov dword [esp + 0xc8], 0x13a4
add dword [esp + 0xc8], 0xef10
xor dword [esp + 0xc8], 0x10bad
mov dword [esp + 0x5c], 0x2ffd
imul eax, dword [esp + 0x5c], 0x15
mov dword [esp + 0x5c], eax
add dword [esp + 0x5c], 0x71b4
mov eax, dword [esp + 0x5c]
div ebx
xor edx, edx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0x5c], eax
xor dword [esp + 0x5c], 0x8b1f
mov dword [esp + 0x54], 0x9697
add dword [esp + 0x54], 0xffff8565
mov eax, dword [esp + 0x54]
div edi
xor edx, edx
mov dword [esp + 0x54], eax
add dword [esp + 0x54], 0xffffb93a
xor dword [esp + 0x54], 0xffff9d01
mov dword [esp + 0xc0], 0x33cc
add dword [esp + 0xc0], 0xffffbab2
xor dword [esp + 0xc0], 0xfff0ee41
mov dword [esp + 0x64], 0x5e19
imul eax, dword [esp + 0x64], 0x51
pop edi
mov dword [esp + 0x60], eax
xor dword [esp + 0x60], 0xad57fcec
xor dword [esp + 0x60], 0xad4a3907
mov dword [esp + 0xb4], 0x1783
add dword [esp + 0xb4], 0x8fd3
xor dword [esp + 0xb4], 0xa754
mov dword [esp + 0x30], 0xda9a
add dword [esp + 0x30], 0xffff8001
add dword [esp + 0x30], 0xa805
xor dword [esp + 0x30], 0x4450582c
xor dword [esp + 0x30], 0x44515a8c
mov dword [esp + 0x40], 0xa603
add dword [esp + 0x40], 0xffff8379
or dword [esp + 0x40], 0xcb27255d
mov eax, dword [esp + 0x40]
div edi
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x4f477ae
push 0x5c
pop edx
cmp ecx, 0x2a2b5c97
jg 0x100134a3
je 0x10013480
cmp ecx, 0x42d4cfd
je 0x10013462
cmp ecx, 0xa21a706
je 0x100133af
cmp ecx, 0xbeb5b2a
je 0x10013383
cmp ecx, 0x15049efa
jne 0x100135d2
push dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc8]
push ebx
call 0x1001fb5d
pop ecx
pop ecx
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x6e4
ret
push dword [esp + 0x14]
mov edx, ebx
mov ecx, ebp
push dword [esp + 0x80]
push dword [esp + 0x5c]
push dword [esp + 0xe4]
call fcn.100103ef
add esp, 0x10
mov ecx, 0x42d4cfd
jmp 0x10013322
push dword [esp + 0x64]
mov ecx, 0x10001594
push dword [esp + 0x20]
push dword [esp + 0x44]
mov edx, dword [esp + 0x98]
call fcn.1000c471
lea ecx, [esp + 0xe8]
mov esi, eax
call fcn.1001e47d
push dword [esp + 0x30]
lea eax, [esp + 0x2f4]
push dword [esp + 0x7c]
push dword [esp + 0x98]
push eax
push 0x104
push dword [esp + 0x94]
lea eax, [esp + 0x510]
push esi
push eax
push dword [esp + 0xc0]
lea eax, [esp + 0x10c]
push dword [esp + 0x8c]
push eax
mov eax, dword [0x10021fd8]
lea edx, [eax + 0x1c]
lea ecx, [eax + 0x22c]
call fcn.10012a0d
push dword [esp + 0x84]
push esi
push dword [esp + 0xdc]
mov edx, dword [esp + 0xec]
mov ecx, dword [esp + 0x70]
call fcn.10007d7b
mov esi, dword [esp + 0x110]
add esp, 0x44
mov ecx, 0x2a2b5c97
jmp 0x10013322
push dword [esp + 0x44]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
push ebp
call 0x1001fb5d
pop ecx
pop ecx
mov ecx, 0x15049efa
jmp 0x10013322
mov edi, dword [0x10021fd8]
add edi, 0x22c
jmp 0x10013491
add edi, 2
cmp word [edi], dx
jne 0x1001348e
add edi, 2
mov ecx, 0x2b91422d
jmp 0x10013325
cmp ecx, 0x2b91422d
je 0x10013598
cmp ecx, 0x2d0d6c69
je 0x100134fc
cmp ecx, 0x341c9255
jne 0x100135d2
push dword [esp + 0x18]
lea eax, [esp + 0x2e8]
push dword [esp + 0xcc]
push eax
push ecx
push dword [esp + 0xc0]
push dword [esp + 0xe8]
mov edx, dword [esp + 0x38]
push ecx
call fcn.1001c67b
add esp, 0x1c
mov ecx, 0xa21a706
jmp 0x10013322
push dword [esp + 0xb8]
lea eax, [esp + 0x4f0]
push dword [esp + 0x64]
push dword [esp + 0xd8]
push dword [esp + 0x74]
push dword [esp + 0x38]
push dword [esp + 0x44]
push dword [esp + 0x88]
push dword [esp + 0x94]
push dword [esp + 0xa0]
push ecx
push dword [esp + 0xe8]
push dword [esp + 0x64]
push eax
push edi
push edi
push dword [esp + 0xdc]
push dword [esp + 0xe4]
push ecx
push ebx
push dword [esp + 0xf8]
push dword [esp + 0xd8]
push ecx
push dword [esp + 0x98]
push dword [esp + 0x110]
call fcn.10005364
mov ebp, eax
add esp, 0x60
test ebp, ebp
je 0x10013476
xor esi, esi
mov ecx, 0xbeb5b2a
inc esi
mov dword [esp + 0xcc], esi
jmp 0x10013322
push dword [esp + 0x90]
push dword [esp + 0xc0]
push ecx
push dword [esp + 0xa4]
mov edx, dword [esp + 0x58]
call fcn.100051de
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x100135ca
mov ecx, 0x2d0d6c69
jmp 0x10013322
push 0x5c
mov ecx, 0x13bb3a84
pop edx
cmp ecx, 0x13bb3a84
jne 0x10013325
jmp 0x10013376