Function at 0x6fb1231e
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [0x6fa6c370]
and dword [ebp - 0x64], 0
and dword [ebp - 0x60], 0
and edi, eax
pop ecx
mov ecx, dword [ebp - 0xe0]
and ecx, eax
mov dword [ebp - 0x68], edi
add ecx, esi
mov dword [ebp - 0x78], ecx
mov eax, esi
sub eax, edx
mov dword [ebp - 0xfc], eax
jne 0x6fb123ba
xor ebx, ebx
test edi, edi
jbe 0x6fb1262d
mov esi, 0x9bf05f07
mov edi, 0x640fa0f9
mov ecx, 0x7fffffff
mov edx, esi
mov eax, dword [ebp - 0x78]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
inc ebx
cmp ebx, dword [ebp - 0x68]
jb 0x6fb12364
jmp 0x6fb1262d
lea eax, [edi + ecx]
mov edx, dword [0x6fa6003c]
lea edx, [edx + 0x6fa600a0]
sub ecx, esi
mov dword [ebp - 0x6c], eax
mov eax, dword [edx]
add eax, esi
mov edx, dword [edx + 4]
mov dword [ebp - 0x68], edx
mov esi, ecx
mov edx, ecx
add ecx, edi
mov edi, ecx
and edi, ebx
sub ecx, edi
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0x68]
and esi, ebx
add ecx, eax
mov dword [ebp - 0xf4], edi
mov ebx, eax
sub edx, esi
mov dword [ebp - 0xec], ecx
cmp eax, ecx
je 0x6fb12410
cmp dword [ebx], esi
jae 0x6fb12410
add ebx, dword [ebx + 4]
cmp ebx, ecx
jne 0x6fb12405
xor eax, eax
cmp ebx, ecx
je 0x6fb1243b
cmp dword [ebx], esi
jne 0x6fb1243b
mov esi, dword [ebx + 4]
sub esi, 8
shr esi, 1
je 0x6fb1243b
lea ecx, [ebx + 8]
movzx edi, word [ecx]
and edi, 0xfff
cmp edi, edx
jae 0x6fb1243b
inc eax
inc ecx
inc ecx
cmp eax, esi
jne 0x6fb12427
mov edi, 0x640fa0f9
mov ecx, 0x7fffffff
mov esi, 0x9bf05f07
jmp 0x6fb12452
mov eax, dword [ebp - 0xe4]
cmp ebx, dword [ebp - 0xec]
je 0x6fb125cf
mov edx, dword [ebp - 0xf4]
cmp dword [ebx], edx
ja 0x6fb125cf
mov edx, dword [ebx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp eax, edx
jne 0x6fb12499
add ebx, dword [ebx + 4]
cmp ebx, dword [ebp - 0xec]
je 0x6fb125cf
mov eax, dword [ebp - 0xf4]
cmp dword [ebx], eax
ja 0x6fb125cf
xor eax, eax
jmp 0x6fb1246c
mov edx, dword [ebp - 0xf4]
cmp dword [ebx], edx
jne 0x6fb124ba
movzx edx, word [ebx + eax*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0xf0]
jae 0x6fb125cf
mov edx, eax
inc eax
mov dword [ebp - 0xe4], eax
mov eax, 0xf000
test word [ebx + edx*2 + 8], ax
je 0x6fb1244c
movzx eax, word [ebx + edx*2 + 8]
mov edx, dword [ebx]
and dword [ebp - 0x5c], 0
and eax, 0xfff
lea eax, [eax + edx + 0x6fa60000]
mov dword [ebp - 0x68], eax
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0xd0], eax
je 0x6fb12554
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x78]
movzx eax, byte [eax + edx]
mov edx, esi
sub eax, edi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0xd0]
jb 0x6fb124f8
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
sub eax, dword [ebp - 0xfc]
and dword [ebp - 0x5c], 0
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x5c]
mov edx, esi
movzx eax, byte [ebp + eax - 0xd0]
sub eax, edi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], 4
mov dword [ebp - 0x60], eax
jb 0x6fb12569
mov eax, dword [ebp - 0x68]
add eax, 4
mov dword [ebp - 0x78], eax
jmp 0x6fb1244c
xor ebx, ebx
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x6c], eax
je 0x6fb1262d
mov edx, esi
mov eax, dword [ebp - 0x78]
movzx eax, byte [eax + ebx]
sub eax, edi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc ebx
mov dword [ebp - 0x60], eax
cmp ebx, dword [ebp - 0x6c]
jb 0x6fb125dc
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x64]
mov byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x10
jb 0x6fb12631
mov eax, 0xcbe0700e
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x110], eax
mov eax, dword [0x6fb3fedc]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x10c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x13c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x128], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x114], ecx
lea ecx, [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0xc4]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0x124], edi
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x6c], eax
push 0x10
lea edi, [ebp - 0xbc]
pop ecx
lea esi, [ebp - 0x13c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0x68], 3
lea edi, [edx + esi]
mov ebx, dword [ebp - 0xb8]
rol edi, 7
xor eax, edi
lea edi, [esi + eax]
rol edi, 9
xor ecx, edi
lea edi, [eax + ecx]
rol edi, 0xd
xor edx, edi
lea edi, [ecx + edx]
ror edi, 0xe
xor esi, edi
mov edi, dword [ebp - 0xa8]
add ebx, edi
rol ebx, 7
xor dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0x98]
add edi, ebx
rol edi, 9
xor dword [ebp - 0x88], edi
mov edi, ebx
mov ebx, dword [ebp - 0x88]
add ebx, edi
mov edi, dword [ebp - 0x88]
rol ebx, 0xd
xor dword [ebp - 0xb8], ebx
mov ebx, dword [ebp - 0xb8]
add edi, ebx
ror edi, 0xe
mov ebx, dword [ebp - 0x94]
xor dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0xa4]
add edi, ebx
rol edi, 7
xor dword [ebp - 0x84], edi
mov edi, ebx
mov ebx, dword [ebp - 0x84]
add edi, ebx
rol edi, 9
xor dword [ebp - 0xb4], edi
mov edi, ebx
mov ebx, dword [ebp - 0xb4]
add ebx, edi
mov edi, dword [ebp - 0xb4]
rol ebx, 0xd
xor dword [ebp - 0xa4], ebx
mov ebx, dword [ebp - 0xa4]
add edi, ebx
ror edi, 0xe
mov ebx, dword [ebp - 0x80]
xor dword [ebp - 0x94], edi
mov edi, dword [ebp - 0x90]
add edi, ebx
rol edi, 7
xor dword [ebp - 0xb0], edi
mov edi, ebx
mov ebx, dword [ebp - 0xb0]
add edi, ebx
rol edi, 9
xor dword [ebp - 0xa0], edi
mov edi, ebx
mov ebx, dword [ebp - 0xa0]
add ebx, edi
mov edi, dword [ebp - 0xa0]
rol ebx, 0xd
xor dword [ebp - 0x90], ebx
mov ebx, dword [ebp - 0x90]
add edi, ebx
ror edi, 0xe
xor dword [ebp - 0x80], edi
mov edi, dword [ebp - 0xb0]
add edi, esi
rol edi, 7
xor dword [ebp - 0xb8], edi
mov edi, dword [ebp - 0xb8]
add edi, esi
rol edi, 9
xor dword [ebp - 0xb4], edi
mov edi, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0xb4]
add ebx, edi
rol ebx, 0xd
mov edi, dword [ebp - 0xb4]
xor dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 0xb0]
add ebx, edi
mov edi, dword [ebp - 0xa8]
add edi, eax
ror ebx, 0xe
xor esi, ebx
rol edi, 7
xor dword [ebp - 0xa4], edi
mov edi, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xa4]
add ebx, edi
mov edi, dword [ebp - 0xa4]
rol ebx, 9
xor dword [ebp - 0xa0], ebx
mov ebx, dword [ebp - 0xa0]
add ebx, edi
rol ebx, 0xd
mov edi, dword [ebp - 0xa0]
xor eax, ebx
add edi, eax
mov ebx, dword [ebp - 0x98]
ror edi, 0xe
xor dword [ebp - 0xa8], edi
mov edi, dword [ebp - 0x94]
add edi, ebx
rol edi, 7
xor dword [ebp - 0x90], edi
mov ebx, dword [ebp - 0x90]
mov edi, dword [ebp - 0x94]
add ebx, edi
mov edi, dword [ebp - 0x90]
rol ebx, 9
xor ecx, ebx
mov ebx, dword [ebp - 0x84]
add edi, ecx
rol edi, 0xd
xor dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x98]
add edi, ecx
ror edi, 0xe
xor dword [ebp - 0x94], edi
mov edi, dword [ebp - 0x80]
add edi, ebx
rol edi, 7
xor edx, edi
mov edi, dword [ebp - 0x80]
add edi, edx
rol edi, 9
xor dword [ebp - 0x88], edi
mov edi, dword [ebp - 0x88]
add edi, edx
rol edi, 0xd
xor dword [ebp - 0x84], edi
mov edi, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x84]
add ebx, edi
ror ebx, 0xe
xor dword [ebp - 0x80], ebx
dec dword [ebp - 0x68]
jne 0x6fb12712
mov dword [ebp - 0x8c], edx
xor edx, edx
push 0x40
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xbc], esi
pop ebx
xor eax, eax
mov ecx, dword [ebp + eax - 0x13c]
add dword [ebp + eax - 0xbc], ecx
add eax, 4
cmp eax, ebx
jl 0x6fb12975
lea esi, [ebp - 0xbc]
lea edi, [ebp - 0x44]
inc dword [ebp - 0x11c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0xc0], ebx
jbe 0x6fb129dc
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x6c]
lea edi, [esi + eax]
lea ecx, [ebp + edx - 0x44]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x55], al
mov byte [esi + ecx], al
inc edx
cmp edx, ebx
jb 0x6fb129af
sub dword [ebp - 0xc0], ebx
add dword [ebp - 0x74], ebx
add esi, ebx
add dword [ebp - 0xd4], ebx
mov dword [ebp - 0x5c], esi
jmp 0x6fb126e2
cmp dword [ebp - 0xc0], edx
jbe 0x6fb12a0c
lea eax, [ebp - 0x44]
mov edi, dword [ebp - 0x74]
mov esi, dword [ebp - 0xd4]
sub esi, eax
sub edi, eax
lea ecx, [ebp + edx - 0x44]
mov al, byte [ecx + esi]
xor al, byte [ecx]
xor byte [ebp - 0x55], al
inc edx
mov byte [ecx + edi], al
cmp edx, dword [ebp - 0xc0]
jb 0x6fb129f4
mov edi, dword [ebp - 0xc8]
mov esi, 0x6fa60000
mov ebx, 0xfffff000
movzx eax, byte [ebp - 0x55]
mov ecx, dword [ebp - 0x70]
movzx ecx, byte [ecx + 8]
sub eax, ecx
je 0x6fb12ab8
call 0x6fb85688
mov edi, eax
mov eax, dword [ebp - 0xd8]
mov dword [eax + 8], 0x6fa95b1e
mov edx, 0xffff
lea ecx, [eax + 0xc]
and ecx, 0xfffffffc
and edi, ebx
lea esi, [ecx + 0xfff]
and esi, ebx
xor eax, eax
mov ebx, dword [0x6fb3f040]
imul ebx, ebx, 0x343fd
add ebx, 0x269ec3
mov dword [0x6fb3f040], ebx
shr ebx, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, ebx
test edx, edx
jne 0x6fb12a5a
mov ebx, 0xffff
div ebx
mov dword [ebp - 0x150], edi
mov eax, ecx
inc edx
cmp ecx, esi
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x6c], 0
jae 0x6fb12aae
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
add eax, 4
cmp eax, esi
jb 0x6fb12aa2
mov eax, 0x6fa95b1e
jmp 0x6fb12ba2
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0xc4]
mov ecx, dword [0x6fa6c370]
mov dword [ebp - 0xc8], eax
sub esi, ecx
mov dword [ebp - 0x70], esi
jne 0x6fb12adf
test eax, eax
je 0x6fb12b8a
mov esi, dword [ebp - 0xc4]
mov ecx, dword [0x6fa64370]
mov eax, dword [ebp - 0x7c]
sub esi, dword [ebp - 0xcc]
add eax, edi
xor edi, edi
dec ecx
mov dword [ebp - 0x6c], eax
js 0x6fb12b26
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x6fa64374]
and edx, 0xfffffff
cmp dword [ebp - 0x7c], edx
jae 0x6fb12b1d
lea ecx, [eax - 1]
jmp 0x6fb12b22
jbe 0x6fb12b2a
lea edi, [eax + 1]
cmp ecx, edi
jge 0x6fb12afe
mov ebx, edi
jmp 0x6fb12b82
mov ebx, eax
jmp 0x6fb12b82
mov eax, dword [ebx*4 + 0x6fa64374]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x6c]
jae 0x6fb12b8a
lea edi, [ecx + esi + 0x6fa60000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x6fb12b72
dec ecx
je 0x6fb12b6a
dec ecx
jne 0x6fb12b7b
mov edx, dword [ebp - 0x70]
jmp 0x6fb12b7b
mov edx, dword [ebp - 0xc8]
jmp 0x6fb12b7b
mov edx, dword [ebp - 0x70]
sub edx, dword [ebp - 0xc8]
dec eax
dec eax
jne 0x6fb12b81
add dword [edi], edx
inc ebx
cmp ebx, dword [0x6fa64370]
jb 0x6fb12b2e
mov eax, dword [0x6faa7b94]
mov eax, 0xb1b918cd
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xf8]
add eax, ecx
mov ecx, dword [ebp - 0xd8]
mov dword [ecx + 8], eax
mov esi, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x150]
mov edi, dword [ebp - 0x148]
mov eax, dword [ebp - 0x144]
invalid
dec dword [ebx - 0x3c62a21b]