Function at 0x409cb0
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, 0xa8
mov dword [esp + 0x5c], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x70], 0xdfd6d483
mov dword [esp + 0x74], 0x9cdcdbe1
mov dword [esp + 0x78], 0x98dcd2fa
mov dword [esp + 0x7c], 0xa397d1ec
mov dword [esp + 0x80], 0x939192a2
mov dword [esp + 0x84], 0xabaa92a9
mov dword [esp + 0x88], 0xb2efa5ef
mov dword [esp + 0x8c], 0x828b8f84
mov dword [esp + 0x90], 0xd82ad6b2
mov word [esp + 0x94], 0x2924
mov dword [esp + 0x9a], 0
mov dword [esp + 0x96], 0
mov ecx, dword [ebp + 8]
mov esi, 0x35
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x3b]
mov edi, esi
and edi, eax
mov edx, edi
and edx, 2
mov ebx, edi
or edi, 2
imul edi, edx
xor edx, 2
and ebx, 0x7d
imul ebx, edx
add edi, ebx
add eax, esi
add eax, 0xea6646c9
mov edx, edi
xor edx, eax
not edi
and edi, eax
add edi, edi
sub edi, edx
mov eax, edi
not eax
and eax, 0x2ef3bcc9
and edi, 0xd10c4336
sub edi, eax
mov dword [esp + 8], edi
mov eax, dword [esp + 8]
add al, 0x8d
mov byte [esp + esi + 0x3b], al
inc esi
cmp esi, 0x63
jne 0x409d50
mov dword [esp + 0x60], 0xabaab680
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov esi, 0xba54ea65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x45ab15fb]
xor eax, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
lea edi, [eax - 0x279c2d3]
lea edx, [eax*2 - 0x4f385a6]
neg edx
add eax, edx
add eax, 0x1d863d2c
and eax, 0x15d8a5f0
mov edx, edi
xor edx, 0x15d8a5f0
or edi, 0xea275a0f
and edi, edx
mov edx, edi
not edx
and edx, eax
not eax
and eax, edi
sub eax, edx
mov byte [esp + esi + 0x45ab15fb], al
inc esi
cmp esi, 0xba54ea71
jne 0x409dd0
mov dword [esp + 8], 0xd6d08c8d
mov dword [esp + 0xc], 0xd2d280fc
mov dword [esp + 0x10], 0xafbab0fd
mov dword [esp + 0x14], 0xaab7aeb3
mov dword [esp + 0x18], 0xf2a7b3b2
mov dword [esp + 0x1c], 0xb885dfd9
mov dword [esp + 0x20], 0xa5bfada6
mov dword [esp + 0x24], 0xa69ae0a8
mov dword [esp + 0x28], 0xa0ada1a3
mov dword [esp + 0x2c], 0xa8afa1ad
mov dword [esp + 0x30], 0x8dcaa396
mov dword [esp + 0x34], 0xd2939f93
mov dword [esp + 0x38], 0x82968084
mov dword [esp + 0x3c], 0x8698c5af
mov dword [esp + 0x40], 0xd9b79c85
mov dword [esp + 0x44], 0x9a82849a
mov dword [esp + 0x48], 0x95d2bad2
mov dword [esp + 0x4c], 0x8993898d
mov dword [esp + 0x50], 0x466f7469
mov dword [esp + 0x54], 0xd2e
mov esi, 0xb0f0a5b8
mov edi, 0x46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x4f0f5a50]
lea edx, [edi + 1]
xor edx, esi
and edx, eax
xor edx, esi
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xf8
mov byte [esp + esi + 0x4f0f5a50], al
movzx eax, byte [esp + esi + 0x4f0f5a51]
lea edx, [esi + 1]
mov ebx, edi
xor ebx, edx
and ebx, eax
xor ebx, edx
mov dword [esp + 4], ebx
mov eax, dword [esp + 4]
add al, 0xf8
mov byte [esp + esi + 0x4f0f5a51], al
add esi, 2
add edi, 0xfffffffe
cmp edi, 0xfffffff6
jne 0x409ee0
add ecx, dword [esp]
movzx eax, byte [esp + 8]
mov edx, ecx
test al, al
je 0x409f5b
lea esi, [esp + 9]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409f50
mov byte [edx], 0
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi]
test al, al
je 0x409f7b
inc esi
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409f70
mov dword [esp + 0x58], ecx
mov byte [edx], 0
movzx eax, byte [esp + 0x60]
test al, al
je 0x409f9b
lea ecx, [esp + 0x61]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f90
mov byte [edx], 0
movzx eax, byte [esp + 0x70]
test al, al
je 0x409fbb
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409fb0
mov byte [edx], 0
mov eax, dword [ebp + 0x14]
mov ecx, eax
mov esi, eax
shr ecx, 2
mov ebx, dword [ebp + 0x10]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x40a001
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 8], 0xeeef130d
mov dword [esp + 0xc], 0x1a1e4846
mov dword [esp + 0x10], 0x4a1f4c4c
mov dword [esp + 0x14], 0x4c59415c
mov dword [esp + 0x18], 0x59584441
mov dword [esp + 0x1c], 0xfde30459
mov word [esp + 0x20], 0xfbe5
mov byte [esp + 0x22], 0xf2
mov dword [esp + 0x23], 0
mov dword [esp + 0x26], 0
mov ecx, 0x73d233fc
mov ebx, 3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], ebx
movzx edi, byte [esp + ecx - 0x73d233f4]
lea ebx, [edi + edi]
not ebx
add ebx, edi
and ebx, ecx
mov esi, ebx
and esi, 2
mov eax, ebx
or eax, 2
imul eax, esi
sub eax, ebx
and ebx, 0x73d237fd
xor esi, 2
imul esi, ebx
mov ebx, dword [esp]
add eax, esi
and edi, ebx
or eax, edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
lea esi, [eax + eax]
not esi
add esi, eax
not esi
and esi, 0x1b
or eax, 0x1b
add eax, esi
inc al
mov byte [esp + ecx - 0x73d233f4], al
inc ecx
dec ebx
cmp ecx, 0x73d2341e
jne 0x40a060
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 8]
test al, al
je 0x40a0eb
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a0e0
mov byte [edx], 0
mov eax, edx
mov ecx, dword [esp + 0x58]
xor eax, ecx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
mov eax, dword [esp + 0x5c]
add dword [eax + 0x60], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10