Function at 0x6eccd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x6ee2f0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.006ee2c0
mov edx, dword [0xb39e4c]
mov ecx, dword [0xb39e2c]
mov esi, 0xffff42c4
sub esi, eax
mov dword [ebp - 0x34], esi
sub ecx, esi
add ecx, edx
call dword [0xb0836c]
call ecx
mov ecx, eax
xor ecx, 0xb4825610
mov dword [ebp - 0x20], ecx
mov ecx, eax
xor ecx, 0xb482560c
mov dword [ebp - 0x38], ecx
mov ecx, eax
xor ecx, 0xb482561b
mov dword [ebp - 0x28], ecx
mov ecx, eax
xor ecx, 0xa60403f3
mov dword [ebp - 0x30], ecx
mov ecx, eax
xor ecx, 0xb4825608
mov dword [ebp - 0x50], ecx
mov ecx, eax
xor ecx, 0xb4825612
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x24], eax
xor eax, 0xb4825613
mov dword [ebp - 0x54], eax
mov al, 1
xor edx, edx
nop dword [eax + eax]
mov byte [ebp - 0x3d], al
mov dword [ebp - 0x44], edx
lea eax, [edx + edx*2]
mov edx, dword [ebp - 0x4c]
lea ecx, [edx + eax*4]
add ecx, 0x60
mov dword [ebp - 0x48], ecx
mov ebx, dword [edx + eax*4 + 0x60]
mov edi, 0
cmp ebx, dword [edx + eax*4 + 0x64]
je 0x6ece0e
mov dword [ebp - 0x10], 0xffffffff
xor edi, edi
nop dword [eax]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
cmp dword [ebx + eax], ecx
jbe 0x6ecdd0
mov eax, dword [ebp - 0x20]
mov eax, dword [ebx + eax]
jmp 0x6ecdd5
mov eax, dword [ebp - 0x20]
add eax, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [0xb39e48]
mov esi, dword [0xb39e24]
sub esi, dword [ebp - 0x34]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x2c]
push dword [ebp - 0x30]
call esi
add esp, 4
test eax, eax
je 0x6ece0e
inc edi
add ebx, 0x1c
mov eax, dword [ebp - 0x48]
cmp ebx, dword [eax + 4]
jne 0x6ecdb0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
cdq
idiv dword [ebp - 0x50]
cmp edi, eax
je 0x6ece3a
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x3c]
lea ecx, [eax + 1]
setb al
mov edx, ecx
cmp ecx, dword [ebp - 0x54]
jne 0x6ecd80
jmp 0x6ed4e1
cmp dword [0xb5438c], 0
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp + 8]
jne 0x6ece9a
mov esi, edx
xor esi, 0xb4825634
mov eax, dword [0xb39e40]
mov edi, dword [0xb39e28]
sub edi, dword [ebp - 0x34]
add edi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
call edi
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x1c], ecx
mov dword [eax + 4], 0x799e70
mov dword [eax], 0
mov dword [eax + 0x18], 0
mov byte [eax + 8], 0
mov dword [0xb5438c], eax
mov eax, dword [0xb5438c]
mov esi, edx
xor esi, 0xb4825600
mov dword [ebp - 0x50], eax
mov dword [eax], esi
mov dword [ebp + esi - 0x8c], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax - 0x8c], 0
mov ecx, dword [ebx + esi]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x28]
cmp dword [ebx + eax], ecx
jbe 0x6ecedb
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebx + eax]
jmp 0x6ecee0
mov eax, dword [ebp - 0x20]
add ebx, eax
lea edi, [eax + ebp]
add edi, 0xffffff74
mov eax, edx
xor eax, 0xb4825604
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x30]
cmp ecx, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x44], esi
jae 0x6ecf10
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
mov ebx, 0xf
jmp 0x6ecfe3
mov dword [ebp - 0x3c], ebx
mov eax, edx
xor eax, ecx
xor eax, 0x4b7da9e4
and eax, ecx
xor ecx, dword [ebp - 0x28]
or ecx, eax
cmp ecx, 0x7fffffff
mov ebx, 0x7fffffff
cmovb ebx, ecx
mov eax, edx
xor eax, 0xb48259ea
mov dword [ebp - 0x10], 0xffffffff
cmp ebx, eax
jbe 0x6ecfa2
mov eax, dword [0xb39e40]
mov esi, dword [0xb39e28]
sub esi, dword [ebp - 0x34]
add esi, eax
mov edi, edx
xor edi, 0xb4825630
add edi, ebx
mov ecx, esi
call dword [0xb0836c]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x24]
mov ecx, edi
xor ecx, 0xc5c7951d
mov edx, ecx
xor edx, eax
mov esi, ecx
and esi, eax
lea edx, [edx + esi*2]
mov esi, edi
xor esi, 0xb4825637
mov edi, edx
xor edi, esi
and esi, edx
sub edi, ecx
lea ecx, [edi + esi*2]
mov edx, dword [ebp - 0x24]
xor edx, 0x4b7da9f4
and ecx, edx
mov dword [ecx - 4], eax
jmp 0x6ecfc3
lea esi, [ebx + 1]
mov eax, dword [0xb39e40]
mov edi, dword [0xb39e28]
sub edi, dword [ebp - 0x34]
add edi, eax
mov ecx, edi
call dword [0xb0836c]
mov ecx, esi
call edi
mov ecx, eax
mov eax, dword [ebp - 0x2c]
mov dword [eax], ecx
mov esi, dword [ebp - 0x30]
lea eax, [esi + 1]
push eax
push dword [ebp - 0x3c]
push ecx
call fcn.0077cce0
mov ecx, esi
add esp, 0xc
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x44]
mov dword [ebp + esi - 0x8c], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax - 0x8c], ebx
mov dword [ebp - 0x8c], 0x799e70
mov eax, ebx
sub eax, ecx
mov edi, ecx
mov ecx, edx
xor ecx, 0xb4825617
cmp eax, ecx
mov dword [ebp - 0x3c], ecx
jae 0x6ed055
movzx eax, byte [0xb39c44]
mov ah, dl
xor dl, 0x8e
cmp al, dl
mov ecx, dword [ebp - 0x2c]
je 0x6ed0fb
mov dh, ah
xor dh, 0x42
xor ah, 0x24
nop word cs:[eax + eax]
mov al, dh
lock cmpxchg byte [0xb39c44], ah
je 0x6ed0b9
cmp al, dl
jne 0x6ed040
jmp 0x6ed0fb
lea edx, [edi + ecx]
mov dword [ebp + esi - 0x8c], edx
mov esi, dword [ebp - 0x2c]
cmp ebx, dword [ebp - 0x28]
jbe 0x6ed06c
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
add edi, esi
mov dword [ebp - 0x30], edi
movzx eax, byte [0xb39c44]
mov ecx, dword [ebp - 0x24]
mov ah, cl
xor ah, 0x8e
cmp al, ah
mov edi, dword [ebp - 0x2c]
je 0x6ed1ed
mov ch, cl
xor cl, 0x42
xor ch, 0x24
nop word cs:[eax + eax]
mov al, cl
lock cmpxchg byte [0xb39c44], ch
je 0x6ed12c
cmp al, ah
jne 0x6ed0a0
jmp 0x6ed1ed
mov eax, dword [ebp - 0x24]
xor eax, 0x484685fd
mov ecx, 1
sub ecx, eax
xor esi, esi
mov ebx, dword [ebp - 0x20]
nop dword [eax]
mov dh, byte [esi + 0xabe450]
xor byte [esi + 0xb39c40], dh
mov edi, esi
xor edi, eax
add edi, ecx
and esi, eax
lea esi, [edi + esi*2]
cmp esi, ebx
jl 0x6ed0d0
xchg byte [0xb39c44], dl
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx eax, byte [ebp - 0x70]
mov byte [esp + 4], al
mov eax, dword [ebp - 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp], eax
mov dword [esp + 8], 0xb39c40
call fcn.0052d5f0
mov dword [ebp - 0x30], eax
jmp 0x6ed212
mov edi, dword [ebp - 0x20]
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
xor edi, edi
cmp ecx, 8
jb 0x6ed1d3
xor edi, edi
cmp ecx, 0x20
jb 0x6ed19a
mov edi, ecx
and edi, 0x7fffffe0
xor ebx, ebx
nop word cs:[eax + eax]
movaps xmm0, xmmword [ebx + 0xabe450]
movaps xmm1, xmmword [ebx + 0xabe460]
xorps xmm0, xmmword [ebx + 0xb39c40]
xorps xmm1, xmmword [ebx + 0xb39c50]
movaps xmmword [ebx + 0xb39c40], xmm0
movaps xmmword [ebx + 0xb39c50], xmm1
add ebx, 0x20
cmp edi, ebx
jne 0x6ed160
cmp ecx, edi
je 0x6ed1e4
test cl, 0x18
je 0x6ed1d3
mov ebx, edi
mov edi, ecx
and edi, 0x7ffffff8
nop word cs:[eax + eax]
movsd xmm0, qword [ebx + 0xb39c40]
movsd xmm1, qword [ebx + 0xabe450]
xorps xmm1, xmm0
movlps qword [ebx + 0xb39c40], xmm1
add ebx, 8
cmp edi, ebx
jne 0x6ed1b0
jmp 0x6ed1e0
mov al, byte [edi + 0xabe450]
xor byte [edi + 0xb39c40], al
inc edi
cmp ecx, edi
jne 0x6ed1d3
xchg byte [0xb39c44], ah
mov edi, dword [ebp - 0x2c]
movzx eax, byte [0xb39c42]
mov ecx, dword [ebp - 0x30]
mov byte [ecx + 2], al
movzx eax, word [0xb39c40]
mov word [ecx], ax
mov byte [esi + edx], 0
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x48]
mov edi, dword [eax]
mov dword [0xb39d38], 0x2137e1ed
mov eax, dword [0xb53344]
mov ecx, dword [ebp - 0x38]
add eax, dword [edi + ecx]
cmp eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
jbe 0x6ed23c
mov eax, dword [ebp - 0x20]
mov edi, dword [edi + eax]
jmp 0x6ed23f
add edi, dword [ebp - 0x20]
xor ebx, 0x3a270a3d
mov eax, dword [0xb39e54]
mov esi, dword [0xb39e30]
sub esi, dword [ebp - 0x34]
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xb0836c]
mov ecx, edi
mov edx, ebx
call esi
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov esi, edx
sub esi, ecx
cmp esi, eax
jae 0x6ed2a1
mov dword [ebp - 0x10], 2
sub esp, 0x10
movzx ecx, byte [ebp - 0x70]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp], eax
mov ecx, ebx
call fcn.0052d5f0
jmp 0x6ed2c0
mov esi, eax
add esi, ecx
mov dword [ebx + 0x10], esi
cmp edx, dword [ebp - 0x28]
jbe 0x6ed2af
mov ebx, dword [ebx]
add ecx, ebx
push eax
push edi
push ecx
call fcn.0077cce0
add esp, 0xc
mov byte [ebx + esi], 0
mov edx, dword [ebp - 0x44]
mov dword [ebp + edx - 0x70], 0
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax - 0x70], 0
mov edi, dword [ebp + edx - 0x8c]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
cmp dword [ebp + eax - 0x8c], ecx
jbe 0x6ed2f6
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp + eax - 0x8c]
mov eax, dword [ebp - 0x20]
lea esi, [eax + ebp]
add esi, 0xffffff90
cmp edi, dword [ebp - 0x4c]
mov dword [ebp - 0x20], esi
jae 0x6ed330
movups xmm0, xmmword [ebx]
movups xmmword [esi], xmm0
mov dword [ebp + edx - 0x70], edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [ebp + eax - 0x70], ecx
mov dword [ebp - 0x70], 0x799e70
mov dword [ebp - 0x10], 3
mov edx, esi
jmp 0x6ed3c5
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x48], edi
mov eax, edi
or eax, dword [ebp - 0x28]
cmp eax, 0x7fffffff
mov edx, 0x7fffffff
cmovb edx, eax
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0xb48259ea
mov dword [ebp - 0x10], 2
cmp edx, eax
mov dword [ebp - 0x4c], edx
jbe 0x6ed388
xor ecx, 0xb4825630
add ecx, edx
call fcn.0053d610
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov edx, eax
xor edx, 0xb4825637
add edx, ecx
xor eax, 0x4b7da9f4
and eax, edx
mov dword [eax - 4], ecx
jmp 0x6ed390
lea ecx, [edx + 1]
call fcn.0053d610
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x48]
mov dword [edi], eax
lea ecx, [ebx + ebx]
sub ecx, ebx
inc ecx
push ecx
push dword [ebp - 0x30]
push eax
call fcn.0077cce0
add esp, 0xc
mov dword [ebp + esi - 0x70], ebx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp + eax - 0x70], ecx
mov dword [ebp - 0x70], 0x799e70
mov edx, dword [edi]
mov ecx, dword [ebp - 0x50]
add ecx, 4
mov dword [ebp - 0x10], 3
call fcn.0055d910
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax - 0x70]
cmp eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
jbe 0x6ed44f
mov esi, dword [ecx]
lea edi, [eax + 1]
mov ecx, edx
xor ecx, 0xb48259eb
cmp edi, ecx
jbe 0x6ed427
mov ecx, dword [esi - 4]
mov edi, edx
xor edx, 0x4b7da9e8
add edx, esi
sub edx, ecx
mov esi, edi
xor esi, 0xb4825634
cmp edx, esi
jae 0x6ed4fa
mov edx, edi
xor edx, 0xb4825630
add eax, edx
mov edi, eax
mov esi, ecx
mov eax, dword [0xb39e50]
mov ebx, dword [0xb39e20]
sub ebx, dword [ebp - 0x34]
add ebx, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, esi
mov edx, edi
call ebx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp + eax - 0x8c]
cmp eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
jbe 0x6ed4dd
mov esi, dword [ecx]
lea edi, [eax + 1]
mov ecx, edx
xor ecx, 0xb48259eb
cmp edi, ecx
jbe 0x6ed4b8
mov ecx, esi
not ecx
xor edx, 0x4b7da9e8
mov edi, edx
and edi, ecx
mov ebx, dword [ebp - 0x3c]
and ebx, esi
or ebx, edi
mov edi, dword [ebp - 0x24]
and ecx, dword [ebp - 0x3c]
xor edx, esi
or ecx, edx
mov esi, dword [esi - 4]
not ecx
lea ecx, [ebx + ecx*2]
sub ecx, esi
mov edx, edi
xor edx, 0xb4825634
cmp ecx, edx
jae 0x6ed506
xor edi, 0xb4825630
add eax, edi
mov dword [ebp - 0x10], 0xffffffff
mov edi, eax
mov eax, dword [0xb39e50]
mov ebx, dword [0xb39e20]
sub ebx, dword [ebp - 0x34]
add ebx, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, esi
mov edx, edi
call ebx
movzx eax, byte [ebp - 0x3d]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
and al, 1
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [ebp - 0x10], 0
call fcn.00748ef1
mov dword [ebp - 0x10], 1
call fcn.00748ef1
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.0077ccd0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
mov eax, dword [0xb39e44]
mov esi, dword [0xb39e34]
sub esi, dword [ebp - 0x34]
add esi, eax
mov ecx, esi
call dword [0xb0836c]
lea ecx, [ebp - 0x70]
call esi
add esp, 0x10
pop ebp
ret