Function at 0x4358f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf0
mov al, byte [esp + 0x28]
mov byte [esp + 0x2c], al
mov byte [esp + 0xd8], 0xb6
mov byte [esp + 0xd9], 0xb9
mov byte [esp + 0xda], 0xb8
mov byte [esp + 0xdb], 0xfb
lea eax, [esp + 0xd8]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0xd8]
mov edx, eax
add edx, 0x6617c917
lea esi, [eax + ecx + 0x6617c917]
and edx, ecx
add edx, edx
sub esi, edx
mov dword [esp + 0xbc], esi
mov ecx, dword [esp + 0xbc]
add cl, 0x5f
mov byte [esp + eax + 0xd8], cl
add eax, 1
cmp eax, 0xd
jne 0x43594d
mov al, byte [esp + 0x24]
mov byte [esp + 0x30], al
mov byte [esp + 0xa8], 0xb6
mov byte [esp + 0xa9], 0xb9
mov byte [esp + 0xaa], 0xb8
mov byte [esp + 0xab], 0xfb
lea eax, [esp + 0xa8]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0xa8]
mov edx, eax
add edx, 0x6617c917
lea esi, [eax + ecx + 0x6617c917]
and edx, ecx
add edx, edx
sub esi, edx
mov dword [esp + 0xc0], esi
mov ecx, dword [esp + 0xc0]
add cl, 0x5f
mov byte [esp + eax + 0xa8], cl
add eax, 1
cmp eax, 0xd
jne 0x4359d8
mov eax, dword [esp + 0xa8]
xor ecx, ecx
cpuid
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x60]
mov cl, byte [esp + 0x20]
mov byte [esp + 0x34], cl
mov byte [esp + 0x48], 0x5c
mov byte [esp + 0x49], 0x56
mov byte [esp + 0x4a], 0x51
mov byte [esp + 0x4b], 0x59
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x48]
mov esi, ecx
add esi, 0x6c398841
lea edi, [ecx + edx + 0x6c398841]
and esi, edx
add esi, esi
sub edi, esi
mov dword [esp + 0xc4], edi
mov edx, dword [esp + 0xc4]
add dl, 0x39
mov byte [esp + ecx + 0x48], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
cmp ecx, 0xc
jb 0x435a62
mov edx, dword [esp + 0x48]
mov cl, 1
cmp eax, edx
je 0x435d05
mov esi, dword [esp + 0x60]
mov al, byte [esp + 0x1c]
mov byte [esp + 0x38], al
mov byte [esp + 0x98], 0x8b
mov byte [esp + 0x99], 0x86
mov byte [esp + 0x9a], 0x86
mov byte [esp + 0x9b], 0xb4
lea eax, [esp + 0x98]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xa
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0x98]
mov edx, eax
add edx, 0x164a885e
lea edi, [eax + ecx + 0x164a885e]
and edx, ecx
add edx, edx
sub edi, edx
mov dword [esp + 0xc8], edi
mov ecx, dword [esp + 0xc8]
add cl, 0x6e
mov byte [esp + eax + 0x98], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0xe
jb 0x435b03
mov cl, 1
cmp esi, dword [esp + 0x98]
je 0x435d05
mov esi, dword [esp + 0x60]
mov al, byte [esp + 0x18]
mov byte [esp + 0x3c], al
mov byte [esp + 0x88], 0x4a
mov byte [esp + 0x89], 0x44
mov byte [esp + 0x8a], 0x74
mov byte [esp + 0x8b], 0x6e
lea eax, [esp + 0x88]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xa
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0x88]
mov edx, eax
add edx, 0x7930f064
lea edi, [eax + ecx + 0x7930f064]
and edx, ecx
add edx, edx
sub edi, edx
mov dword [esp + 0xcc], edi
mov ecx, dword [esp + 0xcc]
add cl, 0x44
mov byte [esp + eax + 0x88], cl
add eax, 1
cmp eax, 0xe
jne 0x435bab
mov cl, 1
cmp esi, dword [esp + 0x88]
je 0x435d05
mov esi, dword [esp + 0x60]
mov al, byte [esp + 0x14]
mov byte [esp + 0x40], al
mov byte [esp + 0x78], 0x5c
mov byte [esp + 0x79], 0x4b
mov byte [esp + 0x7a], 0x25
mov byte [esp + 0x7b], 0x3b
lea eax, [esp + 0x78]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0x78]
mov edx, eax
add edx, 0x3cbccb69
lea edi, [eax + ecx + 0x3cbccb69]
and edx, ecx
add edx, edx
sub edi, edx
mov dword [esp + 0xd0], edi
mov ecx, dword [esp + 0xd0]
add cl, 0x21
mov byte [esp + eax + 0x78], cl
add eax, 1
cmp eax, 0xd
jne 0x435c3a
cmp esi, dword [esp + 0x78]
sete al
mov cl, 1
test al, 1
jne 0x435d05
jmp 0x435c84
mov esi, dword [esp + 0x60]
mov al, byte [esp + 0x10]
mov byte [esp + 0x44], al
mov byte [esp + 0x68], 0x25
mov byte [esp + 0x69], 0x26
mov byte [esp + 0x6a], 0x3c
mov byte [esp + 0x6b], 0x10
lea eax, [esp + 0x68]
add eax, 4
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 9
call fcn.00408f10
xor eax, eax
movzx ecx, byte [esp + eax + 0x68]
mov edx, eax
add edx, 0x87e3ebed
lea edi, [eax + ecx - 0x781c1413]
and edx, ecx
add edx, edx
sub edi, edx
mov dword [esp + 0xd4], edi
mov ecx, dword [esp + 0xd4]
add cl, 0x85
mov byte [esp + eax + 0x68], cl
add eax, 1
cmp eax, 0xd
jne 0x435cc7
cmp esi, dword [esp + 0x68]
sete cl
test cl, 1
jne 0x435d0c
jmp 0x435d1e
mov byte [esp + 0xf], 1
mov dword [esp + 0xb8], 1
jmp 0x435d2e
mov byte [esp + 0xf], 0
mov dword [esp + 0xb8], 1
mov al, byte [esp + 0xf]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret