Function at 0x4c2090
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6fff3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push esi
push edi
lea edi, [ecx + 8]
push 0x200
mov ecx, edi
mov dword [ebp - 0x20], edi
call fcn.0049d6c0
push 0xb
push str.application
mov ecx, edi
call fcn.00473620
push 0x3d
mov ecx, edi
call fcn.0049c150
mov edi, dword [str.Client]
mov eax, 0xf
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], eax
mov eax, 6
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], eax
mov ax, word [0x71e094]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x4c], edi
mov word [ebp - 0x48], ax
mov byte [ebp - 0x46], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [0xf2db10]
mov dword [ebp - 4], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x7fe21c]
cmp eax, dword [ecx + 0x5ac]
jg 0x4c25eb
mov ecx, dword [0x7fe218]
push 0
mov eax, dword [ecx]
mov eax, dword [eax]
cmp eax, fcn.0049ac60
jne 0x4c2147
call fcn.0049ac60
jmp 0x4c2149
call eax
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x34], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x4c215e
mov ecx, dword [esi + 0x34]
jmp 0x4c2160
xor ecx, ecx
call fcn.0048f1c0
mov cx, word [0x7175f0]
mov edx, 0xf
movq xmm0, qword [str.application]
mov word [ebp - 0x5c], cx
mov cl, byte [0x7175f2]
mov byte [ebp - 0x5a], cl
xor ecx, ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x50], edx
mov edi, eax
mov dword [ebp - 0x54], 0xb
mov edx, 0x811c9dc5
movq qword [ebp - 0x64], xmm0
lea esi, [ecx + 0xb]
mov byte [ebp - 0x59], 0
nop dword [eax + eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x4c21b0
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x64]
mov esi, dword [ebp - 0x1c]
push edx
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004b1f90
mov eax, dword [eax + 4]
test eax, eax
je 0x4c22a1
test esi, esi
je 0x4c21e9
mov ecx, dword [esi + 0x34]
jmp 0x4c21eb
xor ecx, ecx
call fcn.0048f1c0
mov cx, word [0x7175f0]
movq xmm0, qword [str.application]
mov word [ebp - 0x5c], cx
mov cl, byte [0x7175f2]
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x54], 0xb
movq qword [ebp - 0x64], xmm0
mov byte [ebp - 0x5a], cl
mov byte [ebp - 0x59], 0
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 2
push ecx
lea ecx, [ebp - 0x30]
push ecx
mov ecx, eax
call fcn.004c1440
lea ecx, [ebp - 0x4c]
mov eax, dword [eax]
add eax, 0x20
cmp ecx, eax
je 0x4c2269
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x4c224d
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00473620
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x4c22a1
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2297
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2662
push edx
push ecx
call fcn.004e7fa0
add esp, 8
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x4c]
sub esp, 0x18
cmp dword [ebp - 0x14], 0x10
mov edi, esp
cmovae eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
cmp ecx, 0x10
jae 0x4c22dd
movups xmm0, xmmword [eax]
mov eax, 0xf
movups xmmword [edi], xmm0
jmp 0x4c2311
mov eax, ecx
mov ecx, bind
or eax, 0xf
cmp eax, ecx
cmova eax, ecx
mov ecx, edi
mov dword [ebp - 0x24], eax
inc eax
push eax
call fcn.00473560
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [edi], eax
push ecx
push dword [ebp - 0x2c]
push eax
call fcn.006c1de0
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], eax
lea eax, [ebp - 0x64]
push eax
call fcn.004b8140
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 3
jb 0x4c2332
mov eax, dword [eax]
mov edi, dword [ebp - 0x20]
push ecx
push eax
mov ecx, edi
call fcn.0049ae20
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x4c2376
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c236c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2667
push edx
push ecx
call fcn.004e7fa0
add esp, 8
lea eax, [ebp - 0x64]
push eax
call fcn.004c11e0
mov edx, dword [ebp - 0x50]
add esp, 4
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x2c], eax
cmp edx, 0x10
jb 0x4c23bf
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c23b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c266c
push edx
push ecx
call fcn.004e7fa0
mov eax, dword [ebp - 0x2c]
add esp, 8
test eax, eax
je 0x4c2439
push 8
push str._ostype
mov ecx, edi
call fcn.0049ae20
sub esp, 0x18
push esp
call fcn.004c11e0
add esp, 4
lea eax, [ebp - 0x64]
push eax
call fcn.004b8140
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 4
jb 0x4c23f8
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.0049ae20
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x4c2439
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c242f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2671
push edx
push ecx
call fcn.004e7fa0
add esp, 8
lea eax, [ebp - 0x64]
push eax
call fcn.004c1230
mov edx, dword [ebp - 0x50]
add esp, 4
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x2c], eax
cmp edx, 0x10
jb 0x4c2482
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c2475
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2676
push edx
push ecx
call fcn.004e7fa0
mov eax, dword [ebp - 0x2c]
add esp, 8
test eax, eax
je 0x4c24fc
push 8
push str._osname
mov ecx, edi
call fcn.0049ae20
sub esp, 0x18
push esp
call fcn.004c1230
add esp, 4
lea eax, [ebp - 0x64]
push eax
call fcn.004b8140
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 5
jb 0x4c24bb
mov eax, dword [eax]
push ecx
push eax
mov ecx, edi
call fcn.0049ae20
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x4c24fc
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c24f2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c267b
push edx
push ecx
call fcn.004e7fa0
add esp, 8
push 0xc
push str._appversion
mov ecx, edi
call fcn.0049ae20
sub esp, 0x18
mov edi, esp
push 0xd
push str.1.6.0.6070550
push edi
mov dword [edi], 0
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0xd
call fcn.006c1de0
add esp, 0xc
mov byte [edi + 0xd], 0
lea eax, [ebp - 0x64]
push eax
call fcn.004b8140
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov byte [ebp - 4], 6
jb 0x4c2552
mov eax, dword [eax]
push ecx
mov ecx, dword [ebp - 0x20]
push eax
call fcn.0049ae20
mov edx, dword [ebp - 0x50]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x4c2594
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4c258a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2680
push edx
push ecx
call fcn.004e7fa0
add esp, 8
mov byte [ebp - 4], 7
test esi, esi
je 0x4c25a5
mov eax, dword [esi]
mov ecx, esi
push 0
call dword [eax + 8]
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x4c25db
mov edx, dword [ebp - 0x18]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c25d1
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c2685
push ecx
push edx
call fcn.004e7fa0
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret
push 0x7fe21c
call fcn.006bff11
add esp, 4
cmp dword [0x7fe21c], 0xffffffff
jne 0x4c212d
push 0x102
push 0x7fe1e0
mov dword [0x7fe1dc], 0x71784c
call fcn.006abd7f
push 0x7fe21c
mov dword [0x7fe210], 0
mov dword [0x7fe214], 0
mov dword [0x7fe1dc], 0x717e08
mov dword [0x7fe1c4], 0x7fe1dc
mov dword [0x7fe218], 0x7fe1dc
call fcn.006bfec7
add esp, 0xc
jmp 0x4c212d
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
call fcn.006cc674
int3