Function at 0x6d846a12
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x200c
call fcn.6d84d5d0
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
imul edi, dword [ebp + 0x14]
xor ebx, ebx
mov esi, 0x23184
push esi
push 0x6d85394c
mov dword [ebp - 0xc], edi
mov dword [0x6d853940], ebx
mov dword [0x6d853944], ebx
mov dword [0x6d853948], ebx
mov dword [0x6d85394c], ebx
mov dword [0x6d853950], ebx
call fcn.6d8192bf
test eax, eax
jne 0x6d846d4f
push esi
push 0x6d853948
call fcn.6d8192bf
test eax, eax
jne 0x6d846d4f
push esi
push 0x6d853944
call fcn.6d8192bf
test eax, eax
jne 0x6d846d4f
push esi
push 0x6d853940
call fcn.6d8192bf
test eax, eax
jne 0x6d846d4f
push esi
push 0x6d853950
call fcn.6d8192bf
test eax, eax
jne 0x6d846d4f
push edi
push dword [ebp + 0xc]
push dword [0x6d853950]
push dword [0x6d853940]
push dword [0x6d853944]
push dword [0x6d853948]
push dword [0x6d85394c]
call fcn.6d846101
add esp, 0x1c
test eax, eax
jne 0x6d846d86
push dword [0x6d853950]
push dword [0x6d853940]
push dword [0x6d853944]
push dword [0x6d853948]
push dword [0x6d85394c]
call fcn.6d84620c
add esp, 0x14
push 0x20
pop eax
mov dword [ebp - 0x1ff8], eax
mov dword [ebp - 0x2000], eax
mov dword [ebp - 0x2008], eax
xor eax, eax
inc eax
cmp dword [ebp + 0x18], eax
mov dword [ebp - 0x1ffc], ebx
mov dword [ebp - 0x2004], ebx
mov dword [ebp - 0x200c], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], eax
jbe 0x6d846c10
lea eax, [ebp - 0x1fd8]
lea edi, [ebp - 0x1ff0]
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0x10]
imul ebx, ebx, 0x1c
lea esi, [ebp + ebx - 0x200c]
call fcn.6d84682f
test eax, eax
je 0x6d846ba2
cmp dword [ebp + ebx - 0x1ff4], 1
jle 0x6d846b77
call fcn.6d8465cb
jmp 0x6d846b79
fldz
mov eax, dword [ebp + 0x10]
fstp dword [ebp + eax*4 - 0x40c]
mov eax, dword [ebp - 4]
cmp dword [eax], 1
jle 0x6d846b94
mov esi, edi
call fcn.6d8465cb
jmp 0x6d846b96
fldz
mov ecx, dword [ebp + 0x14]
fstp dword [ebp + ecx*4 - 0x40c]
jmp 0x6d846bbb
dec dword [ebp + 0x14]
fldz
mov eax, dword [ebp + 0x10]
fstp dword [ebp + eax*4 - 0x40c]
sub dword [ebp - 4], 0x1c
mov ecx, dword [ebp + 0x14]
sub edi, 0x1c
and dword [ebp + 0x10], 0
fld dword [ebp - 0x40c]
xor esi, esi
inc esi
cmp ecx, esi
jb 0x6d846be8
lea edx, [ebp + esi*4 - 0x40c]
fcom dword [edx]
fnstsw ax
test ah, 5
jp 0x6d846be3
fstp st(0)
mov dword [ebp + 0x10], esi
fld dword [edx]
inc esi
cmp esi, ecx
jbe 0x6d846bcc
fcomp qword [0x6d802548]
inc ecx
fnstsw ax
test ah, 0x41
jnp 0x6d846c0b
add dword [ebp - 4], 0x1c
add edi, 0x1c
cmp ecx, dword [ebp + 0x18]
mov dword [ebp + 0x14], ecx
jb 0x6d846b50
jmp 0x6d846c0e
mov dword [ebp + 0x18], ecx
xor ebx, ebx
push dword [0x6d853950]
call fcn.6d819318
push 0x8c61
lea eax, [ebp - 8]
push eax
call fcn.6d8192bf
test eax, eax
jne 0x6d846d86
xor esi, esi
cmp dword [ebp + 0x18], ebx
jbe 0x6d846cce
lea edi, [ebp - 0x200c]
push dword [ebp - 8]
mov eax, edi
push esi
call fcn.6d8469b5
pop ecx
pop ecx
mov ecx, dword [0x6d85394c]
call fcn.6d8463a3
mov ebx, eax
test ebx, ebx
je 0x6d846cb4
mov ecx, dword [0x6d853948]
mov eax, edi
call fcn.6d8463a3
cdq
idiv ebx
mov ecx, dword [0x6d853944]
or eax, 0xffffff00
shl eax, 8
mov dword [ebp + 0x10], eax
mov eax, edi
call fcn.6d8463a3
cdq
idiv ebx
mov ecx, dword [ebp + 0x10]
or ecx, eax
shl ecx, 8
mov dword [ebp + 0x10], ecx
mov ecx, dword [0x6d853940]
mov eax, edi
call fcn.6d8463a3
cdq
idiv ebx
mov ecx, dword [ebp + 0x10]
or ecx, eax
mov dword [ebp + esi*4 - 0x40c], ecx
jmp 0x6d846cbf
mov dword [ebp + esi*4 - 0x40c], 0xff000000
inc esi
add edi, 0x1c
cmp esi, dword [ebp + 0x18]
jb 0x6d846c42
xor ebx, ebx
xor edx, edx
cmp dword [ebp - 0xc], ebx
jbe 0x6d846d0c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov esi, dword [0x6d85393c]
movzx esi, word [esi + edx*2]
mov edi, dword [ebp - 8]
movzx esi, byte [esi + edi]
mov esi, dword [ebp + esi*4 - 0x40c]
xor esi, dword [ecx + eax]
and esi, 0xffffff
xor esi, dword [ecx + eax]
inc edx
mov dword [eax], esi
add eax, 4
cmp edx, dword [ebp - 0xc]
jb 0x6d846cdd
push dword [0x6d85394c]
call fcn.6d819318
push dword [0x6d853948]
call fcn.6d819318
push dword [0x6d853944]
call fcn.6d819318
push dword [0x6d853940]
call fcn.6d819318
push dword [0x6d85393c]
call fcn.6d819318
push dword [ebp - 8]
call fcn.6d819318
xor eax, eax
jmp 0x6d846d8b
push dword [0x6d85394c]
call fcn.6d819318
push dword [0x6d853948]
call fcn.6d819318
push dword [0x6d853944]
call fcn.6d819318
push dword [0x6d853940]
call fcn.6d819318
push dword [0x6d853950]
call fcn.6d819318
mov eax, dword [0x6d853a1c]
pop edi
pop esi
pop ebx
leave
ret