Function at 0x68b280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [0x7ec06c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + 0x20]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp + 0x28]
shr esi, 3
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xbc], 2
push edi
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x98], edi
cmp esi, 0x14
je 0x68b308
cmp esi, 0x1c
je 0x68b308
cmp esi, 0x20
jne 0x68b386
test edi, edi
jne 0x68b343
cmp esi, 0x14
jne 0x68b320
call fcn.0062acd0
mov edi, eax
mov dword [ebp - 0x98], edi
jmp 0x68b34e
cmp esi, 0x1c
jne 0x68b334
call fcn.0062ace0
mov edi, eax
mov dword [ebp - 0x98], edi
jmp 0x68b34e
call fcn.0062acf0
mov edi, eax
mov dword [ebp - 0x98], edi
jmp 0x68b34e
push edi
call fcn.0062b850
add esp, 4
mov esi, eax
mov eax, 0x200
cmp dword [ebp + 0xc], eax
cmovae eax, dword [ebp + 0xc]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [ebp - 0xb0], eax
test ebx, ebx
je 0x68b3ad
mov eax, dword [ebp + 0x1c]
cmp eax, esi
jae 0x68b399
push 0x55
push 0x72a708
push 0x6e
push 0x7d
push 0xa
call fcn.00634910
add esp, 0x14
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053bd3e
mov esp, ebp
pop ebp
ret
cmova eax, esi
push eax
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.00552b30
add esp, 0xc
call fcn.0064bbd0
mov dword [ebp - 0xa4], eax
test eax, eax
je 0x68baa0
call fcn.00643860
mov dword [ebp - 0x88], eax
test eax, eax
je 0x68baa2
push eax
call fcn.00643950
mov ebx, dword [ebp - 0x88]
push ebx
call fcn.00643710
push ebx
mov dword [ebp - 0xcc], eax
call fcn.00643710
push ebx
mov dword [ebp - 0xa0], eax
call fcn.00643710
push ebx
mov dword [ebp - 0xb4], eax
call fcn.00643710
push ebx
mov dword [ebp - 0x9c], eax
call fcn.00643710
push ebx
mov dword [ebp - 0xd0], eax
call fcn.00643710
push ebx
mov dword [ebp - 0xc8], eax
call fcn.00643710
push ebx
mov dword [ebp - 0x90], eax
call fcn.00643710
mov ebx, eax
add esp, 0x24
mov dword [ebp - 0x8c], ebx
test ebx, ebx
je 0x68ba8a
mov eax, dword [ebp - 0xb0]
dec eax
push eax
call fcn.00625560
push eax
push ebx
call fcn.0064c770
add esp, 0xc
test eax, eax
je 0x68ba8a
nop dword [eax + eax]
push dword [ebp - 0xa8]
xor ebx, ebx
cmp dword [ebp - 0xac], ebx
push 0
push dword [ebp - 0x94]
sete bl
call fcn.006492f0
inc dword [ebp - 0xa8]
add esp, 0xc
test eax, eax
je 0x68ba8a
cmp dword [ebp - 0xac], 0
jne 0x68b4c2
lea eax, [ebp - 0x84]
push esi
push eax
call fcn.00645950
add esp, 8
test eax, eax
jle 0x68ba8a
jmp 0x68b4cc
mov dword [ebp - 0xac], 0
push esi
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.00552b30
push esi
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00552b30
lea eax, [esi - 1]
add esp, 0x18
test eax, eax
js 0x68b504
add byte [ebp + eax - 0x64], 1
jne 0x68b504
sub eax, 1
jns 0x68b4f8
push 0
push edi
push 0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x84]
push esi
push eax
call fcn.0062b890
add esp, 0x18
test eax, eax
je 0x68ba8a
push 0
push edi
push 0
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x64]
push esi
push eax
call fcn.0062b890
add esp, 0x18
test eax, eax
je 0x68ba8a
xor ecx, ecx
test esi, esi
jle 0x68b5c4
cmp esi, 0x40
jb 0x68b5b3
mov eax, esi
and eax, 0x8000003f
jns 0x68b55c
dec eax
or eax, 0xffffffc0
inc eax
mov edx, esi
sub edx, eax
movups xmm0, xmmword [ebp + ecx - 0x24]
movups xmm1, xmmword [ebp + ecx - 0x44]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 0x24], xmm1
movups xmm0, xmmword [ebp + ecx - 0x14]
movups xmm1, xmmword [ebp + ecx - 0x34]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 0x14], xmm1
movups xmm0, xmmword [ebp + ecx - 4]
movups xmm1, xmmword [ebp + ecx - 0x24]
pxor xmm1, xmm0
movups xmmword [ebp + ecx - 4], xmm1
movups xmm0, xmmword [ebp + ecx + 0xc]
movups xmm1, xmmword [ebp + ecx - 0x14]
pxor xmm1, xmm0
movups xmmword [ebp + ecx + 0xc], xmm1
add ecx, 0x40
cmp ecx, edx
jl 0x68b560
cmp ecx, esi
jge 0x68b5c4
mov al, byte [ebp + ecx - 0x44]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, esi
jl 0x68b5b7
push dword [ebp - 0x9c]
or byte [ebp - 0x24], 0x80
lea eax, [ebp - 0x24]
or byte [ebp + esi - 0x25], 1
push esi
push eax
call fcn.00624870
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0x94]
push ebx
push dword [ebp - 0x88]
push 0x40
push dword [ebp - 0x9c]
call fcn.006497d0
add esp, 0x14
test eax, eax
jg 0x68b628
je 0x68b470
push dword [ebp - 0x88]
call fcn.00643610
mov eax, dword [ebp - 0x88]
add esp, 4
jmp 0x68baa2
mov ebx, dword [ebp - 0x94]
push 0
push 2
push ebx
call fcn.006492f0
add esp, 0xc
test eax, eax
je 0x68ba8a
push 0
push 3
push ebx
call fcn.006492f0
add esp, 0xc
test eax, eax
je 0x68ba8a
mov ecx, dword [ebp - 0xb0]
mov eax, 0xcccccccd
mov ebx, dword [ebp - 0xcc]
xor edi, edi
mov dword [ebp - 0xb8], edi
lea ecx, [ecx - 1]
mul ecx
mov eax, edx
shr eax, 7
mov dword [ebp - 0xc4], eax
test edi, edi
je 0x68b69e
push edi
push 0
push dword [ebp - 0x94]
call fcn.006492f0
add esp, 0xc
test eax, eax
je 0x68ba8a
push 0
push dword [ebp - 0xb4]
call fcn.006254a0
xor edi, edi
add esp, 8
cmp dword [ebp - 0xc4], edi
jl 0x68b74f
nop dword [eax]
lea eax, [esi - 1]
test eax, eax
js 0x68b6d3
add byte [ebp + eax - 0x64], 1
jne 0x68b6d3
sub eax, 1
jns 0x68b6c7
push 0
push dword [ebp - 0x98]
lea eax, [ebp - 0x24]
push 0
push eax
lea eax, [ebp - 0x64]
push esi
push eax
call fcn.0062b890
add esp, 0x18
test eax, eax
je 0x68ba8a
push ebx
lea eax, [ebp - 0x24]
push esi
push eax
call fcn.00624870
add esp, 0xc
test eax, eax
je 0x68ba8a
lea eax, [esi*8]
imul eax, edi
push eax
push ebx
push ebx
call fcn.0064c770
add esp, 0xc
test eax, eax
je 0x68ba8a
mov eax, dword [ebp - 0xb4]
push ebx
push eax
push eax
call fcn.00643a20
add esp, 0xc
test eax, eax
je 0x68ba8a
inc edi
cmp edi, dword [ebp - 0xc4]
jle 0x68b6c0
mov eax, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xb4]
dec eax
push eax
push edi
call fcn.00625120
add esp, 8
test eax, eax
je 0x68ba8a
push edi
mov edi, dword [ebp - 0xd0]
push edi
call fcn.00624da0
add esp, 8
test eax, eax
je 0x68ba8a
push dword [ebp - 0x8c]
push edi
push edi
call fcn.00643a20
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0x9c]
push ebx
call fcn.0064c8a0
add esp, 8
test eax, eax
je 0x68ba8a
push dword [ebp - 0x88]
push ebx
push edi
push dword [ebp - 0xc8]
push 0
call fcn.00648890
add esp, 0x14
test eax, eax
je 0x68ba8a
call fcn.00625560
push eax
push dword [ebp - 0xc8]
push ebx
call fcn.00643ab0
add esp, 0xc
test eax, eax
je 0x68ba8a
push ebx
push edi
mov edi, dword [ebp - 0x90]
push edi
call fcn.00643ab0
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0x8c]
push edi
call fcn.00624a60
add esp, 8
test eax, eax
js 0x68b847
mov edi, dword [ebp - 0x94]
push edi
push 1
push dword [ebp - 0x88]
push 0x40
push dword [ebp - 0x90]
call fcn.006497d0
add esp, 0x14
test eax, eax
jg 0x68b86b
jne 0x68ba8a
mov edi, dword [ebp - 0xb8]
inc edi
mov dword [ebp - 0xb8], edi
cmp edi, 0x1000
jl 0x68b681
mov edi, dword [ebp - 0x98]
jmp 0x68b470
push 1
push 2
push edi
call fcn.006492f0
add esp, 0xc
test eax, eax
je 0x68ba8a
call fcn.00625560
push eax
push dword [ebp - 0x90]
push dword [ebp - 0x8c]
call fcn.00643ab0
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0x88]
push dword [ebp - 0x9c]
push dword [ebp - 0x8c]
push 0
push ebx
call fcn.00648890
add esp, 0x14
test eax, eax
je 0x68ba8a
push 2
push dword [ebp - 0x8c]
call fcn.006254a0
add esp, 8
test eax, eax
je 0x68ba8a
push dword [ebp - 0x88]
push dword [ebp - 0x90]
push dword [ebp - 0xa4]
call fcn.0064bc30
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0xa4]
push dword [ebp - 0x88]
push dword [ebp - 0x90]
push ebx
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
call fcn.0064a380
add esp, 0x18
test eax, eax
je 0x68ba8a
push dword [ebp - 0xa0]
call fcn.006250a0
add esp, 4
test eax, eax
je 0x68b9aa
call fcn.00625560
push eax
mov eax, dword [ebp - 0x8c]
push eax
push eax
call fcn.00643a20
add esp, 0xc
test eax, eax
je 0x68ba8a
push dword [ebp - 0xa4]
inc dword [ebp - 0xbc]
push dword [ebp - 0x88]
push dword [ebp - 0x90]
push ebx
push dword [ebp - 0x8c]
push dword [ebp - 0xa0]
call fcn.0064a380
add esp, 0x18
test eax, eax
jne 0x68b930
push dword [ebp - 0x88]
call fcn.00643610
mov eax, dword [ebp - 0x88]
add esp, 4
jmp 0x68baa2
push 1
push 3
push edi
call fcn.006492f0
add esp, 0xc
test eax, eax
je 0x68ba8a
mov dword [ebp - 0xc0], 1
nop dword [eax]
mov ebx, dword [ebp - 0xd4]
push dword [ebx + 8]
call fcn.00624f90
push dword [ebx + 0xc]
call fcn.00624f90
push dword [ebx + 0x10]
call fcn.00624f90
push dword [ebp - 0x90]
call fcn.00624e60
push dword [ebp - 0x9c]
mov dword [ebx + 8], eax
call fcn.00624e60
push dword [ebp - 0xa0]
mov dword [ebx + 0xc], eax
call fcn.00624e60
add esp, 0x18
mov dword [ebx + 0x10], eax
cmp dword [ebx + 8], 0
je 0x68ba80
cmp dword [ebx + 0xc], 0
je 0x68ba80
test eax, eax
je 0x68ba80
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x68ba3d
mov eax, dword [ebp - 0xb8]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xdc]
test ecx, ecx
je 0x68ba4f
mov eax, dword [ebp - 0xbc]
mov dword [ecx], eax
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x68ba8a
push esi
lea ecx, [ebp - 0x84]
push ecx
push eax
call fcn.00552b30
add esp, 0xc
push dword [ebp - 0x88]
call fcn.00643610
mov eax, dword [ebp - 0x88]
add esp, 4
jmp 0x68baa2
mov dword [ebp - 0xc0], 0
push dword [ebp - 0x88]
call fcn.00643610
mov eax, dword [ebp - 0x88]
add esp, 4
jmp 0x68baa2
xor eax, eax
push eax
call fcn.00643680
push dword [ebp - 0xa4]
call fcn.0064bb80
mov ecx, dword [ebp - 4]
add esp, 8
mov eax, dword [ebp - 0xc0]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0053bd3e
mov esp, ebp
pop ebp
ret