Function at 0x434b20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
xor ecx, ecx
cpuid
mov esi, edx
lea edi, [esp + 0x94]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ecx
add edi, 0xc
call fcn.00409640
mov dword [edi], esi
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x28]
mov byte [esp + 0x2c], cl
mov byte [esp + 0x60], 0x66
mov byte [esp + 0x61], 0x58
mov byte [esp + 0x62], 0x5d
mov byte [esp + 0x63], 0x61
mov word [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
jae 0x434c05
jmp 0x434bae
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x60]
mov esi, ecx
add esi, 0x256779c2
mov edi, edx
not edi
mov ebx, esi
or ebx, edi
and esi, edx
add ebx, esi
neg ebx
lea ecx, [ecx + ebx + 0x256779c1]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xa8]
add cl, 0xb2
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], cl
mov ecx, dword [esp + 4]
inc ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0xe
jb 0x434bae
jmp 0x434c05
cmp eax, dword [esp + 0x60]
sete al
mov cl, 1
test al, 1
jne 0x434ed4
jmp 0x434c18
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x24]
mov byte [esp + 0x30], cl
mov byte [esp + 0x80], 0x53
mov byte [esp + 0x81], 0xac
mov byte [esp + 0x82], 0xa0
mov byte [esp + 0x83], 0x4e
mov word [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xa
jae 0x434cc0
jmp 0x434c6f
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x80]
mov esi, ecx
add esi, 0xbe874a2d
add ecx, 0x2d
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xac], esi
mov ecx, dword [esp + 0xac]
add cl, 0xc5
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x80], cl
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, 0xa
jb 0x434c6f
jmp 0x434cc0
mov cl, 1
cmp eax, dword [esp + 0x80]
je 0x434ed4
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x20]
mov byte [esp + 0x34], cl
mov byte [esp + 0x70], 0x1a
mov byte [esp + 0x71], 0x28
mov byte [esp + 0x72], 0x48
mov byte [esp + 0x73], 0xbe
mov dword [esp + 0x77], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xb
jae 0x434d65
jmp 0x434d15
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x70]
mov esi, ecx
add esi, edx
add ecx, 0xbe
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0xad33f2be
mov dword [esp + 0xb0], esi
mov ecx, dword [esp + 0xb0]
add cl, 0xce
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x70], cl
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
cmp ecx, 0xb
jb 0x434d15
jmp 0x434d65
mov cl, 1
cmp eax, dword [esp + 0x70]
je 0x434ed4
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x38], cl
mov byte [esp + 0x50], 0xb0
mov byte [esp + 0x51], 0xbb
mov byte [esp + 0x52], 0x69
mov byte [esp + 0x53], 0x73
mov word [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
jae 0x434e1f
jmp 0x434dbe
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx esi, byte [esp + edx + 0x50]
mov edx, ecx
and edx, 0x111c37df
xor ecx, 0x911c37df
lea edx, [ecx + edx*2]
mov ecx, edx
add ecx, esi
and edx, esi
add edx, edx
mov esi, ecx
not esi
mov edi, edx
and edi, esi
not edx
and ecx, edx
sub ecx, edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb4]
add cl, 0xe7
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x50], cl
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, 0xe
jb 0x434dbe
jmp 0x434e1f
mov cl, 1
cmp eax, dword [esp + 0x50]
je 0x434ed4
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x18]
mov byte [esp + 0x3c], cl
mov byte [esp + 0x40], 0xa1
mov byte [esp + 0x41], 0xa0
mov byte [esp + 0x42], 0xaa
mov byte [esp + 0x43], 0x96
mov byte [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xd
jae 0x434ecd
jmp 0x434e76
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x40]
lea esi, [ecx + edx + 0x25da5dae]
add ecx, 0xae
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x3e
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x40], cl
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
cmp ecx, 0xd
jb 0x434e76
jmp 0x434ecd
cmp eax, dword [esp + 0x40]
sete cl
test cl, 1
jne 0x434edb
jmp 0x434eed
mov byte [esp + 3], 1
mov dword [esp + 0xa4], 1
jmp 0x434efd
mov byte [esp + 3], 0
mov dword [esp + 0xa4], 1
mov al, byte [esp + 3]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret