Function at 0x431e70
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, 0xc0
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
xor ecx, ecx
cpuid
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x28]
mov byte [esp + 0x2c], cl
mov byte [esp + 0x60], 0xc8
mov byte [esp + 0x61], 0xc6
mov byte [esp + 0x62], 0xc5
mov byte [esp + 0x63], 0xcd
mov dword [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, 0x10
jae 0x431f49
jmp 0x431ef3
mov edx, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx esi, byte [esp + ecx + 0x60]
mov ecx, edx
add ecx, 0x9a191e13
mov edi, ecx
and edi, esi
xor ecx, esi
add edx, 0x13
and edx, esi
mov esi, edi
add esi, edx
sub ecx, esi
lea ecx, [ecx + edi*2]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xa8]
add cl, 0x7b
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, 0x10
jb 0x431ef3
jmp 0x431f49
mov edx, dword [esp + 0x60]
mov cl, 1
cmp eax, edx
je 0x43222a
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x24]
mov byte [esp + 0x30], cl
mov byte [esp + 0x50], 0x1b
mov byte [esp + 0x51], 0x18
mov byte [esp + 0x52], 0x6c
mov byte [esp + 0x53], 0x1e
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x10
jae 0x431ff0
jmp 0x431fa5
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x50]
mov esi, ecx
add esi, 0x870dd123
add ecx, 0x23
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xac], esi
mov ecx, dword [esp + 0xac]
add cl, 0xb
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x50], cl
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, 0x10
jb 0x431fa5
jmp 0x431ff0
mov cl, 1
cmp eax, dword [esp + 0x50]
je 0x43222a
call fcn.00409640
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x20]
mov byte [esp + 0x34], cl
mov byte [esp + 0x40], 0x84
mov byte [esp + 0x41], 0x9e
mov byte [esp + 0x42], 0xee
mov byte [esp + 0x43], 0xf4
mov word [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xe
jae 0x43209b
jmp 0x43204e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x40]
mov esi, ecx
add esi, 0x57
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x4baa4d57
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x9f
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x40], cl
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
cmp ecx, 0xe
jb 0x43204e
jmp 0x43209b
cmp eax, dword [esp + 0x40]
sete al
mov cl, 1
test al, 1
jne 0x43222a
jmp 0x4320ae
call fcn.00409640
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x38], cl
mov byte [esp + 0x80], 0x66
mov byte [esp + 0x81], 0x13
mov byte [esp + 0x82], 0x79
mov byte [esp + 0x83], 0x43
mov dword [esp + 0x87], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0xb
jae 0x432168
jmp 0x43210b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx esi, byte [esp + edx + 0x80]
mov edx, ecx
add edx, 0xea8739a2
mov edi, edx
and edi, esi
xor edx, esi
add ecx, 0xa2
and ecx, esi
add ecx, edi
sub edx, ecx
lea ecx, [edx + edi*2]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb4]
add cl, 0x92
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x80], cl
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
cmp ecx, 0xb
jb 0x43210b
jmp 0x432168
cmp eax, dword [esp + 0x80]
sete al
mov cl, 1
test al, 1
jne 0x43222a
jmp 0x43217e
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x18]
mov byte [esp + 0x3c], cl
mov byte [esp + 0x70], 0x19
mov byte [esp + 0x71], 0x18
mov byte [esp + 0x72], 0x12
mov byte [esp + 0x73], 0x26
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xc
jae 0x432223
jmp 0x4321c4
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx esi, byte [esp + ecx + 0x70]
mov ecx, edx
add ecx, 0x4a
mov edi, edx
add edi, esi
lea edx, [edx + esi - 0x6d112cb6]
and ecx, esi
add ecx, ecx
mov esi, 0xb5
sub esi, edi
mov edi, ecx
and edi, esi
not ecx
and edx, ecx
sub edx, edi
mov dword [esp + 0xb8], edx
mov ecx, dword [esp + 0xb8]
add cl, 0xfa
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x70], cl
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
cmp ecx, 0xc
jb 0x4321c4
jmp 0x432223
cmp eax, dword [esp + 0x70]
sete cl
test cl, 1
jne 0x432231
jmp 0x432243
mov byte [esp + 3], 1
mov dword [esp + 0xa4], 1
jmp 0x432255
mov byte [esp + 3], 0
mov dword [esp + 0xa4], 1
jmp 0x432255
mov al, byte [esp + 3]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret