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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
mov edx, dword [ecx + 0x60]
mov dword [esp + 0x60], 0xe5e0fe09
mov dword [esp + 0x64], 0x3ae6fdf7
mov dword [esp + 0x68], 0xfee6ec00
mov dword [esp + 0x6c], 0xe9f93b22
mov dword [esp + 0x70], 0x9fbfce8
mov dword [esp + 0x74], 0x110c040f
mov dword [esp + 0x78], 0x18c91fd5
mov dword [esp + 0x7c], 0x80d010a
mov dword [esp + 0x80], 0xbea4a018
mov word [esp + 0x84], 0xb3ba
mov dword [esp + 0x86], 0
mov byte [esp + 0x8a], 0
mov esi, 0xe24a13ed
mov edi, 0x12
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + esi + 0x1db5ec73]
mov eax, edi
xor eax, esi
and eax, ebp
xor eax, esi
mov ebp, eax
xor ebp, 0xa2
and eax, 0x5d
add eax, eax
sub eax, ebp
inc al
mov byte [esp + esi + 0x1db5ec73], al
inc esi
dec edi
cmp esi, 0xe24a1418
jne 0x40df90
mov dword [esp], 0xb780bca6
xor esi, esi
xor edi, edi
nop
nop
nop
mov ebp, esi
and ebp, 4
mov eax, edi
xor eax, 0xde
add eax, ebp
add al, 0xc0
xor al, byte [esp + edi]
add al, 0xea
mov byte [esp + edi], al
inc edi
add esi, 2
cmp edi, 4
jne 0x40dfd0
mov dword [esp + 0xc], 0xaaa89495
mov dword [esp + 0x10], 0xa6a69884
mov dword [esp + 0x14], 0xa3565895
mov dword [esp + 0x18], 0x9e63a257
mov dword [esp + 0x1c], 0xae9b6f6e
mov dword [esp + 0x20], 0x60b5c3c1
mov dword [esp + 0x24], 0x65936562
mov dword [esp + 0x28], 0x72aea860
mov dword [esp + 0x2c], 0x787d797f
mov dword [esp + 0x30], 0x707b7975
mov dword [esp + 0x34], 0x7dc6af72
mov dword [esp + 0x38], 0x46877377
mov dword [esp + 0x3c], 0x7e8a787c
mov dword [esp + 0x40], 0x72803d53
mov dword [esp + 0x44], 0x315b748d
mov dword [esp + 0x48], 0x6e968c8e
mov dword [esp + 0x4c], 0x952e462e
mov dword [esp + 0x50], 0x91679195
mov dword [esp + 0x54], 0x4a639c61
mov word [esp + 0x58], 0x522
mov word [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov esi, 0x52
mov edi, 0x67f8ad
mov ecx, dword [esp + 0xa0]
movzx eax, byte [esp + esi - 0x46]
mov ebp, esi
xor ebp, edi
and ebp, eax
xor ebp, edi
mov eax, ebp
not eax
and eax, 0x65
and ebp, 0x9a
sub eax, ebp
mov byte [esp + esi - 0x46], al
inc esi
dec edi
cmp esi, 0xa6
jne 0x40e0b0
add ecx, edx
movzx eax, byte [esp + 0xc]
mov edx, ecx
test al, al
je 0x40e0fb
lea esi, [esp + 0xd]
mov edx, ecx
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40e0f0
mov byte [edx], 0
movzx eax, byte [ebx]
test al, al
je 0x40e11b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x40e110
mov dword [esp + 4], ecx
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x40e13b
lea ecx, [esp + 1]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e130
mov byte [edx], 0
movzx eax, byte [esp + 0x60]
test al, al
je 0x40e15b
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 0x40e150
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 ecx, ebx
xor ecx, 3
mov eax, ebx
or eax, 0xfffffffc
and eax, ecx
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
shr ecx, 1
and 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 0x40e1b2
mov ecx, dword [esp + 0xac]
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0xc], 0x12133735
mov dword [esp + 0x10], 0x160a686a
mov dword [esp + 0x14], 0x5e136464
mov dword [esp + 0x18], 0x1c296154
mov dword [esp + 0x1c], 0x29281c21
mov dword [esp + 0x20], 0x4d4f6c19
mov word [esp + 0x24], 0x4f4d
mov byte [esp + 0x26], 0xb6
mov dword [esp + 0x27], 0
mov byte [esp + 0x2b], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0xb2
xor cl, byte [esp + eax + 0xc]
add cl, 0x86
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 0x20
jne 0x40e200
add edx, dword [esp + 0xac]
movzx eax, byte [esp + 0xc]
test al, al
je 0x40e23b
lea ecx, [esp + 0xd]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e230
mov byte [edx], 0
sub edx, dword [esp + 4]
mov eax, dword [esp + 8]
add dword [eax + 0x60], edx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10