Function at 0x435750
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x118
mov al, byte [esp + 0x40]
mov byte [esp + 0x44], al
mov byte [esp + 0x100], 6
mov byte [esp + 0x101], 5
mov byte [esp + 0x102], 4
mov byte [esp + 0x103], 0x43
lea eax, [esp + 0x100]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408bf0
xor esi, esi
movzx edi, byte [esp + esi + 0x100]
mov eax, esi
add eax, 0xd633e781
mov dword [esp + 0xc8], eax
mov ecx, edi
not ecx
mov edx, edi
and edx, 0xffffffea
mov ebx, ecx
and ebx, 0x12ebdb15
or edx, ebx
xor edx, 0x12ebdb15
mov ebx, edx
add ebx, ebx
not ebx
add edx, ebx
and edx, eax
mov ebx, edx
add ebx, ebx
not ebx
add edx, ebx
mov eax, 0x29cc187e
sub eax, esi
and ecx, 0x8b18e120
and edi, 0xffffffdf
or ecx, edi
mov edi, ecx
xor edi, 0x74e71edf
mov ebx, eax
add ebx, ebx
not ebx
add eax, ebx
and eax, dword [esp + 0xc8]
or edi, eax
not edi
xor ecx, 0x8b18e120
not eax
and ecx, eax
or ecx, edi
mov eax, edx
add eax, eax
not eax
mov edi, edx
add edi, eax
and edi, 0xb82b98f9
and edx, 0x47d46706
or edi, edx
xor edi, 0x47d46706
or edi, ecx
mov dword [esp + 0xe8], edi
mov eax, dword [esp + 0xe8]
mov edx, eax
shl edx, 1
mov edi, edx
and edi, 0xe
and edx, 0xf0
mov ecx, pe_nt_image_headers32
sub ecx, eax
add ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + esi + 0x100], cl
mov eax, esi
shl eax, 1
and eax, 2
xor esi, 1
add esi, eax
cmp esi, 0xd
jb 0x4357ad
mov al, byte [esp + 0x3c]
mov byte [esp + 0x48], al
mov byte [esp + 0xb0], 6
mov byte [esp + 0xb1], 5
mov byte [esp + 0xb2], 4
mov byte [esp + 0xb3], 0x43
lea eax, [esp + 0xb0]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408bf0
xor esi, esi
movzx edi, byte [esp + esi + 0xb0]
mov eax, esi
add eax, 0xd633e781
mov dword [esp + 0xc4], eax
mov ecx, edi
not ecx
mov edx, edi
and edx, 0xffffffea
mov ebx, ecx
and ebx, 0x12ebdb15
or edx, ebx
xor edx, 0x12ebdb15
mov ebx, edx
add ebx, ebx
not ebx
add edx, ebx
and edx, eax
mov ebx, edx
add ebx, ebx
not ebx
add edx, ebx
mov eax, 0x29cc187e
sub eax, esi
and ecx, 0x8b18e120
and edi, 0xffffffdf
or ecx, edi
mov edi, ecx
xor edi, 0x74e71edf
mov ebx, eax
add ebx, ebx
not ebx
add eax, ebx
and eax, dword [esp + 0xc4]
or edi, eax
not edi
xor ecx, 0x8b18e120
not eax
and ecx, eax
or ecx, edi
mov eax, edx
add eax, eax
not eax
mov edi, edx
add edi, eax
and edi, 0xb82b98f9
and edx, 0x47d46706
or edi, edx
xor edi, 0x47d46706
or edi, ecx
mov dword [esp + 0xec], edi
mov eax, dword [esp + 0xec]
mov edx, eax
shl edx, 1
mov edi, edx
and edi, 0xe
and edx, 0xf0
mov ecx, pe_nt_image_headers32
sub ecx, eax
add ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + esi + 0xb0], cl
mov eax, esi
shl eax, 1
and eax, 2
xor esi, 1
add esi, eax
cmp esi, 0xd
jb 0x4358de
mov eax, dword [esp + 0xb0]
xor ecx, ecx
cpuid
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov esi, dword [esp + 0x68]
mov al, byte [esp + 0x38]
mov byte [esp + 0x4c], al
mov byte [esp + 0xa0], 0xc8
mov byte [esp + 0xa1], 0xd6
mov byte [esp + 0xa2], 0xd5
mov byte [esp + 0xa3], 0xcd
lea eax, [esp + 0xa0]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00408bf0
xor eax, eax
movzx edi, byte [esp + eax + 0xa0]
mov ecx, eax
add ecx, 0x381a0abb
mov ebx, edi
xor ebx, 0xbc
mov edx, edi
or edx, 0x43
and edx, ebx
mov ebx, 0x47e5f544
sub ebx, eax
and ebx, 0xaaeda3bc
and ecx, 0x55125c43
and edi, 0xffffffbc
xor edi, 0xaaeda3bc
or edx, edi
or ebx, ecx
xor edx, ebx
mov dword [esp + 0xf0], edx
mov ecx, dword [esp + 0xf0]
add cl, 0xe3
mov byte [esp + eax + 0xa0], cl
add eax, 1
cmp eax, 0x10
jne 0x435a2e
mov eax, dword [esp + 0xa0]
mov cl, 1
cmp esi, eax
je 0x435f24
mov eax, dword [esp + 0x68]
mov cl, byte [esp + 0x34]
mov byte [esp + 0x50], cl
mov byte [esp + 0x18], 0x4b
mov byte [esp + 0x19], 0x4c
mov byte [esp + 0x1a], 0x58
mov byte [esp + 0x1b], 0x4e
mov word [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
movzx ecx, byte [esp + 0x18]
xor ecx, 0x6d1ae669
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x18], cl
movzx ecx, byte [esp + 0x19]
xor ecx, 0x6d1ae66a
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x19], cl
movzx ecx, byte [esp + 0x1a]
xor ecx, 0x6d1ae66b
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1a], cl
movzx ecx, byte [esp + 0x1b]
xor ecx, 0x6d1ae66c
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1b], cl
movzx ecx, byte [esp + 0x1c]
xor ecx, 0x6d1ae66d
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1c], cl
movzx ecx, byte [esp + 0x1d]
xor ecx, 0x6d1ae66e
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1d], cl
movzx ecx, byte [esp + 0x1e]
xor ecx, 0x6d1ae66f
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1e], cl
movzx ecx, byte [esp + 0x1f]
xor ecx, 0x6d1ae670
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x1f], cl
movzx ecx, byte [esp + 0x20]
xor ecx, 0x6d1ae671
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x20], cl
movzx ecx, byte [esp + 0x21]
xor ecx, 0x6d1ae672
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x21], cl
movzx ecx, byte [esp + 0x22]
xor ecx, 0x6d1ae673
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x22], cl
movzx ecx, byte [esp + 0x23]
xor ecx, 0x6d1ae674
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x23], cl
movzx ecx, byte [esp + 0x24]
xor ecx, 0x6d1ae675
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x24], cl
movzx ecx, byte [esp + 0x25]
xor ecx, 0x6d1ae676
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x21
mov byte [esp + 0x25], cl
mov cl, 1
cmp eax, dword [esp + 0x18]
je 0x435f24
mov eax, dword [esp + 0x68]
mov dword [esp + 0xdc], eax
mov al, byte [esp + 0x30]
mov byte [esp + 0x54], al
mov byte [esp + 0x90], 0x9a
mov byte [esp + 0x91], 0xe8
mov byte [esp + 0x92], 0xe8
mov byte [esp + 0x93], 0xfe
lea eax, [esp + 0x90]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xb
call fcn.00408bf0
xor edx, edx
movzx eax, byte [esp + edx + 0x90]
mov dword [esp + 0xcc], eax
mov ecx, edx
and ecx, 0x4903756
mov edi, edx
xor edi, 0xc4903756
lea esi, [edi + ecx*2]
mov edi, eax
not edi
mov ecx, esi
add ecx, ecx
not ecx
mov ebx, esi
add ebx, ecx
or ebx, edi
mov edi, ebx
not edi
mov eax, ebx
and eax, 2
mov ecx, eax
not ecx
add ebx, ecx
lea ecx, [ebx + ebx + 6]
not ecx
lea ebx, [ecx + ebx + 3]
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add ebx, edi
add esi, dword [esp + 0xcc]
mov eax, ebx
xor eax, esi
not ebx
and esi, ebx
add esi, esi
sub esi, eax
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0xf4]
add al, 0xa6
mov byte [esp + edx + 0x90], al
add edx, 1
cmp edx, 0xf
jne 0x435ca8
mov eax, dword [esp + 0x90]
mov cl, 1
cmp dword [esp + 0xdc], eax
je 0x435f24
mov eax, dword [esp + 0x68]
mov dword [esp + 0xe0], eax
mov al, byte [esp + 0x2c]
mov byte [esp + 0x58], al
mov byte [esp + 0x80], 0x76
mov byte [esp + 0x81], 0x5b
mov byte [esp + 0x82], 0x8d
mov byte [esp + 0x83], 0x93
lea eax, [esp + 0x80]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00408bf0
xor edi, edi
movzx ecx, byte [esp + edi + 0x80]
mov dword [esp + 0xd8], ecx
mov eax, edi
or eax, 0x7be6c683
mov edx, edi
and edx, 0x7be6c683
mov esi, eax
add esi, edx
lea edx, [eax + edx + 1]
not ecx
mov dword [esp + 0xd0], ecx
mov ecx, edx
not ecx
mov dword [esp + 0xd4], ecx
lea eax, [esi + esi + 2]
neg eax
lea ebx, [edi + eax + 0x7be6c683]
or ebx, ecx
mov esi, ebx
not esi
mov ecx, esi
and ecx, 0xfffffffd
mov eax, ebx
and eax, 2
imul eax, ecx
mov ecx, esi
and ecx, 2
or esi, 2
imul esi, ecx
add esi, eax
not esi
sub esi, ebx
mov eax, esi
dec eax
neg esi
mov ecx, dword [esp + 0xd0]
and esi, ecx
xor eax, ecx
add eax, ecx
sub eax, esi
mov ecx, dword [esp + 0xd8]
mov esi, dword [esp + 0xd4]
and esi, ecx
xor edx, ecx
add edx, ecx
sub edx, esi
and eax, edx
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0xf8]
mov eax, ecx
add eax, 0x66
mov edx, 1
sub edx, ecx
and edx, 2
and eax, 0xfd
sub eax, edx
mov byte [esp + edi + 0x80], al
add edi, 1
cmp edi, 0x10
jne 0x435da8
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0x80]
sete al
mov cl, 1
test al, 1
jne 0x435f24
jmp 0x435e93
mov esi, dword [esp + 0x68]
mov al, byte [esp + 0x28]
mov byte [esp + 0x5c], al
mov byte [esp + 0x70], 0xb9
mov byte [esp + 0x71], 0xa6
mov byte [esp + 0x72], 0xd0
mov byte [esp + 0x73], 0xdc
lea eax, [esp + 0x70]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 7
call fcn.00408bf0
xor eax, eax
movzx edx, byte [esp + eax + 0x70]
mov ecx, 0xfc3ccff0
sub ecx, eax
or ecx, edx
not ecx
mov edi, 0xf0
sub edi, eax
and edi, edx
or edi, ecx
mov dword [esp + 0xfc], edi
mov ecx, dword [esp + 0xfc]
mov edx, ecx
and edx, 1
xor ecx, 1
add ecx, 0x96
or ecx, edx
add ecx, edx
mov byte [esp + eax + 0x70], cl
add eax, 1
cmp eax, 0xb
jne 0x435ed6
cmp esi, dword [esp + 0x70]
sete cl
test cl, 1
jne 0x435f2b
jmp 0x435f3d
mov byte [esp + 0x17], 1
mov dword [esp + 0xe4], 1
jmp 0x435f4d
mov byte [esp + 0x17], 0
mov dword [esp + 0xe4], 1
mov al, byte [esp + 0x17]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret