Function at 0x43cba0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a4235
push eax
mov dword fs:[0], esp
lea eax, [ebp - 0x10]
sub esp, 0x18
push ebx
push esi
push edi
mov esi, ecx
push eax
push esi
call fcn.0043c9a0
test al, al
je 0x43cc2b
mov eax, dword [ebp - 0x10]
movzx ebx, word [eax*8 + 0x4ccf8c]
movsx eax, bx
lea eax, [eax + eax*4]
lea edi, [eax*4 + 0x4cc900]
mov eax, dword [edi]
test esi, esi
je 0x43ce6d
test eax, eax
je 0x43ce6d
nop dword [eax + eax]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x43ce64
test cl, cl
je 0x43cc24
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x43ce64
add esi, 2
add eax, 2
test cl, cl
jne 0x43cc00
xor eax, eax
jmp 0x43ce69
cmp word [0x4cc4fc], 0x20
jl 0x43cc7f
mov ecx, 0x4cfeb8
mov dword [ebp - 0x18], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
cmp eax, 1
jne 0x43cc6e
push 0
push 0x4b362c
push 0x4b362c
push str.s_NextUsingID___USING_MAX
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
mov dword [ebp - 4], 0xffffffff
call fcn.004363a0
movzx ebx, word [0x4cc4fc]
mov edx, 0x4ccb88
movzx eax, bx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ebx
lea eax, [ebx + 1]
mov word [0x4cc4fc], ax
mov eax, dword [0x4ccb80]
test eax, eax
cmovne edx, eax
movsx eax, bx
xor ecx, ecx
mov dword [0x4ccb80], edx
lea eax, [eax + eax*4]
mov dword [eax*4 + 0x4cc900], edx
mov word [eax*4 + 0x4cc904], bx
mov word [eax*4 + 0x4cc906], cx
mov dword [eax*4 + 0x4cc908], 0x4211d0
mov word [eax*4 + 0x4cc90c], cx
mov dword [eax*4 + 0x4cc910], ecx
test esi, esi
je 0x43ccf9
mov ecx, esi
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43ccf0
sub ecx, edi
mov eax, edx
sub eax, 0x4ccb88
inc eax
add eax, ecx
cmp eax, 0x400
jle 0x43cd5a
mov ecx, 0x4cfeb8
mov dword [ebp - 0x20], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
cmp eax, 1
jne 0x43cd43
push 0
push 0x4b362c
push 0x4b362c
push str.s_UsingNamesTail__String::Length_name___1___s_UsingNames___STRINGPOOL_SIZE
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
mov dword [ebp - 4], 0xffffffff
call fcn.004363a0
mov edx, dword [0x4ccb80]
mov eax, 0x4ccf88
sub eax, edx
je 0x43cd72
test edx, edx
je 0x43cd72
test esi, esi
jne 0x43ce3a
mov byte [edx], 0
xor eax, eax
inc eax
add edx, eax
cmp dword [0x4cd188], 0x40
mov dword [0x4ccb80], edx
jb 0x43cdd0
mov ecx, 0x4cfeb8
mov dword [ebp - 0x20], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
cmp eax, 1
jne 0x43cdbf
push 0
push 0x4b362c
push 0x4b362c
push str.m_used___HASH_SIZE
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
mov dword [ebp - 4], 0xffffffff
call fcn.004363a0
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0043c9a0
test al, al
jne 0x43cbd9
inc dword [0x4cd188]
mov ecx, esi
mov al, byte [esi]
mov edx, 0x1000193
test al, al
je 0x43ce09
movzx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x43cdf5
mov eax, dword [ebp - 0x10]
test edx, edx
mov ecx, 1
cmovne ecx, edx
mov dword [eax*8 + 0x4ccf88], ecx
mov word [eax*8 + 0x4ccf8c], bx
mov eax, dword [ebp - 0x14]
cwde
lea eax, [eax + eax*4]
lea edi, [eax*4 + 0x4cc900]
mov eax, dword [edi]
jmp 0x43cbf0
lea edi, [eax - 1]
mov ecx, esi
add edi, edx
mov eax, edx
cmp edx, edi
jae 0x43ce5a
mov bl, byte [ecx]
lea ecx, [ecx + 1]
test bl, bl
je 0x43ce57
mov byte [eax], bl
inc eax
cmp eax, edi
jb 0x43ce47
mov ebx, dword [ebp - 0x10]
mov byte [eax], 0
sub eax, edx
jmp 0x43cd74
sbb eax, eax
or eax, 1
test eax, eax
je 0x43ceb0
mov ecx, 0x4cfeb8
mov dword [ebp - 0x20], 0x4cfeb8
call fcn.00436390
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
cmp eax, 1
jne 0x43cea6
push 0
push 0x4b362c
push 0x4b362c
push str.String::Equal_name__use_ID_.name_
call fcn.00430100
add esp, 0x10
mov ecx, 0x4cfeb8
call fcn.004363a0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret