Function at 0x10c2b40
Capabilities:
Encrypt data using chaskey

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.01047280
push esi
call fcn.010c2600
push esi
call fcn.010c2750
push esi
call fcn.010c28a0
push esi
call fcn.010c29f0
mov eax, dword [esi]
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1017028
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
mov edi, eax
test edi, edi
je 0x10c2bcc
cmp word [edi], 0
je 0x10c2ba9
jmp 0x10c2ba0
add eax, 2
cmp word [eax], 0
jne 0x10c2ba0
sub eax, edi
sar eax, 1
push eax
push edi
call fcn.0102c950
mov ecx, dword [esi]
push edi
push 0
mov dword [ecx + 0x1df20], eax
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapFree]
mov eax, dword [esi]
xor edi, edi
push edi
lea edx, [ebp + 8]
push edx
lea ecx, [ebp - 8]
push ecx
push 0x101700c
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
test eax, eax
je 0x10c2c04
mov edi, dword [eax]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapFree]
mov edx, dword [esi]
push ebx
push 0
mov dword [edx + 0x1df1c], edi
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1016fe8
push 0x1016fbc
push connect
push eax
call fcn.010ba1a0
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1016f98
push 0x1016fbc
mov edi, eax
mov eax, dword [esi]
push connect
push eax
call fcn.010ba1a0
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1016f70
push 0x1016fbc
mov ebx, eax
mov eax, dword [esi]
push connect
push eax
call fcn.010ba1a0
push 0
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 4]
push edx
push 0x1016f50
push 0x1016fbc
mov dword [ebp + 8], eax
mov eax, dword [esi]
push connect
push eax
call fcn.010ba1a0
push 0
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016f30
push 0x1016fbc
mov dword [ebp - 4], eax
mov eax, dword [esi]
push connect
push eax
call fcn.010ba1a0
mov ecx, dword [ebp + 8]
mov edx, dword [esi]
push eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
push eax
push ecx
push ebx
push edi
push edx
call fcn.01066000
test edi, edi
je 0x10c2cea
push edi
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov edi, dword [sym.imp.KERNEL32.DLL_HeapFree]
push eax
call edi
jmp 0x10c2cf0
mov edi, dword [sym.imp.KERNEL32.DLL_HeapFree]
test ebx, ebx
je 0x10c2d04
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push 0
call ebx
push eax
call edi
jmp 0x10c2d0a
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov eax, dword [ebp + 8]
test eax, eax
je 0x10c2d19
push eax
push 0
call ebx
push eax
call edi
mov eax, dword [ebp - 4]
test eax, eax
je 0x10c2d28
push eax
push 0
call ebx
push eax
call edi
mov eax, dword [ebp - 8]
test eax, eax
je 0x10c2d37
push eax
push 0
call ebx
push eax
call edi
mov eax, dword [esi]
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1015a50
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
mov edi, eax
test edi, edi
je 0x10c2e0c
cmp byte [edi], 0
je 0x10c2df8
mov eax, dword [esi]
push 0
push 0
push 0
push 0
push 0
push edi
push 0
push eax
call fcn.01063ba0
push 0x105
lea ebx, [esi + 0xa80]
push 0
push ebx
call sub.msvcrt.dll_memset
push edi
push 0x1015b4c
push 0x103
push ebx
call fcn.0102bdb0
mov ecx, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
add esp, 0x1c
push 1
add ecx, 0x1df18
push ecx
mov dword [esi + 0x10a0], 1
mov dword [esi + 0x10a4], 0
call ebx
mov edx, dword [esi]
push 0x1016f14
push 0x1015a20
push connect
push edx
call fcn.010ba400
mov edx, dword [esi]
xor ecx, ecx
test eax, eax
setne cl
add edx, 0x1df14
push ecx
push edx
call ebx
push edi
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov ebx, dword [sym.imp.KERNEL32.DLL_HeapFree]
push eax
call ebx
jmp 0x10c2e12
mov ebx, dword [sym.imp.KERNEL32.DLL_HeapFree]
mov eax, dword [esi]
push 0x1016f00
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
mov edx, dword [ecx + 0x1d1a4]
xor edx, eax
push 0x1016ed0
and edx, 1
xor dword [ecx + 0x1d1a4], edx
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
lea edx, [eax + eax]
xor edx, dword [ecx + 0x1d1a4]
push 0x1016ebc
and edx, 2
xor dword [ecx + 0x1d1a4], edx
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
lea edx, [eax*4]
xor edx, dword [ecx + 0x1d1a4]
push 0x1016eac
and edx, 4
xor dword [ecx + 0x1d1a4], edx
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
lea edx, [eax*8]
xor edx, dword [ecx + 0x1d1a4]
push 0x1016e94
and edx, 8
xor dword [ecx + 0x1d1a4], edx
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 4
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e88
and eax, 0x10
xor dword [ecx + 0x1d1a4], eax
mov ecx, dword [esi]
push 0x1016ee8
push connect
push ecx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 5
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e74
and eax, 0x20
xor dword [ecx + 0x1d1a4], eax
mov edx, dword [esi]
push 0x1016ee8
push connect
push edx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 6
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e68
and eax, 0x40
xor dword [ecx + 0x1d1a4], eax
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 7
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e54
and eax, 0x80
xor dword [ecx + 0x1d1a4], eax
mov ecx, dword [esi]
push 0x1016ee8
push connect
push ecx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 8
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e48
and eax, 0x100
xor dword [ecx + 0x1d1a4], eax
mov edx, dword [esi]
push 0x1016ee8
push connect
push edx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 9
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e34
and eax, 0x200
xor dword [ecx + 0x1d1a4], eax
mov eax, dword [esi]
push 0x1016ee8
push connect
push eax
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 0xa
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e1c
and eax, 0x400
xor dword [ecx + 0x1d1a4], eax
mov ecx, dword [esi]
push 0x1016ee8
push connect
push ecx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 0xb
xor eax, dword [ecx + 0x1d1a4]
push 0x1016e08
and eax, 0x800
xor dword [ecx + 0x1d1a4], eax
mov edx, dword [esi]
push 0x1016ee8
push connect
push edx
call fcn.010ba570
mov ecx, dword [esi]
shl eax, 0xc
xor eax, dword [ecx + 0x1d1a4]
xor edi, edi
push edi
and eax, 0x1000
xor dword [ecx + 0x1d1a4], eax
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016dd8
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
test eax, eax
je 0x10c3088
mov edi, dword [eax]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call ebx
mov eax, dword [esi]
mov dword [eax + 0x1d2c8], edi
mov eax, dword [esi]
xor edi, edi
push edi
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016db0
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
test eax, eax
je 0x10c30c4
mov edi, dword [eax]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call ebx
mov eax, dword [esi]
shl edi, 0xd
xor edi, dword [eax + 0x1d1a4]
lea ecx, [ebp + 8]
and edi, 0x2000
xor dword [eax + 0x1d1a4], edi
mov eax, dword [esi]
xor edi, edi
push edi
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016d84
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
test eax, eax
je 0x10c310f
mov edi, dword [eax]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call ebx
mov eax, dword [esi]
shl edi, 0xe
xor edi, dword [eax + 0x1d1a4]
lea ecx, [ebp + 8]
and edi, 0x4000
xor dword [eax + 0x1d1a4], edi
mov eax, dword [esi]
xor edi, edi
push edi
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016d6c
push 0x1015a20
push connect
push eax
call fcn.010ba1a0
test eax, eax
je 0x10c315a
mov edi, dword [eax]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call ebx
mov eax, dword [esi]
shl edi, 0xf
xor edi, dword [eax + 0x1d1a4]
pop ebx
and edi, 0x8000
xor dword [eax + 0x1d1a4], edi
mov eax, dword [esi]
cmp dword [eax + 0x1d1a4], 0
jne 0x10c31db
or dword [eax + 0x1d1a4], 1
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 2
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 4
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 0x40
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 0x100
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 0x400
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 0x800
mov eax, dword [esi]
or dword [eax + 0x1d1a4], 0x1000
mov esi, dword [esi]
and dword [esi + 0x1d1a4], 0xffff7fff
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4