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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x60], 0xa5a8aaf1
mov dword [esp + 0x64], 0xf6bab593
mov dword [esp + 0x68], 0x8ab2a498
mov dword [esp + 0x6c], 0xb181cfe6
mov dword [esp + 0x70], 0x818784b0
mov dword [esp + 0x74], 0x8984bcbb
mov dword [esp + 0x78], 0x80c18bc5
mov dword [esp + 0x7c], 0xb0b589be
mov dword [esp + 0x80], 0xeaece880
mov word [esp + 0x84], 0x7ee
mov dword [esp + 0x86], 0
xor esi, esi
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi + 0x60]
mov ebx, edi
xor ebx, 0xfc5a2c2e
mov eax, esi
and eax, 0x22
sub eax, ebx
mov ebx, ebp
and ebx, 0xffffff9a
xor ebx, 0xff8c8b9a
mov edx, ebp
xor edx, 0xff8c8b9a
or ebp, 0x65
and ebp, edx
or ebp, ebx
mov edx, 0xe178ba86
sub edx, eax
add eax, 0x74579
and edx, 0xdd808b9a
and eax, 0x211465
or eax, edx
xor eax, ebp
mov edx, eax
and edx, 8
xor eax, 0x88
lea eax, [eax + edx*2]
inc al
mov byte [esp + edi + 0x60], al
inc edi
add esi, 2
cmp edi, 0x2a
jne 0x40d870
mov dword [esp + 4], 0x292438c2
mov dword [esp + 8], 0
mov eax, 0x3ab2b247
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x3ab2b243]
lea esi, [eax - 0x3ab2b200]
and esi, edx
add esi, esi
sub edx, esi
add edx, eax
mov esi, edx
and esi, 0x22
xor edx, 0x22
lea edx, [edx + esi*2]
add dl, 0x7b
mov byte [esp + eax - 0x3ab2b243], dl
inc eax
cmp eax, 0x3ab2b24f
jne 0x40d8f0
mov dword [esp + 0x10], 0xaeb06465
mov dword [esp + 0x14], 0xd2d22024
mov dword [esp + 0x18], 0xd7dad025
mov dword [esp + 0x1c], 0xdadfc6d3
mov dword [esp + 0x20], 0x12dfd3d2
mov dword [esp + 0x24], 0xc83d6769
mov dword [esp + 0x28], 0xcdc7f5ce
mov dword [esp + 0x2c], 0xce2a00f8
mov dword [esp + 0x30], 0xc0c5c1c3
mov dword [esp + 0x34], 0xf8f7c1f5
mov dword [esp + 0x38], 0xf52a03fe
mov dword [esp + 0x3c], 0x32f3f7f3
mov dword [esp + 0x40], 0xe2cee0fc
mov dword [esp + 0x44], 0xfee83d17
mov dword [esp + 0x48], 0x391fe4ed
mov dword [esp + 0x4c], 0xeae2ecea
mov dword [esp + 0x50], 0xed321a32
mov dword [esp + 0x54], 0x19131915
mov dword [esp + 0x58], 0xee171c09
mov dword [esp + 0x5c], 0xa5c6
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x10]
mov edx, eax
xor edx, 0xba130ec3
mov ebp, eax
or ebp, 0x3c
and ebp, edx
mov edx, ebp
and edx, 2
mov ebx, ebp
or ebp, 2
imul ebp, edx
xor edx, 2
and ebx, 0x7d
imul ebx, edx
mov esi, eax
xor esi, 0x45ecf13c
add esi, ebp
add esi, ebx
mov ebx, esi
and ebx, edi
mov edx, ebx
and edx, 0xfffffffd
mov ecx, ebx
and ecx, 2
mov ebp, ebx
or ebp, 0xfffffffd
inc ebp
imul ebp, edx
or ebx, 2
imul ebx, ecx
sub ebp, ebx
add esi, edi
add esi, ebp
mov edi, esi
and edi, 0xa25f49d1
mov ecx, esi
and ecx, 2
mov edx, ecx
xor edx, 2
imul edx, edi
or edi, 2
imul edi, ecx
add edi, edx
xor esi, 0xa25f49d3
mov ecx, edi
and ecx, esi
xor esi, edi
lea ecx, [esi + ecx*2]
inc cl
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x50
jne 0x40d9d0
mov ecx, dword [esp + 0xa0]
add ecx, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x40da8b
lea esi, [esp + 0x11]
mov edx, ecx
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40da80
mov byte [edx], 0
mov esi, dword [esp + 0xa4]
movzx eax, byte [esi]
test al, al
je 0x40daab
inc esi
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40daa0
mov dword [esp], ecx
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40dacb
lea ecx, [esp + 5]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dac0
mov byte [edx], 0
movzx eax, byte [esp + 0x60]
test al, al
je 0x40daeb
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dae0
mov byte [edx], 0
mov ebx, dword [esp + 0xac]
mov ecx, ebx
shr ecx, 2
mov ebp, dword [esp + 0xa8]
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
not ecx
or ecx, 3
add ebx, ecx
inc ebx
mov ecx, ebx
shr ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x40db3b
and ebx, 0xfffffffe
movzx eax, byte [eax + ebx]
mov byte [esi + ebx], al
mov dword [esp + 0x10], 0xaaa98d8f
mov dword [esp + 0x14], 0x9e9e4c76
mov dword [esp + 0x18], 0x56994848
mov dword [esp + 0x1c], 0x405f4350
mov dword [esp + 0x20], 0x5754405b
mov dword [esp + 0x24], 0xa3a58843
mov word [esp + 0x28], 0xa5a7
mov byte [esp + 0x2a], 0xb2
mov dword [esp + 0x2b], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
mov esi, eax
and esi, 5
xor esi, 0x30100225
mov edi, eax
and edi, 0x1a
sub edi, esi
xor edi, ecx
mov ecx, edi
and ecx, 0x38
xor edi, 0xb8
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x1f
jne 0x40db90
add edx, dword [esp + 0xac]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40dbeb
lea ecx, [esp + 0x11]
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 0x40dbe0
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10