Function at 0x6fb74c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov ebx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
lea edi, [ebp - 0xc]
xor eax, eax
push ebp
push 0x6fbb2c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x6fb790
mov eax, dword [0x6edacc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x6e8504]
call fcn.006ea22c
mov dword [edi], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x258]
mov edx, dword [edi]
call fcn.00421408
mov eax, dword [edi]
mov dword [eax + 0xc], ebx
lea edx, [ebp - 0x18]
mov eax, dword [0x728694]
call fcn.004075b8
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
call fcn.0040a6e0
mov edx, dword [ebp - 0x1c]
pop eax
call fcn.0040524c
mov edx, dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.006fbc78
mov edx, dword [ebp - 8]
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [edi]
mov eax, dword [eax + 0x364]
xor edx, edx
call fcn.006ebe4c
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.006ddf7c
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
xor edx, edx
call fcn.006ddf7c
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 4]
add edx, 0xc
call fcn.004051e8
mov edx, dword [ebp - 0x20]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
call fcn.006fb618
mov edx, eax
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
call fcn.0042eb04
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
mov edx, 0x800000
call fcn.0042e864
mov dl, 1
mov eax, dword [edi]
call fcn.006d96c4
mov eax, dword [edi]
mov ebx, dword [eax + 0x27c]
xor edx, edx
mov eax, ebx
call fcn.006d4080
mov edx, 0x46
mov eax, ebx
call fcn.006d408c
mov edx, 0x3c
mov eax, ebx
call fcn.006d4014
mov edx, 0x14f
mov eax, ebx
call fcn.006d4020
mov edx, 0x159
mov eax, ebx
call fcn.006d4008
mov edx, 0x64
mov eax, dword [edi]
call fcn.006d8fa0
xor edx, edx
mov eax, dword [edi]
call fcn.006e67b0
mov eax, dword [edi]
call fcn.006ea5e8
xor edx, edx
call fcn.006d3dc8
mov edx, 2
mov eax, dword [edi]
call fcn.00444354
xor edx, edx
mov eax, dword [edi]
call fcn.00444338
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov edx, 4
call fcn.006e9a20
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov edx, 4
call fcn.006e9a20
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov edx, 0xffffff
call fcn.006e9a30
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov edx, 0xffffff
call fcn.006e9a30
push ebp
call fcn.006fb6d8
pop ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 0x25c], 0
je 0x6fb97c
mov eax, dword [ebp - 8]
cmp dword [eax + 0x244], 0
je 0x6fb97c
xor edx, edx
mov eax, dword [edi]
call fcn.006e5e8c
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x244]
mov ecx, dword [eax]
call dword [ecx + 0xac]
test al, al
je 0x6fb980
xor eax, eax
jmp 0x6fb982
mov al, 1
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x6fba5e
mov dx, 0xfff3
mov eax, dword [edi]
call fcn.00489f5c
mov eax, dword [edi]
mov ax, word [eax + 0x78]
mov edx, dword [edi]
mov word [edx + 0x268], ax
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x120], edx
mov dword [eax + 0x124], edx
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x128], edx
mov dword [eax + 0x12c], edx
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
mov eax, dword [eax + 8]
mov edx, 0x808080
call fcn.0042e864
mov eax, dword [edi]
mov eax, dword [eax + 0x360]
mov eax, dword [eax + 0x10]
mov edx, 0x808080
call fcn.0042ed50
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
mov eax, dword [eax + 0x10]
mov edx, 0x808080
call fcn.0042ed50
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x28]
mov edx, 1
call fcn.0042ee7c
mov eax, dword [edi]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x28]
mov edx, 0xffffff
call fcn.0042ed50
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x28]
mov edx, 1
call fcn.0042ee7c
mov eax, dword [edi]
mov eax, dword [eax + 0x2f4]
mov eax, dword [eax + 0x28]
mov edx, 0xffffff
call fcn.0042ed50
jmp 0x6fbab7
mov dx, 0x7e4
mov eax, dword [edi]
call fcn.00489f5c
mov eax, dword [edi]
mov ax, word [eax + 0x78]
mov edx, dword [edi]
mov word [edx + 0x268], ax
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x124], edx
mov dword [eax + 0x120], fcn.006fbec0
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x12c], edx
mov dword [eax + 0x128], fcn.006fb5ac
mov eax, dword [edi]
mov edx, dword [ebp - 8]
mov dword [eax + 0x1c4], edx
mov dword [eax + 0x1c0], fcn.006fbec0
xor edx, edx
mov eax, dword [edi]
call fcn.006e5e8c
mov edx, dword [ebp - 8]
mov dl, byte [edx + 0x228]
mov ecx, dword [eax]
call dword [ecx + 0xa8]
mov eax, dword [edi]
call fcn.006e6b18
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x6fbafd
inc ebx
xor esi, esi
mov edx, esi
mov eax, dword [edi]
call fcn.006e5e8c
mov dl, byte [ebp - 0x11]
xor dl, 1
mov ecx, dword [eax]
call dword [ecx + 0xdc]
inc esi
dec ebx
jne 0x6fbae2
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.006fc00c
mov edx, dword [edi]
mov eax, dword [ebp - 8]
call fcn.006fb678
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6fbb33
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404f98
ret