Function at 0x10bbfe0
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.01044900
push esi
call fcn.010bbaa0
push esi
call fcn.010bbbf0
push esi
call fcn.010bbd40
push esi
call fcn.010bbe90
mov eax, dword [esi]
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1016480
push 0x1014e58
push connect
push eax
call fcn.010b33d0
mov edi, eax
test edi, edi
je 0x10bc06c
cmp word [edi], 0
je 0x10bc049
jmp 0x10bc040
add eax, 2
cmp word [eax], 0
jne 0x10bc040
sub eax, edi
sar eax, 1
push eax
push edi
call fcn.0102a1c0
mov ecx, dword [esi]
push edi
push 0
mov dword [ecx + 0x1d660], 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 0x1016464
push 0x1014e58
push connect
push eax
call fcn.010b33d0
test eax, eax
je 0x10bc0a4
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 + 0x1d65c], edi
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x1016440
push 0x1016414
push connect
push eax
call fcn.010b33d0
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x10163f0
push 0x1016414
mov edi, eax
mov eax, dword [esi]
push connect
push eax
call fcn.010b33d0
push 0
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 8]
push edx
push 0x10163c8
push 0x1016414
mov ebx, eax
mov eax, dword [esi]
push connect
push eax
call fcn.010b33d0
push 0
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 4]
push edx
push 0x10163a8
push 0x1016414
mov dword [ebp + 8], eax
mov eax, dword [esi]
push connect
push eax
call fcn.010b33d0
push 0
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016388
push 0x1016414
mov dword [ebp - 4], eax
mov eax, dword [esi]
push connect
push eax
call fcn.010b33d0
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.010628d0
test edi, edi
je 0x10bc18a
push edi
push 0
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov edi, dword [sym.imp.KERNEL32.DLL_HeapFree]
push eax
call edi
jmp 0x10bc190
mov edi, dword [sym.imp.KERNEL32.DLL_HeapFree]
test ebx, ebx
je 0x10bc1a4
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push 0
call ebx
push eax
call edi
jmp 0x10bc1aa
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
mov eax, dword [ebp + 8]
test eax, eax
je 0x10bc1b9
push eax
push 0
call ebx
push eax
call edi
mov eax, dword [ebp - 4]
test eax, eax
je 0x10bc1c8
push eax
push 0
call ebx
push eax
call edi
mov eax, dword [ebp - 8]
test eax, eax
je 0x10bc1d7
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 0x1014e88
push 0x1014e58
push connect
push eax
call fcn.010b33d0
mov edi, eax
test edi, edi
je 0x10bc2ac
cmp byte [edi], 0
je 0x10bc298
mov eax, dword [esi]
push 0
push 0
push 0
push 0
push 0
push edi
push 0
push eax
call fcn.010606a0
push 0x105
lea ebx, [esi + 0xa7c]
push 0
push ebx
call sub.msvcrt.dll_memset
push edi
push 0x1014f84
push 0x103
push ebx
call fcn.01029620
mov ecx, dword [esi]
mov ebx, dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
add esp, 0x1c
push 1
add ecx, 0x1d658
push ecx
mov dword [esi + 0x109c], 1
mov dword [esi + 0x10a0], 0
call ebx
mov edx, dword [esi]
push 0x101636c
push 0x1014e58
push connect
push edx
call fcn.010b3630
mov edx, dword [esi]
xor ecx, ecx
test eax, eax
setne cl
add edx, 0x1d654
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 0x10bc2b2
mov ebx, dword [sym.imp.KERNEL32.DLL_HeapFree]
mov eax, dword [esi]
push 0x1016358
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
mov edx, dword [ecx + 0x1c8e4]
xor edx, eax
push 0x1016328
and edx, 1
xor dword [ecx + 0x1c8e4], edx
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
lea edx, [eax + eax]
xor edx, dword [ecx + 0x1c8e4]
push 0x1016314
and edx, 2
xor dword [ecx + 0x1c8e4], edx
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
lea edx, [eax*4]
xor edx, dword [ecx + 0x1c8e4]
push 0x1016304
and edx, 4
xor dword [ecx + 0x1c8e4], edx
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
lea edx, [eax*8]
xor edx, dword [ecx + 0x1c8e4]
push 0x10162ec
and edx, 8
xor dword [ecx + 0x1c8e4], edx
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 4
xor eax, dword [ecx + 0x1c8e4]
push 0x10162e0
and eax, 0x10
xor dword [ecx + 0x1c8e4], eax
mov ecx, dword [esi]
push 0x1016340
push connect
push ecx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 5
xor eax, dword [ecx + 0x1c8e4]
push 0x10162cc
and eax, 0x20
xor dword [ecx + 0x1c8e4], eax
mov edx, dword [esi]
push 0x1016340
push connect
push edx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 6
xor eax, dword [ecx + 0x1c8e4]
push 0x10162c0
and eax, 0x40
xor dword [ecx + 0x1c8e4], eax
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 7
xor eax, dword [ecx + 0x1c8e4]
push 0x10162ac
and eax, 0x80
xor dword [ecx + 0x1c8e4], eax
mov ecx, dword [esi]
push 0x1016340
push connect
push ecx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 8
xor eax, dword [ecx + 0x1c8e4]
push 0x10162a0
and eax, 0x100
xor dword [ecx + 0x1c8e4], eax
mov edx, dword [esi]
push 0x1016340
push connect
push edx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 9
xor eax, dword [ecx + 0x1c8e4]
push 0x101628c
and eax, 0x200
xor dword [ecx + 0x1c8e4], eax
mov eax, dword [esi]
push 0x1016340
push connect
push eax
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 0xa
xor eax, dword [ecx + 0x1c8e4]
push 0x1016274
and eax, 0x400
xor dword [ecx + 0x1c8e4], eax
mov ecx, dword [esi]
push 0x1016340
push connect
push ecx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 0xb
xor eax, dword [ecx + 0x1c8e4]
push 0x1016260
and eax, 0x800
xor dword [ecx + 0x1c8e4], eax
mov edx, dword [esi]
push 0x1016340
push connect
push edx
call fcn.010b37a0
mov ecx, dword [esi]
shl eax, 0xc
xor eax, dword [ecx + 0x1c8e4]
xor edi, edi
push edi
and eax, 0x1000
xor dword [ecx + 0x1c8e4], eax
mov eax, dword [esi]
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016230
push 0x1014e58
push connect
push eax
call fcn.010b33d0
test eax, eax
je 0x10bc528
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 + 0x1ca08], edi
mov eax, dword [esi]
xor edi, edi
push edi
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x1016208
push 0x1014e58
push connect
push eax
call fcn.010b33d0
test eax, eax
je 0x10bc564
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 + 0x1c8e4]
lea ecx, [ebp + 8]
and edi, 0x2000
xor dword [eax + 0x1c8e4], edi
mov eax, dword [esi]
xor edi, edi
push edi
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x10161dc
push 0x1014e58
push connect
push eax
call fcn.010b33d0
test eax, eax
je 0x10bc5af
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 + 0x1c8e4]
lea ecx, [ebp + 8]
and edi, 0x4000
xor dword [eax + 0x1c8e4], edi
mov eax, dword [esi]
xor edi, edi
push edi
push ecx
lea edx, [ebp - 0xc]
push edx
push 0x10161c4
push 0x1014e58
push connect
push eax
call fcn.010b33d0
test eax, eax
je 0x10bc5fa
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 + 0x1c8e4]
pop ebx
and edi, 0x8000
xor dword [eax + 0x1c8e4], edi
mov eax, dword [esi]
cmp dword [eax + 0x1c8e4], 0
jne 0x10bc67b
or dword [eax + 0x1c8e4], 1
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 2
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 4
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 0x40
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 0x100
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 0x400
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 0x800
mov eax, dword [esi]
or dword [eax + 0x1c8e4], 0x1000
mov esi, dword [esi]
and dword [esi + 0x1c8e4], 0xffff7fff
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4