Function at 0x10016feb
Capabilities:
Encrypt data using chaskey
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb8]
push edi
mov edi, dword [esp + 0xb8]
push esi
push edi
push dword [esp + 0xbc]
push edx
push ecx
call fcn.100109b0
mov dword [esp + 0x38], 0x184ff1
add esp, 0x14
add dword [esp + 0x24], 0x5db6
xor edx, edx
add dword [esp + 0x24], 0xfffff9bb
mov ecx, 0xa74dc32
shr dword [esp + 0x24], 0xb
xor dword [esp + 0x24], 0x314
mov dword [esp + 0x7c], 0x74eed0
shl dword [esp + 0x7c], 8
xor dword [esp + 0x7c], 0x74e453ad
mov dword [esp + 0x6c], 0x9d7356
xor dword [esp + 0x6c], 0x74fa1616
xor dword [esp + 0x6c], 0x7469c5b8
mov dword [esp + 0x44], 0x4feb10
shr dword [esp + 0x44], 1
mov eax, dword [esp + 0x44]
push 0x18
pop ebx
div ebx
push 0x1c
mov dword [esp + 0x48], eax
xor edx, edx
xor dword [esp + 0x48], 0x44357
mov dword [esp + 0x3c], 0xa73b08
mov eax, dword [esp + 0x3c]
pop ebp
div ebp
push 0x7a
mov dword [esp + 0x3c], eax
xor edx, edx
mov eax, dword [esp + 0x3c]
pop ebx
div ebx
mov dword [esp + 0x38], eax
xor dword [esp + 0x38], 0xf2982
mov dword [esp + 0x58], 0xd82a05
shr dword [esp + 0x58], 1
xor dword [esp + 0x58], 0xade6855d
xor dword [esp + 0x58], 0xad83d2e6
mov dword [esp + 0x64], 0x3307ae
shr dword [esp + 0x64], 0xa
xor dword [esp + 0x64], 0xb341d
mov dword [esp + 0x74], 0x95b92c
xor dword [esp + 0x74], 0xb4f56df3
xor dword [esp + 0x74], 0xb4634e44
mov dword [esp + 0x20], 0x5a25d7
add dword [esp + 0x20], 0xca03
shl dword [esp + 0x20], 4
add dword [esp + 0x20], 0xffff4ea7
xor dword [esp + 0x20], 0x5a39eea
mov dword [esp + 0x68], 0x4425f3
shl dword [esp + 0x68], 0xd
xor dword [esp + 0x68], 0x84b193e9
mov dword [esp + 0x28], 0x9f2954
imul eax, dword [esp + 0x28], 0x68
mov dword [esp + 0x28], eax
add dword [esp + 0x28], 0x7f79
add dword [esp + 0x28], 0x67f2
xor dword [esp + 0x28], 0x40ab1f35
mov dword [esp + 0x4c], 0xeb7336
xor dword [esp + 0x4c], 0x142324c2
xor dword [esp + 0x4c], 0x47072f61
xor dword [esp + 0x4c], 0x53cd93fe
mov dword [esp + 0x18], 0xa5632d
add dword [esp + 0x18], 0xd852
add dword [esp + 0x18], 0x48fd
xor dword [esp + 0x18], 0x9349678a
xor dword [esp + 0x18], 0x93ef1d17
mov dword [esp + 0x84], 0xe946b0
xor edx, edx
shl dword [esp + 0x84], 0xd
xor dword [esp + 0x84], 0x28d4a0a3
mov dword [esp + 0x60], 0xf57e43
xor dword [esp + 0x60], 0x32fcf9a7
xor dword [esp + 0x60], 0x320eb4b8
mov dword [esp + 0x48], 0x41144c
mov eax, dword [esp + 0x48]
div ebp
push 0x5f
mov dword [esp + 0x4c], eax
xor edx, edx
add dword [esp + 0x4c], 0xf569
xor dword [esp + 0x4c], 0x3476
mov dword [esp + 0x54], 0x429e28
xor dword [esp + 0x54], 0xd7a36845
shl dword [esp + 0x54], 0xa
xor dword [esp + 0x54], 0x87dd2384
mov dword [esp + 0x34], 0x4516fd
add dword [esp + 0x34], 0x4c9
add dword [esp + 0x34], 0x7d8c
mov eax, dword [esp + 0x34]
pop ebx
div ebx
push 0x2e
mov dword [esp + 0x34], eax
xor edx, edx
xor dword [esp + 0x34], 0x940cc
mov dword [esp + 0x44], 0x674d78
shr dword [esp + 0x44], 7
add dword [esp + 0x44], 0xffff0be4
xor dword [esp + 0x44], 0xfff0f9b3
mov dword [esp + 0x40], 0xf1488a
shl dword [esp + 0x40], 7
mov eax, dword [esp + 0x40]
pop ebx
div ebx
push 0x34
mov dword [esp + 0x40], eax
xor edx, edx
xor dword [esp + 0x40], 0x29e25b8
mov dword [esp + 0x58], 0xb54cbe
imul eax, dword [esp + 0x58], 0x5c
pop ebx
push 0x69
mov dword [esp + 0x58], eax
or dword [esp + 0x58], 0xf7ac2a8c
xor dword [esp + 0x58], 0xf7acae05
mov dword [esp + 0x20], 0xe74101
shl dword [esp + 0x20], 0xd
mov eax, dword [esp + 0x20]
div ebx
xor edx, edx
mov dword [esp + 0x20], eax
add dword [esp + 0x20], 0xffff397c
xor dword [esp + 0x20], 0x4735c8f
mov dword [esp + 0x18], 0x92e93c
shl dword [esp + 0x18], 5
add dword [esp + 0x18], 0xffffd49d
imul eax, dword [esp + 0x18], 0x38
pop ebx
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x45122c0
mov dword [esp + 0x10], 0xcb1149
mov eax, dword [esp + 0x10]
div ebx
mov dword [esp + 0x10], eax
add dword [esp + 0x10], 0xffff83e7
add dword [esp + 0x10], 0xe92c
xor dword [esp + 0x10], 0x4c5b1
mov dword [esp + 0x80], 0x2e9766
or dword [esp + 0x80], 0x6a0ab864
xor dword [esp + 0x80], 0x6a2233eb
mov dword [esp + 0x78], 0x374a90
add dword [esp + 0x78], 0xffffd27f
xor dword [esp + 0x78], 0x319baa
mov dword [esp + 0x70], 0x8bdae5
add dword [esp + 0x70], 0xcbae
xor dword [esp + 0x70], 0x821114
mov dword [esp + 0x5c], 0xba7180
or dword [esp + 0x5c], 0x47b443a1
xor edx, edx
add dword [esp + 0x5c], 0x699c
mov ebp, 0x32ff9a4
xor dword [esp + 0x5c], 0x47ba7aaf
mov dword [esp + 0x34], 0x2bbe51
add dword [esp + 0x34], 0x20d0
shl dword [esp + 0x34], 0x10
imul eax, dword [esp + 0x34], 0x4c
push 0x5d
pop ebx
push 0x3b
mov dword [esp + 0x38], eax
xor dword [esp + 0x38], 0x3dc38dc5
mov dword [esp + 0x30], 0xcbbd4f
mov eax, dword [esp + 0x30]
div ebx
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
pop ebx
div ebx
push 0x66
mov dword [esp + 0x30], eax
xor edx, edx
mov eax, dword [esp + 0x30]
pop ebx
div ebx
mov ebx, 0x8e166d4
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0xc78
cmp ecx, ebx
jg 0x1001752d
je 0x10017509
cmp ecx, 0x526f72
je 0x100174f5
cmp ecx, 0x2a416f7
je 0x100174d3
cmp ecx, ebp
je 0x100174af
cmp ecx, 0x77bf10f
je 0x10017480
cmp ecx, 0x7c9f151
jne 0x100175f9
push dword [esp + 0x3c]
lea edx, [esp + 0x8c]
push dword [esi + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
call fcn.1001e7ed
add esp, 0x10
mov ecx, 0xd3dc05c
jmp 0x10017419
push dword [esp + 0x48]
lea edx, [esp + 0x8c]
push dword [esi + 0x3c]
push dword [esp + 0x68]
push dword [esp + 0x90]
mov ecx, dword [esp + 0x28]
call fcn.1001e7ed
add esp, 0x10
mov ecx, 0x7c9f151
jmp 0x10017419
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
push edi
call fcn.10013d94
add esp, 0xc
mov ecx, ebx
jmp 0x10017419
mov eax, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
push dword [edi + 4]
call fcn.10018994
mov dword [edi], eax
pop ecx
test eax, eax
je 0x10017621
mov ecx, ebp
jmp 0x10017419
mov ecx, esi
call 0x100219d8
mov dword [edi + 4], eax
mov ecx, 0x2a416f7
jmp 0x10017419
lea eax, [esi + 0x28]
push eax
push dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x90]
call fcn.100130c2
pop ecx
pop ecx
mov ecx, 0xe78d49f
jmp 0x10017419
cmp ecx, 0x8eb0b01
je 0x100175cd
cmp ecx, 0x9b1c7b4
je 0x10017607
cmp ecx, 0xa74dc32
je 0x100175b9
cmp ecx, 0xd3dc05c
je 0x1001758d
cmp ecx, 0xe78d49f
jne 0x100175f9
push dword [esp + 0x4c]
lea edx, [esp + 0x8c]
push dword [esi + 0x18]
push dword [esp + 0x30]
push dword [esp + 0x74]
mov ecx, dword [esp + 0x30]
call fcn.1001e7ed
add esp, 0x10
mov ecx, 0x77bf10f
jmp 0x10017419
push dword [esp + 0x10]
lea edx, [esp + 0x8c]
push dword [esi + 0x24]
push dword [esp + 0x1c]
push dword [esp + 0x28]
mov ecx, dword [esp + 0x64]
call fcn.1001e7ed
add esp, 0x10
mov ecx, 0x8eb0b01
jmp 0x10017419
mov eax, dword [esp + 0x24]
mov ecx, 0x526f72
and dword [edi], 0
mov dword [edi + 4], eax
jmp 0x10017419
push dword [esp + 0x5c]
lea edx, [esp + 0x8c]
push dword [esi]
push dword [esp + 0x78]
push dword [esp + 0x84]
mov ecx, dword [esp + 0x90]
call fcn.1001e7ed
add esp, 0x10
mov ecx, 0x9b1c7b4
cmp ecx, 0x8a185d8
jne 0x10017419
jmp 0x10017621
lea eax, [esi + 0x40]
push eax
push dword [esp + 0x30]
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x90]
call fcn.100130c2
pop ecx
pop ecx
xor eax, eax
cmp dword [edi], eax
pop edi
pop esi
pop ebp
setne al
pop ebx
add esp, 0xa0
ret