Function at 0x6355a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb0
mov eax, dword [0xa470b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x10]
push ebx
mov dword [ebp - 0x94], eax
xor ebx, ebx
mov eax, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x24]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x98], ebx
push edi
test eax, eax
jne 0x6355f4
call fcn.006064f0
mov dword [ebp - 0x90], eax
test esi, esi
push eax
cmove esi, eax
mov dword [ebp - 0xa8], esi
call fcn.00630a80
mov esi, dword [ebp + 0x14]
mov edi, eax
add esp, 4
mov dword [ebp - 0xa4], edi
lea ecx, [edi*2 + 2]
cmp esi, ecx
jb 0x635938
sub esi, edi
dec esi
push esi
mov dword [ebp + 0x14], esi
call fcn.00652e5f
mov ebx, eax
add esp, 4
mov dword [ebp - 0xa0], ebx
test ebx, ebx
jne 0x63564e
push 0x1e1
push 0x9dfe88
push 0x41
jmp 0x635947
push dword [ebp - 0xa8]
mov eax, dword [ebp - 0x94]
inc eax
add eax, edi
push esi
push eax
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x44]
push edi
push eax
call fcn.00634c00
add esp, 0x14
test eax, eax
jne 0x635953
xor edx, edx
test edi, edi
je 0x635716
cmp edi, 0x10
jb 0x6356f1
mov ecx, dword [ebp - 0x94]
lea esi, [ebp - 0x44]
inc ecx
lea eax, [ecx - 1]
add eax, edi
cmp esi, eax
mov esi, dword [ebp + 0x14]
ja 0x6356a7
lea eax, [ebp + edi - 0x45]
cmp eax, ecx
jae 0x6356f1
mov eax, edi
mov dword [ebp - 0x88], edi
and eax, 0xf
sub dword [ebp - 0x88], eax
lea eax, [ebp - 0x44]
mov esi, eax
sub ecx, esi
mov dword [ebp - 0x9c], ecx
mov ecx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x9c]
movdqu xmm0, xmmword [eax]
add edx, 0x10
lea eax, [eax + 0x10]
movdqu xmm1, xmmword [esi + eax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [eax - 0x10], xmm1
cmp edx, ecx
jb 0x6356d1
mov esi, dword [ebp + 0x14]
cmp edx, edi
jae 0x635716
mov ebx, dword [ebp - 0x94]
lea ecx, [ebp - 0x44]
inc ebx
sub ebx, ecx
lea ecx, [ebp - 0x44]
add ecx, edx
inc edx
mov al, byte [ebx + ecx]
xor byte [ecx], al
cmp edx, edi
jb 0x635701
mov ebx, dword [ebp - 0xa0]
push dword [ebp - 0xa8]
lea eax, [ebp - 0x44]
push edi
push eax
push esi
push ebx
call fcn.00634c00
add esp, 0x14
test eax, eax
jne 0x635953
xor edx, edx
test esi, esi
je 0x6357d8
cmp esi, 0x10
jb 0x6357a8
mov ecx, dword [ebp - 0x8c]
lea eax, [ecx - 1]
add eax, esi
cmp ebx, eax
ja 0x63575e
mov eax, ecx
lea ecx, [ebx - 1]
add ecx, esi
cmp ecx, eax
jae 0x6357ae
mov ecx, eax
mov eax, esi
mov dword [ebp - 0x88], esi
and eax, 0xf
sub dword [ebp - 0x88], eax
sub ecx, ebx
mov dword [ebp - 0x9c], ecx
mov eax, ebx
mov ecx, dword [ebp - 0x88]
mov edi, dword [ebp - 0x9c]
movdqu xmm1, xmmword [edi + eax]
add edx, 0x10
lea eax, [eax + 0x10]
movdqu xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [eax - 0x10], xmm1
cmp edx, ecx
jb 0x635785
mov edi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x8c]
cmp edx, esi
jae 0x6357d8
sub eax, ebx
lea ecx, [edx + ebx]
mov edi, esi
mov dword [ebp - 0x8c], eax
sub edi, edx
mov esi, eax
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
dec edi
jne 0x6357c3
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp - 0xa4]
push 0
push dword [ebp - 0x90]
lea eax, [ebp - 0x84]
push 0
push eax
push dword [ebp + 0x1c]
push dword [ebp - 0xb0]
call fcn.006065c0
add esp, 0x18
test eax, eax
je 0x635953
push edi
lea eax, [ebp - 0x84]
push eax
push ebx
call fcn.005fa130
mov ecx, dword [ebp - 0x94]
add esp, 0xc
mov edx, 1
mov dword [ebp - 0x88], edx
movzx ecx, byte [ecx]
or eax, ecx
mov dword [ebp - 0x90], eax
cmp edi, esi
jae 0x6358c0
mov bl, byte [edi + ebx]
mov cl, bl
not bl
xor cl, 1
not cl
mov al, cl
shr al, 4
and cl, al
mov al, cl
shr al, 2
and cl, al
movzx eax, cl
mov edx, eax
shr edx, 1
and edx, eax
mov al, bl
shr al, 4
mov ecx, edx
and ecx, dword [ebp - 0x88]
and bl, al
dec ecx
mov al, bl
shr al, 2
and bl, al
mov eax, ecx
and ecx, dword [ebp - 0x98]
not eax
and eax, edi
inc edi
or eax, ecx
mov dword [ebp - 0x98], eax
lea eax, [edx - 1]
mov edx, dword [ebp - 0x88]
and edx, eax
movzx eax, bl
mov ebx, dword [ebp - 0xa0]
mov ecx, eax
shr ecx, 1
and ecx, eax
mov dword [ebp - 0x88], edx
mov eax, dword [ebp - 0x90]
not ecx
and ecx, edx
or eax, ecx
mov dword [ebp - 0x90], eax
cmp edi, esi
jb 0x635837
or edx, eax
jne 0x635938
mov eax, dword [ebp - 0x98]
inc eax
sub esi, eax
cmp dword [ebp + 0xc], esi
jae 0x635909
push 0x212
push 0x9dfe88
push 0x6e
push 0x70
push 4
call fcn.005edd10
add esp, 0x14
or esi, 0xffffffff
push ebx
call fcn.00652e27
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00654228
mov esp, ebp
pop ebp
ret
push esi
lea ecx, [eax + ebx]
push ecx
push dword [ebp - 0xac]
call fcn.00654750
add esp, 0xc
push ebx
call fcn.00652e27
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00654228
mov esp, ebp
pop ebp
ret
push 0x21f
push 0x9dfe88
push 0x80
push 0x70
push 4
call fcn.005edd10
add esp, 0x14
push ebx
call fcn.00652e27
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
or eax, 0xffffffff
pop edi
pop esi
pop ebx
call fcn.00654228
mov esp, ebp
pop ebp
ret