Function at 0x4c0af0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x74
mov esi, ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x4d0450
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.004ce920
mov edx, dword [0x844748]
mov ecx, dword [0x844730]
mov edi, 0xffffc0f4
sub edi, eax
mov dword [ebp - 0x58], edi
sub ecx, edi
add ecx, edx
call dword [0x834360]
call ecx
mov ecx, eax
xor ecx, 0xd8dc5252
add ecx, esi
mov edx, eax
xor edx, 0xd8dc562e
mov dword [ebp - 0x30], edx
mov dword [ebp + edx - 0x80], ecx
mov edi, eax
xor edi, 0xd8dc5622
mov ecx, eax
xor ecx, 0xd8dc569e
mov dword [ebp - 0x28], esi
mov edx, dword [esi + ecx]
mov ecx, eax
xor ecx, 0xd8dc54d2
mov ecx, dword [edx + ecx]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x20], eax
mov esi, eax
xor esi, 0xd8dc5626
mov ecx, dword [edx + esi]
movzx eax, word [edx + edi]
mov dword [ebp - 0x2c], edi
mov word [ebp + edi - 0x80], ax
mov dword [ebp - 0x3c], esi
mov dword [ebp + esi - 0x80], ecx
mov eax, dword [0x8893e7]
xor edx, edx
test eax, eax
setne cl
jne 0x4c0bb8
mov eax, dword [0x88987a]
mov esi, dword [ebp - 0x20]
xor esi, 0xd8dc5712
mov dl, cl
lea ecx, [ebp - 0x80]
push edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x5c], esi
push dword [edx + esi]
push eax
push dword [0x889876]
push dword [0x87d3b7]
push dword [0x87d3b3]
call fcn.00535a80
test al, al
je 0x4c113d
nop
push dword [0x88988a]
push dword [0x889886]
call fcn.00465720
add esp, 8
test al, al
jne 0x4c0c17
nop
test byte [0x889b6c], 1
je 0x4c113d
nop
mov esi, dword [0x88982e]
mov ecx, dword [ebp - 0x28]
push dword [0x889832]
call fcn.004854e0
push esi
push eax
push dword [0x87d3b7]
push dword [0x87d3b3]
call fcn.00536370
add esp, 0x10
mov esi, dword [0x889872]
cmp dword [0x889b2c], 0
jne 0x4c0ccb
nop
mov edi, dword [ebp - 0x20]
mov eax, edi
xor eax, 0xd8dc56e2
push eax
call fcn.0071993d
add esp, 4
mov dword [eax], 0x751304
mov ecx, edi
xor ecx, 0xd8dc5636
mov edx, edi
xor edx, 0xd8dc560a
mov dword [eax + ecx], 0
mov ecx, edi
xor ecx, 0xd8dc5625
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x3c]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x2c]
mov dword [eax + ecx], 0x751360
mov ecx, edi
xor ecx, 0xd8dc560e
mov dword [eax + ecx], 0
mov ecx, edi
xor ecx, 0xd8dc5602
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0
mov dword [0x889b2c], eax
nop
mov eax, dword [0x889b2c]
mov ecx, dword [ebp - 0x20]
xor ecx, 0xd8dc560e
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + ecx]
add eax, dword [0x88986e]
mov dword [ebp - 0x24], eax
test esi, esi
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax - 0x4c], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax - 0x4c], 0
je 0x4c0ea5
nop
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + eax], 0
je 0x4c0ea5
mov eax, dword [ebp - 0x20]
mov ecx, eax
xor ecx, 0xd8dc56e2
mov dword [ebp - 0x6c], ecx
mov ecx, eax
xor ecx, 0xd8dc5636
mov dword [ebp - 0x68], ecx
mov ecx, eax
xor ecx, 0xd8dc560a
mov dword [ebp - 0x34], ecx
mov ecx, eax
xor ecx, 0xd8dc5625
mov dword [ebp - 0x64], ecx
mov ecx, eax
xor ecx, 0xd8dc5602
mov dword [ebp - 0x60], ecx
mov ecx, eax
xor ecx, 0xd8dc563a
mov dword [ebp - 0x40], ecx
xor eax, 0xd8dc563e
mov dword [ebp - 0x70], eax
jmp 0x4c0d97
movsd xmm0, qword [ebp - 0x54]
movsd qword [eax], xmm0
add dword [ebp + ecx - 0x4c], edx
nop
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x70]
add eax, ecx
mov edx, dword [ebp - 0x34]
cmp dword [ecx + edx], 0
nop
mov dword [ebp - 0x24], eax
je 0x4c0ea5
mov eax, dword [0x889b2c]
test eax, eax
jne 0x4c0e00
nop
mov dword [ebp - 0x10], 0
push dword [ebp - 0x6c]
call fcn.0071993d
add esp, 4
mov dword [eax], 0x751304
mov ecx, dword [ebp - 0x68]
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x64]
mov dword [eax + ecx], edx
mov ecx, dword [ebp - 0x3c]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x2c]
mov dword [eax + ecx], 0x751360
mov ecx, dword [ebp - 0x38]
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x60]
mov dword [eax + ecx], 0
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0
mov dword [0x889b2c], eax
nop
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
test edx, edx
jne 0x4c0e1a
nop
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
mov edx, dword [ecx + edx]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
cmp dword [eax + edx], 0
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp + esi - 0x54]
je 0x4c0e57
add eax, esi
add eax, edx
nop dword [eax]
mov edx, ecx
xor edx, esi
and ecx, esi
lea ecx, [edx + ecx*2]
mov dword [ebp + esi - 0x54], ecx
lea edx, [eax + esi]
cmp dword [eax], 0
mov eax, edx
jne 0x4c0e40
test ecx, ecx
je 0x4c0d7d
nop
mov eax, dword [0x889b2c]
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x40]
add eax, dword [ecx + edx]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp + ecx - 0x4c]
mov edx, dword [ebp - 0x2c]
cmp eax, dword [ebp + edx - 0x4c]
jne 0x4c0d70
nop
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x54]
push edx
push eax
call fcn.004c8670
jmp 0x4c0d7d
mov ecx, dword [ebp - 0x20]
xor ecx, 0xd8dc5422
add ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x4c]
cmp ecx, eax
mov dword [ebp - 0x34], ecx
je 0x4c0f5f
mov eax, dword [ecx]
test eax, eax
nop
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x28]
je 0x4c0f3b
mov esi, ebx
xor esi, 0xd8dc543a
mov ecx, dword [edx + esi]
sub ecx, eax
mov edx, ebx
xor edx, 0xd8dc59d5
cmp ecx, edx
jbe 0x4c0f0f
mov edx, ebx
xor edx, 0x2723a9d6
lea edi, [eax + edx]
mov eax, dword [eax + edx]
sub edi, eax
mov edx, ebx
xor edx, 0xd8dc560a
cmp edi, edx
jae 0x4c119f
mov edx, ebx
xor edx, 0xd8dc5609
add ecx, edx
mov edi, ebx
xor edi, 0xd8dc5426
push ecx
push eax
call fcn.0071996d
add esp, 8
mov ecx, dword [ebp - 0x34]
mov dword [ecx], 0
mov edx, dword [ebp - 0x28]
mov dword [edx + edi], 0
mov dword [edx + esi], 0
movsd xmm0, qword [ebp - 0x4c]
movsd qword [ecx], xmm0
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax - 0x4c]
mov ecx, ebx
xor ecx, 0xd8dc543a
mov dword [edx + ecx], eax
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4c0fc0
nop
mov eax, dword [ebp - 0x4c]
test eax, eax
nop
mov ebx, dword [ebp - 0x20]
je 0x4c0fc0
nop
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ebp + ecx - 0x4c]
sub ecx, eax
mov edx, ebx
xor edx, 0xd8dc59d5
cmp ecx, edx
jbe 0x4c0fab
mov edx, ebx
xor edx, 0x2723a9d6
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, ebx
xor edx, 0xd8dc560a
cmp esi, edx
jae 0x4c11ac
mov edx, ebx
xor edx, 0xd8dc5609
add ecx, edx
push ecx
push eax
call fcn.0071996d
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
nop
mov ebx, dword [ebp - 0x20]
mov esi, ebx
xor esi, 0xd8dc5722
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x24], eax
mov eax, ebx
xor eax, 0xd8dc566a
xor ebx, ebx
mov dword [ebp - 0x40], eax
test dword [ecx + esi], eax
mov edi, dword [0x889892]
mov dword [ebp - 0x10], 0xffffffff
sete bl
mov eax, dword [0x88988e]
push eax
call fcn.004854e0
lea ecx, [ebp - 0x80]
push ebx
push dword [ebp - 0x24]
push edi
push eax
push dword [0x889872]
push dword [0x88986e]
call fcn.00532140
test al, al
je 0x4c113d
nop
cmp dword [0x889872], 0
nop
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
je 0x4c1071
nop
mov eax, dword [0x844744]
mov edi, dword [0x844738]
sub edi, dword [ebp - 0x58]
mov ebx, edx
xor ebx, 0xd8dc543e
add ebx, ecx
add edi, eax
mov eax, edx
xor eax, 0x4923a809
mov dword [ebp - 0x24], eax
mov ecx, edi
call dword [0x834360]
mov ecx, dword [ebp - 0x34]
mov edx, ebx
push dword [ebp - 0x24]
call edi
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
add esp, 4
mov eax, edx
xor eax, 0xd8dc5e2a
test dword [ecx + esi], eax
je 0x4c1151
nop
push 0x87d3a7
mov edi, ecx
call fcn.00537f90
add esp, 4
mov eax, dword [ebp - 0x40]
test dword [edi + esi], eax
je 0x4c115f
movsd xmm0, qword [0x88986e]
movsd qword [ebp - 0x4c], xmm0
cmp dword [0x889b2c], 0
jne 0x4c1126
nop
mov esi, dword [ebp - 0x20]
mov eax, esi
xor eax, 0xd8dc56e2
push eax
call fcn.0071993d
add esp, 4
mov dword [eax], 0x751304
mov ecx, esi
xor ecx, 0xd8dc5636
mov dword [eax + ecx], 0
mov ecx, esi
xor ecx, 0xd8dc560a
mov edx, esi
xor edx, 0xd8dc5625
mov dword [eax + ecx], edx
mov ecx, dword [ebp - 0x3c]
mov byte [eax + ecx], 0
mov ecx, dword [ebp - 0x2c]
mov dword [eax + ecx], 0x751360
mov ecx, dword [ebp - 0x38]
mov dword [eax + ecx], 0
xor esi, 0xd8dc5602
mov dword [eax + esi], 0
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0
mov dword [0x889b2c], eax
nop
mov eax, dword [0x889b2c]
mov ecx, dword [ebp - 0x38]
push dword [eax + ecx]
lea eax, [ebp - 0x4c]
push eax
call fcn.00693630
jmp 0x4c115f
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [ebp - 0x80]
push dword [0x889872]
call fcn.00536a70
mov dword [0x88986e], 0
mov dword [0x88987a], 0
mov dword [0x889876], 0
mov dword [0x88982e], 0
mov dword [0x889832], 0
xorps xmm0, xmm0
movups xmmword [0x889886], xmm0
mov al, 1
jmp 0x4c113f
nop
mov dword [ebp - 0x10], 1
call fcn.006fce21
nop
mov dword [ebp - 0x10], 2
call fcn.006fce21
nop dword [eax]
push ebp
sub esp, 0x18
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x18
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x18
add ebp, 0xc
nop
mov eax, dword [0x844740]
mov esi, dword [0x844734]
sub esi, dword [ebp - 0x58]
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x4c]
call esi
add esp, 0x18
pop ebp
ret