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

Disassembly:
sub esp, 0x110
push ebx
mov ebx, dword [esp + 0x11c]
push ebp
push esi
mov esi, dword [esp + 0x120]
push edi
push dword [esp + 0x134]
mov edi, dword [esp + 0x134]
push edi
push dword [esp + 0x134]
push ebx
push esi
push edx
push ecx
call fcn.100120b9
mov dword [esp + 0x3c], 0xcf1dac
add esp, 0x1c
xor dword [esp + 0x20], 0x662b1d0f
xor edx, edx
shl dword [esp + 0x20], 2
mov ecx, 0x8e80a37
add dword [esp + 0x20], 0xffff9089
xor dword [esp + 0x20], 0x9b8f9315
mov dword [esp + 0x80], 0x25617a
shl dword [esp + 0x80], 2
xor dword [esp + 0x80], 0x9585a8
mov dword [esp + 0x18], 0x39e017
add dword [esp + 0x18], 0xffffbc9c
xor dword [esp + 0x18], 0xb11c7ead
add dword [esp + 0x18], 0xffffd7b2
xor dword [esp + 0x18], 0xb125b990
mov dword [esp + 0x30], 0xb82586
mov eax, dword [esp + 0x30]
push 0x74
pop ebp
div ebp
push 0x3b
mov dword [esp + 0x34], eax
xor edx, edx
shl dword [esp + 0x34], 1
imul eax, dword [esp + 0x34], 0x36
pop ebp
push 0x62
and dword [esp + 0xa0], 0
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0xaace1a
mov dword [esp + 0x70], 0xcab8fe
xor dword [esp + 0x70], 0xca9451c5
or dword [esp + 0x70], 0x3e03c42f
xor dword [esp + 0x70], 0xfe5c53ad
mov dword [esp + 0x2c], 0x57862
or dword [esp + 0x2c], 0x3f7dcfba
mov eax, dword [esp + 0x2c]
div ebp
xor edx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
pop ebp
div ebp
mov dword [esp + 0x28], eax
xor dword [esp + 0x28], 0x57d9a
mov dword [esp + 0x24], 0x68f561
shl dword [esp + 0x24], 6
shr dword [esp + 0x24], 0xd
or dword [esp + 0x24], 0x3cddc102
xor dword [esp + 0x24], 0x3cda88f2
mov dword [esp + 0x60], 0x7c8e99
add dword [esp + 0x60], 0x829c
imul eax, dword [esp + 0x60], 0x31
mov dword [esp + 0x60], eax
xor dword [esp + 0x60], 0x17fda794
mov dword [esp + 0x3c], 0x74d91a
shl dword [esp + 0x3c], 3
add dword [esp + 0x3c], 0x7502
imul eax, dword [esp + 0x3c], 0x63
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0x69a7ce60
mov dword [esp + 0x50], 0xc909ae
shl dword [esp + 0x50], 1
xor edx, edx
mov eax, dword [esp + 0x50]
push 0xb
pop ebp
div ebp
push 0x5b
mov dword [esp + 0x54], eax
xor edx, edx
xor dword [esp + 0x54], 0x276772
mov dword [esp + 0x80], 0x673800
shl dword [esp + 0x80], 9
xor dword [esp + 0x80], 0xce7e8a93
mov dword [esp + 0x3c], 0xb859bd
add dword [esp + 0x3c], 0xde76
imul eax, dword [esp + 0x3c], 0x1c
pop ebp
push 0x41
mov dword [esp + 0x3c], eax
imul eax, dword [esp + 0x3c], 0x30
mov dword [esp + 0x3c], eax
xor dword [esp + 0x3c], 0xcc63b0a7
mov dword [esp + 0x78], 0x7eda56
shl dword [esp + 0x78], 3
xor dword [esp + 0x78], 0x3f50911
mov dword [esp + 0x6c], 0x2f7891
mov eax, dword [esp + 0x6c]
div ebp
xor edx, edx
mov dword [esp + 0x6c], eax
imul eax, dword [esp + 0x6c], 0x49
pop ebp
push 0x61
mov dword [esp + 0x6c], eax
xor dword [esp + 0x6c], 0x24fbf7
mov dword [esp + 0x90], 0x4a0bea
xor dword [esp + 0x90], 0x502016f1
xor dword [esp + 0x90], 0x506ad42a
mov dword [esp + 0x20], 0x9ebd58
shr dword [esp + 0x20], 8
shl dword [esp + 0x20], 0xf
add dword [esp + 0x20], 0xb306
xor dword [esp + 0x20], 0x4f54a3e8
mov dword [esp + 0x58], 0xce3506
shl dword [esp + 0x58], 0xf
shl dword [esp + 0x58], 0xc
xor dword [esp + 0x58], 0x300ddb73
mov dword [esp + 0x30], 0xe7c592
shr dword [esp + 0x30], 5
xor dword [esp + 0x30], 0x506a7775
shl dword [esp + 0x30], 1
xor dword [esp + 0x30], 0xa0d2afa7
mov dword [esp + 0x18], 0x1d8a79
shl dword [esp + 0x18], 2
mov eax, dword [esp + 0x18]
div ebp
xor edx, edx
mov dword [esp + 0x18], eax
or dword [esp + 0x18], 0x253986a4
xor dword [esp + 0x18], 0x2531568a
mov dword [esp + 0x4c], 0x116531
imul eax, dword [esp + 0x4c], 0x66
pop ebp
mov dword [esp + 0x48], eax
xor dword [esp + 0x48], 0xfffdc9ed
xor dword [esp + 0x48], 0xf917010b
mov dword [esp + 0x58], 0xc05f9c
mov eax, dword [esp + 0x58]
div ebp
mov dword [esp + 0x58], eax
imul eax, dword [esp + 0x58], 0x6f
mov dword [esp + 0x58], eax
xor dword [esp + 0x58], 0xdca3d1
mov dword [esp + 0x4c], 0xdb89ea
shr dword [esp + 0x4c], 0xa
shr dword [esp + 0x4c], 9
xor dword [esp + 0x4c], 0xad8d
mov dword [esp + 0x88], 0x38fb70
xor dword [esp + 0x88], 0x310cc67b
xor dword [esp + 0x88], 0x313af23a
mov dword [esp + 0x98], 0x7e2008
xor dword [esp + 0x98], 0x7ad3030b
xor dword [esp + 0x98], 0x7aaaa86e
mov dword [esp + 0x5c], 0x9c4278
imul eax, dword [esp + 0x5c], 0x7e
xor edx, edx
push 0x4e
pop ebp
push 0x71
mov dword [esp + 0x60], eax
xor dword [esp + 0x60], 0xa26962db
xor dword [esp + 0x60], 0xee89d9da
mov dword [esp + 0x48], 0x1e88f4
shr dword [esp + 0x48], 4
shr dword [esp + 0x48], 7
xor dword [esp + 0x48], 0xc14cc
mov dword [esp + 0x98], 0xc2e6ba
add dword [esp + 0x98], 0x8875
xor dword [esp + 0x98], 0xc43ba1
mov dword [esp + 0x68], 0xdb74c
shl dword [esp + 0x68], 4
imul eax, dword [esp + 0x68], 0x5c
mov dword [esp + 0x68], eax
xor dword [esp + 0x68], 0x4edda20a
mov dword [esp + 0x38], 0x62ea5
mov eax, dword [esp + 0x38]
div ebp
xor edx, edx
mov dword [esp + 0x38], eax
shr dword [esp + 0x38], 0xb
xor dword [esp + 0x38], 0x7372adb3
xor dword [esp + 0x38], 0x73757ff2
mov dword [esp + 0x94], 0x2b6271
xor dword [esp + 0x94], 0x1ac7dce1
xor dword [esp + 0x94], 0x1ae73668
mov dword [esp + 0x44], 0x8bb898
add dword [esp + 0x44], 0x43a9
shl dword [esp + 0x44], 0x10
mov eax, dword [esp + 0x44]
pop ebp
div ebp
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x23712cd
mov dword [esp + 0x84], 0xb23c07
add dword [esp + 0x84], 0x4ded
xor dword [esp + 0x84], 0xb7ca1c
mov dword [esp + 0x78], 0xb501ce
xor dword [esp + 0x78], 0x6706c67f
xor dword [esp + 0x78], 0x67b3c7a1
mov dword [esp + 0x70], 0xab8984
imul eax, dword [esp + 0x70], 0x22
mov dword [esp + 0x70], eax
xor dword [esp + 0x70], 0x16c84308
cmp ecx, 0xd9acfaa
jg 0x1000d563
je 0x1000d541
cmp ecx, 0x15a913b
je 0x1000d4d8
cmp ecx, 0x3749e66
je 0x1000d49f
cmp ecx, 0x46acfc9
je 0x1000d468
cmp ecx, 0x8e80a37
jne 0x1000d6c7
mov ecx, 0xfac38db
jmp 0x1000d427
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx + 4]
push ecx
push ecx
call fcn.10007ff2
mov dword [ebx], eax
pop ecx
pop ecx
test eax, eax
je 0x1000d498
mov dword [esp + 0x9c], 1
mov ecx, 0xfb3baa2
jmp 0x1000d427
mov ecx, 0xd9acfaa
jmp 0x1000d427
mov eax, dword [esp + 0x8c]
mov eax, dword [esp + 0x68]
push dword [esp + 0x78]
push dword [esp + 0x74]
call fcn.10010ae0
mov ebp, eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0xac]
pop ecx
pop ecx
add eax, ebp
mov ecx, 0x46acfc9
mov dword [ebx + 4], eax
jmp 0x1000d427
push dword [esp + 0x50]
lea eax, [esp + 0x104]
mov dword [esp + 0xfc], esi
push dword [esp + 0x40]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xcc], eax
mov eax, dword [edi]
mov dword [esp + 0xf0], eax
mov eax, dword [edi + 4]
mov dword [esp + 0xf4], eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xd4], 0x20
push eax
call fcn.10007735
add esp, 0x10
test eax, eax
je 0x1000d5a7
mov ecx, 0xf0a856e
jmp 0x1000d427
mov edx, dword [esp + 0x90]
push dword [esp + 0xa0]
mov ecx, dword [esp + 0x38]
call fcn.10018519
pop ecx
mov ecx, 0xfbb751f
jmp 0x1000d427
cmp ecx, 0xf0a856e
je 0x1000d68e
cmp ecx, 0xfac38db
je 0x1000d65b
cmp ecx, 0xfb3baa2
je 0x1000d5b9
cmp ecx, 0xfbb751f
jne 0x1000d6c7
mov edx, dword [esp + 0x84]
push dword [esp + 0xa8]
mov ecx, dword [esp + 0x44]
call fcn.10018519
pop ecx
mov eax, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
mov esi, dword [ebx]
push esi
push dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
call fcn.10007e87
mov eax, dword [esp + 0x20]
add esi, eax
push dword [esp + 0xac]
mov edx, esi
push dword [esp + 0xac]
push dword [esp + 0x98]
mov ecx, dword [esp + 0x60]
call fcn.1000ed7e
add esi, dword [esp + 0xb8]
add esp, 0x14
push ebp
push esi
push dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0xa4]
call fcn.1000a492
lea edx, [esi + ebp]
add esp, 0xc
mov ecx, esi
cmp esi, edx
jae 0x1000d630
movzx eax, byte [ecx]
cmp eax, dword [esp + 0x20]
jne 0x1000d62b
mov byte [ecx], 0xc3
inc ecx
cmp ecx, edx
jb 0x1000d61f
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x94]
push 0
push 0xe
call fcn.10010ae0
pop ecx
pop ecx
mov ecx, 0xd9acfaa
mov byte [eax + esi], 0
mov esi, dword [esp + 0x124]
jmp 0x1000d427
push dword [edi]
lea edx, [esp + 0x104]
push dword [esp + 0x2c]
push ecx
push dword [esp + 0x78]
mov ecx, dword [esp + 0x40]
push dword [edi + 4]
call fcn.1001ae6d
add esp, 0x14
test eax, eax
je 0x1000d5a7
mov ecx, 0x15a913b
jmp 0x1000d427
push dword [esp + 0x74]
lea eax, [esp + 0xac]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
lea edx, [esp + 0xa8]
push eax
call fcn.100070b3
add esp, 0xc
test eax, eax
je 0x1000d6c2
mov ecx, 0x3749e66
jmp 0x1000d427
mov ecx, 0xfbb751f
cmp ecx, 0x5927677
jne 0x1000d427
jmp 0x1000d5a7