Function at 0x435297
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x178
mov eax, dword [ebp + 8]
movaps xmm0, xmmword [0x47e5e0]
push ebx
push esi
movzx ebx, byte [eax + 0xe]
mov esi, ecx
movzx ecx, byte [eax + 0xd]
mov dword [ebp + 8], ecx
movzx ecx, byte [eax + 0xc]
mov dword [ebp - 4], ecx
movzx ecx, byte [eax + 0xb]
mov dword [ebp - 0x2c], ecx
movzx ecx, byte [eax + 0xa]
mov dword [ebp - 0x30], ecx
movzx ecx, byte [eax + 9]
mov dword [ebp - 0x34], ecx
movzx ecx, byte [eax + 8]
mov dword [ebp - 0x38], ecx
movzx ecx, word [eax + 6]
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x3c], ecx
movaps xmm0, xmmword [0x47e8f0]
movzx ecx, word [eax + 4]
push edi
mov edi, edx
mov dword [ebp - 0x40], ecx
movzx edx, byte [eax + 0xf]
xor ecx, ecx
mov eax, dword [eax]
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x44], eax
movaps xmm0, xmmword [0x47e8e0]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0xab8ee4
mov al, byte [ebp - 0x78]
not al
xor byte [ebp + ecx - 0x77], al
inc ecx
cmp ecx, 0x32
jb 0x435319
push edx
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x77]
mov byte [ebp - 0x45], 0
push dword [ebp - 4]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x34
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov edx, edi
mov ecx, esi
call fcn.00435ce9
movaps xmm0, xmmword [0x47e9c0]
xor ebx, ebx
pop ecx
movups xmmword [ebp - 0x26], xmm0
mov byte [ebp - 0x16], bl
mov ecx, ebx
mov al, byte [ebp - 0x26]
not al
xor byte [ebp + ecx - 0x25], al
inc ecx
cmp ecx, 0xf
jb 0x435381
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x25]
push eax
mov byte [ebp - 0x16], bl
call edi
movaps xmm0, xmmword [0x47e9c0]
mov edx, eax
movups xmmword [ebp - 0x15], xmm0
mov byte [ebp - 5], bl
mov ecx, ebx
mov al, byte [ebp - 0x15]
not al
xor byte [ebp + ecx - 0x14], al
inc ecx
cmp ecx, 0xf
jb 0x4353b1
push edx
lea edx, [ebp - 0x14]
mov byte [ebp - 5], bl
mov ecx, esi
call fcn.00435da6
pop ecx
lea eax, [ebp - 0x178]
push eax
call edi
push eax
lea edx, [ebp - 0x178]
mov ecx, esi
call fcn.00435da6
pop ecx
push 0x3f
pop ebx
mov cl, bl
mov dword [ebp - 0xd], 0x818ee0e2
mov byte [ebp - 0xe], cl
xor eax, eax
mov dword [ebp - 9], 0xe2fd858d
mov byte [ebp - 5], 0
not cl
xor byte [ebp + eax - 0xd], cl
inc eax
cmp eax, 8
jae 0x435414
mov cl, byte [ebp - 0xe]
jmp 0x435403
lea eax, [ebp - 0xd]
mov byte [ebp - 5], 0
push eax
call edi
mov ecx, eax
mov byte [ebp - 0x1f], bl
mov dword [ebp - 0x1e], 0x818ee0e2
xor eax, eax
mov dword [ebp - 0x1a], 0xe2fd858d
mov byte [ebp - 0x16], 0
not bl
xor byte [ebp + eax - 0x1e], bl
inc eax
cmp eax, 8
jae 0x435448
mov bl, byte [ebp - 0x1f]
jmp 0x435437
push ecx
lea edx, [ebp - 0x1e]
mov byte [ebp - 0x16], 0
mov ecx, esi
call fcn.00435da6
pop ecx
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp + 0xc]
mov ecx, esi
push eax
call fcn.00435ce9
pop ecx
push 9
pop ebx
mov cl, bl
mov word [ebp + 9], 0xfcd4
mov byte [ebp + 8], cl
xor eax, eax
mov byte [ebp + 0xb], 0
not cl
xor byte [ebp + eax + 9], cl
inc eax
cmp eax, 2
jae 0x435492
mov cl, byte [ebp + 8]
jmp 0x435481
lea eax, [ebp + 9]
mov byte [ebp + 0xb], 0
push eax
call edi
mov byte [ebp - 4], bl
xor ecx, ecx
mov word [ebp - 3], 0xfcd4
mov byte [ebp - 1], 0
not bl
xor byte [ebp + ecx - 3], bl
inc ecx
cmp ecx, 2
jae 0x4354bc
mov bl, byte [ebp - 4]
jmp 0x4354ab
push eax
lea edx, [ebp - 3]
mov byte [ebp - 1], 0
mov ecx, esi
call fcn.00435da6
cmp dword [ebp + 0x18], 0
mov edx, dword [ebp + 0x10]
pop ecx
mov ecx, esi
je 0x4354e4
mov eax, dword [ebp + 0x14]
shr eax, 1
push eax
call fcn.00435ce9
jmp 0x4354ec
push dword [ebp + 0x14]
call fcn.00435da6
pop ecx
pop edi
pop esi
pop ebx
leave
ret