Function at 0x6783e6d0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [0x67ad7034]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x67b38b68]
mov dword [ebp - 0x108], eax
mov eax, dword [ecx + 0x174]
mov dword [ebp - 0xe8], eax
mov al, byte [ecx + 0x1c6]
mov byte [ebp - 0xd1], al
mov al, byte [ecx + 0x1c8]
mov byte [ebp - 0xdd], al
xor eax, eax
push esi
push edi
mov dword [ebp - 0xd8], ecx
lea esi, [ebp - 0xa8]
mov dword [ebp - 0xe4], eax
lea edi, [eax + 4]
nop
mov ecx, esi
call fcn.6783ee60
add esi, 0x28
sub edi, 1
jne 0x6783e740
mov esi, dword [ebp - 0xd8]
xor eax, eax
mov dword [ebp - 0xf8], eax
cmp dword [esi + 0x54], eax
jle 0x6783ee4c
mov dword [ebp - 0xf4], edi
nop dword [eax]
xor edx, edx
xor ecx, ecx
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esi + 0x38]
and ecx, dword [esi + 0x3c]
or edx, ecx
je 0x6783e9d5
mov edx, dword [ebp - 0xd8]
xor eax, eax
mov esi, dword [edx + 0x10]
add esi, edi
cmp byte [ebp - 0xd1], al
mov dword [ebp - 0x100], esi
setg al
inc eax
xor edi, edi
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x104], edi
nop
test edi, edi
jne 0x6783e7c9
mov al, byte [esi + 0x58]
jmp 0x6783e7cc
mov al, byte [esi + 0x59]
mov ecx, dword [ebp - 0xe8]
movzx eax, al
mov dword [ebp - 0xf0], eax
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*2]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + eax*8]
mov ecx, eax
mov dword [ebp - 0xfc], eax
test eax, eax
jle 0x6783e861
mov edi, dword [ebp - 0xdc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xec]
mov esi, dword [edi + eax*8 + 8]
mov eax, ecx
mov edi, dword [ebp - 0x104]
cmp dword [esi + edx*8 - 0xc], 0
mov esi, dword [ebp - 0x100]
jne 0x6783e85b
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0xdc]
mov esi, dword [edi + eax*8 + 8]
mov eax, ecx
mov edi, dword [ebp - 0x104]
cmp dword [esi + edx*8 - 8], 0
mov esi, dword [ebp - 0x100]
jne 0x6783e85b
mov edx, dword [ebp - 0xdc]
lea ecx, [eax - 1]
mov eax, dword [ebp - 0xec]
mov dword [edx + eax*8], ecx
mov edx, dword [ebp - 0xd8]
cmp ecx, 1
jne 0x6783e9b0
test dword [esi], 0x100
jne 0x6783e8a6
cmp byte [ebp - 0xd1], 0
jg 0x6783e887
movss xmm0, dword [esi + 0x44]
maxss xmm0, dword [esi + 0x48]
jmp 0x6783e89c
test edi, edi
jne 0x6783e897
movss xmm0, dword [esi + 0x40]
maxss xmm0, dword [esi + 0x48]
jmp 0x6783e89c
movss xmm0, dword [esi + 0x44]
comiss xmm0, dword [esi + 0x28]
ja 0x6783e9b0
cmp byte [ebp - 0xdd], 0
jle 0x6783e8c2
movsx eax, byte [edx + 0x1c8]
cmp dword [ebp - 0xf8], eax
jge 0x6783e8c2
xor ecx, ecx
jmp 0x6783e8c7
mov ecx, 1
cmp byte [ebp - 0xd1], 0
jle 0x6783e8d8
test edi, edi
jne 0x6783e8d8
xor eax, eax
jmp 0x6783e8dd
mov eax, 2
add eax, ecx
lea edx, [ebp - 0xa8]
mov dword [ebp - 0xfc], eax
lea eax, [eax + eax*4]
shl eax, 3
add edx, eax
cmp dword [ebp + eax - 0x98], 0
jne 0x6783e918
mov dword [edx], 0x7f7fffff
mov dword [edx + 4], 0x7f7fffff
mov dword [edx + 8], 0xff7fffff
mov dword [edx + 0xc], 0xff7fffff
mov eax, dword [ebp - 0xf0]
mov ecx, eax
shr ecx, 5
and eax, 0x1f
mov dword [ebp - 0xf0], eax
mov esi, dword [ebp - 0xf0]
mov eax, dword [edx + ecx*4 + 0x14]
bts eax, esi
mov esi, dword [ebp - 0x100]
mov dword [edx + ecx*4 + 0x14], eax
inc dword [edx + 0x10]
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xdc]
movss xmm0, dword [edx]
mov eax, dword [ecx + eax*8 + 8]
movss xmm4, dword [eax]
comiss xmm0, xmm4
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 8]
movss xmm3, dword [eax + 0xc]
jbe 0x6783e976
movss dword [edx], xmm4
movss xmm0, dword [edx + 4]
comiss xmm0, xmm1
jbe 0x6783e985
movss dword [edx + 4], xmm1
comiss xmm2, dword [edx + 8]
jbe 0x6783e990
movss dword [edx + 8], xmm2
comiss xmm3, dword [edx + 0xc]
jbe 0x6783e99b
movss dword [edx + 0xc], xmm3
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xfc]
bts ecx, eax
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0xd8]
inc edi
mov dword [ebp - 0x104], edi
cmp edi, dword [ebp - 0x10c]
jl 0x6783e7c0
mov edi, dword [ebp - 0xf4]
mov byte [esi + 0x57], 0xff
mov esi, edx
mov eax, dword [ebp - 0xf8]
add edi, 0x68
inc eax
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xf8], eax
cmp eax, dword [esi + 0x54]
jl 0x6783e770
cmp dword [ebp - 0xe4], 0
je 0x6783ee4c
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x108]
add eax, 0x4a10
mov dword [ebp - 0xf4], eax
mov esi, dword [ecx + 4]
sub esi, 2
mov edi, dword [eax + 4]
cmp esi, edi
jle 0x6783ea54
test edi, edi
je 0x6783ea36
mov eax, edi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, edi
jmp 0x6783ea3b
mov ecx, 8
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, dword [ebp - 0xf4]
push eax
call fcn.677ffaa0
mov eax, dword [ebp - 0xf4]
mov dword [eax], esi
mov edx, 2
mov eax, dword [ebp - 0x108]
xorps xmm0, xmm0
movaps xmmword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xf4], edx
mov esi, dword [eax + 0x4a18]
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xec], esi
mov edi, dword [eax + 4]
mov dword [ebp - 0xdc], edi
lea eax, [edi - 1]
cmp eax, edx
jl 0x6783eb1d
lea esi, [edi - 1]
mov eax, esi
and eax, 0x1f
mov dword [ebp - 0x10c], eax
nop
mov eax, edx
mov edi, edx
or eax, 0x1f
sar edi, 5
cmp esi, eax
mov ecx, 0x1f
cmovle ecx, dword [ebp - 0x10c]
xor esi, esi
inc ecx
xor eax, eax
bts esi, ecx
cmp ecx, 0x20
mov ecx, edx
cmovae eax, esi
xor edx, edx
xor esi, eax
and ecx, 0x1f
bts edx, ecx
dec esi
xor eax, eax
cmp ecx, 0x20
cmovae eax, edx
xor edx, eax
neg edx
and esi, edx
mov edx, dword [ebp - 0xf4]
or dword [ebp + edi*4 - 0xd0], esi
add edx, 0x20
mov edi, dword [ebp - 0xdc]
and edx, 0xffffffe0
mov dword [ebp - 0xf4], edx
lea esi, [edi - 1]
cmp edx, esi
jle 0x6783eab0
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xd8]
movzx edx, byte [eax + 0x1cc]
mov ecx, edx
and edx, 0x1f
shr ecx, 5
mov eax, dword [ebp + ecx*4 - 0xd0]
btr eax, edx
mov dword [ebp + ecx*4 - 0xd0], eax
xor eax, eax
cmp byte [ebp - 0xd1], al
setg al
add eax, 2
sub edi, eax
xor edx, edx
mov dword [ebp - 0xdc], edi
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], edx
movups xmm0, xmmword [edi + 0x140]
movups xmmword [ebp - 0x120], xmm0
movss xmm2, dword [ebp - 0x114]
movss xmm3, dword [ebp - 0x118]
movss xmm5, dword [ebp - 0x11c]
movss xmm4, dword [ebp - 0x120]
nop word [eax + eax]
lea eax, [edx + edx*4]
shl eax, 3
mov ecx, dword [ebp + eax - 0x98]
mov dword [ebp - 0xf8], ecx
test ecx, ecx
je 0x6783ed5b
lea edi, [ebp - 0xa8]
add edi, eax
mov eax, edx
movups xmm1, xmmword [edi]
movaps xmmword [ebp - 0x120], xmm1
and eax, 1
je 0x6783ebdd
cmp byte [ebp - 0xdd], 0
jg 0x6783ebf1
comiss xmm4, xmm1
ja 0x6783ebf1
movss dword [ebp - 0x120], xmm4
movaps xmm1, xmmword [ebp - 0x120]
and edx, 2
je 0x6783ebff
cmp byte [ebp - 0xd1], 0
jg 0x6783ec1a
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
comiss xmm5, xmm0
ja 0x6783ec1a
movss dword [ebp - 0x11c], xmm5
movaps xmm1, xmmword [ebp - 0x120]
test eax, eax
je 0x6783ec39
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
comiss xmm0, xmm3
jae 0x6783ec39
movss dword [ebp - 0x118], xmm3
movaps xmm1, xmmword [ebp - 0x120]
test edx, edx
je 0x6783ec67
mov eax, dword [ebp - 0xd8]
test dword [eax + 4], 0x20000
jne 0x6783ec67
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xff
comiss xmm0, xmm2
jae 0x6783ec67
movss dword [ebp - 0x114], xmm2
movaps xmm1, xmmword [ebp - 0x120]
mov eax, dword [ebp - 0xdc]
xor edx, edx
sub eax, dword [edi + 0x10]
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 0x14]
not eax
and dword [ebp - 0xd0], eax
mov eax, dword [edi + 0x18]
not eax
and dword [ebp - 0xcc], eax
mov eax, dword [edi + 0x1c]
not eax
and dword [ebp - 0xc8], eax
mov eax, dword [edi + 0x20]
not eax
and dword [ebp - 0xc4], eax
mov eax, dword [edi + 0x24]
not eax
and dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xe8]
cmp dword [eax + 4], edx
jle 0x6783ed4f
mov dword [ebp - 0xe4], edx
test ecx, ecx
je 0x6783ed4f
mov esi, edx
mov ecx, edx
and ecx, 0x1f
sar esi, 5
mov eax, 1
shl eax, cl
test dword [edi + esi*4 + 0x14], eax
je 0x6783ed2c
mov eax, dword [edi + esi*4 + 0x14]
btr eax, ecx
dec dword [ebp - 0xf8]
mov dword [edi + esi*4 + 0x14], eax
mov eax, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xec]
mov ecx, dword [eax + 0x10]
add ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 8]
movups xmmword [eax], xmm1
mov eax, esi
add esi, 0x18
movups xmm0, xmmword [ecx]
mov dword [ebp - 0xec], esi
movups xmmword [eax], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x10], xmm0
jmp 0x6783ed32
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe8]
inc edx
add dword [ebp - 0xe4], 0x18
mov ecx, dword [ebp - 0xf8]
cmp edx, dword [eax + 4]
jl 0x6783ecc4
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xf0]
cmp edx, 1
jne 0x6783ed9f
cmp byte [ebp - 0xd1], 0
jle 0x6783ed9f
movzx eax, byte [edi + 0x1cc]
mov edx, esi
add esi, 0x18
mov dword [ebp - 0xec], esi
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x10]
movups xmm0, xmmword [eax + ecx*8]
movups xmmword [edx], xmm0
movq xmm0, qword [eax + ecx*8 + 0x10]
movq qword [edx + 0x10], xmm0
mov edx, dword [ebp - 0xf0]
inc edx
mov dword [ebp - 0xf0], edx
cmp edx, 4
jl 0x6783eba0
mov ecx, dword [ebp - 0xe8]
xor edi, edi
mov eax, dword [ecx + 4]
test eax, eax
jle 0x6783ee26
mov dword [ebp - 0xe4], edi
cmp dword [ebp - 0xdc], 0
je 0x6783ee26
mov eax, edi
mov ecx, edi
and ecx, 0x1f
sar eax, 5
mov edx, 1
shl edx, cl
test dword [ebp + eax*4 - 0xd0], edx
je 0x6783ee11
mov eax, dword [ebp - 0xe8]
mov ecx, esi
add esi, 0x18
mov eax, dword [eax + 0x10]
add eax, dword [ebp - 0xe4]
dec dword [ebp - 0xdc]
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
mov ecx, dword [ebp - 0xe8]
inc edi
add dword [ebp - 0xe4], 0x18
mov eax, dword [ecx + 4]
cmp edi, eax
jl 0x6783edc4
lea eax, [eax + eax*2]
lea eax, [eax*8 - 0x30]
push eax
mov eax, dword [ebp - 0x108]
push dword [eax + 0x4a18]
mov eax, dword [ecx + 0x10]
add eax, 0x30
push eax
call sub.VCRUNTIME140.dll_memcpy_1
add esp, 0xc
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.679343f5
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret